Unit-3_Resolution Theorem Proving Example
Unit-3_Resolution Theorem Proving Example
----------------------------------------------------------------------------------------
Resolution theorem proving
Resolution is a technique for proving theorems in the propositional or
predicate calculus that has been a part of AI problem-solving research
from the mid-1960s.
Resolution is the way of finding contradictions in a database of
clauses with minimum use of substitution. Resolution refutation proves a
theorem by negating the statement to be proved and adding this negated
goal to the set of axioms that are known (have been assumed) to be true.
It then uses the resolution rule of inference to show that this leads to a
contradiction. Once the theorem prover shows that the negated goal is
inconsistent with the given set of axioms, it follows that the original goal
must be consistent. This proves the theorem.
Resolution refutation proofs involve the following steps:
1. Put the premises or axioms into clause form.
2. Add the negation of what is to be proved, in clause form, to the set
of axioms.
3. Resolve these clauses together, producing new clauses that logically
follow from them.
4. Produce a contradiction by generating the empty clause.
5. The substitutions used to produce the empty clause are those under
which the opposite of the negated goal (what was originally to be
proven) is true.
Resolution refutation proofs require that the axioms and the negation of
the goal be placed in a normal form called clause form. Clause form
represents the logical database as a set of disjunctions of literals. A literal
is an atomic expression or the negation of an atomic expression.
The most common form of resolution, called binary resolution, is
applied to two clauses when one contains a literal and the other its
negation. If these literals contain variables, the literals must be unified to
make them equivalent. A new clause is then produced consisting of the
disjuncts of all the predicates in the two clauses minus the literal and its
negative instance, which are said to have been “resolved away.” The
resulting clause receives the unification substitution under which the
predicate and its negation are found as “equivalent”.
1
Chapter four: Resolution prepared by: Ismael Abdul Sattar 2
----------------------------------------------------------------------------------------
clauses that make up the database are assumed to be true at the same
time. It is a disjunction in that each of the individual clauses is expressed
with disjunction (or ∨ ) as the connective.
We now present an algorithm, consisting of a sequence of
transformations, for reducing any set of predicate calculus statements to
clause form.
We demonstrate this process of conjunctive normal form reduction
through an example and give a brief description rationalizing each step.
These are not intended to be proofs of the equivalence of these
transformations across all predicate calculus expressions.
In the following expression, uppercase letters indicate variables (W, X,
Y, and Z); lowercase letters in the middle of the alphabet indicate
constants or bound variables (l, m, and n); and early alphabetic
lowercase letters indicate the predicate names (a, b, c, d, and e). To
improve readability of the expressions, we use two types of brackets: ( )
and [ ], and remove redundant brackets. As an example, consider the
following expression, where X, Y, and Z are variables and l a constant:
2
Chapter four: Resolution prepared by: Ismael Abdul Sattar 3
----------------------------------------------------------------------------------------
4. Move all quantifiers to the left without changing their order. This is
possible because step 3 has removed the possibility of any conflict
between variable names. (iv) now becomes:
After step 4 the clause is said to be in prenex normal form, because all
the quantifiers are in front as a prefix and the expression or matrix
follows after.
5. At this point all existential quantifiers are eliminated by a process
called skolemization. Expression (v) has an existential quantifier for Y.
When an expression contains an existentially quantified variable, for
example, (ƎZ)(foo(…, Z,…)), it may be concluded that there is an
assignment to Z under which foo is true. Skolemization identifies such a
value. Skolemization does not necessarily show how to produce such a
value; it is only a method for giving a name to an assignment that must
exist. If k represents that assignment, then we have foo(…,k,…). Thus:
This expression indicates that every person has a mother. Every person is
an X and the existing mother will be a function of the particular person X
that is picked. Thus skolemization gives:
which indicates that each X has a mother (the m of that X). In another
example:
is skolemized to:
3
Chapter four: Resolution prepared by: Ismael Abdul Sattar 4
----------------------------------------------------------------------------------------
The existentially quantified Y and Z are within the scope universally
quantified X but not within the scope of W. Thus each will be replaced by
a skolem function of X. Replacing Y with the skolem function f(X) and Z
with g(X), (v) becomes:
8. Now call each conjunct a separate clause. In the example (viii) above
there are two clauses:
9. The final step is to standardize the variables apart again. This requires
giving the variable in each clause generated by step 8 different names.
4
Chapter four: Resolution prepared by: Ismael Abdul Sattar 5
----------------------------------------------------------------------------------------
which follows from the nature of variable names as place holders. (ixa)
and (ixb) now become, using new variable names U and V:
Example: We wish to prove that “Fido will die” from the statements that
“Fido is a dog” and “all dogs are animals” and “all animals will die.”
Changing these three premises to predicates gives:
Fido is a dog: dog (fido).
All dogs are animals: ∀ (X) (dog (X) → animal (X)).
All animals will die: ∀ (Y) (animal (Y) → die (Y)).
converts these predicates to clause form:
PREDICATE FORM CLAUSE FORM
dog (fido) dog (fido)
∀ (X) (dog) (X) → animal (X)) ¬dog (X) ∨ animal (X)
∀ (Y) (animal (Y) → die (Y)) ¬animal (Y) ∨ die (Y)
5
Chapter four: Resolution prepared by: Ismael Abdul Sattar 6
----------------------------------------------------------------------------------------
6
Chapter four: Resolution prepared by: Ismael Abdul Sattar 7
----------------------------------------------------------------------------------------
7
Chapter four: Resolution prepared by: Ismael Abdul Sattar 8
----------------------------------------------------------------------------------------
The resolution refutation for this example is found below Figure (3)
8
Chapter four: Resolution prepared by: Ismael Abdul Sattar 9
----------------------------------------------------------------------------------------