Abstract
Constraint Simplification Rules (CSR) is a subset of the Constraint Handling Rules (CHR) language. CHR is a powerful special-purpose declarative programming language for writing constraint solvers. The CSR subset of CHR forms essentially a committed-choice language consisting of guarded rules with multiple heads that replace constraints by simpler ones until they are solved. This paper gives declarative and operational semantics as well as soundness and completeness results for CSR programs.
We also introduce a notion of confluence for CSR programs. Confluence is an essential syntactical property of any constraint solver. It ensures that the solver will always compute the same result for a given set of constraints independent of which rules are applied. It also means that it does not matter for the result in which order the constraints arrive at the constraint solver.
We give a decidable, sufficient and necessary syntactic condition for confluence of terminating CSR programs. Moreover, as shown in this paper, confluence of a program implies consistency of its logical meaning (under a mild restriction).
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Abdennadher, S. (1997). Operational semantics and confluence of constraint propagation rules. In Third International Conference on Principles and Practice of Constraint Programming, CP97 LNCS, Springer.
Abdennadher, S. (1998). Analyse von regelbasierten Constraintlösern. PhD thesis, Computer Science Institute, LMU Munich (in German).
Aggoun, A., Chan, D., Dufrense, P., Falvey, E., Grant, H., Herold, A., Macartney, G., Maier, M., Miller, D., Perez, B., van Rossum, E., Schimpf, J., Tsahageas, P., & de Villeneuve, D. (1994). ECLiPSe 3.4 User Manual. ECRC Munich.
Abdennadher, A. & Frühwirth, T. (1998). On completion of constraint handling rules. Proceedings of the Fourth International Conference on Principles and Practice of Constraint Programming (CP'98), LNCS 1520, Springer.
Abdennadher, S., Frühwirth, T., & Meuss, H. (1996). On confluence of constraint handling rules. In E. Freuder, editor, Proceedings of the Second International Conference on Principles and Practice of Constraint Programming, CP96 LNCS 1118, Springer.
AÏt-Kaci, H. & Podelski, A. (1994). Functions as passive constraints in LIFE. ACM Transactions on Programming Languages and Systems 16:1279–1318.
Codnognet, P. & Diaz, D. (1993). Boolean constraint solving using clp(FD). In Dale Miller, editor, LogicProgramming·Proceedings of the 1993 International Symposium, 525–539, Vancouver, Canada, MIT Press.
Codish, M., Falaschi, M., Marriott, K., & Winsborough, W. (1997). A confluent semantic basis for the analysis of concurrent constraint logic programs. Journal of Logic Programming 30:53–81.
Clark, K. (1978). Logic and Databases 293–322, Plenum Press, New York.
Dershowitz, N., Okada, N., & Sivakumar, G. (1988). Confluence of conditional rewrite systems. In J.-P. Jouannaud and S. Kaplan, editors, Proceedings of the 1st International Workshop on Conditional Term Rewriting Systems LNCS 308:31–44.
Falaschi, M. Gabbrielli, M. Marriott, K., & Palamidessi, C. (1995). Confluence in concurrent constraint programming. In V.S. Alagar and M. Nivat, editors, Proceedings of AMAST '95 LNCS 936, Springer.
Frühwirth, T., Herold, A., Küchenhoff, V., Le Provost, T., Lim, P., Monfroy, E., & Wallace, M. (1992). Constraint logic programming: An informal introduction. In G. Comyn, N. E. Fuchs, and M. J. Ratcliffe, editors, Logic Programming in Action. LNCS 636:3–35, Springer.
Frühwirth, T. (1995). Constraint handling rules. In A. Podelski, editor, Constraint Programming: Basics and Trends. LNCS 910, Springer.
Frühwirth, T. (1998). A Declarative Language for Constraint Systems: Theory and Practice of Constraint Handling Rules. Habilitation, Computer Science Institute, LMU Munich.
Haridi, S., Janson, S.,& Palamidessi, C. (1992). Structural operational semantics of AKL. Future Generation Computer Systems.
Jaffar, J. & Lasseq, J.-L. (1987). Constraint logic programming. In Conference Record of the Fourteenth Annual ACM Symposium on Principles of Programming Languages 111–119.
Jaffar, J. & Maher, M. J. (1994). Constraint logic programming: A survey. Journal of Logic Programming 20:503–581.
Kirchner, C. & Kirchner, H. (1991). Rewriting: Theory and Applications. North-Holland.
Maher, M. J. (1987). Logic semantics for a class of committed-choice programs. In J.-L. Lassez, editor, Proceedings of the Fourth International Conference on Logic Programming 858–876, MIT Press.
Marte, M. (1996). Implementation eines Konfluenz-Tests f¨ur CSR-Programme. Advanced practical thesis, Institute of Computer Science, LMU Munich.
Meuss, H. (1996). Konfluenz von Constraint-Handling-Rules-Programmen. Master's thesis, Institute of Computer Science, LMU Munich.
Marriott, K. & Odersky, M. (1995). A confluent calculus for concurrent constraint programming with guarded choice. In 1st International Conference on Principles and Practice of Constraint Programming, CP95 310–327, Springer.
Marriott, K. & Stuckey, P. (1998). Programming with Constraints: An Introduction. MIT Press.
Newman, M. H. A. (1942). On theories with a combinatorial definition of equivalence. In Annals of Math, 43:223–243.
Plaisted, D. A. (1993). Equational reasoning and term rewriting systems. In D. Gabbay, C. Hogger, J. A. Robinson, and J. Siekmann, editiors, Handbook of Logic in Artificial Intelligence and Logic Programming 1:273–364, Oxford University Press, Oxford.
Saraswat, V. A. (1993). Concurrent Constraint Programming MIT Press, Cambridge.
Shapiro, E. (1989). The family of concurrent logic programming languages. ACM Computing Surveys 21:413–510.
Smolka, G. (1991). Residuation and guarded rules for constraint logic programming. In Digital Equipment Paris Research Laboratory Research Report, France.
Saraswat, V. A., Rinard, & Panangaden, P. The semantic foundations of concurrent constraint programming. In Conference Record of the 18th Annual ACM Symposium on Principles of Programming Languages 333–352, ACM Press.
van Hentenryck, P. (1991). Constraint logic programming. The Knowledge Engineering Review 6:151–194.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Abdennadher, S., Frühwirth, T. & Meuss, H. Confluence and Semantics of Constraint Simplification Rules. Constraints 4, 133–165 (1999). https://doi.org/10.1023/A:1009842826135
Issue Date:
DOI: https://doi.org/10.1023/A:1009842826135