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
Semantics of References and Arrays
Language with Dynamic Allocation
Semantics of Dynamic Object Allocation
Semantics of Field Reads and Writes
Semantics of Array Manipulations
Simplifying Verification Conditions
Proving Programs with Dynamic Allocation Summary. Demo on the Jahob example
(Continued in Lecture 05a)