私はDafnyで自分のコードを検証しようとしていますが、問題が発生しました: シーケンスを反復処理して変更するメソッドがあります。このメソッドは、シーケンス内の要素に従ってシーケンスを変更します。私はこのようなポスト条件を追加したいと思います: "シーケンスの要素がXなら何かが起こるはずです"。問題は、メソッドがセットを変更する(要素を追加するなど)、元のシーケンスの状態をチェックしたいということです。 Dafnyでそれを行うエレガントな方法はありますか? (私が今考えている唯一の方法は、配列の元の状態をグローバル変数に保つことですが、それを行う正しい方法を探しています)。Dafny検証 - 事後条件で元のvarを参照してください
コード例:コードで
method changeSeq(p: class1, s: seq<class1>)
ensures |s| == 10 ==> p in s
{
if (|s| == 10){
s := s + [p];
}
}
、私たちはそれを変更した後、ポスト条件がSTATを元のスタットをチェックし、しないようにしたいです。
これは質問への回答を提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューの投稿](レビュー/低品質の投稿/ 15027572) –
これで答えが得られないとはどういうことが言えますか?私は問題を理解し、これが正解と考える。 – deLta
リンク先の* old *のドキュメントがありますか? – Jon