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 | ||
sav07_lecture_3 [2007/03/29 21:05] kremena.diatchka |
sav07_lecture_3 [2007/04/11 13:51] vkuncak |
||
---|---|---|---|
Line 135: | Line 135: | ||
Note: when proving our verification condition, instead of proving that semantics of relation implies error=false, it's same as proving that the formula for set sp(U,r) implies error=false, where U is the universal relation, or, in terms of formulas, computing the strongest postcondition of formula 'true'. | Note: when proving our verification condition, instead of proving that semantics of relation implies error=false, it's same as proving that the formula for set sp(U,r) implies error=false, where U is the universal relation, or, in terms of formulas, computing the strongest postcondition of formula 'true'. | ||
+ | |||
==== Weakest preconditions ==== | ==== Weakest preconditions ==== | ||
While symbolic execution computes formula by going forward along the program syntax tree, [[sav07_lecture_2#weakest_preconditions|weakest precondition]] computes formula by going backward. | While symbolic execution computes formula by going forward along the program syntax tree, [[sav07_lecture_2#weakest_preconditions|weakest precondition]] computes formula by going backward. | ||
+ | |||
+ | \begin{equation*} | ||
+ | wp(r,P) = \{ s_1 \mid \forall s_2. (s_1,s_2) \in r \rightarrow s_2 \in P \} | ||
+ | \end{equation*} | ||
+ | |||
We know that the weakest precondition holds following conditions for each relation r and sets Q1, Q2: | We know that the weakest precondition holds following conditions for each relation r and sets Q1, Q2: | ||
wp(r, Q1 ∧ Q2) = wp(r,Q1) ∧ wp(r,Q2) | wp(r, Q1 ∧ Q2) = wp(r,Q1) ∧ wp(r,Q2) | ||
Line 203: | Line 209: | ||
Proof: small model theorem. | Proof: small model theorem. | ||
+ | |||
+ | |||
Line 258: | Line 266: | ||
* [[http://www.cs.nyu.edu/acsys/cvc3/download.html|CVC3]] (successor of CVC Lite) | * [[http://www.cs.nyu.edu/acsys/cvc3/download.html|CVC3]] (successor of CVC Lite) | ||
* [[http://combination.cs.uiowa.edu/smtlib/|SMT-LIB]] Standard for formulas, competition | * [[http://combination.cs.uiowa.edu/smtlib/|SMT-LIB]] Standard for formulas, competition | ||
+ | * [[http://doi.acm.org/10.1145/135226.135233|Omega test]] for conjunctions of integer inequalities | ||
==== Full Presburger arithmetic ==== | ==== Full Presburger arithmetic ==== |