Momenteel op de uni bezig met het leren van Java; daarbij de pre- en postcondities en invarianten in JML.
Nu wil ik een loop-invariant maken met daarin de JML-functie \old().
Bij bijvoorbeeld een postconditie in JML werkt dit prima, maar bij een loopinvariant krijg ik de volgende JML typecheck error in Eclipse (gebruikmakend van OpenJML):

Ik heb zo het gevoel dat \old() niet werkt in invarianten omdat deze functie de situatie vóór het aanroepen van een methode beschrijft, maar ik vermoedde dat zoiets ook wel zou gelden voor loops (dus: beschrijft de situatie voor het uitvoeren van de iteratie).
Iemand enig idee wat een mogelijke vervanging voor \old() kan zijn in een loop invariant?
Thanks!
Christian
Nu wil ik een loop-invariant maken met daarin de JML-functie \old().
Bij bijvoorbeeld een postconditie in JML werkt dit prima, maar bij een loopinvariant krijg ik de volgende JML typecheck error in Eclipse (gebruikmakend van OpenJML):
Ik heb zo het gevoel dat \old() niet werkt in invarianten omdat deze functie de situatie vóór het aanroepen van een methode beschrijft, maar ik vermoedde dat zoiets ook wel zou gelden voor loops (dus: beschrijft de situatie voor het uitvoeren van de iteratie).
Iemand enig idee wat een mogelijke vervanging voor \old() kan zijn in een loop invariant?
Thanks!
Christian