JML: Comment spécifier une exigence d'un tableau avec des éléments de croissant?

StackOverflow https://stackoverflow.com/questions/3946545

  •  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?

Était-ce utile?

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]))

(i >= 0 && i < array.length-1) est l'expression de la gamme.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top