### 2.1.5. Describing symmetries between arguments

Given a satisfied ground instance of a global constraint $\mathrm{๐๐๐๐๐๐๐๐๐๐}$, it is often the case that the constraint is still satisfiedย [CohenJeavonsJeffersonPetrieSmith06], [FlenerPearsonSellmannVanHentenryckAgren09] if we permute:

We provide the following moves, where each move is described by (1)ย an explicit fact (i.e.,ย a meta -data), (2)ย a textual explanation, and (3)ย several concrete examples:

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}\right)$ denotes the fact that we swap the arguments of a constraint with respect to a given permutation. Arguments which are exchanged must have the same type under the hypothesis that they are ground (i.e.,ย for instance the basic data types $\mathrm{๐๐๐}$ and $\mathrm{๐๐๐๐}$, which respectively denote an integer value and a domain variable can be exchanged since a ground domain variable corresponds to an integer value). The permutation $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}$ is described by using standard notation, that is by providing the different cycles of the permutation.

EXAMPLEย 1: As a first example where we can swap two arguments, consider the $\mathrm{๐๐}_\mathrm{๐๐๐}$$\left(\mathrm{๐ ๐ฐ๐}\mathtt{1},\mathrm{๐ ๐ฐ๐}\mathtt{2},\mathrm{๐ฒ๐๐}\mathtt{2}\right)$ constraint which, given two domain variables $\mathrm{๐ ๐ฐ๐}\mathtt{1}$, $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ and an integer value $\mathrm{๐ฒ๐๐}\mathtt{2}$, enforces the condition $\mathrm{๐ ๐ฐ๐}\mathtt{1}=\mathrm{๐ ๐ฐ๐}\mathtt{2}+\mathrm{๐ฒ๐๐}\mathtt{2}$. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐}\left(\left[\left[\mathrm{๐ ๐ฐ๐}\mathtt{1}\right],\left[\mathrm{๐ ๐ฐ๐}\mathtt{2},\mathrm{๐ฒ๐๐}\mathtt{2}\right]\right]\right)$, to which corresponds the following textual form:

ย ย ย ย arguments are permutable w.r.t.ย permutation $\left(\mathrm{๐ ๐ฐ๐}\mathtt{1}\right)$ $\left(\mathrm{๐ ๐ฐ๐}\mathtt{2},\mathrm{๐ฒ๐๐}\mathtt{2}\right)$.

Note that, even if arguments $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ and $\mathrm{๐ฒ๐๐}\mathtt{2}$ do not have the same type (i.e.,ย $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ is a domain variable, while $\mathrm{๐ฒ๐๐}\mathtt{2}$ is an integer value), both arguments can be exchanged since we consider the ground case. For instance, since $\mathrm{๐๐}_\mathrm{๐๐๐}$$\left(8,\mathbf{2},\mathbf{6}\right)$ is satisfied, $\mathrm{๐๐}_\mathrm{๐๐๐}$$\left(8,\mathbf{6},\mathbf{2}\right)$ is also satisfied.

EXAMPLEย 2: As a second example where we can swap several arguments, consider the $\mathrm{๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1},\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}\right)$ constraint which, given two domain variables $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1}$, $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2}$ and two collections of domain variables $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$, $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$, enforces the following two conditions:

• $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1}$ is the number of variables of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ assigned a value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$.

• $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2}$ is the number of variables of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$ assigned a value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$.

Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐}\left(\left[\left[\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1},\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2}\right],\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}\right]\right]\right)$, to which corresponds the following textual form:

ย ย ย ย arguments are permutable w.r.t. permutation $\left(\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1},\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2}\right)$

ย ย ย ย $\left(\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}\right)$.

For instance, since $\mathrm{๐๐๐๐๐๐}$$\left(\mathbf{3},\mathbf{4},โฉ\mathit{1},\mathit{9},\mathit{1},\mathit{5}โช,โฉ\mathit{2},\mathit{1},\mathit{9},\mathit{9},\mathit{6},\mathit{9}โช\right)$ is satisfied, $\mathrm{๐๐๐๐๐๐}$$\left(\mathbf{4},\mathbf{3},โฉ\mathit{2},\mathit{1},\mathit{9},\mathit{9},\mathit{6},\mathit{9}โช,โฉ\mathit{1},\mathit{9},\mathit{1},\mathit{5}โช\right)$ is also satisfied.

• $\mathrm{๐๐๐๐๐}\left(\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ},\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}\right)$ denotes the fact that we can permute the items of the collection $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ}$ with respect to a permutation belonging to a given set of permutations $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$:

• $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ}$ stands for one of the following:

1. An argument $\mathrm{๐ฐ๐๐ถ}$ of the global constraint that corresponds to a $\mathrm{๐๐๐๐๐๐๐๐๐๐}$ of items.

2. A term $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$, where $\mathrm{๐๐๐๐}$ is an attribute of a $\mathrm{๐๐๐๐๐๐๐๐๐๐}$ of items that is an argument $\mathrm{๐ฐ๐๐ถ}$ of the global constraint; in addition, the type of $\mathrm{๐๐๐๐}$ is itself a collection. Given a collection $\mathrm{๐ฐ๐๐ถ}$ of $m$ items $โฉ\mathrm{๐ฐ๐๐ถ}\left[1\right],\mathrm{๐ฐ๐๐ถ}\left[2\right],...,\mathrm{๐ฐ๐๐ถ}\left[m\right]โช$, a permutation of $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$, not necessarily the same, is applied on the items of a subset of the set of collections $\left\{\mathrm{๐ฐ๐๐ถ}\left[1\right].\mathrm{๐๐๐๐},\mathrm{๐ฐ๐๐ถ}\left[2\right].\mathrm{๐๐๐๐},...,\mathrm{๐ฐ๐๐ถ}\left[m\right].\mathrm{๐๐๐๐}\right\}$.

• $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$ represents a set of permutations. It can take one of the following values:

1. $\mathrm{๐๐๐}$ stands for all possible permutations. Note that this case is a little artificial since it does not really correspond to a symmetry of the constraint, but rather to the fact that we use a collection for representing a set of variables. But, to our best knowledge in 2010, concrete solvers do also not use sets of variables but rather collections, lists or arrays of variables.

2. $\mathrm{๐๐๐๐๐๐๐}$ stands for the set that only contains the permutation that maps the sequence ${e}_{1},{e}_{2},...,{e}_{n}$ to ${e}_{n},{e}_{n-1},...,{e}_{1}$.

3. $\mathrm{๐๐๐๐๐}$ stands for the set that only contains the permutation that maps the sequence ${e}_{1},{e}_{2},...,{e}_{n}$ to ${e}_{n},{e}_{1},...,{e}_{n-1}$.

EXAMPLEย 1: As a first example, consider the $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which has one single argument corresponding to a collection of variables which must all be assigned distinct values. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐},\mathrm{๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย items of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ are permutable.

For instance, since $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$$\left(โฉ\mathbf{1},\mathbf{4},\mathbf{9}โช\right)$ is satisfied, all permutations of $โฉ1,4,9โช$ (i.e.,ย $โฉ\mathbf{1},\mathbf{4},\mathbf{9}โช$, $โฉ\mathbf{1},\mathbf{9},\mathbf{4}โช$, $โฉ\mathbf{4},\mathbf{1},\mathbf{9}โช$, $โฉ\mathbf{4},\mathbf{9},\mathbf{1}โช$, $โฉ\mathbf{9},\mathbf{1},\mathbf{4}โช$, $โฉ\mathbf{9},\mathbf{4},\mathbf{1}โช$) correspond to valid solutions of the $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$ constraint.

EXAMPLEย 2: As a second example, consider the $\mathrm{๐}_\mathrm{๐๐๐๐}$$\left(\mathrm{๐๐ด๐๐}\right)$ constraint, which has one single argument corresponding to a collection of sets, where each set is a collection of domain variables that must be assigned the same set of values (i.e.,ย $\mathrm{๐}_\mathrm{๐๐๐๐}$ enforces an equality between multisets). The argument $\mathrm{๐๐ด๐๐}$ is a collection, where each item consists of one single $\mathrm{๐๐๐}$ attribute. The type of a $\mathrm{๐๐๐}$ attribute is a collection of domain variables. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}\left(\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐},\mathrm{๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย items of $\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}$ are permutable.

