Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Last revision Both sides next revision | ||
sav08:lecture13 [2008/04/08 23:11] vkuncak |
sav08:lecture13 [2008/04/09 10:54] 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 32: | Line 32: | ||
[[Language with Specified Procedures]] | [[Language with Specified Procedures]] | ||
+ | |||
+ | [[Relational Semantics of Procedures]] | ||
[[Assume Guarantee Reasoning with Procedures]] | [[Assume Guarantee Reasoning with Procedures]] |