LARA

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
sav07_lecture_3_skeleton [2007/03/21 11:01]
vkuncak
sav07_lecture_3_skeleton [2007/03/21 14:27]
vkuncak
Line 1: Line 1:
 ====== Lecture 3 (Skeleton) ====== ====== Lecture 3 (Skeleton) ======
  
-===== Converting programs (with simple values) to formulas =====+Summary of what we are doing in today'​s class:
  
 +{{vcg-big-picture.png}}
  
 +
 +===== Verification condition generation: converting programs into formulas =====
  
 ==== Context ==== ==== Context ====
Line 25: Line 28:
  
   R( c ) -> error=false   R( c ) -> error=false
 +
  
  
Line 38: Line 42:
  
   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 157: Line 161:
  
  
-===== Proving quantifier-free linear arithmetic formulas =====+ 
 +===== One useful decision procedure: ​Proving quantifier-free linear arithmetic formulas =====
  
 Suppose that we obtain (one or more) verification conditions of the form Suppose that we obtain (one or more) verification conditions of the form
Line 164: Line 169:
 \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 179:
   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 188:
  
 Proof: small model theorem. Proof: small model theorem.
- 
- 
- 
- 
- 
- 
- 
  
 ==== Small model theorem for Quantifier-Free Presburger Arithmetic (QFPA) ==== ==== Small model theorem for Quantifier-Free Presburger Arithmetic (QFPA) ====
Line 213: Line 209:
   * 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 237:
   * 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
- 
- 
- 
-