For instance, since $\mathrm{๐}_\mathrm{๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ1,4,4โช,\mathrm{๐๐๐}-โฉ\mathbf{4},\mathbf{4},\mathbf{1}โช,\mathrm{๐๐๐}-โฉ1,4,4โชโช\right)$ is satisfied, it is also satisfied for all permutations of the elements of its second set $โฉ4,4,1โช$, i.e.:

• $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}\left(\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐},\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}\right)$ denotes the fact that we can permute the items of several collections $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐}$ with respect to a permutation belonging to a given set of permutations $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$ in such a way that one and the same permutation is used on all collections (i.e.,ย therefore the keyword $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}$ which stands for items synchronisation):

• $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐}$ stands for a non -empty list of terms of the form $\mathrm{๐ฐ๐๐ถ}$ or $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$, where $\mathrm{๐ฐ๐๐ถ}$ is an argument of the global constraint that corresponds to a collection, and $\mathrm{๐๐๐๐}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}$ such that its type is itself a collection. In addition, we also have the following restrictions:

1. If $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐}$ contains one single element then this element has the form $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$. This stems from the fact that we want to designate more than one single collection.

2. All collections designated by $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐}$ have the same type as well as the same number of items.

The same permutation of $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$ is applied on the items of the different collections referenced by $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ๐}$.

• As for the symmetry keyword $\mathrm{๐๐๐๐๐}$, $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ๐}$ represents a set of permutations. It can take the same set of values as before, namely:

1. $\mathrm{๐๐๐}$ stands for all possible permutations.

2. $\mathrm{๐๐๐๐๐๐๐}$ stands for the set that only contains the permutation that maps the sequence ${e}_{1},{e}_{2},...,{e}_{n}$ to ${e}_{n},{e}_{n-1},...,{e}_{1}$.

3. $\mathrm{๐๐๐๐๐}$ stands for the set that only contains the permutation that maps the sequence ${e}_{1},{e}_{2},...,{e}_{n}$ to ${e}_{n},{e}_{1},...,{e}_{n-1}$.

EXAMPLEย 1: As a first example, consider the $\mathrm{๐๐๐๐๐๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐}_\mathrm{๐๐๐๐}$$\left(\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐},$ $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which has two arguments $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}$ and $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ respectively corresponding to a collection of positive integers and to a collection of 0-1 domain variables. The constraint imposes that the $m$ successive maximum groups of consecutive ones of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ have sizes $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}\left[1\right].\mathrm{๐๐}$, $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}\left[2\right].\mathrm{๐๐}$, $...$, $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}\left[m\right].\mathrm{๐๐}$. Note that, if we reverse the items of both $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}$ and $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, we still have a solution. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}\left(\left[\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right],\mathrm{๐๐๐๐๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย items of $\mathrm{๐ถ๐๐พ๐๐ฟ}_\mathrm{๐๐ธ๐๐ด๐}$ and $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ are simultaneously reversable.

For instance, since $\mathrm{๐๐๐๐๐๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐}_\mathrm{๐๐๐๐}$$\left(โฉ\mathbf{2},\mathbf{1}โช,โฉ\mathit{1},\mathit{1},\mathit{0},\mathit{0},\mathit{0},\mathit{1},\mathit{0}โช\right)$ is a solution, $\mathrm{๐๐๐๐๐๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐}_\mathrm{๐๐๐๐}$$\left(โฉ\mathbf{1},\mathbf{2}โช,โฉ\mathit{0},\mathit{1},\mathit{0},\mathit{0},\mathit{0},\mathit{1},\mathit{1}โช\right)$ is also a valid solution.

EXAMPLEย 2: As a second example, consider the $\mathrm{๐๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ ๐ด๐ฒ},\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}\right)$ constraint, which has two arguments $\mathrm{๐ฝ๐ ๐ด๐ฒ}$ and $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}$ respectively corresponding to a domain variable and to a collection of collections of domain variables, where all collections have the same number of items. The unique attribute of $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}$ is denoted by $\mathrm{๐๐๐}$ and its type is a collection of domain variables. Each collection is interpreted as a vector and two vectors are distinct if and only if they differ in at least one component. The $\mathrm{๐๐๐๐๐๐๐}$ constraint enforces $\mathrm{๐ฝ๐ ๐ด๐ฒ}$ to be equal to the number of distinct vectors within $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}$. If we permute the components of all vectors with respect to a same permutation we still have the same number of distinct vectors. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}\left(\left[\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย items of $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}$ are permutable (same permutation used).

For instance, since $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ\mathrm{๐๐๐}-โฉ\mathbf{1},\mathbf{1},\mathbf{8}โช,\mathrm{๐๐๐}-โฉ\mathbf{5},\mathbf{1},\mathbf{6}โช,\mathrm{๐๐๐}-โฉ\mathbf{1},\mathbf{1},\mathbf{8}โชโช\right)$ is a solution, any permutation applied simultaneously to the three components of each vector leads to a solution, i.e.:

• $\mathrm{๐๐๐๐๐}\left(\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ},\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}\right)$ denotes the fact that we can permute the attributes of the collection $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ}$, not necessarily all items, with respect to a permutation $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}$. Attributes that are exchanged must have the same type under the hypothesis that they are ground (e.g.,ย an attribute $\mathrm{๐๐๐๐}\mathtt{1}$ of type $\mathrm{๐๐๐}$ can be exchanged with an attribute $\mathrm{๐๐๐๐}\mathtt{2}$ of type $\mathrm{๐๐๐๐}$.

EXAMPLE: As an example, consider the $\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐๐}$$\left(\mathrm{๐ป๐ธ๐ฝ๐ด๐ฐ๐๐๐ด๐๐ผ},$ $\mathrm{๐ฒ๐๐},$ $\mathrm{๐ ๐ฐ๐ป}\right)$ constraint, which enforces a linear term, represented by a collection with two attributes $\mathrm{๐๐๐๐๐}$ and $\mathrm{๐๐๐}$, to be equal, different, less, greater than or equal, greater, or less than or equal (i.e.,ย depending on the value of $\mathrm{๐ฒ๐๐}$) to $\mathrm{๐ ๐ฐ๐ป}$. In the ground case we can exchange attributes $\mathrm{๐๐๐๐๐}$ and $\mathrm{๐๐๐}$ without affecting the fact that the constraint is satisfied. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}\left(\mathrm{๐ป๐ธ๐ฝ๐ด๐ฐ๐๐๐ด๐๐ผ},\left[\left[\mathrm{๐๐๐๐๐},\mathrm{๐๐๐}\right]\right]\right)$, to which corresponds the following textual form:

ย ย ย ย attributes of $\mathrm{๐ป๐ธ๐ฝ๐ด๐ฐ๐๐๐ด๐๐ผ}$ are permutable w.r.t.ย permutation $\left(\mathrm{๐๐๐๐๐},\mathrm{๐๐๐}\right)$ (permutation not necessarily applied to all items).

For instance, since $\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐๐๐}-1\mathrm{๐๐๐}-1,\mathrm{๐๐๐๐๐}-\mathbf{3}\mathrm{๐๐๐}-\mathbf{1},\mathrm{๐๐๐๐๐}-1\mathrm{๐๐๐}-4,โช,=,8\right)$ is a solution, $\mathrm{๐๐๐๐๐๐}_\mathrm{๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐๐๐}-1\mathrm{๐๐๐}-1,\mathrm{๐๐๐๐๐}-\mathbf{1}\mathrm{๐๐๐}-\mathbf{3},\mathrm{๐๐๐๐๐}-1\mathrm{๐๐๐}-4,โช,=,8\right)$ is also a valid solution (i.e.,ย the attributes $\mathrm{๐๐๐๐๐}$ and $\mathrm{๐๐๐}$ of the second item were permuted).

• $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}\left(\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ},\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}\right)$ denotes the fact that we can permute the attributes of the collection $\mathrm{๐ฒ๐พ๐ป๐ป๐ด๐ฒ๐๐ธ๐พ๐ฝ}$, necessarily all items, with respect to a permutation $\mathrm{๐ฟ๐ด๐๐ผ๐๐๐ฐ๐๐ธ๐พ๐ฝ}$. As before, attributes that are exchanged must have the same type under the hypothesis that they are ground.

EXAMPLE: As an example, consider the $\mathrm{๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ฒ๐๐พ๐๐},\mathrm{๐๐ด๐ถ๐ผ๐ด๐ฝ๐๐}\right)$ constraint, which enforces $\mathrm{๐ฝ๐ฒ๐๐พ๐๐}$ to be equal to the number of line -segments intersections between the line -segments defined by the $\mathrm{๐๐ด๐ถ๐ผ๐ด๐ฝ๐๐}$ collection. Each line -segment is defined by the coordinates $\left(\mathrm{๐๐ก},\mathrm{๐๐ข}\right)$ and $\left(\mathrm{๐๐ก},\mathrm{๐๐ข}\right)$ of its two extremities. Note that we can exchange the role of the $x$ and $y$ axes without affecting the number of line -segments intersections. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐}_\mathrm{๐๐ข๐๐}\left(\mathrm{๐๐ด๐ถ๐ผ๐ด๐ฝ๐๐},\left[\left[\mathrm{๐๐ก},\mathrm{๐๐ข}\right],\left[\mathrm{๐๐ก},\mathrm{๐๐ข}\right]\right]\right)$, to which corresponds the following textual form:

ย ย ย ย attributes of $\mathrm{๐๐ด๐ถ๐ผ๐ด๐ฝ๐๐}$ are permutable w.r.t.ย permutation $\left(\mathrm{๐๐ก},\mathrm{๐๐ข}\right)$ $\left(\mathrm{๐๐ก},\mathrm{๐๐ข}\right)$ (permutation applied to all items).

For instance, since $\mathrm{๐๐๐๐๐๐๐๐}$$\left(3,โฉ\mathrm{๐๐ก}-\mathbf{1}\mathrm{๐๐ข}-\mathbf{4}\mathrm{๐๐ก}-\mathit{9}\mathrm{๐๐ข}-\mathit{2},\mathrm{๐๐ก}-\mathbf{1}\mathrm{๐๐ข}-\mathbf{1}\mathrm{๐๐ก}-\mathit{3}\mathrm{๐๐ข}-\mathit{5},\mathrm{๐๐ก}-\mathbf{3}\mathrm{๐๐ข}-\mathbf{2}\mathrm{๐๐ก}-\mathit{7}\mathrm{๐๐ข}-\mathit{4},\mathrm{๐๐ก}-\mathbf{9}\mathrm{๐๐ข}-\mathbf{1}\mathrm{๐๐ก}-\mathit{9}\mathrm{๐๐ข}-\mathit{4}โช\right)$ is a solution, $\mathrm{๐๐๐๐๐๐๐๐}$$\left(3,โฉ\mathrm{๐๐ก}-\mathbf{4}\mathrm{๐๐ข}-\mathbf{1}\mathrm{๐๐ก}-\mathit{2}\mathrm{๐๐ข}-\mathit{9},\mathrm{๐๐ก}-\mathbf{1}\mathrm{๐๐ข}-\mathbf{1}\mathrm{๐๐ก}-\mathit{5}\mathrm{๐๐ข}-\mathit{3},\mathrm{๐๐ก}-\mathbf{2}\mathrm{๐๐ข}-\mathbf{3}\mathrm{๐๐ก}-\mathit{4}\mathrm{๐๐ข}-\mathit{7},\mathrm{๐๐ก}-\mathbf{1}\mathrm{๐๐ข}-\mathbf{9}\mathrm{๐๐ก}-\mathit{4}\mathrm{๐๐ข}-\mathit{9}โช\right)$ is also a valid solution.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ฐ๐๐๐๐ธ๐ฑ๐๐๐ด๐},\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ},\mathrm{๐ฟ๐ฐ๐ธ๐๐},\mathrm{๐๐พ๐๐๐ฒ๐ด},\mathrm{๐๐ฐ๐๐ถ๐ด๐}\right)$ denotes the fact that we can permute some source value with some distinct target value. The kind of value permutation we can perform is parameterized by five parameters:
• $\mathrm{๐ฐ๐๐๐๐ธ๐ฑ๐๐๐ด๐}$ is a list of paths of the form $\mathrm{๐ฐ๐๐ถ}\mathtt{0}$ or $\mathrm{๐ฐ๐๐ถ}\mathtt{1}.โฏ.\mathrm{๐ฐ๐๐ถ๐}.\mathrm{๐๐๐๐}$ $\left(nโฅ1\right)$, where:

• $\mathrm{๐ฐ๐๐ถ}\mathtt{0}$ is an argument of the global constraint of type domain variable, integer, or collection of domain variables or integers.

• $\mathrm{๐ฐ๐๐ถ}\mathtt{1}.โฏ.\mathrm{๐ฐ๐๐ถ๐}.\mathrm{๐๐๐๐}$ is a path to an integer attribute or to a collection of integers attribute of the global constraint. $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$, $\mathrm{๐ฐ๐๐ถ}\mathtt{2}$, ..., $\mathrm{๐ฐ๐๐ถ๐}$ are collections and $\mathrm{๐๐๐๐}$ is an attribute of $\mathrm{๐ฐ๐๐ถ๐}$ of type domain variable, integer, or collection of domain variables or integers. In this last context, all collections have the same number of items since we can only exchange tuples of values that have the same number of components. The path does not necessarily start from a top level collection.

Its purpose is to define the scope where the exchange of values, or tuples of values, will take place. Note that:

• The case corresponding to $\mathrm{๐ฐ๐๐ถ}\mathtt{0}$ is motivated by the fact that we sometimes want to express the fact that the value of an integer argument can be changed in such a way that we preserve the fact that we still have a solution.

• The case when $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$ is not a top level collection is motivated by the fact that we sometimes want to express the fact that the exchange of value takes place within a nested collection. In this context this implicitly defines several scopes for the exchange of values.

• The case where $\mathrm{๐ฐ๐๐ถ}\mathtt{1}.โฏ.\mathrm{๐ฐ๐๐ถ๐}.\mathrm{๐๐๐๐}$ is a path to a collection of variables or integers allows expressing swap between tuples of values (i.e.,ย the exchange of values is generalized to the exchange of tuples of values).

• $\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ}$ usually defines a partition $\mathrm{๐ซ}$ of integer values. Only when $\mathrm{๐ฐ๐๐ถ}\mathtt{1}.โฏ.\mathrm{๐ฐ๐๐ถ๐}.\mathrm{๐๐๐๐}$ is a path to a collection of variables or integers, $\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ}$ defines a partition of tuples of integer values. For the time being we focus on the first case, i.e.,ย a partition of integer values. Its aim is to define classes of values from which the source and target values will be selected. In order to define a partition $\mathrm{๐ซ}$ we first introduce the notion of set of values generator. Within these definitions, $u$ and $v$ both denote (1)ย an integer value, or (2)ย an argument of the constraint of type integer or domain variable, or (3)ย a term of the form $|\mathrm{๐ฐ๐๐ถ}|$ where $\mathrm{๐ฐ๐๐ถ}$ is an argument of type collection denoting the number of items of the collection, (4)ย a sum or difference of elements of the formย (1), (2) orย (3). We have two kinds of generators, namely:

• A basic set of values generator is defined by one of those:

• $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$, where $\mathrm{๐ฐ๐๐ถ}$ is an argument of type collection and $\mathrm{๐๐๐๐}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}$ of type integer or domain variable, denotes the set of all values assigned to $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$.

• $\mathrm{๐๐๐๐๐}\left(\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}\right)$, where $\mathrm{๐ฐ๐๐ถ}$ is an argument of type collection and $\mathrm{๐๐๐๐}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}$ of type integer or domain variable, denotes the set of all elements of $\mathrm{โค}$ that are not assigned to $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ฐ๐๐ถ}\mathtt{1}.\mathrm{๐๐๐๐}\mathtt{1},\mathrm{๐ฐ๐๐ถ}\mathtt{2}.\mathrm{๐๐๐๐}\mathtt{2}\right)$, where $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$ (respectively $\mathrm{๐ฐ๐๐ถ}\mathtt{2}$) is an argument of type collection and $\mathrm{๐๐๐๐}\mathtt{1}$ (respectively $\mathrm{๐๐๐๐}\mathtt{2}$) is an attribute of $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$ (respectively $\mathrm{๐ฐ๐๐ถ}\mathtt{2}$) of type integer or domain variable, denotes the set of all elements of $\mathrm{โค}$ that are assigned to $\mathrm{๐ฐ๐๐ถ}\mathtt{1}.\mathrm{๐๐๐๐}\mathtt{1}$ but not to $\mathrm{๐ฐ๐๐ถ}\mathtt{2}.\mathrm{๐๐๐๐}\mathtt{2}$.

• $u$, denotes the set $\left\{u\right\}$.

• $\mathrm{๐๐๐}\left(\mathrm{๐}\right)$, , denotes the set of all integers $e$ such that the comparison $e\mathrm{๐๐๐}u$ holds.

• $\mathrm{๐๐}\left(u,v\right)$, $\left(uโคv\right)$, denotes the set of all integers located in interval $\left[u,v\right]$.

• $\mathrm{๐๐๐๐๐}\left(u,v\right)$, $\left(uโคv\right)$, denotes the set of all integers not located in interval $\left[u,v\right]$.

• $\mathrm{๐๐๐}\left(u,v\right)$, $\left(0, denotes all integer values in $\mathrm{โค}$ that have $v$ as remainder when divided by $u$.remainder$\left(a,n\right)=a-nโ\frac{a}{n}โ$.

• Given set of values generators ${\mathrm{๐ฎ}}_{1}$, ${\mathrm{๐ฎ}}_{2}$, $...$, ${\mathrm{๐ฎ}}_{n}$ $\left(nโฅ2\right)$, a compound set of values generator is defined by:

• $\left[{\mathrm{๐ฎ}}_{1},{\mathrm{๐ฎ}}_{2},...,{\mathrm{๐ฎ}}_{n}\right]$ denotes all values that are in at least one of the sets ${\mathrm{๐ฎ}}_{1}$, ${\mathrm{๐ฎ}}_{2}$, $...$, ${\mathrm{๐ฎ}}_{n}$.

• $\mathrm{๐๐๐๐๐}\left(\left[{\mathrm{๐ฎ}}_{1},{\mathrm{๐ฎ}}_{2},...,{\mathrm{๐ฎ}}_{n}\right]\right)$ denotes all values of $\mathrm{โค}$ that are not in any set ${\mathrm{๐ฎ}}_{1}$, ${\mathrm{๐ฎ}}_{2}$, $...$, ${\mathrm{๐ฎ}}_{n}$.

We now describe the different partition generators. Within the description, $\mathrm{๐ฎ}$ and $\mathrm{๐}$ denote set of values generators. Classes of a partition are ordered. Unless explicitly specified, classes are ordered with respect to the smallest element they contain.

• $\mathrm{๐๐๐}$ denotes a partition $\mathrm{๐ซ}$ where, to each element of $\mathrm{โค}$ corresponds a specific class of $\mathrm{๐ซ}$ containing just that element.

• $\mathrm{๐๐๐}\left(\mathrm{๐ฎ}\right)$ denotes a partition $\mathrm{๐ซ}$ where, to each element of $\mathrm{๐ฎ}$ corresponds a specific class of $\mathrm{๐ซ}$ containing just that element.

• $\mathrm{๐๐๐}$ denotes a partition $\mathrm{๐ซ}$ containing one single class of values corresponding to all integer values in $\mathrm{โค}$.

• $\mathrm{๐๐๐}\left(\mathrm{๐ฎ}\right)$ denotes a partition $\mathrm{๐ซ}$ containing one single class of values corresponding to the elements of $\mathrm{๐ฎ}$.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ฎ}\right)$ denotes of partition $\mathrm{๐ซ}$ containing two classes of values: a first class corresponding to the elements of $\mathrm{๐ฎ}$, and a second class consisting of all elements of $\mathrm{โค}$ that are not in $\mathrm{๐ฎ}$.

• $\mathrm{๐๐๐๐}_\mathrm{๐๐๐๐}\left(\mathrm{๐ฎ},\mathrm{๐}\right)$ denotes of partition $\mathrm{๐ซ}$ containing two classes of values: a first class corresponding to the elements of $\mathrm{๐ฎ}$ but not in $\mathrm{๐}$, and a second class consisting of all elements of $\mathrm{โค}$ that are neither in $\mathrm{๐ฎ}$ nor in $\mathrm{๐}$.

• $\mathrm{๐๐๐๐๐๐๐๐๐}\left(u\right)$, $\left(u>0\right)$, denotes a partition $\mathrm{๐ซ}$ containing intervals of the form $\left[kยทu,kยทu+u-1\right]$, $kโ\mathrm{โค}$.

• $\mathrm{๐๐๐}\left(u\right)$, $\left(u>0\right)$, denotes a partition $\mathrm{๐ซ}$ such that each class of $\mathrm{๐ซ}$ is made up from all integers in $\mathrm{โค}$ that have the same remainder when divided by $u$.remainder$\left(a,n\right)=a-nโ\frac{a}{n}โ$.

• $\mathrm{๐๐๐๐}\left(P\right)$, where $P$ is a collection of collections of integers passed as one of the arguments of the constraint, where each integer occurs once, denotes a partition $\mathrm{๐ซ}$ such that each class corresponds to the elements of one of the collections of $P$. Classes are ordered with respect to their occurrence in $P$.

When $\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ}$ defines a partition of tuples, where each tuple consists of $k$ integers, $\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ}$ can only be set to $\mathrm{๐๐๐}$. In this context $\mathrm{๐๐๐}$ denotes a partition $\mathrm{๐ซ}$ where, to each element of ${\mathrm{โค}}^{k}$ corresponds a specific class of $\mathrm{๐ซ}$ containing just that element.

• $\mathrm{๐ฟ๐ฐ๐ธ๐๐}$ is one of the symbols , $=$, $<$, $โฅ$, $>$, $โค$, or $\mathrm{๐๐๐๐๐๐๐๐}$. It specifies a set of pairs $\left\{\left({p}_{{i}_{1}},{p}_{{j}_{1}}\right),\left({p}_{{i}_{2}},{p}_{{j}_{2}}\right),...,\left({p}_{{i}_{n}},{p}_{{j}_{n}}\right)\right\}$ of elements of the partition $\mathrm{๐ซ}$ such that, when $\mathrm{๐ฟ๐ฐ๐ธ๐๐}$ is different from $\mathrm{๐๐๐๐๐๐๐๐}$,When $\mathrm{๐ฟ๐ฐ๐ธ๐๐}$ is equal to $\mathrm{๐๐๐๐๐๐๐๐}$ we just consider all possible pairs. the condition ${i}_{k}\mathrm{๐ฟ๐ฐ๐ธ๐๐}{j}_{k}$ holds for all $kโ\left[1,n\right]$. The aim of the $\mathrm{๐ฟ๐ฐ๐ธ๐๐}$ parameter is to allow to specify which partitions of $\mathrm{๐ซ}$ the source value $u$ and the target value $v$ should belong to. In fact there should exist a pair $\left({p}_{{i}_{k}},{p}_{{j}_{k}}\right)$, $\left(kโ\left[1,n\right]\right)$, such that $uโ{p}_{{i}_{k}}$ and $vโ{p}_{{j}_{k}}$.

• $\mathrm{๐๐พ๐๐๐ฒ๐ด}$ is one of the options $\mathrm{๐๐๐}$ or $\mathrm{๐๐๐๐๐๐๐๐}$:

• When set to $\mathrm{๐๐๐}$ it indicates that all occurrences of the source value should be replaced by the target value. All occurrences of the target value, if it is used, should also be replaced by the source value.

• When set to $\mathrm{๐๐๐๐๐๐๐๐}$ it tells that not necessarily all occurrences of the source value should be replaced. The target value is left unchanged.

• $\mathrm{๐๐ฐ๐๐ถ๐ด๐}$ is one of the options $\mathrm{๐๐}$ or $\mathrm{๐๐๐๐๐๐๐๐}$:

• When set to $\mathrm{๐๐}$ it indicates that the target value should correspond to an already existing value of $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$.

• When set to $\mathrm{๐๐๐๐๐๐๐๐}$ it tells that the target value can either correspond to an already existing value of $\mathrm{๐ฐ๐๐ถ}.\mathrm{๐๐๐๐}$, or designate a new value.

We now define the set of conditions we must have in order to exchange a source and a target values. Given,

1. a ground instance of a global constraint $C$,

2. a path $\mathrm{๐ฟ๐ฐ๐๐ท}$ that designates either an argument of type integer, or an integer attribute of a collection that occurs, possibly in a nested way, as one of the arguments of $C$,

3. the sets of values ${\mathrm{๐ฑ}}_{1},{\mathrm{๐ฑ}}_{2},...,{\mathrm{๐ฑ}}_{h}$ that are assigned to $\mathrm{๐ฟ๐ฐ๐๐ท}$ in the ground instance of $C$,We may have more than one set when the path does not start from a top level collection.

4. a partition of integer values $\mathrm{๐ซ}$ derived from $\mathrm{๐ฟ๐ฐ๐๐๐ธ๐๐ธ๐พ๐ฝ}$,

5. a set of pairs $\left\{\left({p}_{{i}_{1}},{p}_{{j}_{1}}\right),\left({p}_{{i}_{2}},{p}_{{j}_{2}}\right),...,\left({p}_{{i}_{n}},{p}_{{j}_{n}}\right)\right\}$ of elements of the partition $\mathrm{๐ซ}$ such that the condition $\mathrm{๐ฟ๐ฐ๐ธ๐๐}=\mathrm{๐๐๐๐๐๐๐๐}โจ{i}_{k}\mathrm{๐ฟ๐ฐ๐ธ๐๐}{j}_{k}$ holds for all $kโ\left[1,n\right]$,

6. a $\mathrm{๐๐ฐ๐๐ถ๐ด๐}$ option,

given one of the sets of values ${\mathrm{๐ฑ}}_{\mathrm{ฮฑ}}$, $\left(1โค\mathrm{ฮฑ}โคh\right)$, a source value $u$ can be permuted with a target value $v$ if and only if the following conditions are all satisfied:

1. (source and target values should be distinct),

2. $uโ{\mathrm{๐ฑ}}_{\mathrm{ฮฑ}}$ (source value, i.e.,ย value that is replaced, should be part of the solution),

3. $โk|uโ{p}_{{i}_{k}}โงvโ{p}_{{j}_{k}}$ (source and target values should be located in the appropriate partition classes),

4. $\mathrm{๐๐ฐ๐๐ถ๐ด๐}=\mathrm{๐๐}โvโ{\mathrm{๐ฑ}}_{\mathrm{ฮฑ}}$ (if $\mathrm{๐๐ฐ๐๐ถ๐ด๐}=\mathrm{๐๐}$ then the target value should also be part of the solution).

If $\mathrm{๐๐พ๐๐๐ฒ๐ด}$ is equal to $\mathrm{๐๐๐}$ we replace each occurrence of $u$ by $v$, and conversely each occurrence of $v$ by $u$. Otherwise we replace at least one occurrence of $u$ by $v$.

Without loss of generality, when $\mathrm{๐ฟ๐ฐ๐๐ท}$ designates a collection of integer values or domain variables, the exchange of tuples of values is defined in a similar way.

We now provide a number of examples of value symmetry and illustrate how to encode them with the five parameters we just introduced. We start from the most common value symmetry, namely exchanging all occurrences of two distinct values or replacing all occurrences of a value by an unused value.

EXAMPLEย 1: As a first example, consider the $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which enforces all variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ to take distinct values. Note that we can exchange two assigned values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, or replace an assigned value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ by a new value, i.e.,ย a value that is not yet assigned to any variable of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย Two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be swapped; a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be renamed to any unused value.

For instance, since $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$$\left(โฉ5,1,\mathbf{9},3โช\right)$ is a solution, we can replace value 9 by a not yet assigned value, 0 for instance, and get another valid solution $\mathrm{๐๐๐๐๐๐๐๐๐๐๐๐}$$\left(โฉ5,1,\mathbf{0},3โช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

EXAMPLEย 2: As a second example, consider the $\mathrm{๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ ๐ฐ๐ป},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which enforces $\mathrm{๐ฝ๐ ๐ฐ๐ป}$ to be equal to the number of distinct values assigned to the variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$. Note that we can exchange all occurrences of two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, or replace all occurrences of an assigned value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ by a new value, i.e.,ย a value that is not yet assigned to any variable of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย All occurrences of two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be swapped; all occurrences of a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be renamed to any unused value.

For instance, since $\mathrm{๐๐๐๐๐๐}$$\left(4,โฉ3,\mathbf{1},7,\mathbf{1},6โช\right)$ is a solution, we can replace all occurrences of value 1 by a not yet assigned value, 8 for instance, and get another valid solution $\mathrm{๐๐๐๐๐๐}$$\left(4,โฉ3,\mathbf{8},7,\mathbf{8},6โช\right)$. We can also swap all occurrences of value 1 and value 3, and get another valid solution $\mathrm{๐๐๐๐๐๐}$$\left(4,โฉ\mathbf{1},\mathbf{3},7,\mathbf{3},6โช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

We now introduce a third and a fourth example where the meta -data used for describing value symmetry, , is replaced by , i.e.,ย we are not allowed to introduce an unused value.

EXAMPLEย 3: As a third example, consider the $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(\mathrm{๐ผ๐ธ๐ฝ๐ณ๐ธ๐๐},$ $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which enforces for each pair $\left({\mathrm{๐๐๐}}_{i},{\mathrm{๐๐๐}}_{j}\right)$ of distinct variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ that $|{\mathrm{๐๐๐}}_{i}-{\mathrm{๐๐๐}}_{j}|โฅ\mathrm{๐ผ๐ธ๐ฝ๐ณ๐ธ๐๐}$. Note that we can exchange two occurrences of distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, but we cannot replace an existing value $u$ by a new value $v$ (since the new value $v$ may be too close from another existing value $w$, i.e.,ย $|v-w|<\mathrm{๐ผ๐ธ๐ฝ๐ณ๐ธ๐๐}$). Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย Two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be swapped.

For instance, since $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(2,โฉ\mathbf{5},1,\mathbf{9},3โช\right)$ is a solution, we can swap values 5 and 9, and get another valid solution $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(2,โฉ\mathbf{9},1,\mathbf{5},3โช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐}$ tells that the source value has to be replaced by an already existing value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

EXAMPLEย 4: As a fourth example, consider the $\mathrm{๐๐๐๐๐๐๐}$$\left(\mathrm{๐ผ๐ธ๐ฝ},$ $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint, which enforces $\mathrm{๐ผ๐ธ๐ฝ}$ to be equal to the minimum value of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$. Note that we can exchange all occurrences of two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, but we cannot replace an existing value $u$ by a new value $v$ (since the new value $v$ may be smaller than $\mathrm{๐ผ๐ธ๐ฝ}$). Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย All occurrences of two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be swapped.

For instance, since $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ3,2,7,2,6โช\right)$ is a solution, we can swap values 2 and 6, and get another valid solution $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ3,6,7,6,2โช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐}$ tells that the source value has to be replaced by an already existing value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

We now present three examples where, using the partition generator $\mathrm{๐๐๐๐}\left(\mathrm{๐ฎ}\right)$, we consider two classes of values: a first class consisting of elements of $\mathrm{๐ฎ}$ and a second class of elements of $\mathrm{โค}$ not in $\mathrm{๐ฎ}$. The first example corresponds to a value symmetry where values from the same class are exchanged, while the two other examples consider permutation of values between distinct classes with respect to a given class ordering.

EXAMPLEย 5: As a fifth example, consider the $\mathrm{๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ ๐ฐ๐},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐},\mathrm{๐ ๐ฐ๐ป๐๐ด๐}\right)$ constraint, which enforces $\mathrm{๐ฝ๐ ๐ฐ๐}$ to be equal to the number of variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ that are assigned a value in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}$. We focus on exchanges of values that take place within $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$. Note that, given a value that both occurs in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ and in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}$, we can replace it by any value in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}$. But we can also replace a value that occurs in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, but not in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}$, by any value not in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}$. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}\right),=,\mathrm{๐๐๐๐๐๐๐๐},\mathrm{๐๐๐๐๐๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย An occurrence of a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ that belongs to $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$ (resp.ย does not belong to $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$) can be replaced by any other value in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$ (resp.ย not in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$).

For instance, since $\mathrm{๐๐๐๐๐}$$\left(3,โฉ4,\mathbf{5},5,\mathbf{4},1โช,โฉ1,5,8โช\right)$ is a solution, we can swap the first occurrence of value 5 with the second occurrence of value 4 in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$, and get another valid solution $\mathrm{๐๐๐๐๐}$$\left(3,โฉ4,\mathbf{4},5,\mathbf{5},1โช,โฉ1,5,8โช\right)$.

The five parameters of $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}\right),=,\mathrm{๐๐๐๐๐๐๐๐},$ $\mathrm{๐๐๐๐๐๐๐๐}\right)$ have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}\right)$ defines two set of values, a first set ${\mathrm{๐ฎ}}_{1}$ corresponding to all values in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$, and a second set ${\mathrm{๐ฎ}}_{2}$ corresponding to all values not in $\mathrm{๐ ๐ฐ๐ป๐๐ด๐}.\mathrm{๐๐๐}$.

