Automated Theorem Proving

1 / 21

# Automated Theorem Proving - PowerPoint PPT Presentation

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

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Automated Theorem Proving' - Anita

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Automated Theorem Proving

Lecture 2

Propositional Satisfiability

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
Case I: Boolean programs
• Boolean-valued variables and boolean operations
•  Formula := b |  |   

b  SymBoolConst

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, …
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
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 
Conversion into CNF
• Convert formula  into normal form NF()
• NF() is polynomial in 
• Convert  = NF() into equisatisfiable CNF formula EQCNF()
• EQCNF() is polynomial in 
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)

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()

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)

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.

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 )

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

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

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)

Unsatisfiable example

(a  b) (a b) (a  c) (a  c)

Pick b

( a ) (a  c) (a  c)

Pick a

( c ) ( c )

Pick c

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

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))

Davis-Logemann-Loveland algorithm

Slides 42-72 of sat_course1.pdf