Learn More
Constraint Handling Rules (CHR) are our proposal to allow more exibility and application-oriented customization of constraint systems. CHR are a declarative language extension especially designed for writing user-deened constraints. CHR are essentially a committed-choice language consisting of multi-headed guarded rules that rewrite constraints into simpler(More)
Constraint Handling Rules (CHR) is both a theoretical formalism based on logic and a practical programming language based on rules. This book, written by the creator of CHR, describes the theory of CHR and how to use it in practice. It is supported by a website containing teaching materials, online demos, and free downloads of the language. After a basic(More)
Constraint Simplification Rules (CSR) is a subset of the Constraint Handling Rules (CHR) language. CHR is a powerful special-purpose declarative programming language for writing constraint solvers. The CSR subset of CHR forms essentially a committed-choice language consisting of guarded rules with multiple heads that replace constraints by simpler ones(More)
Motivation Classical optimal union-find algorithm [Tarjan+, JACM 31(2)] implementable in CHR with optimal time complexity [Schrijvers+, WCLP'05,TPLP]. Parallel implementation? Hard problem: No parallel computation model for CHR. Optimal union-find hard to parallelize. Parallel code close to sequential one. Semi-automatic confluence analysis of sequential(More)
We introduce the notion of connuence for Constraint Handling Rules (CHR), a powerful language for writing constraint solvers. With CHR one simpliies and solves constraints by applying rules. Connuence guarantees that a CHR program will always compute the same result for a given set of constraints independent of which rules are applied. We give a decidable,(More)