• $=$ indicates that the exchange of values takes place within the same set, i.e.,ย within ${\mathrm{๐ฎ}}_{1}$ or within ${\mathrm{๐ฎ}}_{2}$.

• $\mathrm{๐๐๐๐๐๐๐๐}$ specifies that one occurrence of the source value has to be replaced by the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

EXAMPLEย 6: As a sixth example, consider the $\mathrm{๐๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐},\mathrm{๐ ๐ฐ๐ป๐๐ด}\right)$ constraint, which enforces at least $\mathrm{๐ฝ}$ variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ to be assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. Note that, given an occurrence of value that belongs to $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ that is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, we can replace it by any other value that is also different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.Within the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, this swap does not change the number of variables that are assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. But we can also replace it by value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ since this does not decrease the number of variables that are assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right),โฅ,\mathrm{๐๐๐๐๐๐๐๐},\mathrm{๐๐๐๐๐๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย An occurrence of a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ that is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ can be replaced by any other value.

For instance, since $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ4,2,4,5,\mathbf{2}โช,4\right)$ is a solution, we can replace the second occurrence of value 2 with a value that is different from value 4, e.g.,ย value 8, and get another valid solution $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ4,2,4,5,\mathbf{8}โช,4\right)$. We can also replace the second occurrence of value 2 with value 4 and get another valid solution $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ4,2,4,5,\mathbf{4}โช,4\right)$.

The five parameters of $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right),โฅ,\mathrm{๐๐๐๐๐๐๐๐},$ $\mathrm{๐๐๐๐๐๐๐๐}\right)$ have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right)$ defines two set of values, a first set ${\mathrm{๐ฎ}}_{1}$ containing only value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, and a second set ${\mathrm{๐ฎ}}_{2}$ corresponding to all values different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.

• $โฅ$ indicates that the the source and target values should respectively belong to sets ${\mathrm{๐ฎ}}_{i}$ and ${\mathrm{๐ฎ}}_{j}$ where $iโฅj$:

1. If the source value is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the source value belongs to ${\mathrm{๐ฎ}}_{2}$), then the target value can indifferently be equal or not equal to $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the target value belongs to ${\mathrm{๐ฎ}}_{1}$ or ${\mathrm{๐ฎ}}_{2}$).

2. If the source value is equal to $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the source value belongs to ${\mathrm{๐ฎ}}_{1}$), then the target value is equal to $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the target value also belongs to ${\mathrm{๐ฎ}}_{1}$). But in this case no exchange can take place since the source and target values are identical.

• $\mathrm{๐๐๐๐๐๐๐๐}$ specifies that one occurrence of the source value has to be replaced by the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

EXAMPLEย 7: As a seventh example, consider the $\mathrm{๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐},\mathrm{๐ ๐ฐ๐ป๐๐ด}\right)$ constraint, which enforces at most $\mathrm{๐ฝ}$ variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ to be assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. Note that, given an occurrence of value that belongs to $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, and that is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, we can replace it by any other value that is also different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.Within the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$, this swap does not change the number of variables that are assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. But we can also replace an occurrence of value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ by a value that is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, since this does not increase the number of variables that are assigned value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right),โค,\mathrm{๐๐๐๐๐๐๐๐},\mathrm{๐๐๐๐๐๐๐๐}\right)$, to which corresponds the following textual form:

ย ย ย ย An occurrence of a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be replaced by any other value that is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.

For instance, since $\mathrm{๐๐๐๐๐๐}$$\left(1,โฉ4,2,\mathbf{4},5โช,2\right)$ is a solution, we can replace the second occurrence of value 4 with a value that is different from value 2, e.g.,ย value 8, and get another valid solution $\mathrm{๐๐๐๐๐๐}$$\left(1,โฉ4,2,\mathbf{8},5โช,2\right)$. But, within $\mathrm{๐๐๐๐๐๐}$$\left(1,โฉ4,\mathbf{2},4,5โช,2\right)$, we can also replace value 2 with any other value, e.g.ย value 4 and get another valid solution $\mathrm{๐๐๐๐๐๐}$$\left(1,โฉ4,\mathbf{4},4,5โช,2\right)$.

The five parameters of $\mathrm{๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right],\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right),โค,\mathrm{๐๐๐๐๐๐๐๐},$ $\mathrm{๐๐๐๐๐๐๐๐}\right)$ have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ collection.

• $\mathrm{๐๐๐๐}\left(\mathrm{๐ ๐ฐ๐ป๐๐ด}\right)$ defines two set of values, a first set ${\mathrm{๐ฎ}}_{1}$ containing only value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, and a second set ${\mathrm{๐ฎ}}_{2}$ corresponding to all values different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.

• $โค$ indicates that the the source and target values should respectively belong to sets ${\mathrm{๐ฎ}}_{i}$ and ${\mathrm{๐ฎ}}_{j}$ where $iโคj$:

1. If the source value is different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the source value belongs to ${\mathrm{๐ฎ}}_{2}$), then the target value is also different from $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the target value belongs to ${\mathrm{๐ฎ}}_{2}$). This supports the fact that we do not want to increase the number of occurrences of value $\mathrm{๐ ๐ฐ๐ป๐๐ด}$.

2. If the source value is equal to $\mathrm{๐ ๐ฐ๐ป๐๐ด}$ (i.e.,ย the source value belongs to ${\mathrm{๐ฎ}}_{1}$), then there is no restriction on the target value (i.e.,ย the target value belongs to ${\mathrm{๐ฎ}}_{1}$ or to ${\mathrm{๐ฎ}}_{2}$). But the set ${\mathrm{๐ฎ}}_{1}$ is not relevant since the target value would also be fixed to $\mathrm{๐ ๐ฐ๐ป๐๐ด}$, and, in this context, no exchange can take place.

• $\mathrm{๐๐๐๐๐๐๐๐}$ specifies that one occurrence of the source value has to be replaced by the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

We now illustrate the fact that the scope of value symmetry can sometimes be extended to several collections of variables. For this purpose we consider the $\mathrm{๐๐๐๐๐๐}$ constraint.

EXAMPLEย 8: Consider the $\mathrm{๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1},\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1},$ $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}\right)$ constraint, which enforces the two following conditions:

• $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{1}$ is the number of variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ taking a value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$.

• $\mathrm{๐ฝ๐ฒ๐พ๐ผ๐ผ๐พ๐ฝ}\mathtt{2}$ is the number of variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$ taking a value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$.

Note that we can exchange all occurrences of two distinct values of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ or $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$, or replace all occurrences of an assigned value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ or $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$ by a new value, i.e.,ย a value that is not yet assigned to any variable of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ and $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย All occurrences of two distinct values in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}.\mathrm{๐๐๐}$ or $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}.\mathrm{๐๐๐}$ can be swapped; all occurrences of a value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}.\mathrm{๐๐๐}$ or $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}.\mathrm{๐๐๐}$ can be renamed to any unused value.

For instance, since $\mathrm{๐๐๐๐๐๐}$$\left(3,4,โฉ\mathbf{1},9,\mathbf{1},5โช,โฉ2,\mathbf{1},9,9,6,9โช\right)$ is a solution, we can replace all occurrences of value 1 by a not yet assigned value, 7 for instance, and get another valid solution $\mathrm{๐๐๐๐๐๐}$$\left(3,4,โฉ\mathbf{7},9,\mathbf{7},5โช,โฉ2,\mathbf{7},9,9,6,9โช\right)$.

The five parameters of $\mathrm{๐๐๐๐๐๐๐๐}\right)$ have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}.\mathrm{๐๐๐},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ and $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$ collections.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{1}$ or $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\mathtt{2}$.

