我已经从源代码编译并安装了两个cvc4。按照建议下载并安装了Cvc4,并从它的git存储库下载了Cryptol。沙箱和安装完成没有错误(GHC 7.8.3 x86_64)。只有在调用cryptol
并发出:prove True
后才会出现此问题。这就是一切:
athan@namek ~/lib> cryptol
_ _
___ _ __ _ _ _ __ | |_ ___ | |
/ __| '__| | | | '_ \| __/ _ \| |
| (__| | | |_| | |_) | || (_) | |
\___|_| \__, | .__/ \__\___/|_|
|___/|_| version 2.1.0 (8898348)
Loading module Cryptol
Cryptol> :prove True
cryptol: fd:6: hGetLine: end of file
athan@namek ~/lib>
对此的任何帮助都是巨大的。对我而言,感觉就像找不到共享库一样。这会导致这个问题吗?谢谢。
答案 0 :(得分:1)
总结评论中的对话:
"文件的结尾"问题中提到的错误通常归因于感兴趣的证明者(在这种情况下为CVC4)仅部分安装" - 在我的情况下,这总是一个共享库的问题,可以通过从命令行调用二进制文件(cvc,boolector等)来发现它。 REPL将终止的错误的票证是on Cryptol's github。幸运的是,这个问题是fixed in upstream SBV,很快就会出现在Cryptol的SBV分支中。
WRT AthanClark的特殊情况仍然不知道CVC4在被Cryptol调用时失败的原因和方式 - 可能包括调用不同于我们预期的二进制文件的密码或环境差异,例如LD_LIBARARY路径变量。无论哪种方式,听起来他能够成功使用替代证明器(boolector
)。