An invariant is a predicate whose truth is maintained by each execution of a
loop or for all uses of a data structure. A possible approach to documentation
includes stating invariants for loops and abstract data types.
Without explicit and executable identification of preconditions,