We now present an example that illustrates the fact that value symmetry can also occur between two arguments that both correspond to a domain variable, i.e.,ย not just between the variables of a collection of variables. For this purpose we consider the $\mathrm{๐๐๐}$ constraint.

EXAMPLEย 9: Consider the $\mathrm{๐๐๐}$$\left(\mathrm{๐ ๐ฐ๐}\mathtt{1},\mathrm{๐ ๐ฐ๐}\mathtt{2}\right)$ constraint, which enforces $\mathrm{๐ ๐ฐ๐}\mathtt{1}$ to be less than or equal to $\mathrm{๐ ๐ฐ๐}\mathtt{2}$. Note that $\mathrm{๐ ๐ฐ๐}\mathtt{1}$ can be decreased to any value, and that $\mathrm{๐ ๐ฐ๐}\mathtt{1}$ can be increased up to $\mathrm{๐ ๐ฐ๐}\mathtt{2}$. Similarly, $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ can be increased to any value, and $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ can be decreased down to $\mathrm{๐ ๐ฐ๐}\mathtt{1}$. Within the electronic catalogue this is respectively represented by the following meta -data, and , to which corresponds the following textual form:

ย ย ย ย $\mathrm{๐ ๐ฐ๐}\mathtt{1}$ can be replaced by any value $โค$ $\mathrm{๐ ๐ฐ๐}\mathtt{2}$;

ย ย ย ย $\mathrm{๐ ๐ฐ๐}\mathtt{2}$ can be replaced by any value $โฅ$ $\mathrm{๐ ๐ฐ๐}\mathtt{1}$.

For instance, since $\mathrm{๐๐๐}$$\left(\mathbf{2},9\right)$ is a solution, we can replace value 2 by any value less than or equal to 9, e.g.ย value 5 and get another valid solution $\mathrm{๐๐๐}$$\left(\mathbf{5},9\right)$. But, within $\mathrm{๐๐๐}$$\left(2,\mathbf{9}\right)$, we can also replace value 9 with any other value greater than or equal to 2, e.g.ย value 4 and get another valid solution $\mathrm{๐๐๐}$$\left(2,\mathbf{4}\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐}\mathtt{1}\right]$ indicates that the modification takes place within the value assigned to the argument $\mathrm{๐ ๐ฐ๐}\mathtt{1}$ of the constraint $\mathrm{๐๐๐}$.

• $\mathrm{๐๐๐}\left(โค\left(\mathrm{๐ ๐ฐ๐}\mathtt{2}\right)\right)$ defines the partition of values $\mathrm{๐ซ}=...,\left\{\mathrm{๐ ๐ฐ๐}\mathtt{2}-2\right\},\left\{\mathrm{๐ ๐ฐ๐}\mathtt{2}-1\right\},\left\{\mathrm{๐ ๐ฐ๐}\mathtt{2}\right\}$ (i.e.,ย we only consider values that are less than or equal to $\mathrm{๐ ๐ฐ๐}\mathtt{2}$).

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be replaced by the target value. Note that, since the scope of the change is reduced to one single variable, we have one occurrence of the source value and no occurrence of the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value will be replaced by a new value.

The meta -data has a similar explanation.

We now present two examples related to the $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$ constraint. The first example illustrates the fact that the path specifying the scope of the exchange can contain more than one collection. The second example exemplifies the fact that the path specifying the scope of the exchange does not necessarily start with a top level collection.

EXAMPLEย 10: Consider the $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐๐ด๐๐}\right)$ constraint which, given $|\mathrm{๐๐ด๐๐}|$ sets of domain variables, enforces that no value is assigned to more than one set. Note that we can swap all the occurrences of two values, or replace all occurrences of a value by a value that is not yet used. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย All occurrences of two distinct values of $\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}.\mathrm{๐๐๐}$ can be swapped; all occurrences of a value of $\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}.\mathrm{๐๐๐}$ can be renamed to any unused value.

For instance, since $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{1},9,\mathbf{1},5โช,\mathrm{๐๐๐}-โฉ7,2,7โชโช\right)$ is a solution, we can replace value 1 by any value that is different from the already used values 2, 5, 7, and 9, e.g.ย value 3, and get another valid solution $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{3},9,\mathbf{3},5โช,\mathrm{๐๐๐}-โฉ7,2,7โชโช\right)$. From the solution $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{1},9,\mathbf{1},5โช,\mathrm{๐๐๐}-โฉ7,\mathbf{2},7โชโช\right)$, we can also swap all occurrences of two values, e.g. values 1 and 2, and get another valid solution $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{2},9,\mathbf{2},5โช,\mathrm{๐๐๐}-โฉ7,\mathbf{1},7โชโช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}$ collections.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source value have to be exchanged with all occurrences of the target value.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source value can be replaced by an already existing value or by a new value, i.e.,ย a value not already used in $\mathrm{๐๐ด๐๐}.\mathrm{๐๐๐}.\mathrm{๐๐๐}$.

EXAMPLEย 11: Consider the $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐๐ด๐๐}\right)$ constraint which, given $|\mathrm{๐๐ด๐๐}|$ sets of domain variables, enforces that no value is assigned to more than one set. Note that, within any set, we can replace any occurrence of a value by another value that is already used in the same set. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย An occurrence of a value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ can be replaced by any value of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

For instance, since $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{1},9,1,5โช,\mathrm{๐๐๐}-โฉ7,2,7โชโช\right)$ is a solution, we can replace within the first set the first occurrence of value 1 by the already used value 5, and get another valid solution $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$$\left(โฉ\mathrm{๐๐๐}-โฉ\mathbf{5},9,1,5โช,\mathrm{๐๐๐}-โฉ7,2,7โชโช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$ collections. Note that since the corresponding path does not start from a top level collection (i.e.,ย $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ does not correspond to an argument of the $\mathrm{๐}_\mathrm{๐๐๐๐๐๐๐๐}$ constraint), this represents one set of values for each set: the scope of value symmetry is located within one single set.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}=...,\left\{-1\right\},\left\{0\right\},\left\{1\right\},...$ย .

• indicates that the exchange of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐๐๐๐๐๐}$ specifies that one occurrence of the source value has to be replaced by the target value.

• $\mathrm{๐๐}$ tells that the source value has to be replaced by an already existing value in $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}$.

We present a last example where the path specifying the scope of the exchange does not end with an attribute but rather with a collection. This can be seen as a generalisation of value symmetry where, instead of exchanging values, we exchange tuples of values. This kind of value symmetry occurs in constraints like $\mathrm{๐๐๐๐}_\mathrm{๐๐๐ก}_\mathrm{๐๐๐๐}$, $\mathrm{๐๐}_\mathrm{๐๐๐๐๐๐๐๐}$, $\mathrm{๐๐๐๐๐}$, $\mathrm{๐๐๐๐๐๐๐}$, $\mathrm{๐๐๐๐๐๐๐๐}$, or $\mathrm{๐๐๐๐๐๐๐}$.

EXAMPLEย 12: Consider the $\mathrm{๐๐๐๐๐๐๐}$$\left(\mathrm{๐ฝ๐ ๐ด๐ฒ},\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}\right)$ constraint which enforces an equality between $\mathrm{๐ฝ๐ ๐ด๐ฒ}$ and the number of distinct tuples of values taken by the vectors of the collection $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}$. Note that we can swap all the occurrences of two tuples of values, or replace all occurrences of a tuple of values by a tuple of values that is not yet used. Within the electronic catalogue this is represented by the following meta -data, , to which corresponds the following textual form:

ย ย ย ย All occurrences of two distinct tuples of values of $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}$ can be swapped; all occurrences of a tuple of values of $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}$ can be renamed to any unused tuple of values.

For instance, since $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ\mathrm{๐๐๐}-โฉ\mathbf{5},\mathbf{6}โช,\mathrm{๐๐๐}-โฉ9,2โช,\mathrm{๐๐๐}-โฉ\mathbf{5},\mathbf{6}โชโช\right)$ is a solution, we can replace all the occurrences of the tuple of values $โฉ5,6โช$ by any unused tuple of values, e.g.ย the tuple of values $โฉ1,2โช$, and get another valid solution $\mathrm{๐๐๐๐๐๐๐}$$\left(2,โฉ\mathrm{๐๐๐}-โฉ\mathbf{1},\mathbf{2}โช,\mathrm{๐๐๐}-โฉ9,2โช,\mathrm{๐๐๐}-โฉ\mathbf{1},\mathbf{2}โชโช\right)$.

