Is Negative Code template contract predicate for ensuring an entity is a negative numeric Eiffel Software is_neg Eiffel code contract invariant precondition postcondition An numeric entity