JML:三日月の要素を持つ配列の要件を指定する方法は?
-
08-10-2019 - |
質問
JMLでそれをしたい:
//@ requires (\forall int i : array[i] < array[i+1])
void calculatesDistances(int[] array){
..
}
私はそれを機能させることができず、JML仕様で多くの例を見ましたが、それを行う方法を見つけることができませんでした。
それで、どうすればそれを作ることができますか?
解決
1つの方法は、含意を使用してナンセンス配列値から「ガード」することです。
(\forall int i; (i >= 0 && i < array.length-1) ==> (array[i] < array[i+1]))
の新しい構文があります \forall
, 、私はあなたも書くことができると信じています:
(\forall int i; (i >= 0 && i < array.length-1) ; (array[i] < array[i+1]))
どこ (i >= 0 && i < array.length-1)
範囲式です。
所属していません StackOverflow