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?

War es hilfreich?

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
scroll top