1. CS1502 Formal Methods in
Computer Science
Lecture Notes 10
Resolution
and Horn Sentences
2. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to
sets of clauses
At each step, a new clause is derived from two
clauses you already have
Proof steps all use the same rule
If reach (_|_), sentences were not satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
3. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to
sets of clauses
At each step, a new clause is derived from two
clauses you already have
Proof steps all use the same rule
If reach (_|_), sentences were not satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
4. Conversion to Clausal Form
Use P Q equiv ~P v Q to remove
Use P Q equiv ((~P v Q) ^ (~Q v P)) to remove
New 1st Step! We hadn’t done conditionals yet
Use DeMorgan’s laws and ~Elim to move ~ as far inward
as possible (gives NNF)
Use the distributive laws until the sentence is in CNF
5. Clausal Form
Given a sentence S written in CNF
S = ( ) ∧( ) ∧ . . . ∧ ( )
Convert each ( ) into a clause - a set
consisting of each of the literals in ( ).
Example: S= (A) ∧ (¬B ∨ C ∨ D) ∧ (¬A∨ D)
Clauses are: {A}, {¬ B, C, D}, {¬ A, D}
6. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to sets of
clauses
At each step, a new clause is derived from two clauses
you already have
Proof steps all use the same rule
If reach (_|_), sentences were not
satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
7. Satisfying a Set of Clauses
Assigning truth-values to the atomic
sentences so the CNF sentence the set
corresponds to is true.
{{A, ¬C, D}, {C},{¬A},{A, D}} is satisfied by
A = False
C = True
D = True
8. Empty Clause
{} denoted by .
The empty clause is not satisfiable
We want {{A}, {¬ A}} to lead to {} ()
The basic resolution step involves “canceling”
pos and neg matching literals from two clauses
So, we derive {} () from {{A}, {¬ A}}
10. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to
sets of clauses
At each step, a new clause is derived from two
clauses you already have
Proof steps all use the same rule
If reach (_|_), sentences were not satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
13. Resolvent
Clause R is a resolvent of clauses C 1 and
C2 if there is a literal in C1 whose negation
is in C2 and R consists of all the remaining
literals in either clause.
Example: {A, C , ¬D} and {B, ¬C} have
resolvent {A, B, ¬D}
14. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to
sets of clauses
At each step, a new clause is derived from two
clauses you already have
Proof steps all use the same rule
If reach (_|_), sentences were not
satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
15. Resolution Theorem
For any set of clauses that are not
satisfiable, it is possible to arrive at the
empty clause by using successive
resolutions.
16. Resolution Theorem Proving
Method for searching for proofs automatically
Sentences are translated into CNF, and then to sets of
clauses
At each step, a new clause is derived from two clauses
you already have
Proof steps all use the same rule
If reach (_|_), sentences were not satisfiable
Start: premises + negation of goal
End: if reach , premises |= goal
17. Using Resolution to Determine Validity of
Arguments
Q is a logical consequence of P1, P2, …,
Pn iff P1 ^ P2 ^ … ^ Pn ^ ~Q is not
satisfiable
For sentences in clausal form:
Q is a logical consequence of a set of
clauses S iff S ∪ {¬Q} is not satisfiable.
So, convert premises + negation of goal to
clausal form, and do resolution steps, trying to
reach {} ()
19. Example
Show ¬A ∧ (B ∨ C) ∧ (¬C ∨ ¬D) ∧ (A ∨ D) ∧ (¬B ∨ ¬D) is
not satisfiable.
Clauses: {¬ A}, {B, C}, {¬C, ¬D}, {A, D}, {¬B, ¬D}.
{¬A} {A,D} {B,C} {¬C, ¬D}
{D} { B, ¬D} {¬B, ¬D}
{ ¬D}
20. Example
Modus Pones
P→Q ¬P∨Q or {¬P,Q}
P {P}
Q negate to get {¬Q}
Apply resolution: {¬P,Q} { P}
{ Q} { ¬Q}
21. What is a Horn sentence?
A positive literal is any literal that is not
preceded with a ¬. For example, Cube(b)
and P are positive literals.
A sentence S is a Horn sentence if and
only if it is in CNF and every conjunct has
at most one positive literal.
22. Examples
(A ∨ ¬B ∨ ¬C) ∧ (¬A ∨ ¬B) Horn sentence
(A ∨ ¬B ∨ C) ∧ (D) Not Horn sentence
(A ∧ B) ∨ (¬C ∧ ¬D) Horn sentence
(A ∨ ¬C) ∧ (B ∨ ¬C) ∧ (A ∨ ¬D) ∧ (B ∨ ¬D)
23. Alternate Form of Horn
Conjunct
¬A1∨ ¬A2∨...∨ ¬An∨ B
¬(A1 ∧ A2 ∧... ∧ An) ∨ B
(A1 ∧ A2 ∧... ∧ An) → B B :- A1, A2, …, An.
Conditional Form
In Prolog:
of
HornRule
sentence
B if A1, A2, …, An
24. Special Cases
No positive literal
¬A1∨ ¬A2∨...∨ ¬An In Prolog, this
is a query!
(A1 ∧ A2 ∧... ∧ An) → False
No negative literals
B
In Prolog, this
True → B
is a fact!
25. Why are Horn sentences
important?
Very efficient algorithms exist for determining if a
set of Horn sentences is satisfiable
26. CNF to PROLOG
¬A ∨ B ∨ ¬C is ¬(A∧C) ∨ B is (A ∧ C)→B
B :- A, C.
A.
C.
Query: :- B.
Answer: Yes.
27. Example Prolog Program
grandfather(X,Y) :-
father(X,Z),
father(Z,Y).
grandfather(X,Y) :-
father(X,Z),
mother(Z,Y).
mother(ann,bill).
father(carl,ed).
father(nick,ann).
father(ed,sam).