0% found this document useful (0 votes)
56 views35 pages

AI-09-Resolution in FOL

The document discusses resolution in first-order logic as a mechanical proof procedure. It describes converting logical propositions to clausal form, the unification process of finding substitutions to make clauses identical, and the resolution rule to infer new clauses from existing ones in the knowledge base. Examples are provided to illustrate each concept.

Uploaded by

pany p.g
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views35 pages

AI-09-Resolution in FOL

The document discusses resolution in first-order logic as a mechanical proof procedure. It describes converting logical propositions to clausal form, the unification process of finding substitutions to make clauses identical, and the resolution rule to infer new clauses from existing ones in the knowledge base. Examples are provided to illustrate each concept.

Uploaded by

pany p.g
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 35

Introduction to Artificial Intelligence

Resolution in FOL

By: 1

Boreshban [email protected]
Outline
• Theorem Proving in First Order Logic
• Unification
• Resolution
Resolution in FOL

• Mechanical proof procedure with a single rule


• Invented by J. A. Robinson in 1965
• Three main steps:
1. Clause form: transform all clauses to
uniform format
2.Unification: find a variable assignment
so that two clauses can be resolved
3.Resolution: rule to obtain new
conclusions
1. Clause Form

• We want a uniform representation for our logical


propositions, so that we can use a simple uniform
proof procedure.
• Clausal form expresses all logical propositions
using literals (atomic sentences or negated atomic
sentences) and clauses (sets of literals
representing their disjunction).
• Ex: all the following in a single form:
a => b
• ~a \/ b b \/ ~a ~(a /\ ~b)
Clause Form Conversion
• Any set of sentences in predicate calculus can
be converted to clausal form.
• Eight-step procedure for conversion:
1. Replace implications
2. Distribute negations
3. Standardize variables
4. Replace existentials
5. Remove universals
6. Distribute disjunctions
7. Replace operators
8. Rename variables
1. Replace implications
Any sentence of the form:
j <=> y becomes (j => y)&(y => j)
j => y becomes
~j \/ y at all levels
2. Distribute negations
Repeatedly do the following:
~~ y becomes y
~(j /\ y) becomes ~j \/ ~y
~(j \/ y) becomes ~j /\ ~y
~ j becomes  ~j
~ j becomes  ~j
3. Standardize variables
Rename variables to ensure that each quantifier
has its own unique variable.
Ex: (X p(X)) /\ (X q(X))
becomes (X p(X)) /\ (Y q(Y))

4. Replace existentials
Consider: (Y X p(X,Y))
The identity of X depends on the value of Y.
We can replace X by a function of Y:
(Y p(g(Y),Y)) where g is a Skolem function
Skolemization
• Replace each occurrence of an existentially
quantified variable by a Skolem function.
• The function’s arguments are the universally
quantified variables that are bound by universal
quantifiers whose scope includes the scope of the
existential quantifier being eliminated.
• The Skolem functions must be new, i.e., not
already present in any other sentences.
• If the existential quantifier is not within a
universal quantifier, use a Skolem function of no
arguments, i.e., a constant.
Examples of Skolemization

1. X p(X) becomes p(g)


