VAOL, chapter 9 (Correctness), page 124

     An Old expression of the form old e, where `e' is  an
     expression  of  type `TE', is valid if and only if it
     satisfies the following two conditions:

        1 It  appears  in  a  Postcondition  clause  of  a
          Routine `r'.

        2 Transforming `r' into  a  function  with  result
          type  `TE'  (by  adding  a result type if `r' is
          procedure, or changing its result type if it  is
          already  a  function)  and  replacing its entire
          Routine part by
            do
              Result := e
            end
          would yield a valid routine.
