The invariant is part of the contract between the user and the code. It states how you are allowed to use that code, what assumptions are made, etc. In short it spells out what requirements must be...