Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sav07_lecture_3_skeleton [2007/03/20 17:19] vkuncak |
sav07_lecture_3_skeleton [2007/03/20 17:34] vkuncak |
||
---|---|---|---|
Line 2: | Line 2: | ||
===== Converting programs (with simple values) to formulas ===== | ===== Converting programs (with simple values) to formulas ===== | ||
+ | |||
Line 13: | Line 14: | ||
<latex> | <latex> | ||
\{((x_0,y_0),(x,y)) \mid F \} | \{((x_0,y_0),(x,y)) \mid F \} | ||
- | </latex> | + | </latex> |
where F is some formula that has x,y,x_0,y_0 as free variables. | where F is some formula that has x,y,x_0,y_0 as free variables. | ||
Line 96: | Line 98: | ||
Symbolic execution converts programs into formulas by going forward. It is therefore somewhat analogous to the way an [[interpreter]] for the language would work. It is based on the notion of strongest postcondition. | Symbolic execution converts programs into formulas by going forward. It is therefore somewhat analogous to the way an [[interpreter]] for the language would work. It is based on the notion of strongest postcondition. | ||
+ | |||
==== Weakest preconditions ==== | ==== Weakest preconditions ==== | ||
Line 101: | Line 104: | ||
While symbolic execution computes formula by going forward along the program syntax tree, weakest precondition computes formula by going backward. | While symbolic execution computes formula by going forward along the program syntax tree, weakest precondition computes formula by going backward. | ||
- | ==== Papers ==== | + | ===== Proving quantifier-free linear arithmetic formulas ===== |
+ | |||
+ | ===== Papers ===== | ||
* Verification condition generation in Spec#: http://research.microsoft.com/~leino/papers/krml157.pdf | * Verification condition generation in Spec#: http://research.microsoft.com/~leino/papers/krml157.pdf |