Constraint Handling Rules and Tabled Execution

  • Tom Schrijvers
  • David S. Warren
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3132)


Both Constraint Handling Rules (CHR) and tabling – as implemented in XSB – are powerful enhancements of Prolog systems, based on fix point computation. Until now they have only been implemented in separate systems. This paper presents the work involved in porting a CHR system to XSB and in particular the technical issues related to the integration of CHR with tabled resolution. These issues include call abstraction, answer projection, entailment checking, answer combination and tabled constraint store representations. Different optimizations related to tabling constraints are evaluated empirically. The integration requires no changes to the tabling engine. We also show that the performance of CHR programs without tabling is not affected. Now, with the combined power of CHR and tabling, it is possible to easily introduce constraint solvers in applications using tabling, or to use tabling in constraint solvers.


Model Check Constraint Solver Runtime System Constraint Logic Programming 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.
    Chen, W., Warren, D.S.: Tabled evaluation with delaying for general logic programs. Journal of the ACM 43(1), 20–74 (1996)zbMATHCrossRefMathSciNetGoogle Scholar
  2. 2.
    Codish, M., Demoen, B., Sagonas, K.: Semantic-based program analysis for logicbased languages using XSB. International Journal of Software Tools for Technology Transfer 2(1), 29–45 (1998)zbMATHCrossRefGoogle Scholar
  3. 3.
    Costa, V.S., Damas, L., Reis, R., Azevedo, R.: YAP User’s ManualGoogle Scholar
  4. 4.
    Cui, B., Warren, D.S.: A System for Tabled Constraint Logic Programming. 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. 478–492. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  5. 5.
    Cui, B., Warren, D.S.: Attributed Variables in XSB. In: Dutra, I., et al. (eds.). Electronic Notes in Theoretical Computer Science, vol. 30, Elsevier, Amsterdam (2000)Google Scholar
  6. 6.
    Demoen, B.: Dynamic attributes, their hProlog implementation, and a first evaluation. Report CW 350, Department of Computer Science, K.U.Leuven (October 2002)Google Scholar
  7. 7.
    Demoen, B., de la Banda, M.G., Harvey, W., Marriott, K., Stuckey, P.J.: An Overview of HAL. In: Jaffar, J. (ed.) CP 1999. LNCS, vol. 1713, pp. 174–188. Springer, Heidelberg (1999)Google Scholar
  8. 8.
    Demoen, B., Nguyen, P.-L.: So many WAM variations, so little time. 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. 1240–1254. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  9. 9.
    Du, X., Ramakrishnan, C.R., Smolka, S.A.: Tabled Resolution + Constraints: A Recipe for Model Checking Real-Time Systems. In: IEEE Real Time Systems Symposium, Orlando, Florida (November 2000)Google Scholar
  10. 10.
    Frühwirth, T.: Constraint Handling Rules. In: Podelski, A. (ed.) Constraint Programming: Basics and Trends. LNCS, vol. 910, pp. 90–107. Springer, Heidelberg (1995)Google Scholar
  11. 11.
    Frühwirth, T.: Theory and Practice of Constraint Handling Rules. In: Stuckey, P., Marriot, K. (eds.) Special Issue on Constraint Logic Programming, October 1998, vol. 37 (1998)Google Scholar
  12. 12.
    Guo, H.-F., Gupta, G.: Simplifying Dynamic Programming via Tabling. In: Lopes, R., Ferreira, M. (eds.) Proceedings of CICLOPS 2003. Technical Report DCC-2003-05, DCC - FC & LIACC, University of Porto (2003)Google Scholar
  13. 13.
    Intelligent Systems Laboratory. SICStus Prolog User’s Manual. PO Box 1263, SE- 164 29 Kista, Sweden (October 2003)Google Scholar
  14. 14.
    Jaffar, J., Lassez, J.-L.: Constraint Logic Programming. In: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, pp. 111–119. ACM Press, New York (1987)CrossRefGoogle Scholar
  15. 15.
    Mukund, M., Ramakrishnan, C.R., Ramakrishnan, I.V., Verma, R.: Symbolic Bisimulation using Tabled Constraint Logic Programming. In: International Workshop on Tabulation in Parsing and Deduction, Vigo, Spain (September 2000)Google Scholar
  16. 16.
    Pemmasani, G., Ramakrishnan, C.R., Ramakrishnan, I.V.: Efficient Model Checking of Real Time Systems Using Tabled Logic Programming and Constraints. In: International Conference on Logic Programming, Copenhagen, Denmark, July 2002. LNCS, Springer, Heidelberg (2002)Google Scholar
  17. 17.
    Schrijvers, T.: CHR benchmarks and programs (January 2004), Available at
  18. 18.
    Schrijvers, T., Warren, D.S., Demoen, B.: CHR for XSB. In: R. Lopes and M. Ferreira, editors, Proceedings of CICLOPS 2003. Technical Report DCC-2003- 05, DCC - FC & LIACC, University of Porto, December 2003, pp. 7–20 (2003)Google Scholar
  19. 19.
    Warren, D.S., et al.: The XSB Programmer’s Manual: version 2.5, vol. 1&2 (2001)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2004

Authors and Affiliations

  • Tom Schrijvers
    • 1
  • David S. Warren
    • 2
  1. 1.Dept. of Computer ScienceK.U.LeuvenBelgium
  2. 2.Dept. of Computer ScienceState University of New York at Stony BrookUSA

Personalised recommendations