如果我使用其他Boogie后端来检查Dafny翻译的bpl文件,是否可以找到非伪造的反例?

时间:2018-09-12 19:25:42

标签: dafny boogie

如Dafny GitHub上的Wiki中所述,当Dafny无法证明程序中的断言时,可能是由于我的程序不正确或Dafny的不完整所致。但是我发现尝试理解它后,Dafny的反例是虚假的,所以我仍然不知道我的程序是否正确。

我的问题如下。 如果我设法使用另一个Boogie后端(例如Corral)使用/print从Dafny检查已翻译的Boogie程序,并且Corral还返回了一个使Boogie程序无效的模型,那可以保证该模型不支持我的Dafny程序,那么我可以用它来调试吗?还是它仍然可能是伪造的,所以不必费心尝试吗?

从他们的论文看来,Corral和Symbooglix应该保证所提供的模型应该是已翻译的Boogie程序的具体反例,所以也许我的问题更多是关于Dafny程序和已翻译的Boogie程序是否是语义上等价的。

PS:我尝试将翻译后的bpl文件传递给Corral并检查该bpl中的特定Boogie程序,而Corral只是说它找不到该程序,所以我在辩论是否要使其正常工作。

1 个答案:

答案 0 :(得分:0)

翻译后的Boogie文件不太可能再有一个后端,因为不完整的原因是根本。

例如,Dafny提供了几种数据结构(包括序列)的公理化,而这些公理化已知是不完整的。

如果您在理解特定的Dafny失败时遇到麻烦,建议您再问一个有关特定程序的问题,并在可能的情况下提供一个最小的工作示例。