Cooperation-based Invariants for OO Languages
Ronald Middelkoop, Cornelis Huizing, Ruurd Kuiper, E.J. Luit · Electronic Notes in Theoretical Computer Science · 2006
In general, invariants may depend on the state of other objects. The approach introduced in this paper allows this for objects of mutually visible classes, in a way that supports modular verification. To this end, dependencies are made explicit by cooperation. In particular, invariants expressing non-hierarchical object relations are supported. Furthermore, an inc-set allows a method to specify explicitly that it does not depend on the validity of a certain invariant. This way, it can be called even when that invariant is violated.