** Resolution for Predicate Calculus**

The resolution step is still valid for predicate calculus, i.e.,
if clause *C*_{1} contains a literal *L* and clause *C*_{2} contains
*¬ L*, then the resolvent of *C*_{1} and *C*_{2} is a logical consequence
of *C*_{1} and *C*_{2} and may be added to the set of clauses
without changing its truth value.

However, since *L* in *C*_{1} and *¬ L* in *C*_{2} may contain
different arguments, we must do something to make *L* in *C*_{1} and
*¬ L* in *C*_{2} exactly complementary.

Since every variable is universally quantified, we are justified in
substituting any term for a variable. Thus, we need to find a set of
substitutions of terms for variables that will make the literals *L*
in *C*_{1} and *¬ L* in *C*_{2} exactly the same. The process of
finding this set of substitutions is called * unification*.
We wish to find the * most general unifier* of two clauses, which will
preserve as many variables as possible.

Example: *C*_{1} = P(z) &or Q(z), C_{2} = ¬ P(f(x)) &or R(x) .
If we substitute *f(x)* for *z* in *C*_{1}, *C*_{1} becomes
*P(f(x)) &or Q(f(x))* .
The resolvent is *Q(f(x)) &or R(x)* .

Contents
Page-10
Prev
Next
Page+10
Index