Dafny 中关于集合未验证的琐碎断言
Trivial Assertions about Sets not Verifying in Dafny
教程Collections包含以下代码
method m()
{
assert (set x | x in {0,1,2,3,4,5} && x < 3) == {0,1,2};
}
然而,目前无法在 rise4fun:
可用的 Dafny 系统中进行验证
stdin.dfy(3,11): Warning: /!\ No terms found to trigger on.
stdin.dfy(3,48): Error: assertion violation
Dafny program verifier finished with 0 verified, 1 error
这个更简单的例子
method m() { assert (set x : nat | x in {0}) == {0}; }
也不验证:
stdin.dfy(1,21): Warning: /!\ No terms found to trigger on.
stdin.dfy(1,45): Error: assertion violation
Dafny program verifier finished with 0 verified, 1 error
我觉得两个例子都应该验证;我错过了什么吗?
这些都是真的。 Dafny 的编码中缺少一个条件,导致这些无法验证。我修好了它。感谢您的错误报告。
鲁斯坦
教程Collections包含以下代码
method m()
{
assert (set x | x in {0,1,2,3,4,5} && x < 3) == {0,1,2};
}
然而,目前无法在 rise4fun:
可用的 Dafny 系统中进行验证stdin.dfy(3,11): Warning: /!\ No terms found to trigger on.
stdin.dfy(3,48): Error: assertion violation
Dafny program verifier finished with 0 verified, 1 error
这个更简单的例子
method m() { assert (set x : nat | x in {0}) == {0}; }
也不验证:
stdin.dfy(1,21): Warning: /!\ No terms found to trigger on.
stdin.dfy(1,45): Error: assertion violation
Dafny program verifier finished with 0 verified, 1 error
我觉得两个例子都应该验证;我错过了什么吗?
这些都是真的。 Dafny 的编码中缺少一个条件,导致这些无法验证。我修好了它。感谢您的错误报告。
鲁斯坦