7_1-The-Resolution-Refutation-Method _Examples
7_1-The-Resolution-Refutation-Method _Examples
Examples
The Resolution
• Example:
• We can resolve two clauses which are given below:
• Example:
John likes all kind of food.
Apple and vegetable are food
Anything anyone eats and not killed is food.
Anil eats peanuts and still alive
Harry eats everything that Anil eats.
Prove by resolution that:
John likes peanuts.
Example
17
Converting to CNF
18
Converting sentences to CNF
1. Eliminate all connectives
(P Q) ⇒ ((P → Q) ^ (Q → P))
2. Eliminate all → connectives
(P → Q) ⇒ (¬P ∨ Q)
3. Reduce the scope of each negation symbol to a single predicate
¬¬P ⇒ P
¬(P ∨ Q) ⇒ ¬P ∧ ¬Q
¬(P ∧ Q) ⇒ ¬P ∨ ¬Q
¬(∀x)P ⇒ (∃x)¬P
¬(∃x)P ⇒ (∀x)¬P
4. Standardize variables: rename all variables so that each quantifier
has its own unique variable name
19
Converting sentences to clausal form: Skolem
constants and functions
5. Eliminate existential quantification by introducing Skolem
constants/functions
(∃x)P(x) ⇒ P(c)
c is a Skolem constant (a brand-new constant symbol that is not used
in any other sentence)
(∀x)(∃y)P(x,y) becomes (∀x)P(x, F(x))
since ∃ is within the scope of a universally quantified variable, use a
Skolem function F to construct a new value that depends on the
universally quantified variable
f must be a brand-new function name not occurring in any other sentence
in the KB.
E.g., (∀x)(∃y)loves(x,y) becomes (∀x)loves(x,F(x))
In this case, F(x) specifies the person that x loves
E.g., ∀x1 ∀x2 ∀x3 ∃y P(… y …) becomes
∀x1 ∀x2 ∀x3 P(… FF(x1,x2,x3) …) (FF is a new name)
20
Converting sentences to clausal form
6. Remove universal quantifiers by (1) moving them all to the
left end; (2) making the scope of each the entire sentence;
and (3) dropping the “prefix” part
Ex: (∀x)P(x) ⇒ P(x)
7. Put into conjunctive normal form (conjunction of
disjunctions) using distributive and associative laws
(P ∧ Q) ∨ R ⇒ (P ∨ R) ∧ (Q ∨ R)
(P ∨ Q) ∨ R ⇒ (P ∨ Q ∨ R)
8. Split conjuncts into separate clauses
9. Standardize variables so each clause contains only variable
names that do not occur in any other clause
21
An example
(∀x)(P(x) → ((∀y)(P(y) → P(F(x,y))) ∧ ¬(∀y)(Q(x,y) → P(y))))
2. Eliminate →
(∀x)(¬P(x) ∨ ((∀y)(¬P(y) ∨ P(F(x,y))) ∧ ¬(∀y)(¬Q(x,y) ∨ P(y))))
3. Reduce scope of negation
(∀x)(¬P(x) ∨ ((∀y)(¬P(y) ∨ P(F(x,y))) ∧(∃y)(Q(x,y) ∧ ¬P(y))))
4. Standardize variables
(∀x)(¬P(x) ∨ ((∀y)(¬P(y) ∨ P(F(x,y))) ∧(∃z)(Q(x,z) ∧ ¬P(z))))
5. Eliminate existential quantification
(∀x)(¬P(x) ∨((∀y)(¬P(y) ∨ P(F(x,y))) ∧(Q(x,G(x)) ∧ ¬P(G(x)))))
6. Drop universal quantification symbols
(¬P(x) ∨ ((¬P(y) ∨ P(F(x,y))) ∧(Q(x,G(x)) ∧ ¬P(G(x)))))
22
An Example
7. Convert to conjunction of disjunctions
(¬P(x) ∨ ¬P(y) ∨ P(F(x,y))) ∧ (¬P(x) ∨ Q(x,G(x))) ∧
(¬P(x) ∨ ¬P(G(x)))
8. Create separate clauses
¬P(x) ∨ ¬P(y) ∨ P(F(x,y))
¬P(x) ∨ Q(x,G(x))
¬P(x) ∨ ¬P(G(x))
9. Standardize variables
¬P(x) ∨ ¬P(y) ∨ P(F(x,y))
¬P(z) ∨ Q(z,G(z))
¬P(w) ∨ ¬P(G(w))
23
1. all X (read (X) --> literate (X))
2. all X (dolphin (X) --> ~literate (X))
3. exists X (dolphin (X) ^ intelligent (X))
(a translation of ``Some dolphins are intelligent'')
Negation of 4:
~(exists Z (intelligent(Z) ^ ~read (Z)))
In Clausal form:
~intelligent(Z) v read(Z)
Resolution proof: in lecture. 24
More complicated example
Did Curiosity kill the cat
• Jack owns a dog. Every dog owner is an animal lover. No
animal lover kills an animal. Either Jack or Curiosity killed the
cat, who is named Tuna. Did Curiosity kill the cat?
• These can be represented as follows:
A. (∃x) (Dog(x) ∧ Owns(Jack,x))
B. (∀x) (((∃y) (Dog(y) ∧ Owns(x, y))) → AnimalLover(x))
C. (∀x) (AnimalLover(x) → ((∀y) Animal(y) → ¬Kills(x,y)))
D. Kills(Jack,Tuna) ∨ Kills(Curiosity,Tuna)
E. Cat(Tuna)
F. (∀x) (Cat(x) → Animal(x) )
G. Kills(Curiosity, Tuna) GOAL
25
• Convert to clause form
A1. (Dog(D)) D is a skolem constant
A2. (Owns(Jack,D))
B. (¬Dog(y), ¬Owns(x, y), AnimalLover(x))
C. (¬AnimalLover(a), ¬Animal(b), ¬Kills(a,b))
D. (Kills(Jack,Tuna), Kills(Curiosity,Tuna))
E. Cat(Tuna)
F. (¬Cat(z), Animal(z))
• Add the negation of query:
¬G: (¬Kills(Curiosity, Tuna))
26
• The resolution refutation proof
R1: ¬G, D, {} (Kills(Jack, Tuna))
R2: R1, C, {a/Jack, b/Tuna} (~AnimalLover(Jack),
~Animal(Tuna))
R3: R2, B, {x/Jack} (~Dog(y), ~Owns(Jack, y),
~Animal(Tuna))
R4: R3, A1, {y/D} (~Owns(Jack, D),
~Animal(Tuna))
R5: R4, A2, {} (~Animal(Tuna))
R6: R5, F, {z/Tuna} (~Cat(Tuna))
R7: R6, E, {} FALSE
27
• The proof tree
¬G D
{}
R1: K(J,T) C
{a/J,b/T}
R2: ¬AL(J) ∨ ¬A(T) B
{x/J}
R3: ¬D(y) ∨ ¬O(J,y) ∨ ¬A(T) A1
{y/D}
R4: ¬O(J,D), ¬A(T) A2
{}
R5: ¬A(T) F
{z/T}
R6: ¬C(T) A
{}
R7: FALSE 28
Decidability and Completeness
29
Decidability and Completeness
30
Decidability and Completeness
• Propositional logic
– logical entailment is decidable
– There exists a complete inference procedure
• First-Order logic
– logical entailment is semi-decidable
– Resolution procedure is refutation complete