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.