Known as CLP in LogicProgramming papers. Programming with constraints. Operation proceeds by searching all solutions by a ConstraintSolver. There are some variants of PrologLanguage, that provide this. Note, that the domains over which the constraints can be defined vary. Typical domains are: * BooleanLogic (true and false) ** this is the special case, that coincides with standard LogicProgramming. * Sets ** e.g. set inclusion constraints or existential or universal uantification over membership Examples: see SetOrientedProgramming * Real Numbers ** e.g. constraints of the form a + b <= c over (solved by LinearAlgebra) * Integer Numbers ** e.g. constraints of the form a + b <= c over Integer Numbers * elements from a LatticeStructure ** nodes in a DirectedAcyclicGraph, that can be combined with Least Upper Bound and Greatest Lower Bound. This is a strict generalization of the Integer Numbers problem and of the BooleanLogic (compare BooleanLattice). * elements from semi ring ** this is a strict generalization of the lattice formulation allowing fuzzy solutions and solutions to optimization problems ---- Related: LogicProgramming, DeclarativeProgramming, ProgrammingParadigm, ConstraintProgramming