Resolution ([Link]
v=C_iqWGOhvak)
Resolution is a theorem proving technique that proceeds by building
refutation proofs, i.e., proofs by contradictions. It was invented by a
Mathematician John Alan Robinson in the year 1965.
Resolution is used, if there are various statements are given, and we need
to prove a conclusion of those statements. Unification is a key concept in
proofs by resolutions. Resolution is a single inference rule which can
efficiently operate on the conjunctive normal form or clausal form.
Clause: Disjunction of literals (an atomic sentence) is called a clause. It
is also known as a unit clause.
Conjunctive Normal Form: A sentence represented as a conjunction of
clauses is said to be conjunctive normal form or CNF.
Steps for Resolution:
1. Conversion of facts into first-order logic.
2. Convert FOL statements into CNF (Conjunctive Normal Form)
Eliminate all implication (→) and rewrite
Move negation (¬)inwards and rewrite
Rename variables or standardize variables
Eliminate existential instantiation quantifier by elimination.
Drop Universal quantifiers
3. Negate the statement which needs to prove (proof by contradiction)
4. Draw resolution graph (unification).
Example:
a) John likes all kind of food.
b) Apple and vegetable are food
c) Anything anyone eats and not killed is food.
d) Anil eats peanuts and still alive
e) Harry eats everything that Anil eats.
Prove by resolution that:
John likes peanuts.
Step-1: Conversion of Facts into FOL
In the first step we will convert all the given statements into its first order
logic.
Step-2: Conversion of FOL into CNF
o Eliminate all implication (→) and rewrite
a. ∀x ¬ food(x) V likes(John, x)
b. food(Apple) Λ food(vegetables)
c. ∀x ∀y ¬ [eats(x, y) Λ ¬ killed(x)] V food(y)
d. eats (Anil, Peanuts) Λ alive(Anil)
e. ∀x ¬ eats(Anil, x) V eats(Harry, x)
f. ∀x¬ [¬ killed(x) ] V alive(x)
g. ∀x ¬ alive(x) V ¬ killed(x)
h. likes(John, Peanuts).
o Move negation (¬)inwards and rewrite
a. ∀x ¬ food(x) V likes(John, x)
b. food(Apple) Λ food(vegetables)
c. ∀x ∀y ¬ eats(x, y) V killed(x) V food(y)
d. eats (Anil, Peanuts) Λ alive(Anil)
e. ∀x ¬ eats(Anil, x) V eats(Harry, x)
f. ∀x killed(x) ] V alive(x)
g. ∀x ¬ alive(x) V ¬ killed(x)
h. likes(John, Peanuts).
o Rename variables or standardize variables
a. ∀x ¬ food(x) V likes(John, x)
b. food(Apple) Λ food(vegetables)
c. ∀y ∀z ¬ eats(y, z) V killed(y) V food(z)
d. eats (Anil, Peanuts) Λ alive(Anil)
e. ∀w¬ eats(Anil, w) V eats(Harry, w)
f. ∀g killed(g) V alive(g)
g. ∀k ¬ alive(k) V ¬ killed(k)
h. likes(John, Peanuts).
o Eliminate existential instantiation quantifier by elimination.
In this example problem since there is no existential quantifier so
all the statements will remain same in this step.
o Drop Universal quantifiers.
In this step we will drop all universal quantifier since all the
statements are not implicitly quantified so we don't need it.
a. ¬ food(x) V likes(John, x)
b. food(Apple) Λ food(vegetables)
c. ¬ eats(y, z) V killed(y) V food(z)
d. eats (Anil, Peanuts)
e. alive(Anil)
f. ¬ eats(Anil, w) V eats(Harry, w)
g. killed(g) V alive(g)
h. ¬ alive(k) V ¬ killed(k)
i. likes(John, Peanuts).
Step-3: Negate the statement to be proved
In this statement, we will apply negation to the conclusion statements,
which will be written as
¬likes(John, Peanuts)
Step-4: Draw Resolution graph:
Now in this step, we will solve the problem by resolution tree using
substitution. For the above problem, it will be given as follows:
Hence the negation of the conclusion has been proved as a complete
contradiction with the given set of statements.
Explanation of Resolution graph:
o In the first step of resolution graph, ¬likes(John, Peanuts) ,
and likes(John, x) get resolved(canceled) by substitution
of {Peanuts/x}, and we are left with ¬ food(Peanuts)
o In the second step of the resolution graph, ¬ food(Peanuts) ,
and food(z) get resolved (canceled) by substitution of {
Peanuts/z}, and we are left with ¬ eats(y, Peanuts) V killed(y) .
o In the third step of the resolution graph, ¬ eats(y,
Peanuts) and eats (Anil, Peanuts) get resolved by
substitution {Anil/y}, and we are left with Killed(Anil) .
o In the fourth step of the resolution graph, Killed(Anil) and ¬
killed(k) get resolve by substitution {Anil/k}, and we are left
with ¬ alive(Anil) .
o In the last step of the resolution graph ¬
alive(Anil) and alive(Anil) get resolved.
Example 2:
[Link] facts in FOL
2. convert FOL in to CNF
2.a Eliminate all implications and rewrite
[Link] negation (¬)inwards and rewrite
[Link] variables or standardize variables ( not applicable)
[Link] existential instantiation quantifier by elimination. ( not
applicable)
2e. Drop Universal quantifiers. ( not applicable)
Step-3: Negate the statement to be proved
Step-4: Draw Resolution graph: