1 / 21

Automated Theorem Proving

Automated Theorem Proving. Lecture 2 Propositional Satisfiability . Decision procedures. Boolean programs Propositional satisfiability Arithmetic programs Propositional satisfiability modulo theory of linear arithmetic Memory programs

Anita
Télécharger la présentation

Automated Theorem Proving

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Automated Theorem Proving Lecture 2 Propositional Satisfiability

  2. Decision procedures • Boolean programs • Propositional satisfiability • Arithmetic programs • Propositional satisfiability modulo theory of linear arithmetic • Memory programs • Propositional satisfiability modulo theory of linear arithmetic + arrays

  3. Case I: Boolean programs • Boolean-valued variables and boolean operations •  Formula := b |  |    b  SymBoolConst

  4. SAT • First NP-complete problem (Cook 1972) • Davis-Putnam algorithm (1960) • resolution-based • may use exponential memory • Davis-Logemann-Loveland algorithm (1962) • search-based • basis for all successful modern solvers • Conflict-driven learning and non-chronological backtracking (1996) • resolution strikes back! • Amazing progress • GRASP, SATO, Chaff, ZChaff, BerkMin, …

  5. Conjunctive Normal Form •  CNF Formula ::= c1  c2  … cm • c  Clause ::= l1  l2  … ln • l  Literal ::= b | b • b  SymBoolConst • Unit clause ( l ) • a clause containing a single literal • Empty clause ( ) • a clause containing no literal • equivalent to false

  6. Conversion into CNF • In general, converting  into an equivalent CNF formula may result in an exponential blow-up • We are only interested in satisfiability of  • Convert into an equi-satisfiable CNF formula EQCNF() •  is satisfiable iff EQCNF() is satisfiable • size of EQCNF() is polynomial in size of 

  7. Conversion into CNF • Convert formula  into normal form NF() • NF() is polynomial in  • Convert  = NF() into equisatisfiable CNF formula EQCNF() • EQCNF() is polynomial in 

  8. Normal Form Normal form: NF()   Negated normal form: NNF()   NF(b) = b NNF(b) = b NF() = NNF() NNF() = NF() NF(1  2) = NF(1)  NF(1) NNF(1  2) = NNF(1)  NNF(2)

  9. Equi-satisfiable CNF Let  be a formula in normal form. For each subformula  of : - create a fresh symbol v in SymBoolConst Identify vb with b and vb with b Cl(b) = Cl(b) = true Cl() = Cl()  Cl()  (v v v)  (v  v)  (v  v) Cl() = Cl()  Cl()  (v  v v)  (v  v)  (v  v) EQCNF() = v  Cl()

  10. Resolution c1, c2 independent of b clauses (c1 b) (c2  b) (c1  c2) resolvent resolvent(b, c1 b, c2  b) = c1 c2 = b. (c1 b)  (c2  b)

  11. Theorem   (c1 b)  (c2  b) iff   (c1 b)  (c2  b)  (c1 c2) Adding the resolvent to the set of clauses does not affect the satisfiability of the clause set.

  12. Unit resolution One of the clauses being resolved is a unit clause ( b ) (c2  b) ( c2 ) ( b ) (c2  b) ( c2 ) Derivation of the empty clause (denoted by ) ( b ) ( b ) 

  13. Davis-Putnam algorithm (I) Given clause set C: Rule 1: If a clause (c  l  l) C, replace it with (c  l) Rule 2: If a clause (c  b  b) C, remove it from C Rule 3a: If b does not occur in any clause in C, remove every clause containing b from C Rule 3b: If b does not occur in any clause in C, remove every clause containing b from C

  14. Davis-Putnam algorithm (II) Saturate C w.r.t Rules 1, 2, 3a, and 3b while (C is nonempty) { Pick a variable b appearing in some clause in C C’ = { resolvent(b,c1,c2) | c1,c2 C } Saturate C’ w.r.t. Rules 1, 2, 3a, and 3b if (  C’) return unsatisfiable C = C’ } return satisfiable

  15. Rule 3a (b  c  f) (b  c) Resolve on b (c  c  f) Rule 2 Clause set is empty Satisfiable example (a  b  c) (b  c  f) (b  c)

  16. Unsatisfiable example (a  b) (a b) (a  c) (a  c) Pick b ( a ) (a  c) (a  c) Pick a ( c ) ( c ) Pick c 

  17. Correctness Saturate C w.r.t Rules 1, 2, 3a, and 3b while (C is nonempty) { Pick a variable b appearing in some clause in C C’ = { resolvent(b,c1,c2) | c1,c2 C } Saturate C’ w.r.t. Rules 1, 2, 3a, and 3b if (  C’) return unsatisfiable C = C’ } return satisfiable Two observations: - Each of the rules 1, 2, 3a, and 3b preserve satisfiability - C’ = b. C

  18. Memory explosion Saturate C w.r.t Rules 1, 2, 3a, and 3b while (C is nonempty) { Pick a variable b appearing in some clause in C C’ = { resolvent(b,c1,c2) | c1,c2 C } Saturate C’ w.r.t. Rules 1, 2, 3a, and 3b if (  C’) return unsatisfiable C = C’ } return satisfiable Let n be the number of clauses in the input clause set Number of clauses after i-th iteration of loop: O(n^(2^i))

  19. Davis-Logemann-Loveland algorithm Slides 42-72 of sat_course1.pdf Download from: http://research.microsoft.com/users/lintaoz/SATSolving/satsolving.htm

  20. Davis-Logemann-Loveland algorithm • Eliminates exponential memory requirement • Might still need exponential time

  21. Conflict-driven learning and non-chronological backtracking Slides 2-20 of sat_course2.pdf Download from: http://research.microsoft.com/users/lintaoz/SATSolving/satsolving.htm

More Related