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