Lecture 18: Reasoning about Specified Procedures

Specification Variables

Specification Variables with Definitions:

Ghost Specification Variables:

  • variables that are under user
  • public and private invariants
  • specifying simple iterators

Modeling Cycles:

(Implicit) Dynamic Frames

  • Hiding Reusable Objects (not Just Fields or inner classes) by using Variables in Modifies Clauses

Doing Proofs Using Specification Variables:

Continued in Lecture 19