×

Theory and practice of Constraint Handling Rules. (English) Zbl 0920.68029

Summary: Constraint Handling Rules (CHR) are our proposal to allow more flexibility and application-oriented customization of constraint systems. CHR are a declarative language extension especially designed for writing user-defined constraints. CHR are essentially a committed-choice language consisting of multi-headed guarded rules that rewrite constraints into simpler ones until they are solved. In this broad survey we aim at covering all aspects of CHR as they currently present themselves. Going from theory to practice, we define syntax and semantics for CHR, introduce an important decidable property, confluence, of CHR programs and define a tight integration of CHR with constraint logic programming languages. This survey then describes implementations of the language before we review several constraint solvers both traditional and nonstandard ones – written in the CHR language. Finally, we introduce two innovative applications that benefited from using CHR.

MSC:

68N17 Logic programming

Software:

CS-Prolog
Full Text: DOI