JML: Comment spécifier une exigence d'un tableau avec des éléments de croissant?
-
08-10-2019 - |
Question
Je veux faire en JML:
//@ requires (\forall int i : array[i] < array[i+1])
void calculatesDistances(int[] array){
..
}
Je ne pouvais pas le faire fonctionner, a vu beaucoup d'exemples dans les spécifications JML, mais n'a pas pu trouver un moyen comment le faire.
Alors, comment puis-je faire?
La solution
Une façon est de « garde » contre les valeurs de tableau non-sens en utilisant l'implication:
(\forall int i; (i >= 0 && i < array.length-1) ==> (array[i] < array[i+1]))
Avec la nouvelle syntaxe pour \forall
, je crois que vous pouvez aussi écrire:
(\forall int i; (i >= 0 && i < array.length-1) ; (array[i] < array[i+1]))
où (i >= 0 && i < array.length-1)
est l'expression de la gamme.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow