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
Last revision Both sides next revision
sav07_lecture_5 [2007/04/03 17:35]
vaibhav.rajan
sav07_lecture_5 [2007/04/03 23:18]
vkuncak
Line 4: Line 4:
   * Nelson-Oppen combination method   * Nelson-Oppen combination method
   * Proof search   * Proof search
 +
  
 ===== Basic idea of Nelson-Oppen combination ===== ===== Basic idea of Nelson-Oppen combination =====
Line 87: Line 88:
 The models can be merged if \\ The models can be merged if \\
 (1)the domains are of the same size, and \\ (1)the domains are of the same size, and \\
-(2)[x = y]_m1 --> [f(x) = f(y]_m2, where f is an isomorphism from one model to the other.+(2)[x = y]_m1 --> [f(x) = f(y)]_m2, where f is an isomorphism from one model to the other.
  
  
Line 143: Line 144:
  
   * Basic idea, and in the above example (name i from the ∃i as i0, then instantiate ∀i also with i=i0)   * Basic idea, and in the above example (name i from the ∃i as i0, then instantiate ∀i also with i=i0)
-  * examples of incompleteness:+  * example:
  
 Given: f(0) > 0 & ∀x:x > 0. (f(x)>0) --> f(x+1)>0 Given: f(0) > 0 & ∀x:x > 0. (f(x)>0) --> f(x+1)>0
 +
 Prove: ∀x. (x >= 0) --> f(x+1)>0 Prove: ∀x. (x >= 0) --> f(x+1)>0
 +
 Proof: Proof:
-  * f(5) > 0+  * f(5) > 0\\
    f(5): can be derived by deriving f(1), f(2), f(3) and f(4).    f(5): can be derived by deriving f(1), f(2), f(3) and f(4).
   * Then its straightforward to use ∀x:x > 0. (f(x)>0) --> f(x+1)>0 and arrive at the proof.   * Then its straightforward to use ∀x:x > 0. (f(x)>0) --> f(x+1)>0 and arrive at the proof.
  
 For formulas with quantifiers,​ example: (∀x.F1) & F2, substitute values for x in F1. For formulas with quantifiers,​ example: (∀x.F1) & F2, substitute values for x in F1.
 +
 A heuristic that could be used is: Look at constants in F2 and try substituting them. A heuristic that could be used is: Look at constants in F2 and try substituting them.
  
Line 166: Line 170:
  
 For more details, see [[http://​verify.stanford.edu/​summerschool2004|Combination of Decision Procedures Summer School 2004]]. For more details, see [[http://​verify.stanford.edu/​summerschool2004|Combination of Decision Procedures Summer School 2004]].
- 
  
 ===== The notion of formal proof ===== ===== The notion of formal proof =====
Line 176: Line 179:
 Notion of formal proof. Notion of formal proof.
  
-How do we define a prove in a program? +How do we define a proof in a program? 
-   * Set of axiomes: Ax_1, Ax_2, ..., Ax_n+   * Set of axioms: Ax_1, Ax_2, ..., Ax_n
    * Set of inference rules    * Set of inference rules
  
-prouve ​then is nothing more than a sequence of formulas F_i.+proof then is nothing more than a sequence of formulas F_i.
  
-__Informal Definition:​__ A prove is such that each F_i can be derived either from an axiom or +__Informal Definition:​__ A proof is such that each F_i can be derived either from an axiom or 
 from a rule or from a formula F_j (j < i) that we have previously derived. from a rule or from a formula F_j (j < i) that we have previously derived.
  
Line 189: Line 192:
 Proof rules for first-order logic. Proof rules for first-order logic.
    * propositional axioms: an instance of propositional tautology is an axiom    * propositional axioms: an instance of propositional tautology is an axiom
-   * instantiation:​ from (ALL x.F) derive F[x:=t]. +   * instantiation:​ from (x.F) derive F[x:=t]. 
-   * generalization:​ after proving F which contains a fresh variable x, conclude (ALL x.F)+   * generalization:​ after proving F which contains a fresh variable x, conclude (x.F)
  
 Example: axiomatizing some set operations. Example: axiomatizing some set operations.