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: