Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
sav07_lecture_4_skeleton [2007/03/22 20:43] vkuncak |
sav07_lecture_4_skeleton [2007/03/26 14:14] leander.eyer |
||
---|---|---|---|
Line 8: | Line 8: | ||
We use weakest preconditions, although you could also use strongest postconditions or any other variants of the conversion from programs to formulas. | We use weakest preconditions, although you could also use strongest postconditions or any other variants of the conversion from programs to formulas. | ||
- | |||
===== More on wp ===== | ===== More on wp ===== | ||
Line 18: | Line 17: | ||
=== wp of havoc === | === wp of havoc === | ||
- | Can we derive wp(Q,havoc(x)? | + | Can we derive wp(Q,havoc(x))? |
* By consider havoc(x) as (... [] x=-1 [] x = 0 [] x = 1 [] ...) ? | * By consider havoc(x) as (... [] x=-1 [] x = 0 [] x = 1 [] ...) ? | ||
* From relational definition? | * From relational definition? | ||
Line 66: | Line 65: | ||
Benefit: if there is x_{n+1} that is not changed, we do not need to write its properties in the loop invariant. This can make loop invariant shorter. | Benefit: if there is x_{n+1} that is not changed, we do not need to write its properties in the loop invariant. This can make loop invariant shorter. | ||
- | ==== References about weakest precondition (in construction) ==== | + | |
+ | |||
+ | ==== References about weakest precondition (under construction) ==== | ||
+ | * (some online references will come here) | ||
* Back, Wright: Refinement Calculus | * Back, Wright: Refinement Calculus | ||
- | * Dijkstra | + | * Edsger W. Dijkstra: A Discipline of Programming |
- | * Hoare, He | + | * C. A. R. Hoare, He Jifeng: Unifying Theories of Programming |
===== Modeling data structures ===== | ===== Modeling data structures ===== | ||
Line 144: | Line 147: | ||
* [[Gallier Logic Book]], Chapter 10.6 | * [[Gallier Logic Book]], Chapter 10.6 | ||
* {{nelsonoppen80decisionprocedurescongruenceclosure.pdf|the original paper by Nelson and Oppen}} | * {{nelsonoppen80decisionprocedurescongruenceclosure.pdf|the original paper by Nelson and Oppen}} | ||
- |