Dafny验证程序:VSCode与命令行输出

时间:2020-03-25 21:00:44

标签: visual-studio-code command-line timeout verification dafny

我正在Windows 10的Visual Studio Code 1.43.2中使用Dafny。

我的算法已通过约150个证明义务的验证。然后,我添加了一个ghost变量和更多的引理,但没有更改算法。我现在在一个不变式和循环的reduces子句(这些是以前证明的)上遇到超时错误,如下所示。

enter image description here

添加其他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"]
}

0 个答案:

没有答案