Download presentation

1
**Automated Theorem Proving**

Lecture 2 Propositional Satisfiability

2
**Decision procedures Boolean programs Arithmetic 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 vb 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 b) (c2 b) (c1 c2) 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
** (c1 b) (c2 b) (c1 c2)**

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
**Satisfiable example (a b c) (b c f) (b c) Rule 3a**

(c c f) Resolve on b Rule 2 Clause set is empty

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 of sat_course1.pdf Download from:

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:

Similar presentations

OK

Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.

Nikolaj Bjørner Microsoft Research DTU Winter course January 2 nd 2012 Organized by Flemming Nielson & Hanne Riis Nielson.

© 2018 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google