An important feature of the CLP( ) system is its ability to output the collected constraints of a successful derivation in a simpler form. In a typical derivation, thousands of constraints may be collected, and printing them out without simplification would lead to an unusable answer. When a derivation succeeds the output module of CLP( ) is invoked to print the constraints relating the variables in the goal. The module can also be invoked using the system predicate dump([X,Y,...,Z]), discussed later.
The CLP( ) system attempts to simplify the constraints in two ways: by projecting the constraints onto a set of target variables (those appearing in the original goal or given by the user in the argument of dump), and by eliminating redundancy in the constraints. Ideally the output constraints will only involve target variables and be free of redundancy, but this will not always be possible.
Recall that there are constraints of four different forms: