Started adding function requirements
More work on requirements
All invariants now indicate what is required.
Large refactoring of invariant code. Now decorates each function with the specials required and builds the appropriate representation.