Unifier
is more general than unifier
if for every
expression
,
is an instance of
(or
=
)
((?x ?y)) is more general than ((?x foo) (?y foo)), because (f ?x) ((?x ?y)) ((?y foo)) = (f ?x) ((?x foo) (?y foo))
If two expressions are unifiable, then there exists an mgu (most general unifier)
The code we designed returns an mgu.
Q(F(?x), ?z, A) and Q(?a, ?z, ?y)
Unifiable?
Yes! substitution list = ((?a F(?x)) (?y A))
P(?x) and P(A)?
P(F(?x, G(A,?y)), G(A,?y)) and P(F(?x,?z), ?z)?
Q(?x, ?y, A) and Q(B, ?y, ?z)?
R(?x) and R(F(?x))?