我正在Windows 10的Visual Studio Code 1.43.2中使用Dafny。
我的算法已通过约150个证明义务的验证。然后,我添加了一个ghost变量和更多的引理,但没有更改算法。我现在在一个不变式和循环的reduces子句(这些是以前证明的)上遇到超时错误,如下所示。
添加其他assert
甚至assume
语句只会导致更多的不变式超时。因此,我尝试使用/compile:0
(因为我有两个无主体方法)和/tracePOs
选项从命令行运行Dafny。我得到以下输出:
Verifying CheckWellformed$$_module.__default.Bisimilarity ... [6 proof obligations] verified
Verifying Impl$$_module.__default.Bisimilarity ... [140 proof obligations] verified
Verifying CheckWellformed$$_module.__default.Calculate ... [9 proof obligations] verified
Verifying CheckWellformed$$_module.__default.Sum ... [14 proof obligations] verified
Verifying CheckWellformed$$_module.__default.Split ... [5 proof obligations] verified
Verifying CheckWellformed$$_module.__default.Union ... [3 proof obligations] verified
Verifying Impl$$_module.__default.AddingPartitions ... [12 proof obligations] verified
Verifying Impl$$_module.__default.AllElementsInUnion ... [6 proof obligations] verified
Verifying Impl$$_module.__default.UnionOfDifference ... [6 proof obligations] verified
Verifying Impl$$_module.__default.EnsureDisjoint ... [4 proof obligations] verified
Verifying Impl$$_module.__default.EnsureSubset ... [2 proof obligations] verified
Verifying Impl$$_module.__default.MaximumPartition ... [12 proof obligations] verified
Verifying Impl$$_module.__default.SplittersDecrease ... [5 proof obligations] verified
Verifying Impl$$_module.__default.BlockInU ... [5 proof obligations] verified
Verifying Impl$$_module.__default.BlockNotInU ... [3 proof obligations] verified
Verifying CheckWellformed$$_module.__default.OutgoingTransitions ... [45 proof obligations] verified
Verifying Impl$$_module.__default.OutgoingTransitions ... [12 proof obligations] verified
Dafny program verifier finished with 17 verified, 0 errors
这是否意味着算法是正确的,但是证明义务的数量对于VSCode来说太多了?有没有什么办法解决这一问题?我尝试修改settings.json文件以增加时间限制,但是我不确定默认值是什么,以及这样做是否正确:
{
"dafny.basePath": "c:\\Users\\zaina\\.vscode\\extensions\\correctnesslab.dafny-vscode-0.17.1\\dafny\\dafny",
"[dafny]": {},
"dafny.serverVerifyArguments" : ["/timeLimit:110"]
}