The CLP Procedure

ALLDIFF Statement

ALLDIFF (variable_list-1) <…(variable_list-n)> ;

ALLDIFFERENT (variable_list-1) <…(variable_list-n)> ;

The ALLDIFF statement can have multiple specifications. Each specification defines a unique global constraint on a set of variables, requiring all of them to be different from each other. A global constraint is equivalent to a conjunction of elementary constraints.

For example, the statements

var (X1-X3) A B;
alldiff (X1-X3) (A B);

are equivalent to

\[  \begin{array}{rcl} X1 &  \ne &  X2 \mr {~ ~ AND}\\ X2 &  \ne &  X3 \mr {~ ~ AND}\\ X1 &  \ne &  X3 \mr {~ ~ AND}\\ A &  \ne &  B \end{array}  \]

If the variable list is empty, the ALLDIFF constraint applies to all the variables declared in any VARIABLE statement.