Input-to-output propagation has been modified slightly:
when committing, each variable x is committed after each invariant x is an input to has been enforced with x, making it possible to use the committed value from the previous commit in the invariant (some data structures of the invariants were redundant and have now been removed)
The notify method (and the underlying queue) has been removed from the invariant class. Instead the invariant is enforced directly using the input variable
Input-to-output propagation has been modified slightly: