[ ECLiPSe Term Comparison built-in.|Group Index| Full Index]

variant(?Term1, ?Term2)

Succeeds if Term1 is a variant of Term2.

?Term1
A Prolog term.
?Term2
A Prolog term.

Description

Succeeds if the given prolog terms are equal in the sense that all ground instantiations in Term1 are also instantiations in Term2 and vice versa. The result is undefined if Term1 and Term2 share variables. No unification is performed.

Fail Conditions

Fails if Term1 is not a variant of Term2.

Resatisfiable

No

Exceptions

Examples


   Success:
   variant(1,1).
   variant(X,Y).
   variant(f(a,b),f(a,b)).
   variant(f(a,X),f(a,Y)).
   variant(f(X,Y),f(Y,X)).
   variant([X,2], [Y,2]).
   Fail:
   variant(f(a,b),f(a,Y)).
   variant(f(a,X),f(a,b)).
   variant(f(X,Y),f(Z,Z)).


See Also

instance / 2, compare_instances / 3, prune_instances / 2