0% found this document useful (0 votes)
51 views21 pages

Artificial Intelligence: Inference in First-Order Logic

The document discusses inference in first-order logic. It covers reducing first-order inference to propositional inference through instantiation, unification to find substitutions to match terms, generalized modus ponens as a lifted version of modus ponens, and provides an example knowledge base about a law regarding selling weapons to hostile nations to prove that Colonel West is a criminal.
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)
51 views21 pages

Artificial Intelligence: Inference in First-Order Logic

The document discusses inference in first-order logic. It covers reducing first-order inference to propositional inference through instantiation, unification to find substitutions to match terms, generalized modus ponens as a lifted version of modus ponens, and provides an example knowledge base about a law regarding selling weapons to hostile nations to prove that Colonel West is a criminal.
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/ 21

ARTIFICIAL

INTELLIGENCE
Inference in First-Order Logic
The Story So Far
◦ Propositional logic
◦ First order logic (FOL)
◦ Variables
◦ Functions
◦ Quantifiers
◦ Etc.
◦ Now: Inference in FOL
Outline
◦ Reducing first-order inference to propositional inference
◦ Unification
◦ Generalized Modus Ponens
◦ Forward chaining
◦ Backward chaining
◦ Resolution
Universal instantiation (UI)
◦ Every instantiation of a universally quantified sentence is entailed by it:

v α
Subst({v/g}, α)

for any variable v and ground term g


◦ E.g., x King(x)  Greedy(x)  Evil(x) yields:

King(John)  Greedy(John)  Evil(John)


King(Richard)  Greedy(Richard)  Evil(Richard)
King(Father(John))  Greedy(Father(John))  Evil(Father(John))
.
.
.
Existential instantiation (EI)
◦ For any sentence α, variable v, and constant symbol k that does not
appear elsewhere in the knowledge base:

v α
Subst({v/k}, α)

◦ E.g., x Crown(x)  OnHead(x,John) yields:

Crown(C1)  OnHead(C1,John)

provided C1 is a new constant symbol, called a Skolem constant


Reduction to propositional
inference
Suppose the KB contains just the following:

x King(x)  Greedy(x)  Evil(x)


King(John)
Greedy(John)
Brother(Richard,John)

◦ Instantiating the universal sentence in all possible ways, we have:


King(John)  Greedy(John)  Evil(John)
King(Richard)  Greedy(Richard)  Evil(Richard)
King(John)
Greedy(John)
Brother(Richard,John)
◦ The new KB is propositionalized: proposition symbols are

King(John), Greedy(John), Evil(John), King(Richard), etc.
Reduction contd.
◦ Every FOL KB can be propositionalized so as to preserve
entailment
◦ (A ground sentence is entailed by new KB iff entailed by
original KB)

◦ Idea: propositionalize KB and query, apply resolution, return


result

◦ Problem: with function symbols, there are infinitely many


ground terms,
◦ e.g., Father(Father(Father(John)))
Reduction contd.
Theorem: Herbrand (1930). If a sentence α is entailed by an FOL
KB, it is entailed by a finite subset of the propositionalized KB
Idea: For n = 0 to ∞ do
create a propositional KB by instantiating with depth-$n$ terms
see if α is entailed by this KB
Problem: works if α is entailed, loops if α is not entailed
Theorem: Turing (1936), Church (1936) Entailment for FOL is
semidecidable (algorithms exist that say yes to every entailed
sentence, but no algorithm exists that also says no to every
nonentailed sentence.)
Problems with
propositionalization
◦ Propositionalization seems to generate lots of irrelevant
sentences.
◦ E.g., from:
x King(x)  Greedy(x)  Evil(x)
King(John)
y Greedy(y)
Brother(Richard,John)
◦ it seems obvious that Evil(John), but propositionalization
produces lots of facts such as Greedy(Richard) that are
irrelevant
◦ With p k-ary predicates and n constants, there are p·nk
instantiations.
Unification
◦ We can get the inference immediately if we can find a substitution θ such that
King(x) and Greedy(x) match King(John) and Greedy(y)
θ = {x/John,y/John} works
◦ Unify(α,β) = θ if αθ = βθ
p q θ
Knows(John,x) Knows(John,Jane)
Knows(John,x) Knows(y,OJ)
Knows(John,x) Knows(y,Mother(y))
Knows(John,x) Knows(x,OJ)

Standardizing apart eliminates overlap of variables, e.g., Knows(z17,OJ)


