Automatic Implication Checking for CHR Constraints

  • Authors:
  • Tom Schrijvers;Bart Demoen;Gregory Duck;Peter Stuckey;Thom Frühwirth

  • Affiliations:
  • Department of Computer Science, K.U.Leuven, Belgium;Department of Computer Science, K.U.Leuven, Belgium;Department of Computer Science, University of Melbourne, Australia;Department of Computer Science, University of Melbourne, Australia and NICTA Victoria Laboratory, Australia;Faculty of Computer Science, University of Ulm, Germany

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

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.