JML: Wie eine Anforderung eines Arrays mit sichel Elemente angeben?
-
08-10-2019 - |
Frage
Ich möchte, dies zu tun in JML:
//@ requires (\forall int i : array[i] < array[i+1])
void calculatesDistances(int[] array){
..
}
Ich konnte nicht damit es funktioniert, sahen viele Beispiele in JML-Spezifikationen, konnte aber nicht einen Weg finden, wie es zu tun.
Also, wie kann ich es machen?
Lösung
Eine Möglichkeit ist die „Wächter“ gegen Unsinn Array Werte Implikation mit:
(\forall int i; (i >= 0 && i < array.length-1) ==> (array[i] < array[i+1]))
Mit der neueren Syntax für \forall
, glaube ich, man könnte auch schreiben:
(\forall int i; (i >= 0 && i < array.length-1) ; (array[i] < array[i+1]))
wo (i >= 0 && i < array.length-1)
ist der Bereich Ausdruck.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow