automated theorem proving n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Automated Theorem Proving PowerPoint Presentation
Download Presentation
Automated Theorem Proving

Loading in 2 Seconds...

play fullscreen
1 / 21

Automated Theorem Proving - PowerPoint PPT Presentation


  • 166 Views
  • Uploaded on

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

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

PowerPoint Slideshow about 'Automated Theorem Proving' - Anita


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

Automated Theorem Proving

Lecture 2

Propositional Satisfiability

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

b  SymBoolConst

slide4
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
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
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 cnf1
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

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

satisfiable example

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
Unsatisfiable example

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

Pick b

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

Pick a

( c ) ( c )

Pick c

correctness
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
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
Davis-Logemann-Loveland algorithm

Slides 42-72 of sat_course1.pdf

Download from:

http://research.microsoft.com/users/lintaoz/SATSolving/satsolving.htm

davis logemann loveland algorithm1
Davis-Logemann-Loveland algorithm
  • Eliminates exponential memory requirement
  • Might still need exponential time
conflict driven learning and non chronological backtracking
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