| - Up - |
A constraint programming system typically provides a rich set of non-basic constraints, such as:
Equality | |
|---|---|
|
|
Ordering, e.g. | |
|
|
Arithmetic, e.g. | |
|
|
Set, e.g. | |
| subset |
| disjointness |
| union |
Membership, e.g. | |
|
|
and many more. The operational semantics of each non-basic constraint is specified by a collection of inference rules.
For example, the disjointness constraint
corresponds to the two inference rules below:
|
|
|
|
|
|
i.e. all elements known to be in
cannot possibly be in
and vice versa.
A challenge that must be faced by every user of a constraint programming system is then to express a CSP's constraints in terms of non-basic constraints available in the system. Fortunately, Mozart has a very rich set of constraints (see [DKM+99]) that facilitate the task.
| - Up - |