Domanda

Io voglio farlo in JML:

//@ requires (\forall int i : array[i] < array[i+1])
void calculatesDistances(int[] array){
 ..
}

Non ho potuto farlo funzionare, visto un sacco di esempi in specifiche JML, ma non riusciva a trovare un modo per farlo.

Quindi, come posso farlo?

È stato utile?

Soluzione

Un modo è quello di "guardia" contro valori di matrice nonsense con implicazione:

  (\forall int i; (i >= 0 && i < array.length-1) ==> (array[i] < array[i+1]))

Con la nuova sintassi per \forall, credo che si potrebbe anche scrivere:

  (\forall int i; (i >= 0 && i < array.length-1) ; (array[i] < array[i+1]))

dove (i >= 0 && i < array.length-1) è l'espressione di intervallo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top