JML: Come specificare un requisito di un array con gli elementi Crescent?
-
08-10-2019 - |
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?
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