Automatic Implication Checking for CHR Constraints

https://doi.org/10.1016/j.entcs.2005.06.039Get rights and content
Under a Creative Commons license
open access

Abstract

Constraint Handling Rules (CHRs) are a high-level rule-based programming language commonly used to define constraint solvers. We present a method for automatic implication checking between constraints of CHR solvers. Supporting implication is important for implementing extensible solvers and reification, and for building hierarchical CHR constraint solvers. Our method does not copy the entire constraint store, but performs the check in place using a trailing mechanism. The necessary code enhancements can be done by automatic program transformation based on the rules of the solver. We extend our method to work for hierarchically organized modular CHR solvers. We show the soundness of our method and its completeness for a restricted class of canonical solver as well as for specific existing non-canonical CHR solvers. We evaluate our trailing method experimentally by comparing with the copy approach: runtime is almost halved.

Keywords

Constraint Handling Rules
implication checking
program transformation
constraint solver hierarchy

Cited by (0)

Research Assistant of the fund for Scientific Research - Flanders (Belgium) (F.W.O. - Vlaanderen)