Skolemization:
remove
existentially quantifed variables
Replace any existentially quantifed variable
!
x
that is in the
scope oF universally
quantifed variables
"
y
1
…
"
y
n
with a new
Function
F(y
1
,…,y
n
)
(a
Skolem
function
)
Replace any existentially quantifed variable
!
x
that is not in the scope oF any universally
quantifed variables with a new constant
c
(a
Skolem term
)
5
CS440/ECE448: Intro AI
The effect of Skolemization
"
x
"
y
!
w
"
z Q(x, y,
w
, z, G(
w
, x))
is equivalent to
"
x
"
y
"
z Q(x, y,
P(x, y)
, z, G(
P(x, y)
, x
))
where
P
is the Skolem Function For
w.
NB: the Skolem Function is a Function,
so this is not decidable anymore.
6
CS440/ECE448: Intro AI
Universal quantiFers:
Modus ponens
With propositionalization:
∀
x human(x)
!
mortal(x)
human(s’)
!!!!!!!!!!!!!!!
(UI)
human(s’)
!
mortal(s’)
!!!!!!!!!!!!!!!!!!!!!!!!
(MP)
mortal(s’)
How can we match
human(s’)
and
∀
x human(x)
!
mortal(x)
directly?
7
CS440/ECE448: Intro AI
A
substitution
"
is a set oF pairings oF
variables
v
i
with
terms t
i
:
"
= {v
1
/t
1
, v
2
/t
2
, v
3
/t
3
, …, v
n
/ t
n
}
•
Each variable
v
i
is distinct
•
t
i
can be any term (variable, constant,
Function), as long as it does not contain
v
i
directly or indirectly
NB: the order oF variables in
"
doesn
ʼ
t matter
{x/y, y/f(a)} = {y/f(a), x/y} = {x/f(a), y/f(a)}
Substitutions