Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sav08:lecture13 [2008/04/08 23:11] vkuncak |
sav08:lecture13 [2008/04/09 18:58] vkuncak |
||
---|---|---|---|
Line 3: | Line 3: | ||
(Review of FOL results, a comment on [[Complete Recursive Axiomatizations]] from [[lecture12|last lecture]].) | (Review of FOL results, a comment on [[Complete Recursive Axiomatizations]] from [[lecture12|last lecture]].) | ||
- | Goal of lecture: how to verify linked data structures using FOL. | + | 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. | Review [[Forward Symbolic Execution]] and note that the rules apply for any variable type, not just integers. | ||
Line 12: | Line 14: | ||
[[Insertion into Doubly-Linked List]] | [[Insertion into Doubly-Linked List]] | ||
- | |||
- | We show how to generate verification conditions in FOL, so we can verify such programs using FOL. | ||
[[Program Memory as Graph]] | [[Program Memory as Graph]] | ||
Line 29: | Line 29: | ||
[[Proving Programs with Dynamic Allocation]] | [[Proving Programs with Dynamic Allocation]] | ||
- | ===== Procedure Calls ===== | + | ===== Procedures ===== |
[[Language with Specified Procedures]] | [[Language with Specified Procedures]] | ||
- | [[Assume Guarantee Reasoning with Procedures]] | + | [[Relational Semantics of Procedures]] |
- | + | ||
- | [[Correctness of A/G Reasoning]] | + | |
- | + | ||
- | [[Frame Conditions]] | + | |
- | + | ||
- | [[Simple Module Invariants]] | + | |