If S y T son Constantes y S = T
If S = Variable, aparea e instanc'ia S a T
If S y T son estructuras, S y T aparean si
S y T tienen el mismo nombre y sus argumentos aparean
E.g., de geometría:
P1 = punto(1,1). P2 = punto(2,3). L = linea(P1,P2) = linea(punto(1,1),punto(2,3)). T = triangulo(P3,P4,P5) = triangulo(punto(4,2),punto(6,4),punto(7,1)). vertical(linea(punto(X,Y),punto(X,Z))). horizontal(linea(punto(X,Y),punto(Z,Y))).Podemos decir:
?- vertical(linea(punto(1,8),punto(1,2))). yes ?- vertical(linea(punto(2,3),X)). X = punto(2,_) ? vertical(S), horizontal(S). S = linea(punto(X,Y),punto(X,Y))
Qué le falta para hacer unificación?
``occur check'': e.g. X = f(X) o X = f(a,g(X),b)