Title: Automated Theorem Proving
1Automated Theorem Proving
- Lecture 2
- Propositional Satisfiability
2Decision procedures
- Boolean programs
- Propositional satisfiability
- Arithmetic programs
- Propositional satisfiability modulo theory of
linear arithmetic - Memory programs
- Propositional satisfiability modulo theory of
linear arithmetic arrays
3Case I Boolean programs
- Boolean-valued variables and boolean operations
- ? Formula b ?? ? ? ?
- b ? SymBoolConst
4SAT
- 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,
5Conjunctive 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
6Conversion 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 ?
7Conversion into CNF
- Convert formula ? into normal form NF(?)
- NF(?) is polynomial in ?
- Convert ? NF(?) into equisatisfiable CNF
formula EQCNF(?) - EQCNF(?) is polynomial in ?
8Normal 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)
9Equi-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(?)
10Resolution
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)
11Theorem
? ? (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.
12Unit 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 ) ?
13Davis-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
14Davis-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
15Satisfiable example
(a ? b ? c) (b ? ?c ? ?f) (?b ? c)
16Unsatisfiable example
(a ? b) (a ? ?b) (?a ? c) (?a ? ?c)
Pick b
( a ) (?a ? c) (?a ? ?c)
Pick a
( c ) ( ?c )
Pick c
?
17Correctness
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
18Memory 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(2i))
19Davis-Logemann-Loveland algorithm
Slides 42-72 of sat_course1.pdf Download from
http//research.microsoft.com/users/lintaoz/SATSol
ving/satsolving.htm
20Davis-Logemann-Loveland algorithm
- Eliminates exponential memory requirement
- Might still need exponential time
21Conflict-driven learning and non-chronological
backtracking
Slides 2-20 of sat_course2.pdf Download from
http//research.microsoft.com/users/lintaoz/SATSol
ving/satsolving.htm