- Set Values
- Set Constraints
- Set Constraint Propagation
- Connecting Finite Sets and Finite Domains
- Branching

- Constraining the lower bound by set s:sS. The lower bound contains all elements that are at least contained in the set value.
- Constraining the upper bound by set s :Ss . The upper bound contains all elements that are at most contained in the set value.
- Constraining the cardinality of a set by a finite domain interval {n,...,m}: n #Sm . The cardinality constraint determines the minimal and maximal number of elements allowed to be contained in the set.

A set constraint denotes a set value if either the lower is equal to the upper bound, the cardinality of the lower bound is equal to the upper bound of the cardinality constraints, or the cardinality of the upper bound is equal to the lower bound of the cardinality constraint.

Non-basic set constraints, as intersubsection , union , disjointness ||, and the like, are provided as propagators. For details on the provided set propagators see the structure FS.

X,Y {1,...,5}and additionally the following non-basic constraints:

X Y = {1,...,5} and X||Y.Adding the constraints 1 X and 2 Y yields the intermediate store {1} X {1,...,5} and Y {1,3,4,5}. The present non-basic constraints can add even more basic constraints: the disjointness constraint removes 1 from the upper bound of Y since 1 was added to the lower bound of X. The union constraint adds 2 to the lower bound of X since 2 was removed from the upper bound of Y. After that, propagation has reached a fixed-point and leads to {1,2} X {1,...,5} and Y {3,4,5}. Bringing the cardinality constraint 3 #Y 5 into play determines Y to {3,4,5} since the upper bound has exactly 3 elements which is the minimal number required by the cardinality constraint. The disjointness constraint then removes 3, 4, 5 from X's upper bound and that way determines x to {1,2}.

Andreas Rossberg 2006-08-28