The five parameters of have the following meaning:

• $\left[\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}\right]$ indicates that the modification takes place within the tuples of values assigned to the $\mathrm{๐๐๐}$ attribute of the $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}$ collections.

• $\mathrm{๐๐๐}$ defines the partition of values $\mathrm{๐ซ}={\mathrm{โค}}^{|\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}|}$.

• indicates that the exchange of tuple of values takes place between two distinct elements of $\mathrm{๐ซ}$.

• $\mathrm{๐๐๐}$ specifies that all occurrences of the source tuple of values have to be exchanged with all occurrences of the target tuple of values.

• $\mathrm{๐๐๐๐๐๐๐๐}$ tells that the source tuple of values can be replaced by an already existing tuple of values or by a new tuple of values, i.e.,ย a tuple of values not already used in $\mathrm{๐ ๐ด๐ฒ๐๐พ๐๐}.\mathrm{๐๐๐}$.

• $\mathrm{๐๐๐๐๐๐๐๐๐}\left(\mathrm{๐ฐ๐๐๐๐ธ๐ฑ๐๐๐ด๐}\right)$ denotes the fact that we add a constant to some collection attributes (i.e.,ย we express the fact that solutions are preserved under some specific translation). $\mathrm{๐ฐ๐๐๐๐ธ๐ฑ๐๐๐ด๐}$ is a list of terms of the form $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$, or $\mathrm{๐ฐ๐๐ถ}\mathtt{2}.\mathrm{๐๐๐๐}$, or $\mathrm{๐ฐ๐๐ถ}\mathtt{3}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}$, where:

• $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$ is an argument of the global constraint of type domain variable or integer.

• $\mathrm{๐ฐ๐๐ถ}\mathtt{2}$ is an argument of the global constraint that corresponds to a collection, and $\mathrm{๐๐๐๐}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}\mathtt{2}$ of type domain variable or integer.

• $\mathrm{๐ฐ๐๐ถ}\mathtt{3}$ is an argument of the global constraint that corresponds to a collection, and ${\mathrm{๐๐๐๐}}_{\mathrm{๐}}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}\mathtt{3}$ of type collection, and ${\mathrm{๐๐๐๐}}_{\mathrm{๐}}$ is an attribute of $\mathrm{๐ฐ๐๐ถ}\mathtt{3}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}$ of type domain variable or integer.

Its purpose is to define all the elements that have to be simultaneously incremented by one and the same constant.

• The case corresponding to $\mathrm{๐ฐ๐๐ถ}\mathtt{1}$ is motivated by the fact that we sometimes want to increment an argument that is a domain variable or an integer.

• The case corresponding to $\mathrm{๐ฐ๐๐ถ}\mathtt{2}.\mathrm{๐๐๐๐}$ is the standard case where we want to express that we increment attribute $\mathrm{๐๐๐๐}$ of all items of a collection that is passed as an argument of the global constraint.

• Finally, the last case $\mathrm{๐ฐ๐๐ถ}\mathtt{3}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}$ corresponds to the fact that we want to increment attribute ${\mathrm{๐๐๐๐}}_{\mathrm{๐}}$ of all items corresponding to $\mathrm{๐ฐ๐๐ถ}\mathtt{3}.{\mathrm{๐๐๐๐}}_{\mathrm{๐}}$.

We now provide two examples, where the translation is respectively applied on one single attribute and on two attributes of a collection.

EXAMPLEย 1: Consider the $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(\mathrm{๐ผ๐ธ๐ฝ๐ณ๐ธ๐๐},\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}\right)$ constraint which enforces for each pair $\left({\mathrm{๐๐๐}}_{i},{\mathrm{๐๐๐}}_{j}\right)$ of distinct variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ that $|{\mathrm{๐๐๐}}_{i}-{\mathrm{๐๐๐}}_{j}|โฅ\mathrm{๐ผ๐ธ๐ฝ๐ณ๐ธ๐๐}$. Note that we can add one and the same constant to all variables of the collection $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$ since this does not change the difference between any pair of variables. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐๐๐๐๐}\left(\left[\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}.\mathrm{๐๐๐}\right]\right)$, to which corresponds the following textual form:

ย ย ย ย One and the same constant can be added to the $\mathrm{๐๐๐}$ attribute of all items of $\mathrm{๐ ๐ฐ๐๐ธ๐ฐ๐ฑ๐ป๐ด๐}$.

For instance, since $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(2,โฉ\mathbf{5},\mathbf{1},\mathbf{9},\mathbf{3}โช\right)$ is a solution, we can add the constant 6 to all items of the collection $โฉ5,1,9,3โช$, and get another valid solution $\mathrm{๐๐๐}_\mathrm{๐๐๐}_\mathrm{๐๐๐๐}$$\left(2,โฉ\mathbf{11},\mathbf{7},\mathbf{15},\mathbf{9}โช\right)$.

EXAMPLEย 2: Consider the $\mathrm{๐๐๐๐๐๐๐๐๐๐}$$\left(\mathrm{๐๐ฐ๐๐บ๐},\mathrm{๐ป๐ธ๐ผ๐ธ๐}\right)$ constraint which enforces that at each point in time, the cumulated height of the set of tasks that overlap that point, does not exceed a given limit. Note that we can add one and the same constant to all $\mathrm{๐๐๐๐๐๐}$ and $\mathrm{๐๐๐}$ attributes of the different tasks of the $\mathrm{๐๐ฐ๐๐บ๐}$ collection. This operation simply shifts the overall schedule by a given constant without affecting the maximum resource consumption. Within the electronic catalogue this is represented by the following meta -data, $\mathrm{๐๐๐๐๐๐๐๐๐}\left(\left[\mathrm{๐๐ฐ๐๐บ๐}.\mathrm{๐๐๐๐๐๐},\mathrm{๐๐ฐ๐๐บ๐}.\mathrm{๐๐๐}\right]\right)$, to which corresponds the following textual form:

ย ย ย ย One and the same constant can be added to the $\mathrm{๐๐๐๐๐๐}$ and $\mathrm{๐๐๐}$ attributes of all items of $\mathrm{๐๐ฐ๐๐บ๐}$.

For instance, since

$\left(\begin{array}{c}โฉ\begin{array}{cccc}\mathrm{๐๐๐๐๐๐}-\mathbf{1}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-3\hfill & \mathrm{๐๐๐}-\mathbf{4}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{2}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-9\hfill & \mathrm{๐๐๐}-\mathbf{11}\hfill & \mathrm{๐๐๐๐๐๐}-2,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{3}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-10\hfill & \mathrm{๐๐๐}-\mathbf{13}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{6}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-6\hfill & \mathrm{๐๐๐}-\mathbf{12}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{7}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-2\hfill & \mathrm{๐๐๐}-\mathbf{9}\hfill & \mathrm{๐๐๐๐๐๐}-3\hfill \end{array}โช,8\hfill \end{array}\right)$

is a solution, we can add the constant 2 to all $\mathrm{๐๐๐๐๐๐}$ and $\mathrm{๐๐๐}$ attributes, and get another valid solution

$\left(\begin{array}{c}โฉ\begin{array}{cccc}\mathrm{๐๐๐๐๐๐}-\mathbf{3}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-3\hfill & \mathrm{๐๐๐}-\mathbf{6}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{4}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-9\hfill & \mathrm{๐๐๐}-\mathbf{13}\hfill & \mathrm{๐๐๐๐๐๐}-2,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{5}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-10\hfill & \mathrm{๐๐๐}-\mathbf{15}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{8}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-6\hfill & \mathrm{๐๐๐}-\mathbf{14}\hfill & \mathrm{๐๐๐๐๐๐}-1,\hfill \\ \mathrm{๐๐๐๐๐๐}-\mathbf{9}\hfill & \mathrm{๐๐๐๐๐๐๐๐}-2\hfill & \mathrm{๐๐๐}-\mathbf{11}\hfill & \mathrm{๐๐๐๐๐๐}-3\hfill \end{array}โช,8\hfill \end{array}\right).$

We conclude by listing other types of symmetries that we may also consider in the future, namely: