Presentation is loading. Please wait.

Presentation is loading. Please wait.

Automated Theorem Proving Lecture 2 Propositional Satisfiability.

Similar presentations


Presentation on theme: "Automated Theorem Proving Lecture 2 Propositional Satisfiability."— 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 ::= c 1 c 2 … c m c Clause ::= l 1 l 2 … l n 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: NF( ) Negated normal form: NNF( ) Normal Form 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 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 ) Let be a formula in normal form. For each subformula of : - create a fresh symbol v in SymBoolConst Identify v b with b and v b with b EQCNF( ) = v Cl( )

10 Resolution (c 1 b) (c 2 b) (c 1 c 2 ) clauses resolvent resolvent(b, c 1 b, c 2 b) = c 1 c 2 = b. (c 1 b) (c 2 b) c 1, c 2 independent of b

11 (c 1 b) (c 2 b) iff (c 1 b) (c 2 b) (c 1 c 2 ) Theorem Adding the resolvent to the set of clauses does not affect the satisfiability of the clause set.

12 Unit resolution ( b ) (c 2 b) ( c 2 ) One of the clauses being resolved is a unit clause Derivation of the empty clause (denoted by ) ( b ) ( b ) (c 2 b) ( c 2 )

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,c 1,c 2 ) | c 1,c 2 C } Saturate C w.r.t. Rules 1, 2, 3a, and 3b if ( C) return unsatisfiable C = C } return satisfiable

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

16 (a b) (a b) ( a c) ( a c) ( a ) ( a c) ( a c) ( c ) Unsatisfiable example Pick b Pick a 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,c 1,c 2 ) | c 1,c 2 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,c 1,c 2 ) | c 1,c 2 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:


Download ppt "Automated Theorem Proving Lecture 2 Propositional Satisfiability."

Similar presentations


Ads by Google