2. Y X p(X,Y) becomes Y p(g(Y),Y)
3. X Y p(X,Y) becomes Y p(g,Y)
4. Y X (((q(X) /\ p(X,Y)) \/ Z W(r(W)))
becomes
Y (((q(f(Y)) /\ p(f(Y),Y)) \/ Z (r(g(Y,Z)))
where f and g are Skolem functions
5. Remove universal quantifiers
Throw away ’s and assume all variables are
universally quantified.
X Y Z q(h(Y)) /\ p(h(Y),X) /\ r(X,Z)
becomes q(h(Y)) /\ p(h(Y),X) /\ r(X,Z)

6. Distribute disjunctions
Write the formula in conjunctive normal form
(the conjunction of sets of disjunctions) with:
j \/ (y /\ q) becomes (j \/ y) /\ (j \/ q)
7. Replace operators
• Replace the conjunction
S1 /\ S2 /\ …. /\ Sn
with the set of clauses S1 , S2 , …, Sn
• Convert each Si into a set of literals (that is, get
rid of the disjunctions symbols “ \/”, and write
them in clause notation.
Ex: (p(X) \/ q(Y)) /\ (p(X) \/ ~r(X,Y))
becomes two clauses:
{p(X), q(Y)}
{p(X), ~r(X,Y)}
8. Rename variables
Change variable names so that no variable symbol
appears in more than one clause:
Ex: {p(X), q(Y)} and {p(X), ~r(X,Y)}
becomes {p(X), q(Y)} and {p(Z), ~r(Z,W)}
we can do this because:
X Y(p(X) \/ q(Y)) /\ (p(X) \/ ~r(X,Y))
is equivalent to
X Y(p(X) \/ q(Y)) /\ Z W(p(Z) \/ ~r(Z,W))
Example
Example
Unification -- Substitution
• Unification is the process of determining whether
two expressions can be made identical by
appropriate substitutions for their variables.
• The substitution applies to variables of both
expressions and makes them syntactically
equivalent. The result is a substitution instance

• Example of a unifying substitution


S1: p(X,f(b),Z) S2: p(a,Y,W)

U = {X/a Y/f(b), Z/W}


S1[U] = S2[U] = p(a,f(b),W) substitution instance
example
example
Properties of the substitution
1. Each variable is associated with at most one
expression;
2. No variable with an associated expression
occurs within any associated expression. That
is, no “left side” appears on a “right side”:
U = {X/a, Y/f(X), Z/Y}
is not a legal substitution
Unification of sentences
A set of expressions
{S1,S2,….Sn}
is unifiable if there is a substitution U that
makes them identical:
S1[U] = S2 [U] =… = Sn [U]

Ex: U = {X/a, Y/b, Z/c} unifies the expressions


p(a,Y,Z) and p(X,b,Z) and p(a,Y,c)
Unifiers are not unique!
• Two expressions can have more that one unifier
that makes them equivalent:
S1 = p(X,Y,Y) and S2 = p(a,Z,Z)
are unified by
U1={X/a,Y/Z} and U2={X/a,Y/b, Z/b}
S1[ U1] = S2[ U1] = p(a,Z,Z)
S1[ U2] = S2[ U2] = p(a,b,b)
Partial order between unifiers
• Some unifiers are more general than others:
U1 is more general than U2
if there exists a unifier U3 such that
U1U3 = U2
Example:
U1 = {X/f(Y),Z/W,R/c} is more general that
U2 = {X/f(a),Z/b, R/c} since U3 = {Y/a,W/b}
U1 U3 ={X/f(Y),Z/W,R/c}{Y/a,W/b} = U2
• Unifiers form a partial order
Most general unifier (MGU)
• For each set of sentences, there exists a most
general unifier (mgu) that is unique up to
variable renaming
Ex: for S1 = p(X,Y,f(Z)) and S2 = p(a,W,R)
U={X/a,Y/W,R/f(Z)} is the mgu
• For the resolution procedure, we want to find
the most general unifier of literals: a constant,
variable, or a functional object of length n.
3. Resolution
Given a clause containing the literal j and another
clause the literal ~j , we can infer the clause
consisting of all the literals of both clauses
without j and ~j.
Ex: 1. {p, q} KB
2. {~q, r} KB
3. {p, r} 1,2
Other Resolution Examples
1. {p, q} KB
2. {~p, q} KB
3. {q} 1,2 merge the q's
1. {~p, q} KB much like Modus Ponens
2. {p} KB
3. {q} 1,2
1. {p} KB
We can derive the empty
2. {~p} KB clause, showing
3. {} 1,2 that the KB has a
contradiction
Resolution Rule
For clauses containing variables, we can resolve j
in one clause with ~y in another clause, as long
as j and y have a mgu U. The resulting clause is
the union of the original 2 clauses, with j and
~y removed, and with U applied to the
remaining literals.
{r,j}and {~y,d}
{r[U],d[U]}
where j [U] = y [U]
Examples of Resolutions
• Ex1: 1. {p(X), q(X,Y)} KB
2. {~p(a), r(b,Z)} KB
3. {q(a,Y), r(b,Z)} 1,2
• Ex2: Two clauses may resolve in more than one
way since f and ~y may be chosen in different
ways:
1. {p(X,X), q(X), r(X)} KB
2. {~p(a,Z), ~q(b)} KB
3. {q(a), r(a),~q(b)} 1,2
4. {p(b,b), r(b), ~p(a,Z)} 1,2
Resolution Deduction
A resolution deduction of a clause j from a data
base KB is a sequence of clauses in which
1. j is an element of the sequence;
2. Each element is either a member of KB or the
result of applying the resolution principle to
clauses earlier in the sequence.
Resolution procedure with
nondeterministic choices
function Resolution(KB) returns answer
while not(Empty_Clause(KB)) do
c1 := Choose_Clause(KB)
c2 := Choose_Clause(KB)
res := Choose_Resolvents(c1,c2)
KB := KB U {res}
end
return true
end
Ex: Resolution deduction
of the empty clause
1. { p } KB
2. {~p, q } KB
3. { ~q, r } KB
4. { ~r } KB
5. {q} 1, 2
6. { ~q} 3, 4
7. { } 5, 6
All possible resolutions (to 3 levels)
{p} {~p,q} {~q,r} {~r}

{q} {~q}

{~p,r}

{r} {r} {} {~p} {~p}

A “resolution trace” is a linear form of the graph


Resolution Refutation
• As for Propositional Logic, we will use refutation
resolution as the single rule for proving sentences
about a KB
• We will use it to prove the unsatisfiability of a set
of clauses, i.e., they contain a contradiction if we
can derive the empty clause.
• Resolution refutation: to prove c, prove that
KB U {~c} |= 0 like
a “proof by contradiction”
• Rule is refutation-complete.
Answering questions with
Refutation-Resolution
• True/False questions: we want to know if a
conclusion follows from KB:
Ex: father(art, jon)
father(bob, kim)
father(X, Y) => parent(X, Y)
Is art the parent of jon?
• Queries: fill-in-the blank: we want to know also
what instantiation makes it true:
Who is the parent of jon?
True/False by Refutation Resolution
1. {father(art, jon)} KB
2. {father(bob, kim)} KB
3. {~father(X,Y), parent(X,Y)} KB
4. {~parent(art,jon)} negated goal clause
5. {parent(art,jon)} 1, 3
6. {parent(bob, kim)} 2, 3
7. {~father(art, jon)} 3, 4
8. { } 4, 5
9. { } 1, 7
Fill-in-the-blank (Green’s method)
• To obtain one instantiation that makes the
conclusion true (if any), form a disjunction of
the negation of the goal c and its “answer
literal”: a term of form
ans(X1,X2,…Xn)
where the variables X1,X2,…Xn are the free
variables in c.
Ex: Add to the previous KB the clause
{~parent(X, jon), ans(X)}

• Resolution halts when it derives a clause


containing only the ans literal
Example of fill-the-blank derivation
1. {father(art, jon)} KB
2. {father(bob, kim)} KB
3. {~father(X,Y), parent(X,Y)} KB
4. {~parent(Z,jon), ans(Z)} c
5. {parent(art, jon)} 1, 3
6. {parent(bob, kim)} 2, 3
7. {~father(w,jon), ans(W)} 3, 4
8. {ans(art) } 4, 5
9. {ans(art) } 1, 7

You might also like