The Refined Operational Semantics of Constraint Handling Rules

  • Gregory J. Duck
  • Peter J. Stuckey
  • María García de la Banda
  • Christian Holzbaur
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3132)


Constraint Handling Rules (CHRs) are a high-level rule-based programming language commonly used to write constraint solvers. The theoretical operational semantics for CHRs is highly non-deterministic and relies on writing confluent programs to have a meaningful behaviour. Implementations of CHRs use an operational semantics which is considerably finer than the theoretical operational semantics, but is still non-deterministic (from the user’s perspective). This paper formally defines this refined operational semantics and proves it implements the theoretical operational semantics. It also shows how to create a (partial) confluence checker capable of detecting programs which are confluent under this semantics, but not under the theoretical operational semantics. This supports the use of new idioms in CHR programs.


Operational Semantic Critical Pair Execution State Constraint Handling Constraint Store 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Abdennadher, S.: Operational semantics and confluence of constraint propagation rules. In: Smolka, G. (ed.) Proceedings of the Third International Conference on Principles and Practice of Constraint Programming, pp. 252–266 (1997)Google Scholar
  2. 2.
    Abdennadher, S., Frühwirth, T., Muess, H.: Confluence and semantics of constraint simplification rules. Constraints 4(2), 133–166 (1999)zbMATHCrossRefMathSciNetGoogle Scholar
  3. 3.
    Apt, K., Monfroy, E.: Automatic generation of constraint propagation algorithms for small finite domains. In: Principles and Practice of Constraint Programming, pp. 58–72 (1999)Google Scholar
  4. 4.
    Demoen, B., García de la Banda, M., Harvey, W., Marriott, K., Stuckey, P.J.: An overview of HAL. In: Proceedings of the Fourth International Conference on Principles and Practices of Constraint Programming, pp. 174–188 (1999)Google Scholar
  5. 5.
    Duck, G.J., Stuckey, P.J., García de la Banda, M., Holzbaur, C.: Extending arbitrary solvers with constraint handling rules. In: Miller, D. (ed.) Proceedings of the Fifth ACM SIGPLAN International Conference on Principles and Practice of Declarative Programming, pp. 79–90. ACM Press, New York (2003)CrossRefGoogle Scholar
  6. 6.
  7. 7.
    Frühwirth, T.: Theory and practice of constraint handling rules. Journal of Logic Programming 37, 95–138 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    Frühwirth, T.: Proving termination of constraint solver programs. In: Apt, K.R., Kakas, A.C., Monfroy, E., Rossi, F. (eds.) Compulog Net WS 1999. LNCS (LNAI), vol. 1865, pp. 298–317. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    García de la Banda, M., Stuckey, P.J., Harvey, W., Marriott, K.: Mode checking in HAL. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 1270–1284. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  10. 10.
    Holzbaur, C., Frühwirth, T.: Compiling constraint handling rules into Prolog with attributed variables. In: Nadathur, G. (ed.) PPDP 1999. LNCS, vol. 1702, pp. 117–133. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  11. 11.
    Holzbaur, C., Frühwirth, T.: A Prolog constraint handling rules compiler and runtime system. Journal of Applied Artificial Intelligence 14(4) (2000)Google Scholar
  12. 12.
    Holzbaur, C., Stuckey, P.J., García de la Banda, M., Jeffery, D.: Optimizing compilation of constraint handling rules. In: Codognet, P. (ed.) Logic Programming: Proceedings of the 17th International Conference. LNCS, pp. 74–89. Springer, Heidelberg (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Gregory J. Duck
    • 1
  • Peter J. Stuckey
    • 1
  • María García de la Banda
    • 2
  • Christian Holzbaur
    • 3
  1. 1.Department of Computer Science and Software EngineeringThe University of MelbourneAustralia
  2. 2.School of Computer Science and Software EngineeringMonash UniversityAustralia
  3. 3.  

Personalised recommendations