As already said CLP consists of constraints and rules for combining
various constraints. In the scheme of [Höhfeld and Smolka1988] this is
done by adding a set of relation symbols to a constraint
language which yields a constraint language providing for
relational atoms, the propositional connectives and quantification. The
restriction to definite clauses then allows the adoption on well-known
standard logic programming concepts like SLD-resolution, which defines
an operational semantics for .
Since is a constraint language, all definitions we have made for constraint languages apply to . Thus the notion of a constraint language can be applied iteratively.