[ library(ic_symbolic) | Reference Manual | Alphabetic Index ]

# ?X &= ?Y

X is the same domain value as Y

X
  variable or domain value
Y
  variable or domain value

## Description

Constrains X and Y to be the same. This is almost the same as unifying X and Y, except that &=/2 raises errors when X and Y are domain-less (where unification succeeds) or when the domains of X and Y are incompatible (where unification fails).

### Modules

This predicate is sensitive to its module context (tool predicate, see @/2).

## Examples

        ?- [X, Y] &:: weekday, X &= Y.
        X = X{[mo, tu, we, th, fr, sa, su]}
        Y = X{[mo, tu, we, th, fr, sa, su]}
        Yes (0.01s cpu)

        ?- th &= th.
        Yes (0.00s cpu)

        ?- X &= th.
        X = th
        Yes (0.00s cpu)

        ?- fr &= th.
        No (0.00s cpu)

        ?- X &= Y.
        Arguments have no domains in X &= Y in module eclipse
        Abort

        ?- X &:: weekday, X &= red.
        Arguments have different domains (weekday,colour) in X &= red ...
        Abort

## See Also

&= / 3, &< / 2, &> / 2, &=< / 2, &>= / 2, &\= / 2, shift / 3, rotate / 3