Exhaustive Execution of CHR Through Source-to-Source Transformation

  • Ahmed ElsawyEmail author
  • Amira Zaki
  • Slim Abdennadher
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8981)


Constraint Handling Rules (CHR) is a committed-choice rule-based programming language. Rules rewrite a global multi-set of constraints to another. Overlapping sets of constraints within the rules and the order of constraints within rules and queries entail different derivation paths. In this work, a novel operational strategy is proposed which enables a high-level form of execution control that empowers a comprehensive and customizable execution strategy. It allows full space exploration for any CHR program, thus finding all possible results to a query which is interesting for many non-confluent programs. The proposed transformation is performed as a source-to-source transformation from any CHR program to one utilizing disjunction to force an exhaustive explorative execution strategy. The work is complemented by formal arguments to prove the correctness and completeness of the transformation.


Constraint Handling Rules Execution flow control Exhaustive execution Search space exploration Source-to-source transformation 


  1. 1.
    Abdennadher, S.: Operational semantics and confluence of constraint propagation rules. In: Smolka, Gert (ed.) CP 1997. LNCS, vol. 1330, pp. 252–266. Springer, Heidelberg (1997) Google Scholar
  2. 2.
    Abdennadher, S., Frühwirth, T.: Integration and optimization of rule-based constraint solvers. In: Bruynooghe, M. (ed.) LOPSTR 2004. LNCS, vol. 3018, pp. 198–213. Springer, Heidelberg (2004) Google Scholar
  3. 3.
    Abdennadher, S., Schütz, H.: CHR\(^{\vee }\): a flexible query language. In: Andreasen, T., Christiansen, H., Larsen, H.L. (eds.) FQAS 1998. LNCS (LNAI), vol. 1495, pp. 1–14. Springer, Heidelberg (1998) Google Scholar
  4. 4.
    Betz, H., Raiser, F., Frühwirth, T.: A complete and terminating execution model for constraint handling rules. In: Proceedings of 26th International Conference on Logic Programming, pp. 597–610 (2010)Google Scholar
  5. 5.
    Koninck, L. D., Schrijvers, T., Demoen, B.: Search strategies in CHR(Prolog). In: Leuven, K.U. (ed.) Proceedings of 3rd Workshop on Constraint Handling Rules, pp. 109–124. Technical report CW 452 (2006)Google Scholar
  6. 6.
    Koninck, L. D., Schrijvers, T., Demoen, B.: User-definable rule priorities for CHR. In: Proceedings of 9th International Conference on Principles and Practice of Declarative Programming, PPDP 2007, pp. 25–36. ACM (2007)Google Scholar
  7. 7.
    Duck, G.J., Stuckey, P.J., García de la Banda, M., Holzbaur, C.: The refined operational semantics of constraint handling rules. In: Demoen, B., Lifschitz, V. (eds.) ICLP 2004. LNCS, vol. 3132, pp. 90–104. Springer, Heidelberg (2004) Google Scholar
  8. 8.
    Duck, G.J., Stuckey, P.J., Sulzmann, M.: Observable confluence for constraint handling rules. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670, pp. 224–239. Springer, Heidelberg (2007) Google Scholar
  9. 9.
    Frühwirth, T.: Constraint Handling Rules. Cambridge University Press, New York (2009) Google Scholar
  10. 10.
    Frühwirth, T., Raiser, F. (eds.): Constraint Handling Rules: Compilation, Execution, and Analysis. Books on Demand, Norderstedt (2011) Google Scholar
  11. 11.
    De Koninck, L., Schrijvers, T., Demoen, B.: A flexible search framework for CHR. In: Schrijvers, T., Frühwirth, T. (eds.) Constraint Handling Rules. LNCS, vol. 5388, pp. 16–47. Springer, Heidelberg (2008) Google Scholar
  12. 12.
    Lam, E.S.L., Sulzmann, M.: Towards agent programming in CHR. In: Proceedings of 3rd CHR Workshop on CHR 2006, pp. 17–31 (2006)Google Scholar
  13. 13.
    Martinez, T.: Angelic CHR. In: Proceedings of the 8th Workshop on Constraint Handling Rules, CHR 2011, pp. 19–31 (2011)Google Scholar
  14. 14.
    Sneyers, J., Weert, P.V., Schrijvers, Tom., Koninck, L.D.: As time goes by: constraint handling rules - a survey of CHR research between 1998 and 2007. In: Theory and Practice of Logic Programming, pp. 1–47 (2010)Google Scholar
  15. 15.
    Zaki, A., Frühwirth, T., Abdennadher, S.: Towards inverse execution of constraint handling rules. In: Technical Communications of 29th International Conference on Logic Programming, vol. 13 (2013)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  1. 1.German University in CairoCairoEgypt
  2. 2.Ulm UniversityUlmGermany

Personalised recommendations