Abstraction

Preconditions

Files: [Slides] [Code examples]

Postconditions

Files: [Slides] [Code examples]

What you should have learned after completing chapter 8:

  • How to use predicates as a mechanism for writing specifications about permission transfer that respects information hiding and supports reasoning about unbounded dynamic data structures.
  • How to use representation invariants to specify consistency conditions for data structures and how to verify their maintenance by folding and unfolding predicates.
  • Methodologies for writing abstract functional specifications through data abstraction, particularly using ghost code or heap dependent abstraction functions.