Académique Documents
Professionnel Documents
Culture Documents
Resolution theorem proving works by showing the negation of the theorem, to be proved
cannot be true. This is called proof by refutation.
To use resolution, the axioms involved in the proof must be expressed in a logic form
called clause form. Logic sentences in clause form contain no quantifiers, implications or
conjunctions.
It might be that two literals are not quite direct opposites but only can be matched by
appropriate substitutions. Finding appropriate substitutions is called unification and the
substitution is called a unifier.
For example, if clause 2 were Hairy(Y) then it could only be resolved with clause 1
using the unifier {Y / X} i.e. Y substituted by X.
To illustrate Resolution theorem proving we use clause 1 and and the latter version of
clause 2, i.e. Hairy(Y).
The theorem we want to prove is that X is a dog, i.e. Dog(X). So we negate this clause
to produce clause 3, Not(Dog(X)).
Resolving clause 1 and clause 2 using the unifier {Y/ X} we get clause 4, Dog(X).
Adding this and clause 3 to the set of clauses we get:
Now, all these clauses are supposed to be true but we have a contradiction between clause
3 and clause 4, so the refutation of the theorem, i.e. clause 3 is inconsistent with the
original set of clauses. Therefore we can assume the theorem to be proved.
Laws of Logic
X f(X) == X( f (X)
X f(X) == X( f (X)
X f(X) === Yf(Y)
X f(X) == Y f(Y)
Skolemization
Consider
X dog(X).
We can just give the dog that exists a name, say rover and replace the above
expression with
dog(rover)
rover is called a skolem constant
Example
1 X Y mother(X,Y) Everybody has a mother. Can be replaced by
2 X mother(X,m(X)) where m(X) is a skolem function which returns the mother of
X
Reduce
X( f (X) Y( m(X,Y))) X Z((a(X,Z) b(X,Z)) c(Z,3))
Negation locally scoped so next get rid of
( f (X) ( m(X,q(X))))
((a(W,Z) b(W,Z))
c(Z,3))
( f (X) ( m(X,q(X))))
((a(W,Z) b(W,Z))
c(Z1,3))
4:
a) Outline an algorithm for performing unification
Function Unify(E1, E2);
begin
case
both E1 and E2 are constants or the empty list
otherwise
begin
HE1:= head of E1
HE2:= head of E2
SUBS1 = UNIFY(HE1,HE2);
IF SUBS1 = FAIL THEN RETURN FAIL;
SUBS2:= UNIFY(TE1,TE2);
IF SUBS2 = FAIL THEN RETURN FAIL; ELSE RETURN THE COMPOSITION OF SUBS1 AND
SUBS2.
END
end end.
Using the algorithm presented in part a), unify the following pairs of expressions
Fails because eventually mary and f(mary) which cannot be unified are invalidly
matched.
Given the following set of clauses use resolution to prove the axiom : expensive(f1car)
1: fast(X) big(X)
2: big(Y) economical(Y) showy(f1car)
3: fast(U) new(U)
4: showy(T) high_tax(T)
5: new(G)
6: high_tax(S)
7: economical(Z) expensive(Z)
1: fast(X) big(X)
2: big(Y) economical(Y) showy(f1car)
3: fast(U) new(U)
4: showy(T) high_tax(T)
5: new(G)
6: high_tax(S)
7: economical(Z) expensive(Z)
To Prove EXPENSIVE(f1car)
ADD 8:NOT EXPENSIVE(f1car)