Definition
A computation and specification framework that integrates logic programming with constraint solving: programs combine logical rules with constraint domains and solvers, maintaining a constraint store that is consulted and updated during proof search.

Principle

Principle
Separate logical control (rules, search) from domain-specific constraint reasoning (arithmetic, finite domains, strings) so that unification is replaced or extended by constraint solving and consistency-checking against a solver's decision procedure.

Demonstration

Demonstration
CLP(R) for linear arithmetic: logical rules generate arithmetic constraints such as linear inequalities; the constraint solver maintains and simplifies the constraint store and prunes search branches that violate numeric consistency in scheduling or resource allocation.

Misapplication

Misapplication
Assuming solver completeness for undecidable domains, or treating constraints as mere syntactic predicates without integrating solver feedback, which leads to incorrect assumptions about termination or solution coverage.

Consequence

Consequence
Proper integration yields more declarative models for combinatorial and numeric problems, significant search pruning via constraint propagation, and modular use of efficient decision procedures for specialized domains.

Reversal

Reversal
Invert to pure constraint programming without logical clauses, where search and propagation are expressed only as constraint solving procedures, or to pure logic programming where constraints are reduced to explicit logical predicates without solver assistance.

Boundary

Boundary
Effective when the constraint domains admit decidable or practical solvers (finite domains, linear arithmetic, boolean constraints); it does not automatically extend to arbitrary undecidable theories without loss of guarantees or requiring approximations.

Semantic Tension

Semantic Tension
Tension between CLP and plain logic programming or CP: CLP blends declarative rules with solver-driven propagation, whereas plain LP emphasizes proof search and CP emphasizes solver-centric propagation and global constraints, creating trade-offs in modeling and control.

Synthesis

Synthesis
Constraint Logic Programming merges clause-based logical specification with domain-specific constraint solving: it uses a solver-backed constraint store instead of pure unification to achieve compact declarative models and efficient search via propagation.