UNIFIKACJA TERMÓW Przykład unifikacji termów zło onych: T1: fun

Transkrypt

UNIFIKACJA TERMÓW Przykład unifikacji termów zło onych: T1: fun
UNIFIKACJA TERMÓW
Przykład unifikacji termów złożonych:
T1: fun ( a, X, f(Y) )
T2: fun (V, h(Y,V), f(g(V)) )
Sprawdzamy, czy termy mają tę samą nazwę i liczbę argumentów. Jeżeli tak przystępujemy
do unifikacji argumentów.
1. T11 : a (stała)
T21 : V (zmienna)
Za zmienną możemy podstawić dowolny term nie zawierający tej zmiennej. Zatem możemy
wykonać podstawienie: σ1: V = a.
Wykonujemy to podstawienie na całych termach T1 i T2
T1σ1: fun ( a, X, f(Y) )
T2σ1: fun ( a, h(Y,a), f(g(a)) )
2. T12 : X (zmienna)
T22 : h(Y,a) (term złożony)
Zmienna X nie występuje w termie T22, zatem możemy wykonać podstawienie :
σ2: X = h(Y,a)
T1σ1σ2: fun ( a, h(Y,a), f(Y) )
T2σ1σ2: fun ( a, h(Y,a), f(g(a)) )
3. T13 : f(Y) (term złożony)
T23 : f(g(a)) (term złożony)
Oba termy T13 i T23 są złożone o tej samej nazwie i jednym argumencie. Porównujemy
zatem te argumenty:
T131 : Y (zmienna)
T231 : g(a) (term złozony)
Dokonujemy podstawienia σ3: Y = g(a)
T1σ1σ2σ3: fun ( a, h(g(a),a), f(g(a)) )
T2σ1σ2σ3: fun ( a, h(g(a),a), f(g(a)) )
MGU(T1,T2) = σ1σ2σ3 = { X=h(g(a),a), Y=g(a), V=a }

Podobne dokumenty