Beyond simple imperative language: dynamic allocation and procedures

(Review of FOL results, a comment on Complete Recursive Axiomatizations from last lecture.)

Today we

  • use FOL to verify linked data structures
  • show how to specify and verify programs with procedures

Review Forward Symbolic Execution and note that the rules apply for any variable type, not just integers.

Symbolic Execution for Example Integer Program

Modeling Objects and References