Abstract
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.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
S. Abdennadher, T. Frühwirth, and H. Meuss. Confluent simplification rules. Technical report, LMU Munich, January 1996.
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.
N. Dershowitz, N. Okada, and G. Sivakumar. Confluence of conditional rewrite systems. In 1st CTRS, pages 31–44. LNCS 308, 1988.
ECLiPSe 3.4 User Manual, July 1994.
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.
T. Frühwirth. Constraint handling rules. In A. Podelski, editor, Constraint Programming: Basics and Trends. LNCS 910, March 1995.
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.
J. Jaffar and M. J. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 20:503–581, 1994.
Claude Kirchner and Hélène Kirchner. Rewriting: Theory and Applications. North-Holland, 1991.
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.
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.
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.
V. A. Saraswat. Concurrent Constraint Programming. MIT Press, Cambridge, 1993.
E. Shapiro. The family of concurrent logic programming languages. In ACM Computing Surveys, volume 21:3, pages 413–510, September 1989.
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.
P. van Hentenryck. Constraint logic programming. In The Knowledge Engineering Review, volume 6, pages 151–194, 1991.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1996 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Abdennadher, S., Frühwirth, T., Meuss, H. (1996). On confluence of Constraint Handling Rules. In: Freuder, E.C. (eds) Principles and Practice of Constraint Programming — CP96. CP 1996. Lecture Notes in Computer Science, vol 1118. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-61551-2_62
Download citation
DOI: https://doi.org/10.1007/3-540-61551-2_62
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-61551-4
Online ISBN: 978-3-540-70620-5
eBook Packages: Springer Book Archive