1
下面是一個整數爲lim
的例子,它返回一個嚴格小於lim
的整數序列,它們是偶數。Dafny收集下面的平均數N
只有第二個不變量中的... <==> ...
的向後方向不驗證。我嘗試過玩這個遊戲一段時間,但我一直無法弄清楚。
任何幫助非常感謝!
method evens(lim : int) returns (ret : seq<int>)
requires 0 < lim
{
ret := [];
var i := 0;
while (i < lim)
invariant 0 <= i <= lim
invariant forall idx :: 0 <= idx < i ==> (idx % 2 == 0 <==> idx in ret)
{
if (i % 2 == 0) {
ret := [i] + ret;
}
i := i + 1;
}
}