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/21 11:01] vkuncak |
sav07_lecture_3_skeleton [2007/03/21 14:20] vkuncak |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Lecture 3 (Skeleton) ====== | ====== Lecture 3 (Skeleton) ====== | ||
+ | |||
+ | Recall what we are doing: | ||
+ | |||
+ | {{vcg-big-picture.png}} | ||
+ | |||
===== Converting programs (with simple values) to formulas ===== | ===== Converting programs (with simple values) to formulas ===== | ||
Line 25: | Line 30: | ||
R( c ) -> error=false | R( c ) -> error=false | ||
+ | |||
Line 38: | Line 44: | ||
R(havoc x) = frame(x) | R(havoc x) = frame(x) | ||
- | R(assume F) = F[x:=x_0, y:=y_0, error:=error_0] | + | R(assume F) = F[x:=x_0, y:=y_0, error:=error_0] & frame() |
R(assert F) = (F -> frame) | R(assert F) = (F -> frame) | ||
Line 153: | Line 159: | ||
Alternative: | Alternative: | ||
* decide that you will only loop for formulas of restricted form, as in abstract interpretation and data flow analysis (next week) | * decide that you will only loop for formulas of restricted form, as in abstract interpretation and data flow analysis (next week) | ||
+ | |||
Line 164: | Line 171: | ||
\end{equation*} | \end{equation*} | ||
- | whose validity we need to prove. We here assume that F contains only | + | whose validity we need to prove. We here assume that F contains only linear arithmetic. Note: we can check satisfiability of $F\ \land\ (\mbox{error}=\mbox{true})$. We show an algorithm to check this satisfiability. |
- | + | ||
- | Note: we can check satisfiability of $F\ \land\ (\mbox{error}=\mbox{true})$. | + | |
==== Quantifier Presburger arithmetic ==== | ==== Quantifier Presburger arithmetic ==== | ||
Line 176: | Line 181: | ||
T ::= var | T + T | K * T (terms) | T ::= var | T + T | K * T (terms) | ||
A ::= T=T | T <= T (atomic formulas) | A ::= T=T | T <= T (atomic formulas) | ||
- | F ::= F & F | F|F | ~F (formulas) | + | F ::= A | F & F | F|F | ~F (formulas) |
To get full Presburger arithmetic, allow existential and universal quantifiers in formula as well. | To get full Presburger arithmetic, allow existential and universal quantifiers in formula as well. | ||
Line 185: | Line 190: | ||
Proof: small model theorem. | Proof: small model theorem. | ||
+ | |||
Line 213: | Line 219: | ||
* solution of Ax=b (A regular) has as components rationals of form p/q with bounded p,q | * solution of Ax=b (A regular) has as components rationals of form p/q with bounded p,q | ||
* duality of linear programming | * duality of linear programming | ||
- | * obtains bound $M = n(ma)^{2m+1}$, which needs $(2m+1)(\log n + \log m + \log a)$ bits | + | * obtains bound $M = n(ma)^{2m+1}$, which needs $\log n + (2m+1)\log(ma)$ bits |
* we could encode the problem into SAT: use circuits for addition, comparison etc. | * we could encode the problem into SAT: use circuits for addition, comparison etc. | ||
Line 241: | Line 247: | ||
* Presburger Arithmetic (PA) bounds: {{papadimitriou81complexityintegerprogramming.pdf}} | * Presburger Arithmetic (PA) bounds: {{papadimitriou81complexityintegerprogramming.pdf}} | ||
* Specializing PA bounds: http://www.lmcs-online.org/ojs/viewarticle.php?id=43&layout=abstract | * Specializing PA bounds: http://www.lmcs-online.org/ojs/viewarticle.php?id=43&layout=abstract | ||
- | |||
- | |||
- | |||
- |