Resolution Davis Putnam
Resolution Davis Putnam
1 1 1 1 1 1
1 0 0 1 0 1
0 1 0 0 1 1
0 0 0 0 0 0
Conjunctive Normal Form
(or: Product of Sums: POS)
• Conjunctive Normal Form: A generalized
conjunction of generalized disjunctions of literals.
• Using repeated distribution of ∨ over ∧, any
statement in Negation Normal Form can be
written in Conjunctive Normal Form.
• Example:
(A∧B) ∨ (C∧D) ⇔ (Distribution)
[(A∧B) ∨ C] ∧ [(A∧B) ∨ D] ⇔ (Distribution (2x))
(A∨C) ∧ (B∨C) ∧ (A∨D) ∧ (B∨D)
Special Cases
• Any literal (such as A or ¬B) is in NNF, DNF (it
is a disjunction whose only disjunct is a
conjunction whose only conjunct is that literal),
and CNF
• A conjunction of literals (e.g. ¬A ∧ ¬B ∧ C) is in
NNF, DNF (a disjunction whose only disjunct is
that conjunction), and CNF
• A disjunction of literals is in NNF, DNF, and CNF
Summing Up
• Any traditional propositional logic expression can
be transformed into a Boolean Logic expression
• Any Boolean logic expression can be put into
NNF
• Any NNF expression can be put into CNF
• Any NNF expression can be put into CNF
• So, any traditional propositional logic expression
can be put into NNF, CNF, and DNF
Expressing any truth-function
using ‘and’, ‘or’, and ‘not’
• Even better: no matter what additional truth-
functional operators you define (e.g. XOR, ID, “If
…Then … Else”, etc.), you can always re-express
them in terms of the Boolean connectives ∧, ∨,
and ¬!
• Indeed, any truth-function, no matter how
complex, or defined over how many atomic
statements, can be expressed in terms of the
Boolean connectives ∧, ∨, and ¬!
• ‘Proof’: generalize from example on next slide.
Expressive Completeness
Step 1: Step 2:
P Q P*Q Create term for Disjunct all terms
T T F every ‘T’:
T T F ⇒ ¬P ∨ ¬Q Step 2:
T F T Conjunct terms
F T T ⇒ (¬P ∨ ¬ Q) ∧ (P ∨ Q) (CNF!)
F F F ⇒P∨Q
Resolution
Resolution
• Resolution is, like the tree method, a method to check for
the logical consistency of a set of statements.
• Resolution requires all sentences to be put into CNF.
• A set of sentences in CNF is made into a clause set S: a set
of clauses, where a clause C is a set of literals.
– Each clause C represents a disjunction of literals
– The clause set S represents a conjunction of disjunctions of literals
Resolution Rule
• Clauses are resolved using the resolution
rule, and the resulting clause (the resolvent)
is added to the clause set:
L ∈ C1
L’ ∈ C2
{P} {¬P}
{}
Satisfiability
• A clause is satisfied by a truth-value assignment if and
only if that assignment makes at least one literal in that
clause true.
• A clause set is satisfiable if and only if there is a truth-
value assignment that satisfies all clauses in that clause set.
• Figuring out whether some clause set is satisfiable is the
satisfiability problem. This problem is a central problem in
computer science, as many problems in computer science
can be reduced to a satisfiability problem.
• In our case: a set of sentences is consistent if and only if
the corresponding clause set is satisfiable.
Soundness and Completeness of
Resolution
• The rule of Resolution is sound, making the
method of resolution sound as well (so, if the
empty clause (which is a generalized disjunction
of 0 disjuncts, which is a contradiction) can be
resolved from a clause set, then that means that
that clause set is indeed unsatisfiable.
• It can be shown that resolution is complete, i.e.
that the empty clause can be resolved from any
unsatisfiable clause set.
Resolutions as Derivations
1. {A, B}
A ∨ (B ∧ C) ⇒ (A ∨ B) ∧ (A ∨ C) ⇒
2. {A, C}
3. {¬A, D, E}
(A ∨ B) → (D ∨ E) (¬A ∨ D ∨ E) ∧ (¬B ∨ D ∨ E) ⇒
⇓ ⇑ 4. {¬B, D, E}
¬(A ∨ B) ∨ (D ∨ E) ⇒ (¬A ∧ ¬B) ∨ (D ∨ E) ¬E ⇒ 5. {¬E}
¬A ⇒ 6. {¬A}
¬(C ∧ D) ⇒ ¬C ∨ ¬D ⇒ 7. {¬C, ¬D}
8. {B} 1,6
17.42 from LPL:
9. {C} 2,6
A ∨ (B ∧ C)
¬E 10. {D, E} 4,8
(A ∨ B) → (D ∨ E) 11. {D} 5,10
¬A 12. {¬D} 7,9
∴C∧D
13. {} 11,12
Resolutions as Decision
Procedures
• Resolution can be made into a decision
procedure by systematically exhausting all
possible resolvents (of which there are
finitely many).
• This will not be very efficient unless we add
some resolution strategies.
Resolution Strategies
• Clause Elimination Strategies
– Tautology Elimination
– Subsumption Elimination
– Pure Literal Elimination
• Resolving Strategies
– Unit Preference Resolution
– Linear Resolution
– Ordered Resolution
– Etc.
Tautology Elimination
• A tautologous clause is a clause that contains an
atomic statement as well as the negation of that
atomic statement. E.g. {A, B, ¬A} is tautologous.
• Obviously, for any tautologous clause C, any
truth-value assignment is going to satisfy C.
• Hence, with S any clause set, and with S’ the
clause set S with all tautologous clauses removed:
S is satisfiable if and only if S’ is satisfiable.
Subsumption Elimination
• A clause C1 subsumes a clause C2 if and only if
every literal contained in C1 is contained in C2, i.e.
C1 ⊆ C2. E.g. {A, B} subsumes {A, B, ¬C}
• Obviously, if C1 subsumes C2 , then any truth-
value assignment that satisfies C1 will satisfy C2.
• Hence, with S any clause set, and S’ the clause set
S with all subsumed clauses removed: S is
satisfiable if and only if S’ is satisfiable.
Pure Literal Elimination
• A literal L is pure with regard to a clause set S if
and only if L is contained in at least one clause in
S, but L’ is not.
• A clause is pure with regard to a clause set S if
and only if it contains a pure literal.
• Obviously, with S any clause set, and with S’ the
clause set S with all pure clauses removed: S is
satisfiable if and only if S’ is satisfiable.
Unit Preference Resolution
• A unit clause is a clause that contains one
literal.
• Unit preference resolution tries to resolve
using unit clauses first.
Unit Literal Deletion and
Splitting
• For any clause set S, SL is the clause set that is
generated from S as follows:
– Remove all clauses from S that contain L.
– Remove all instances of L’ from all other clauses
• Obviously, with C = {L} ∈ S, S is satisfiable if
and only if SL is satisfiable.
• It is also easy to see that for any clause set S, and
any literal L: S is satisfiable if and only if SL is
satisfiable or SL’ is satisfiable.
• The last observation suggests a splitting strategy
that forms the basis of Davis-Putnam.
Davis-Putnam
Davis-Putnam
• Recursive routine Satisfiable(S) returns true iff S is
satisfiable:
boolean Satisfiable(S)
begin
if S = {} return true;
if S = {{}} return false;
select L ∈ lit(S);
return Satisfiable(SL) || Satisfiable(SL’);
end
Davis-Putnam as Trees
{P, Q}
{P, ¬Q}
{¬P, Q}
{¬P, ¬Q}
(P) (¬P)
{Q} {Q}
{¬Q} {¬Q}
(Q) (¬Q) (Q) (¬Q)
{} {} {} {}
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} Step 4: Put clause set
¬(A → Q) {¬N} at root of tree
Step 1. Negate {A}
Conclusion (A) {¬Q} (¬A) Step 5: Do DP!
{N, Q} {¬N}
{¬N} {}
{¬Q} {¬Q}
(N) (¬N) (N) (¬N)
{} {Q} {} {}
{¬Q} {¬Q} {¬Q} {¬Q}
(Q) (¬Q) (Q) (¬Q) (Q) (¬Q) (Q) (¬Q)
{} {} {} {} {} {} {} {}
× × × × × × × ×
Simple Example
Invalid Argument
A→B ¬A ∨ B {¬A , B}
¬A ¬A {¬A}
¬B ¬¬B B {B}
(A) (¬A)
{B} {B}
{} (B) (¬B)
× ○ {}
Reached empty clause set: ×
So set of statements in root are consistent
So original argument is invalid
Model is given by branches: A False and B True
Making Davis-Putnam Efficient:
Adding Bells and Whistles
• The routine on the previous slide is not very
efficient. However, we can easily make it more
efficient:
– return false as soon as {}∈S
– add the unit rule: if {L}∈S return Satisfiable(SL)
– strategically add clause deletion strategies (e.g.
subsumption, pure literal)
– strategically choose the literal on which to split
• As far as I have gathered from the ATP literature,
such efficient Davis-Putnam routines are credited
to do well in comparison to other ATP routines.
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} Step 4: Put clause set
¬(A → Q) {¬N} at root of tree
Step 1. Negate {A}
Conclusion (A) {¬Q} (¬A) Step 5: Do DP!
{N, Q} {¬N}
{¬N} {}
{¬Q} {¬Q}
(N) (¬N) ×
{} {Q} Same example as before,
{¬Q} {¬Q} but stopping early (i.e. as
× (Q) (¬Q)
soon as {} is one of clauses)
{} {}
× ×
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} Step 4: Put clause set
¬(A → Q) {¬N} at root of tree
Step 1. Negate {A}
Conclusion (A) {¬Q} Step 5: Do DP!
{N, Q}
{¬N}
{¬Q}
(¬N)
{Q} Same example as before,
{¬Q} but using unit rule
(Q)
{}
×
Davis-Putnam and Truth-Trees
• Observation: Davis-Putnam looks a bit like Truth-
Tree method. In fact, on the next slides, we’ll see:
– Like TT, ‘check marks’ can be used in representation of DP
– Like TT, whole statements can be used (i.e. no need for clauses)
• How does Davis-Putnam differ from Truth-Trees?
– Davis-Putnam is an ‘inside-out’ approach: it assigns a
truth-value to atomic statements and determines the
consequences of that assignment for the more complex
statements composed of those atomic statements.
– Truth-Trees is an ‘outside-in’ approach: it assigns truth-
values to complex statements and determines the
consequences of that assignment for the smaller
statements it is composed of.
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} √1 Step 4: Put clause set
¬(A → Q) {¬N} √3 at root of tree
Step 1. Negate {A} √2
Conclusion (A) {¬Q} √5 (¬A) Step 5: Do DP!
{N, Q} √4 {}
(N) (¬N)
×
{} {Q} √6
× (Q) (¬Q)
Same example as before,
{} {} but using check mark system
× ×
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} √1 Step 4: Put clause set
¬(A → Q) {¬N} √3 at root of tree
Step 1. Negate {A} √2
Conclusion (A) {¬Q} √5 Step 5: Do DP!
{N, Q} √4
(¬N)
{Q} √6
(Q)
Same example as before,
{} but using check mark system
× and unit rule
Step 2: Put into CNF Step 3: Make into clauses
A → (N ∨ Q) ¬A ∨ N ∨ Q {¬A, N, Q}
¬(N ∨ ¬A) ¬N ∧ A {¬N} {A}
A→Q A ∧ ¬Q {A} {¬Q}
{¬A, N, Q} √1 Step 4: Put clause set
¬(A → Q) {¬N} √3 at root of tree
Step 1. Negate {A} √2
Conclusion (A) {¬Q} √5 Step 5: Do DP!
{N, Q} √4
(¬N)
Same example as before,
{Q} √6 but using check mark system,
× unit rule, and TT rule that any
branch with atomic P and ¬P
can be closed
Can we do DP without CNF?
• Sure, simply consider a set of statements, and see
what happens to each of the statements when some
atomic claim is set to true or false, respectively.
• For example, when we set A to True:
– (A ∨ B) → (D ∨ E) becomes
– (True ∨ B) → (D ∨ E) becomes
– True → (D ∨ E) becomes
– D∨E
Rules for DP without CNF
¬ True True ∧ P True ∨ P True → P True ↔ P
⇒ False ⇒P ⇒ True ⇒P ⇒P
¬E B∧C
D∨E ¬E
False B → (D ∨ E)
¬(C ∧ D) ¬(C ∧ D)
E ¬E
×
B∧C B∧C
False B→D
¬(C ∧ D) ¬(C ∧ D)
× Etc.
17.42 from LPL:
A ∨ (B ∧ C) Using check marks:
¬E
(A ∨ B) → (D ∨ E) A ∨ (B ∧ C) √1
¬A ¬E √4
∴C∧D (A ∨ B) → (D ∨ E) √2
¬A √3
¬(C ∧ D) √8
A ¬A
D∨E B ∧ C √6
False B → (D ∨ E) √5
E ¬E
×
False B → D √7
× B ¬B
C √9 False
C D √10 ¬C ×
False D ¬D √11 ¬D False False
× × ×
Can DP and TT be combined?
• OK, Davis-Putnam now really starts to look like
the truth tree method…
• Can these two methods be combined into one
method?
• Sure!
• Project: Investigate efficiency of this method
Example: DP and TT Combo
¬A → B √4 17.43 from LPL:
C → (D ∨ E) √2 ¬A → B
D → ¬C √3 C → (D ∨ E)
A → ¬E D → ¬C
¬(C → B) √1 A → ¬E
C ∴C→B
¬B
D ∨ E √6
1. TT rule: decompose ¬(C → B)
¬D 2. Unit rule: reduce with regard to C
¬¬A √5 3. Unit rule: reduce with regard to C
A 4. Unit rule: reduce with regard to ¬B
E 5. TT rule: decompose ¬¬A
6. Unit rule: reduce with regard to ¬B
¬E 7. Close between E and ¬E
×7
Exercise
• Show the argument below to be valid using:
– 1. Resolution
– 2. Davis-Putnam (on clauses)
– 3. Davis-Putnam (on original statements)
– 4. Davis-Putnam and Truth-Tree combo
Q ∨ ¬S
(P ∧ Q) ↔ R
¬S → R
----
¬P → (Q ↔ S)
Projects
• Compare and contrast efficiency of different
methods
– How is efficiency effected by
• Using Clause elimination strategies
• Using Unit rule
• Not putting into CNF
• Etc.
– What about combinations of different methods?