| - 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 - |