2.1.3. Restrictions

When defining the arguments of a global constraint, it is often the case that one needs to express additional conditions that refine the type declarations of its arguments. For this purpose we provide restrictions that allow for specifying these additional conditions. Each restriction has a name and a set of arguments and is described by the following items:

  • A small paragraph first describes the effect of the restriction,

  • An example points to a constraint using the restriction,

  • Finally, a ground instance, preceded by the symbol โŠณ, which satisfies the restriction is given. Similarly, a ground instance, preceded by the symbol โ–ธ, which violates the restriction is proposed. In this latter case, a bold font may be used for pointing to the source of the problem.

Currently the list of restrictions is:

  • ๐š’๐š—_๐š•๐š’๐šœ๐š(๐™ฐ๐š›๐š,๐™ป๐š’๐šœ๐š๐™ฐ๐š๐š˜๐š–๐šœ)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŠ๐š๐š˜๐š–,

    • ๐™ป๐š’๐šœ๐š๐™ฐ๐š๐š˜๐š–๐šœ is a non -empty list of distinct atoms.

    This restriction forces ๐™ฐ๐š›๐š to be one of the atoms specified in the list ๐™ป๐š’๐šœ๐š๐™ฐ๐š๐š˜๐š–๐šœ.

    EXAMPLE: An example of use of such restriction can be found in the ๐šŒ๐š‘๐šŠ๐š—๐š๐šŽ(๐™ฝ๐™ฒ๐™ท๐™ฐ๐™ฝ๐™ถ๐™ด,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚,๐™ฒ๐šƒ๐š) constraint: ๐š’๐š—_๐š•๐š’๐šœ๐š(๐™ฒ๐šƒ๐š,[=,โ‰ ,<,โ‰ฅ,>,โ‰ค]) forces the last argument ๐™ฒ๐šƒ๐š of the ๐šŒ๐š‘๐šŠ๐š—๐š๐šŽ constraint to take its value in the list of atoms [=,โ‰ ,<,โ‰ฅ,>,โ‰ค].

    โŠณ ๐šŒ๐š‘๐šŠ๐š—๐š๐šŽ(1,โŒฉ๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-6โŒช,โ‰ )

    โ–ธ ๐šŒ๐š‘๐šŠ๐š—๐š๐šŽ(1,โŒฉ๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-6โŒช,3)

  • ๐š’๐š—_๐š•๐š’๐šœ๐š(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›,๐™ป๐š’๐šœ๐š๐™ธ๐š—๐š)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š› is an attribute of type ๐š’๐š—๐š of the collection denoted by ๐™ฐ๐š›๐š,

    • ๐™ป๐š’๐šœ๐š๐™ธ๐š—๐š is a non -empty list of integers.

    This restriction enforces for all items of the collection ๐™ฐ๐š›๐š, the attribute ๐™ฐ๐š๐š๐š› to take its value within the list of integers ๐™ป๐š’๐šœ๐š๐™ธ๐š—๐š.

  • ๐š’๐š—_๐šŠ๐š๐š๐š›(๐™ฐ๐š›๐š1,๐™ฐ๐š๐š๐š›1,๐™ฐ๐š›๐š2,๐™ฐ๐š๐š๐š›2)

    • ๐™ฐ๐š›๐š1 is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›1 is an attribute of type ๐š๐šŸ๐šŠ๐š› of the collection denoted by ๐™ฐ๐š›๐š1,

    • ๐™ฐ๐š›๐š2 is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›2 is an attribute of type ๐š’๐š—๐š of the collection denoted by ๐™ฐ๐š›๐š2.

    Let ๐’ฎ 2 denote the set of values assigned to the ๐™ฐ๐š๐š๐š›2 attributes of the items of the collection ๐™ฐ๐š›๐š2. This restriction enforces the following condition: for all items of the collection ๐™ฐ๐š›๐š1, the attribute ๐™ฐ๐š๐š๐š›1 takes its value in the set ๐’ฎ 2 .

    EXAMPLE: An example of use of such restriction can be found in the ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ๐šœ(๐šƒ๐™ฐ๐š‚๐™บ๐š‚,๐™ผ๐™ฐ๐™ฒ๐™ท๐™ธ๐™ฝ๐™ด๐š‚,๐™ฒ๐šƒ๐š) constraint: ๐š’๐š—_๐šŠ๐š๐š๐š›(๐šƒ๐™ฐ๐š‚๐™บ๐š‚, ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ, ๐™ผ๐™ฐ๐™ฒ๐™ท๐™ธ๐™ฝ๐™ด๐š‚, ๐š’๐š) enforces that the ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ attribute of each task of the ๐šƒ๐™ฐ๐š‚๐™บ๐š‚ collection correspond to a machine identifier (i.e.,ย an ๐š’๐š attribute of the ๐™ผ๐™ฐ๐™ฒ๐™ท๐™ธ๐™ฝ๐™ด๐š‚ collection).

    โŠณ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ๐šœ(โŒฉ ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-1 ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-1 ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-2 ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-1 ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช,

    โŒฉ๐š’๐š-1 ๐šŒ๐šŠ๐š™๐šŠ๐šŒ๐š’๐š๐šข-9, ๐š’๐š-2 ๐šŒ๐šŠ๐š™๐šŠ๐šŒ๐š’๐š๐šข-8โŒช, โ‰ค)

    โ–ธ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ๐šœ(โŒฉ ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-5 ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-1 ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-2 ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š–๐šŠ๐šŒ๐š‘๐š’๐š—๐šŽ-1 ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช,

    โŒฉ๐š’๐š-1 ๐šŒ๐šŠ๐š™๐šŠ๐šŒ๐š’๐š๐šข-9, ๐š’๐š-2 ๐šŒ๐šŠ๐š™๐šŠ๐šŒ๐š’๐š๐šข-8โŒช, โ‰ค)

  • ๐š๐š’๐šœ๐š๐š’๐š—๐šŒ๐š(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›๐šœ)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›๐šœ is an attribute of type ๐š’๐š—๐š or ๐š๐šŸ๐šŠ๐š›, or a list (possibly empty) of distinct attributes of type ๐š’๐š—๐š or ๐š๐šŸ๐šŠ๐š› of the collection denoted by ๐™ฐ๐š›๐š.

    For all pairs of distinct items of the collection ๐™ฐ๐š›๐š this restriction enforces that there be at least one attribute specified by ๐™ฐ๐š๐š๐š›๐šœ with two distinct values. When ๐™ฐ๐š๐š๐š›๐šœ is the empty list all items of the collection ๐™ฐ๐š›๐š should be distinct.

    EXAMPLE: An example of use of such restriction can be found in the ๐šŒ๐šข๐šŒ๐š•๐šŽ(๐™ฝ๐™ฒ๐šˆ๐™ฒ๐™ป๐™ด,๐™ฝ๐™พ๐™ณ๐™ด๐š‚) constraint: ๐š๐š’๐šœ๐š๐š’๐š—๐šŒ๐š(๐™ฝ๐™พ๐™ณ๐™ด๐š‚,๐š’๐š—๐š๐šŽ๐šก) enforces that all ๐š’๐š—๐š๐šŽ๐šก attributes of the ๐™ฝ๐™พ๐™ณ๐™ด๐š‚ collection take distinct values.

    โŠณ๐šŒ๐šข๐šŒ๐š•๐šŽ(2,โŒฉ๐š’๐š—๐š๐šŽ๐šก-1 ๐šœ๐šž๐šŒ๐šŒ-2,๐š’๐š—๐š๐šŽ๐šก-2 ๐šœ๐šž๐šŒ๐šŒ-1,๐š’๐š—๐š๐šŽ๐šก-3 ๐šœ๐šž๐šŒ๐šŒ-3โŒช)

    โ–ธ๐šŒ๐šข๐šŒ๐š•๐šŽ(2,โŒฉ๐š’๐š—๐š๐šŽ๐šก-1 ๐šœ๐šž๐šŒ๐šŒ-2,๐š’๐š—๐š๐šŽ๐šก-1 ๐šœ๐šž๐šŒ๐šŒ-1,๐š’๐š—๐š๐šŽ๐šก-3 ๐šœ๐šž๐šŒ๐šŒ-3โŒช)

  • ๐š’๐š—๐šŒ๐š›๐šŽ๐šŠ๐šœ๐š’๐š—๐š_๐šœ๐šŽ๐šš(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›๐šœ)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›๐šœ is an attribute of type ๐š’๐š—๐š or a list of distinct attributes of type ๐š’๐š—๐š of the collection denoted by ๐™ฐ๐š›๐š.

    Let n and m respectively denote the number of items of the collection ๐™ฐ๐š›๐š, and the number of attributes of ๐™ฐ๐š๐š๐š›๐šœ. For the i th item of the collection ๐™ฐ๐š›๐š let t i denote the tuple of values โŒฉv i,1 ,v i,2 ,...,v i,m โŒช where v i,j is the value of the j th attribute of ๐™ฐ๐š๐š๐š›๐šœ of the i th item of ๐™ฐ๐š›๐š. The restriction enforces a strict lexicographical ordering on the tuples t 1 ,t 2 ,...,t n .

    EXAMPLE: An example of use of such restriction can be found in the ๐šŽ๐š•๐šŽ๐š–๐šŽ๐š—๐š_๐š–๐šŠ๐š๐š›๐š’๐šก(๐™ผ๐™ฐ๐š‡_๐™ธ,๐™ผ๐™ฐ๐š‡_๐™น,๐™ธ๐™ฝ๐™ณ๐™ด๐š‡_๐™ธ,๐™ธ๐™ฝ๐™ณ๐™ด๐š‡_๐™น,๐™ผ๐™ฐ๐šƒ๐š๐™ธ๐š‡,๐š…๐™ฐ๐™ป๐š„๐™ด) constraint:

    ๐š’๐š—๐šŒ๐š›๐šŽ๐šŠ๐šœ๐š’๐š—๐š_๐šœ๐šŽ๐šš(๐™ผ๐™ฐ๐šƒ๐š๐™ธ๐š‡,[๐š’,๐š“]) enforces that all items of the ๐™ผ๐™ฐ๐šƒ๐š๐™ธ๐š‡ collection be sorted in strictly increasing lexicographic order on the pair (๐š’,๐š“).

    โŠณ ๐šŽ๐š•๐šŽ๐š–๐šŽ๐š—๐š_๐š–๐šŠ๐š๐š›๐š’๐šก(2,2,1,2,โŒฉ๐š’-1 ๐š“-1 ๐šŸ-4, ๐š’-1 ๐š“-2 ๐šŸ-7,

    ๐š’-2 ๐š“-1 ๐šŸ-1, ๐š’-2 ๐š“-2 ๐šŸ-1โŒช,7)

    โ–ธ ๐šŽ๐š•๐šŽ๐š–๐šŽ๐š—๐š_๐š–๐šŠ๐š๐š›๐š’๐šก(2,2,1,2,โŒฉ๐š’-1 ๐š“-2 ๐šŸ-4, ๐š’-1 ๐š“-1 ๐šŸ-7,

    ๐š’-2 ๐š“-1 ๐šŸ-1, ๐š’-2 ๐š“-2 ๐šŸ-1โŒช,7)

  • ๐š—๐š˜๐š—_๐š’๐š—๐šŒ๐š›๐šŽ๐šŠ๐šœ๐š’๐š—๐š_๐šœ๐š’๐šฃ๐šŽ(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š› is an attribute of the collection denoted by ๐™ฐ๐š›๐š. This attribute should be of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—.

    This restriction enforces for each pair of consecutive items ๐™ฐ๐š›๐š[i], ๐™ฐ๐š›๐š[i+1] that the number of items of the collection ๐™ฐ๐š›๐š[i].๐™ฐ๐š๐š๐š› is greater than or equal to the number of items of the collection ๐™ฐ๐š›๐š[i+1].๐™ฐ๐š๐š๐š›.

    EXAMPLE: An example of use of such restriction can be found in the ๐š”_๐šž๐šœ๐šŽ๐š_๐š‹๐šข(๐š‚๐™ด๐šƒ๐š‚) constraint: ๐š—๐š˜๐š—_๐š’๐š—๐šŒ๐š›๐šŽ๐šŠ๐šœ๐š’๐š—๐š_๐šœ๐š’๐šฃ๐šŽ(๐š‚๐™ด๐šƒ๐š‚,๐šœ๐šŽ๐š) enforces for all consecutive pairs of items ๐š‚๐™ด๐šƒ๐š‚[i], ๐š‚๐™ด๐šƒ๐š‚[i+1] that the number of items of the collection ๐š‚๐™ด๐šƒ๐š‚[i].๐šœ๐šŽ๐š is not greater than or equal to the number of items of the collection ๐š‚๐™ด๐šƒ๐š‚[i+1].๐šœ๐šŽ๐š.

    โŠณ๐š”_๐šž๐šœ๐šŽ๐š_๐š‹๐šข(โŒฉ ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-1โŒช,

    ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-1โŒช,

    ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1โŒช โŒช)

    โ–ธ๐š”_๐šž๐šœ๐šŽ๐š_๐š‹๐šข(โŒฉ ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-1โŒช,

    ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1โŒช,

    ๐šœ๐šŽ๐š-โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-1โŒช โŒช)

  • ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ๐š(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›๐šœ)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›๐šœ is an attribute or a list of distinct attributes of the collection denoted by ๐™ฐ๐š›๐š.

    This restriction enforces that all attributes denoted by ๐™ฐ๐š๐š๐š›๐šœ be explicitly used within all items of the collection ๐™ฐ๐š›๐š.

    EXAMPLE: An example of use of such restriction can be found in the ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(๐šƒ๐™ฐ๐š‚๐™บ๐š‚,๐™ป๐™ธ๐™ผ๐™ธ๐šƒ) constraint: ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ๐š(๐šƒ๐™ฐ๐š‚๐™บ๐š‚,๐š‘๐šŽ๐š’๐š๐š‘๐š) enforces that all items of the ๐šƒ๐™ฐ๐š‚๐™บ๐š‚ collection mention the ๐š‘๐šŽ๐š’๐š๐š‘๐š attribute.

    โŠณ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

    โ–ธ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐จ๐ซ๐ข๐ ๐ข๐ง-2 ๐๐ฎ๐ซ๐š๐ญ๐ข๐จ๐ง-2 ๐ž๐ง๐-4,

    ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

    The ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ๐š restriction is usually systematically used for every attribute of a collection. It is not used when some attributes may be implicitly defined according to other attributes. In this context, we use the ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ_๐šŠ๐š_๐š•๐šŽ๐šŠ๐šœ๐š restriction, which we now introduce.

  • ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ_๐šŠ๐š_๐š•๐šŽ๐šŠ๐šœ๐š(๐™ฐ๐š๐š•๐šŽ๐šŠ๐šœ๐š,๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›๐šœ)

    • ๐™ฐ๐š๐š•๐šŽ๐šŠ๐šœ๐š is a positive integer,

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š›๐šœ is a non -empty list of distinct attributes of the collection denoted by ๐™ฐ๐š›๐š. The length of this list should be strictly greater than ๐™ฐ๐š๐š•๐šŽ๐šŠ๐šœ๐š.

    This restriction enforces that at least ๐™ฐ๐š๐š•๐šŽ๐šŠ๐šœ๐š attributes of the list ๐™ฐ๐š๐š๐š›๐šœ be explicitly used within all items of the collection ๐™ฐ๐š›๐š.

    EXAMPLE: An example of use of such restriction can be found in the ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(๐šƒ๐™ฐ๐š‚๐™บ๐š‚,๐™ป๐™ธ๐™ผ๐™ธ๐šƒ) constraint:

    ๐š›๐šŽ๐šš๐šž๐š’๐š›๐šŽ_๐šŠ๐š_๐š•๐šŽ๐šŠ๐šœ๐š(2,๐šƒ๐™ฐ๐š‚๐™บ๐š‚,[๐š˜๐š›๐š’๐š๐š’๐š—,๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—,๐šŽ๐š—๐š]) enforces that all items of the ๐šƒ๐™ฐ๐š‚๐™บ๐š‚ collection mention at least two attributes from the list of attributes [๐š˜๐š›๐š’๐š๐š’๐š—,๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—,๐šŽ๐š—๐š]. In this context, this stems from the fact that we have the equality ๐š˜๐š›๐š’๐š๐š’๐š—+๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—=๐šŽ๐š—๐š. This allows for retrieving the third attribute from the values of the two others.

    โŠณ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

    โ–ธ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐จ๐ซ๐ข๐ ๐ข๐ง-2 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

    ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

    ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

  • ๐šœ๐šŠ๐š–๐šŽ_๐šœ๐š’๐šฃ๐šŽ(๐™ฐ๐š›๐š,๐™ฐ๐š๐š๐š›)

    • ๐™ฐ๐š›๐š is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—,

    • ๐™ฐ๐š๐š๐š› is an attribute of the collection denoted by ๐™ฐ๐š›๐š. This attribute should be of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—.

    This restriction enforces that all collections denoted by ๐™ฐ๐š๐š๐š› have the same number of items.

    EXAMPLE: An example of use of such restriction can be found in the ๐š๐š’๐š๐š๐š—(๐™พ๐š๐šƒ๐™ท๐™พ๐šƒ๐™พ๐™ฟ๐™ด๐š‚) constraint๐™พ๐š๐šƒ๐™ท๐™พ๐šƒ๐™พ๐™ฟ๐™ด๐š‚ corresponds to the third item of the example presented at page 2.1.2.: ๐šœ๐šŠ๐š–๐šŽ_๐šœ๐š’๐šฃ๐šŽ(๐™พ๐š๐šƒ๐™ท๐™พ๐šƒ๐™พ๐™ฟ๐™ด๐š‚,๐š˜๐š›๐š๐š‘) forces all the items of the ๐™พ๐š๐šƒ๐™ท๐™พ๐šƒ๐™พ๐™ฟ๐™ด๐š‚ collection to be constituted from the same number of items (of type ๐™พ๐š๐šƒ๐™ท๐™พ๐šƒ๐™พ๐™ฟ๐™ด). From a practical point of view, this forces the ๐š๐š’๐š๐š๐š— constraint to take as its argument a set of points, a set of rectangles, ... , a set of orthotopes.

    โŠณ๐š๐š’๐š๐š๐š—(โŒฉ ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-2 ๐šœ๐š’๐šฃ-2 ๐šŽ๐š—๐š-4, ๐š˜๐š›๐š’-1 ๐šœ๐š’๐šฃ-3 ๐šŽ๐š—๐š-4โŒช,

    ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-4 ๐šœ๐š’๐šฃ-4 ๐šŽ๐š—๐š-8, ๐š˜๐š›๐š’-3 ๐šœ๐š’๐šฃ-3 ๐šŽ๐š—๐š-3โŒช,

    ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-9 ๐šœ๐š’๐šฃ-2 ๐šŽ๐š—๐š-11, ๐š˜๐š›๐š’-4 ๐šœ๐š’๐šฃ-3 ๐šŽ๐š—๐š-7โŒช โŒช)

    โ–ธ๐š๐š’๐š๐š๐š—(โŒฉ ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-2 ๐šœ๐š’๐šฃ-2 ๐šŽ๐š—๐š-4โŒช,

    ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-4 ๐šœ๐š’๐šฃ-4 ๐šŽ๐š—๐š-8, ๐š˜๐š›๐š’-3 ๐šœ๐š’๐šฃ-3 ๐šŽ๐š—๐š-3โŒช,

    ๐š˜๐š›๐š๐š‘-โŒฉ๐š˜๐š›๐š’-9 ๐šœ๐š’๐šฃ-2 ๐šŽ๐š—๐š-11, ๐š˜๐š›๐š’-4 ๐šœ๐š’๐šฃ-3 ๐šŽ๐š—๐š-7โŒช โŒช)

  • ๐šƒ๐šŽ๐š›๐š– 1 ๐™ฒ๐š˜๐š–๐š™๐šŠ๐š›๐š’๐šœ๐š˜๐š— ๐šƒ๐šŽ๐š›๐š– 2
    • ๐šƒ๐šŽ๐š›๐š– 1 is a term. A term is an expression that can be evaluated to one or possibly several integer values. The expressions we allow for a term are defined in the next paragraph.

    • ๐™ฒ๐š˜๐š–๐š™๐šŠ๐š›๐š’๐šœ๐š˜๐š— is one of the following comparison operators โ‰ค, โ‰ฅ, <, >, =, โ‰ .

    • ๐šƒ๐šŽ๐š›๐š– 2 is a term.

    Let v 1,1 ,v 1,2 ,...,v 1,n 1 and v 2,1 ,v 2,2 ,...,v 2,n 2 be the values respectively associated with ๐šƒ๐šŽ๐š›๐š– 1 and with ๐šƒ๐šŽ๐š›๐š– 2 . The restriction ๐šƒ๐šŽ๐š›๐š– 1 ๐™ฒ๐š˜๐š–๐š™๐šŠ๐š›๐š’๐šœ๐š˜๐š— ๐šƒ๐šŽ๐š›๐š– 2 forces v 1,i ๐™ฒ๐š˜๐š–๐š™๐šŠ๐š›๐š’๐šœ๐š˜๐š— v 2,j to hold for every iโˆˆ[1,n 1 ] and every jโˆˆ[1,n 2 ].

    A term is one of the following expressions:

    • e, where e is an integer. The corresponding value is e.

    • |c|, where c is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š—. The value of |c| is the number of items of the collection denoted by c.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(๐™ฝ,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚,๐š…๐™ฐ๐™ป๐š„๐™ด) constraint: ๐™ฝโ‰ค|๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚| restricts ๐™ฝ to be less than or equal to the number of items of the ๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚ collection.

      โŠณ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(2,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,5)

      โ–ธ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(4,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,5)

    • ๐šœ๐šž๐š–(c.a), ๐šœ๐šž๐š–(c.a) denotes the sum of the values assigned to the attribute a of the collection denoted by c.

    • ๐š›๐šŠ๐š—๐š๐šŽ(c.a), ๐š›๐šŠ๐š—๐š๐šŽ(c.a) denotes the difference between the maximum value and the minimum value plus one of the values assigned to the attribute a of the collection denoted by c.

    • ๐š–๐šŠ๐šก๐šŸ๐šŠ๐š•(c.a), ๐š–๐šŠ๐šก๐šŸ๐šŠ๐š•(c.a) denotes the maximum over the values assigned to the attribute a of the collection denoted by c.

    • ๐š—๐šŸ๐šŠ๐š•(c.a), ๐š—๐šŸ๐šŠ๐š•(c.a) denotes the number of distinct values over the values assigned to the attribute a of the collection denoted by c.

    • ๐š™๐š›๐š˜๐š(c.a), ๐š™๐š›๐š˜๐š(c.a) denotes the product of the values assigned to the attribute a of the collection denoted by c.

    • t, where t is an argument of type ๐š’๐š—๐š. The value of t is the value of the corresponding argument.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(๐™ฝ,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚,๐š…๐™ฐ๐™ป๐š„๐™ด) constraint: ๐™ฝโ‰ฅ0 forces the first argument of the ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š constraint to be greater than or equal to 0.

      โŠณ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(2,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,5)

      โ–ธ๐šŠ๐š๐š•๐šŽ๐šŠ๐šœ๐š(-1,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,5)

    • v, where v is an argument of type ๐š๐šŸ๐šŠ๐š›. The value of v will be the value assigned to variable v.This stems from the fact that restrictions are defined on the ground instance of a global constraint.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐šŠ๐š–๐š˜๐š—๐š(๐™ฝ๐š…๐™ฐ๐š,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚,๐š…๐™ฐ๐™ป๐š„๐™ด๐š‚) constraint: ๐™ฝ๐š…๐™ฐ๐šโ‰ฅ0 forces the first argument of the ๐šŠ๐š–๐š˜๐š—๐š constraint to be greater than or equal to 0.

      โŠณ๐šŠ๐š–๐š˜๐š—๐š(2,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,โŒฉ๐šŸ๐šŠ๐š•-1,๐šŸ๐šŠ๐š•-5โŒช)

      โ–ธ๐šŠ๐š–๐š˜๐š—๐š(-9,โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-5โŒช,โŒฉ๐šŸ๐šŠ๐š•-1,๐šŸ๐šŠ๐š•-5โŒช)

    • s, where s is an argument of type ๐šœ๐š’๐š—๐š or ๐šœ๐šŸ๐šŠ๐š›. The values denoted by s are all the values of the corresponding set.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐š˜๐š™๐šŽ๐š—_๐šŠ๐š•๐š•๐š๐š’๐š๐š๐šŽ๐š›๐šŽ๐š—๐š(๐š‚,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚) constraint: ๐š‚โ‰ฅ1 forces all elements of the set corresponding to the first argument of the ๐š˜๐š™๐šŽ๐š—_๐šŠ๐š•๐š•๐š๐š’๐š๐š๐šŽ๐š›๐šŽ๐š—๐š constraint to be greater than or equal to 1.

      โŠณ๐š˜๐š™๐šŽ๐š—_๐šŠ๐š•๐š•๐š๐š’๐š๐š๐šŽ๐š›๐šŽ๐š—๐š({1,2,3},โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-9โŒช)

      โ–ธ๐š˜๐š™๐šŽ๐š—_๐šŠ๐š•๐š•๐š๐š’๐š๐š๐šŽ๐š›๐šŽ๐š—๐š({0,1,2,3},โŒฉ๐šŸ๐šŠ๐š›-5,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-8,๐šŸ๐šŠ๐š›-9โŒช)

    • c.a, where c is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š— and a an attribute of c of type ๐š’๐š—๐š or ๐š๐šŸ๐šŠ๐š›. The values denoted by c.a are all the values corresponding to attribute a for the different items of c. When c.a designates a domain variable we consider the value assigned to that variable.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(๐šƒ๐™ฐ๐š‚๐™บ๐š‚,๐™ป๐™ธ๐™ผ๐™ธ๐šƒ) constraint: ๐šƒ๐™ฐ๐š‚๐™บ๐š‚.๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—โ‰ฅ0 enforces for all items of the ๐šƒ๐™ฐ๐š‚๐™บ๐š‚ collection that the ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š— attribute be greater than or equal to 0.

      โŠณ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

      ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

      ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

      ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

      โ–ธ๐šŒ๐šž๐š–๐šž๐š•๐šŠ๐š๐š’๐šŸ๐šŽ(โŒฉ ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—--2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

      ๐š˜๐š›๐š’๐š๐š’๐š—-2 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-4 ๐š‘๐šŽ๐š’๐š๐š‘๐š-2,

      ๐š˜๐š›๐š’๐š๐š’๐š—-1 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-4 ๐šŽ๐š—๐š-5 ๐š‘๐šŽ๐š’๐š๐š‘๐š-5,

      ๐š˜๐š›๐š’๐š๐š’๐š—-4 ๐š๐šž๐š›๐šŠ๐š๐š’๐š˜๐š—-2 ๐šŽ๐š—๐š-6 ๐š‘๐šŽ๐š’๐š๐š‘๐š-1โŒช, 12)

    • c.a, where c is an argument of type ๐šŒ๐š˜๐š•๐š•๐šŽ๐šŒ๐š๐š’๐š˜๐š— and a an attribute of c of type ๐šœ๐š’๐š—๐š or ๐šœ๐šŸ๐šŠ๐š›. The values denoted by c.a are all the values belonging to the sets corresponding to attribute a for the different items of c. When c.a designates a set variable we consider the values that finally belong to that set.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐š’๐š—๐šŸ๐šŽ๐š›๐šœ๐šŽ_๐šœ๐šŽ๐š(๐š‡,๐šˆ) constraint: ๐š‡.๐šกโ‰ฅ1 enforces for all items of the ๐š‡ collection that all the potential elements of the set variable associated with the ๐šก attribute be greater than or equal to 1.

      โŠณ๐š’๐š—๐šŸ๐šŽ๐š›๐šœ๐šŽ_๐šœ๐šŽ๐š(โŒฉ ๐š’๐š—๐š๐šŽ๐šก-1 ๐šก-{2,4},

      ๐š’๐š—๐š๐šŽ๐šก-2 ๐šก-{4},

      ๐š’๐š—๐š๐šŽ๐šก-3 ๐šก-{1},

      ๐š’๐š—๐š๐šŽ๐šก-4 ๐šก-{4} โŒช,

      โŒฉ ๐š’๐š—๐š๐šŽ๐šก-1 ๐šข-{3},

      ๐š’๐š—๐š๐šŽ๐šก-2 ๐šข-{1},

      ๐š’๐š—๐š๐šŽ๐šก-3 ๐šข-{},

      ๐š’๐š—๐š๐šŽ๐šก-4 ๐šข-{1,2,4},

      ๐š’๐š—๐š๐šŽ๐šก-5 ๐šข-{} โŒช)

      โ–ธ๐š’๐š—๐šŸ๐šŽ๐š›๐šœ๐šŽ_๐šœ๐šŽ๐š(โŒฉ ๐š’๐š—๐š๐šŽ๐šก-1 ๐šก-{0,2,4},

      ๐š’๐š—๐š๐šŽ๐šก-2 ๐šก-{4},

      ๐š’๐š—๐š๐šŽ๐šก-3 ๐šก-{1},

      ๐š’๐š—๐š๐šŽ๐šก-4 ๐šก-{4} โŒช,

      โŒฉ ๐š’๐š—๐š๐šŽ๐šก-1 ๐šข-{3},

      ๐š’๐š—๐š๐šŽ๐šก-2 ๐šข-{1},

      ๐š’๐š—๐š๐šŽ๐šก-3 ๐šข-{},

      ๐š’๐š—๐š๐šŽ๐šก-4 ๐šข-{1,2,4},

      ๐š’๐š—๐š๐šŽ๐šก-5 ๐šข-{} โŒช)

    • min(t 1 ,t 2 ) or max(t 1 ,t 2 ), where t 1 and t 2 are terms. Let ๐’ฑ 1 and ๐’ฑ 2 denote the sets of values respectively associated with the terms t 1 and t 2 . Let min(๐’ฑ 1 ), max(๐’ฑ 1 ) and min(๐’ฑ 2 ), max(๐’ฑ 2 ) denote the minimum and maximum values of ๐’ฑ 1 and ๐’ฑ 2 . The value associated with min(t 1 ,t 2 ) is min(min(๐’ฑ 1 ),min(๐’ฑ 2 )), while the value associated with max(t 1 ,t 2 ) is max(max(๐’ฑ 1 ),max(๐’ฑ 2 )).

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐š—๐š’๐š—๐š๐šŽ๐š›๐šŸ๐šŠ๐š•(๐™ฝ๐š…๐™ฐ๐™ป,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚,๐š‚๐™ธ๐š‰๐™ด_๐™ธ๐™ฝ๐šƒ๐™ด๐š๐š…๐™ฐ๐™ป) constraint: ๐™ฝ๐š…๐™ฐ๐™ปโ‰ฅmin(1,|๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚|) forces ๐™ฝ๐š…๐™ฐ๐™ป to be greater than or equal to the minimum of 1 and the number of items of the ๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚ collection.

      โŠณ ๐š—๐š’๐š—๐š๐šŽ๐š›๐šŸ๐šŠ๐š•(2,โŒฉ๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-9,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-9โŒช,4)

      โ–ธ ๐š—๐š’๐š—๐š๐šŽ๐š›๐šŸ๐šŠ๐š•(0,โŒฉ๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-9,๐šŸ๐šŠ๐š›-1,๐šŸ๐šŠ๐š›-9โŒช,4)

    • t 1 ๐š˜๐š™ t 2 , where t 1 and t 2 are terms and ๐š˜๐š™ one of the operators +, -, * or /./ denotes an integer division, a division in which the fractional part is discarded. Let ๐’ฑ 1 and ๐’ฑ 2 denote the sets of values respectively associated with the terms t 1 and t 2 . The set of values associated with t 1 ๐š˜๐š™ t 2 is ๐’ฑ 12 ={v:v=v 1 ๐š˜๐š™ v 2 ,v 1 โˆˆ๐’ฑ 1 ,v 2 โˆˆ๐’ฑ 2 }.

      EXAMPLE: This kind of expression is for instance used in the restrictions of the ๐š›๐šŽ๐š•๐šŠ๐šก๐šŽ๐š_๐šœ๐š•๐š’๐š๐š’๐š—๐š_๐šœ๐šž๐š–(๐™ฐ๐šƒ๐™ป๐™ด๐™ฐ๐š‚๐šƒ,๐™ฐ๐šƒ๐™ผ๐™พ๐š‚๐šƒ,๐™ป๐™พ๐š†,๐š„๐™ฟ,๐š‚๐™ด๐š€,๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚) constraint: ๐™ฐ๐šƒ๐™ผ๐™พ๐š‚๐šƒโ‰ค|๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚|-๐š‚๐™ด๐š€+1 forces ๐™ฐ๐šƒ๐™ผ๐™พ๐š‚๐šƒ to be less than or equal to an arithmetic expression that corresponds to the number of sequences of ๐š‚๐™ด๐š€ consecutive variables in a sequence of |๐š…๐™ฐ๐š๐™ธ๐™ฐ๐™ฑ๐™ป๐™ด๐š‚| variables.

      โŠณ ๐š›๐šŽ๐š•๐šŠ๐šก๐šŽ๐š_๐šœ๐š•๐š’๐š๐š’๐š—๐š_๐šœ๐šž๐š–(3,4,3,7,4,โŒฉ๐šŸ๐šŠ๐š›-2,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-2,๐šŸ๐šŠ๐š›-0,

      ๐šŸ๐šŠ๐š›-0,๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-4โŒช)

      โ–ธ ๐š›๐šŽ๐š•๐šŠ๐šก๐šŽ๐š_๐šœ๐š•๐š’๐š๐š’๐š—๐š_๐šœ๐šž๐š–(3,9,3,7,4,โŒฉ๐šŸ๐šŠ๐š›-2,๐šŸ๐šŠ๐š›-4,๐šŸ๐šŠ๐š›-2,๐šŸ๐šŠ๐š›-0,

      ๐šŸ๐šŠ๐š›-0,๐šŸ๐šŠ๐š›-3,๐šŸ๐šŠ๐š›-4โŒช)

  • Finally, we can also use a constraint C of the catalogue for expressing a restriction as long as that constraint is not defined according to the constraint under consideration. The constraint C should have a graph -based or an automaton -based description so that its meaning is explicitly defined.

    EXAMPLE: An example of use of such restriction can be found in the ๐šœ๐š˜๐š›๐š_๐š™๐šŽ๐š›๐š–๐šž๐š๐šŠ๐š๐š’๐š˜๐š—(๐™ต๐š๐™พ๐™ผ,๐™ฟ๐™ด๐š๐™ผ๐š„๐šƒ๐™ฐ๐šƒ๐™ธ๐™พ๐™ฝ,๐šƒ๐™พ) constraint: ๐šŠ๐š•๐š•๐š๐š’๐š๐š๐šŽ๐š›๐šŽ๐š—๐š(๐™ฟ๐™ด๐š๐™ผ๐š„๐šƒ๐™ฐ- ๐šƒ๐™ธ๐™พ๐™ฝ) is used to express the fact that the variables of the second argument of the ๐šœ๐š˜๐š›๐š_๐š™๐šŽ๐š›๐š–๐šž๐š๐šŠ๐š๐š’๐š˜๐š— constraint should take distinct values.