Lecture 05: Verifying Programs with References and Arrays

Examples of Linked Data Structure Verification

Verification conditions for simple programming language results in formulas of arithmetic with addition (integer linear arithmetic).

  • we will see later how to decide such formulas (what provers do for us)
  • today: how do we generate verification conditions for programs with more complex data

Insertion into Doubly-Linked List

Semantics of References and Arrays

Simplifying Verification Conditions

FOL with Update Expressions

Proving Programs with Dynamic Allocation Summary. Demo on the Jahob example

(Continued in Lecture 05a)