On confluence of Constraint Handling Rules
We introduce the notion of confluence for Constraint Handling Rules (CHR), a powerful language for writing constraint solvers. With CHR one simplifies and solves constraints by applying rules. Confluence 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, sufficient and necessary syntactic condition for confluence.
Confluence turns out to be an essential syntactical property of CHR programs for two reasons. First, confluence implies correctness (as will be shown in this paper). In a correct CHR program, application of CHR rules preserves logical equivalence of the simplified constraints. Secondly, even when the program is already correct, confluence is highly desirable. Otherwise, given some constraints, one computation may detect their inconsistency while another one may just simplify them into a still complex constraint.
As a side-effect, the paper also gives soundness and completeness results for CHR programs. Due to their special nature, and in particular correctness, these theorems are stronger than what holds for the related families of (concurrent) constraint programming languages.
Keywordsconstraint reasoning semantics of programming languages committed-choice languages confluence and determinacy
Unable to display preview. Download preview PDF.
- [AFM96]S. Abdennadher, T. Frühwirth, and H. Meuss. Confluent simplification rules. Technical report, LMU Munich, January 1996.Google Scholar
- [BFL+94]P. Brisset, T. Frühwirth, P. Lim, M. Meier, T. Le Provost, J. Schimpf, and M. Wallace. ECL i PS e 3.4 Extensions User Manual ECRC Munich Germany, July 1994.Google Scholar
- [DOS88]N. Dershowitz, N. Okada, and G. Sivakumar. Confluence of conditional rewrite systems. In 1st CTRS, pages 31–44. LNCS 308, 1988.Google Scholar
- [Ecl94]ECLiPSe 3.4 User Manual, July 1994.Google Scholar
- [FGMP95]M. Falaschi, M. Gabbrielli, K. Marriott, and C. Palamidessi. Confluence in concurrent constraint programming. In Alagar and Nivat, editors, Proceedings of AMAST '95, LNCS 936. Springer, 1995.Google Scholar
- [Frü95]T. Frühwirth. Constraint handling rules. In A. Podelski, editor, Constraint Programming: Basics and Trends. LNCS 910, March 1995.Google Scholar
- [JL87]J. Jaffar and J. L. Lassez. Constraint logic programming. In Proceedings of the 14th ACM Symposium on Principles of Programming Languages POPL-87, Munich, Germany, pages 111–119, 1987.Google Scholar
- [JM94]J. Jaffar and M. J. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 20:503–581, 1994.Google Scholar
- [KK91]Claude Kirchner and Hélène Kirchner. Rewriting: Theory and Applications. North-Holland, 1991.Google Scholar
- [Mah87]M. J. Maher. Logic Semantics for a Class of Committed-Choice Programs. In Fourth International Conference on Logic Programming, pages 858–876, Melbourne, Australia, May 1987.Google Scholar
- [MO95]K. Marriott and M. Odersky. A confluent calculus for concurrent constraint programming with guarded choice. In Ugo Montanari Francesca Rossi, editor, Principles and Practice of Constraint Programming, Proceedings First International Conference, CP'95, Cassis, France, pages 310–327, Berlin, September 1995. Springer.Google Scholar
- [Pla93]David A. Plaisted. Equational reasoning and term rewriting systems. In D. Gabbay, C. Hogger, J. A. Robinson, and J. Siekmann, editors, Handbook of Logic in Artificial Intelligence and Logic Programming, volume 1, chapter 5, pages 273–364. Oxford University Press, Oxford, 1993.Google Scholar
- [Sar93]V. A. Saraswat. Concurrent Constraint Programming. MIT Press, Cambridge, 1993.Google Scholar
- [Sha89]E. Shapiro. The family of concurrent logic programming languages. In ACM Computing Surveys, volume 21:3, pages 413–510, September 1989.Google Scholar
- [SRP91]V. A. Saraswat, M. Rinard, and P. Panangaden. The semantics foundations of concurrent constraint programming. In Conference Record of the Eighteenth Annual ACM Symposium on principles of Programming Languages, pages 333–352, Orlando, Florida, January 1991. ACM Press.Google Scholar
- [vH91]P. van Hentenryck. Constraint logic programming. In The Knowledge Engineering Review, volume 6, pages 151–194, 1991.Google Scholar