High-Level Implementations of Constraint Handling Rules

Thom Frühwirth, Pascal Brisset. High-Level Implementations of Constraint Handling Rules. Technical Report ECRC-TR-95-20, jun 1995.

Abstract

Constraint handling rules (CHRs) are a high level logic concurrent committedchoice language for writing constraint systems. Rapid prototyping of novel applications for constraint techniques is encouraged by the high level of abstraction and declarative nature of CHRs. In this paper we describe basic principles of implementing CHRs in logic programming languages and show how they actually have been implemented in the CHRs library of ECLiPSe, ECRC’s constraint logic programming platform. All three types of multi-headed CHRs can be transformed into single-headed simpli cation rules. These rules correspond to guarded rules used in typical logic concurrent committed-choice languages. We then show how to implement these guarded rules in sequential (constraint) logic programming languages. The report contains three appendices involving a generic example and its translation.