These built-in predicates are extra-logical. They treat uninstantiated variables as objects with values which may be compared, and they never instantiate those variables. They should not be used when what you really want is arithmetic comparison or unification.
The predicates make reference to a standard total ordering of terms, which is as follows:
For example, here is a list of terms in standard order:
[ X, -1.0, -9, 1, bar, foo, [1], X = Y, foo(0,2), bar(1,1,1) ]
Usage:Term1==Term2
The terms Term1 and Term2 are strictly identical.
Usage:Term1\==Term2
The terms Term1 and Term2 are not strictly identical.
Usage:Term1@<Term2
The term Term1 precedes the term Term2 in the standard order.
Usage:Term1@=<Term2
The term Term1 precedes or is identical to the term Term2 in the standard order.
Usage:Term1@>Term2
The term Term1 follows the term Term2 in the standard order.
Usage:Term1@>=Term2
The term Term1 follows or is identical to the term Term2 in the standard order.
Op is the result of comparing the terms Term1 and Term2.
Usage:
comparator(=). comparator(>). comparator(<).