Unification
◦ We can get the inference immediately if we can find a substitution θ
such that King(x) and Greedy(x) match King(John) and Greedy(y)
θ = {x/John,y/John} works
◦ Unify(α,β) = θ if αθ = βθ
p q θ
Knows(John,x) Knows(John,Jane) {x/Jane}}
Knows(John,x) Knows(y,OJ)
Knows(John,x) Knows(y,Mother(y))
Knows(John,x) Knows(x,OJ)

◦ Standardizing apart eliminates overlap of variables, e.g.,


Knows(z17,OJ)
Unification
◦ We can get the inference immediately if we can find a substitution θ
such that King(x) and Greedy(x) match King(John) and Greedy(y)
θ = {x/John,y/John} works
◦ Unify(α,β) = θ if αθ = βθ

p q θ
Knows(John,x) Knows(John,Jane) {x/Jane}}
Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}
Knows(John,x) Knows(y,Mother(y))
Knows(John,x) Knows(x,OJ)

◦ Standardizing apart eliminates overlap of variables, e.g.,


Knows(z17,OJ)
Unification
◦ We can get the inference immediately if we can find a substitution θ
such that King(x) and Greedy(x) match King(John) and Greedy(y)
θ = {x/John,y/John} works
◦ Unify(α,β) = θ if αθ = βθ
p q θ
Knows(John,x) Knows(John,Jane) {x/Jane}}
Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}
Knows(John,x) Knows(y,Mother(y)) {y/John,x/Mother(John)}}
Knows(John,x) Knows(x,OJ)

◦ Standardizing apart eliminates overlap of variables, e.g.,


Knows(z17,OJ)
Unification
◦ We can get the inference immediately if we can find a substitution θ
such that King(x) and Greedy(x) match King(John) and Greedy(y)
θ = {x/John,y/John} works
◦ Unify(α,β) = θ if αθ = βθ
p q θ
Knows(John,x) Knows(John,Jane) {x/Jane}}
Knows(John,x) Knows(y,OJ) {x/OJ,y/John}}
Knows(John,x) Knows(y,Mother(y)) {y/John,x/Mother(John)}}
Knows(John,x) Knows(x,OJ) {fail}

◦ Standardizing apart eliminates overlap of variables, e.g.,


Knows(z17,OJ)
Unification
◦ To unify Knows(John,x) and Knows(y,z),

θ = {y/John, x/z } or θ = {y/John, x/John, z/John}

◦ The first unifier is more general than the second.


◦ There is a single most general unifier (MGU) that is
unique up to renaming of variables.

MGU = { y/John, x/z }


Generalized Modus Ponens
(GMP)
p1', p2', … , pn', ( p1  p2  …  pn q) where pi'θ = pi θ for all i

p1' is King(John) p1 is King(x)
p2' is Greedy(y) p2 is Greedy(x)
θ is {x/John,y/John} q is Evil(x)
q θ is Evil(John)

◦ GMP used with KB of definite clauses (exactly one positive


literal)

◦ All variables assumed universally quantified


Generalized Modus Ponens
(GMP)
◦ Generalized Modus Ponens is a lifted version of Modus Ponens
◦ It raises from ground (variable-free) propositional logic to first-order
logic
Unification
◦ Rules for unification algorithm
◦ Constant is considered a ground instance and must not
be replaced
◦ A constant can be substituted for a variable
◦ Two different ground instances cannot be substituted for
one variable
◦ A variable cannot be unified with a term containing that
variable. X cannot be replaced by p(X) as this creates
an infinite expression
◦ Unifier must be as general as possible (most general
unifer)
Example knowledge base
◦ The law says that it is a crime for an American to
sell weapons to hostile nations. The country
Nono, an enemy of America, has some missiles,
and all of its missiles were sold to it by Colonel
West, who is American.

◦ Prove that Col. West is a criminal



Example knowledge base
contd.
... it is a crime for an American to sell weapons to hostile
nations:
American(x)  Weapon(y)  Sells(x,y,z)  Hostile(z)  Criminal(x)
Nono … has some missiles, i.e., x Owns(Nono,x)  Missile(x):

Owns(Nono,M1) and Missile(M1)


… all of its missiles were sold to it by Colonel West
Missile(x)  Owns(Nono,x)  Sells(West,x,Nono)
Missiles are weapons:

Missile(x)  Weapon(x)
Example knowledge base
contd.
An enemy of America counts as "hostile“:
Enemy(x,America)  Hostile(x)
West, who is American …

American(West)
The country Nono, an enemy of America …

Enemy(Nono,America)

You might also like