Contracts as Documentation: Why Comments Lie

How preconditions, postconditions, and invariants become living documentation