Scryer Prolog

Module dif

:- use_module(library(dif)).

Provides predicate dif/2. dif/2 is a constraint that is true only if both of its arguments are different terms.

dif(?X, ?Y).

True iff X and Y are different terms. Unlike \=/2, dif/2 is more declarative because if X and Y can unify but they're not yet equal, the decision is delayed, and prevents X and Y to become equal later. Examples:


?- dif(a, a).
   false.
?- dif(a, b).
   true.
?- dif(X, b).
   dif:dif(X,b).
?- dif(X, b), X = b.
   false.