5. UNIFICATION PROBLEM
¡ Input: equation E
¡ Output: E equivalent Solved form equation set
¡ equation
¡ Solved form: equation variable variable
equation
¡ equivalent: solution
g(x) = g(g(z))
f(a, z) = f(a, y)
x = g(y)
z = y
Problem E Solved Form
equivalent
6. UNIFICATION ALGORITHM [LASSEZ ET AL.]
Input: equation set E
E equation
s, t , x variable, f, g function symbol
1. f(t1, ..., tn) = f(s1, ..., sn)
→ t1=s1, ..., tn=sn
2. f(t1, ..., tn) = g(s1, ..., sm) f ≠g
→
3. x = x
→ equation
( )
7. UNIFICATION ALGORITHM [LASSEZ ET AL.]
4. t = x t variable
→ x = t
5. x = t t x equation x
i. x t
→
ii. x t
→ equation x t
8. EXAMPLE
g(x) = g(g(z))
f(a, z) = f(a, y)
x = g(z)
f(a, z) = f(a, y)
1
x = g(z)
a = a
z = y
1
1x = g(z)
z = y
5.ii
x = g(y)
z = y
9. 1. f(t1, ..., tn) = f(s1, ..., sn)
→ t1=s1, ..., tn=sn
2. f(t1, ..., tn) = g(s1, ..., sm) f ≠g
→
3. x = x
→ equation
4. t = x t variable
→ x = t
f
equation
10. 5. x = t t x equation
x
i. x t
→
ii. x t
→ equation x t
variable function symbol
1 variable 1
13. ANTI-UNIFICATION PROBLEM
¡ θ = { v1 -> t1, ..., vn -> tn }
¡ tθ t vi ti term
¡ t s instance ⇔ s t anti-instance ⇔ s ≧ t
⇔ inst(s) ⊇ inst(t) ⇔ θ t = sθ
¡ inst(t): t instance
¡ variable renaming
≧ complete lattice (inst(⊥)=∅ ⊥ )
¡ ex. f(x, y) f(y, z)
¡ lattice least upper bound anti-unification
complete lattice
poset subset
greatest lower bound least
upper bound
14. EXAMPLE
f(a, g(a, y), a)
f(x, g(x, y), a)
f(x, g(x, b), a)
f(b, g(b, b), a)
x=a y=b
x=b
f(x, g(x, x), a)
y=x
x=b
anti-unification
f(x, g(x, x), y)
y=a
f(x, g(x, y), x)
x=a
... ...
...
15. ANTI-UNIFICATION ALGORITHM
¡ φ: T × T -> V': bijection term variable
¡ T: term , V': variable
¡ λ: Anti-unification
¡ λ( f(s1, ..., sm), f(t1, ..., tm) ) = f( λ(s1, t1), ..., λ(sm, tm) )
¡ λ( s, t ) = φ( s, t )
16. EXAMPLE
λ( f(a, g(a, y), a), f(b, g(b, b), a) )
= f( λ(a, b), λ(g(a, y), g(b, b)), g(a, a) )
= f( x, g( λ(a, b), λ(y, b) ), a )
= f( x, g( x, y ), a )
φ(a, b) = x
φ(y, b) = y