The K.U.Leuven CHR System

System Summary

The K.U.Leuven CHR system is a competitive Constraint Handling Rules system for Prolog. It is currently available in seven different Prolog systems:

A version for Java, called JCHR, is also available.

The K.U.Leuven CHR Team

the K.U.Leuven CHR Team
From left to right: Jon Sneyers, Peter Van Weert, Leslie De Koninck, Bart Demoen and Tom Schrijvers

News & Events

Related Publications

Please contact Tom Schrijvers for a copy of any of the papers that you cannot find.
  1. B. Demoen, Dynamic attributes, their hProlog implementation, and a first evaluation, Department of Computer Science, K.U.Leuven, Report CW 350, Leuven, Belgium, October, 2002 [paper]
  2. T. Schrijvers, D. Warren, and B. Demoen, CHR for XSB, Proceedings of CICLOPS 2003: Colloquium on Implementation of Constraint and LOgic Programming Systems (Lopes, R. and Ferreira, M., eds.), pp. 7-20, 2003 [proceedings]
  3. T. Schrijvers and B. Demoen, The K.U.Leuven CHR system: implementation and application, Proceedings of the First Workshop on Constraint Handling Rules: Selected Contributions, Ulm, Germany (Thom Frühwirth and Marc Meister eds.), May 2004 [proceedings, slides]
  4. T. Schrijvers and D. Warren, Constraint handling rules and tabled execution, Proceedings of The 20th International Conference on Logic Programming, St.-Malo, France (Demoen, B. and Lifschitz, V., eds.), September 2004. Winner of Best Technical Paper Award. [paper © Springer Verlag]
  5. T. Schrijvers, JmmSolve: A generative Java Memory Model implemented in Prolog and CHR, Poster Presenation, Proceedings of The 20th International Conference on Logic Programming, St.-Malo, France (Demoen, B. and Lifschitz, V., eds.), September 2004.
  6. T. Schrijvers and B. Demoen, Antimonotony-based Delay Avoidance for CHR, K.U.Leuven, Department of Computer Science, Report CW 385, July, 2004. [report]
  7. T. Schrijvers and T. Frühwirth, Implementing and Analysing Union-Find in CHR , K.U.Leuven, Department of Computer Science, Report CW 389, July, 2004. [report, online appendix]
  8. J. Sneyers, T. Schrijvers and B. Demoen, Guard Simplification in CHR programs, 9th Workshop on (Constraint) Logic Programming, Ulm, February, 2005. [paper, slides,techreport]
  9. T. Schrijvers and T. Frühwirth, Analysing the CHR Implementation of Union-Find, 9th Workshop on (Constraint) Logic Programming, Ulm, February, 2005. [paper, slides]
  10. T. Schrijvers, J. Wielemaker and B. Demoen, Constraint Handling Rules for SWI-Prolog, 9th Workshop on (Constraint) Logic Programming, Ulm, February, 2005. Abstract Only. [abstract, slides]
  11. T. Schrijvers, B. Demoen, G. J. Duck, P. J. Stuckey and T. Frühwirth, Automatic implication checking for CHR constraint solvers, K.U.Leuven, Department of Computer Science, Report CW 402, January, 2005. [report]
  12. T. Schrijvers, B. Demoen, G. Duck, P. Stuckey, and T. Frühwirth, Automatic implication checking for CHR constraints, Proceedings of 6th International Workshop on Rule-Based Programming, Nara, Japan, April, 2005. [info]
  13. T. Schrijvers. Analyses, Optimizations and Extensions of Constraint Handling Rules, Ph.D. Thesis. K.U.Leuven, Leuven, Belgium. June 2005. [pdf]
  14. T. Schrijvers, Peter J. Stuckey, G. J. Duck. Abstract Interpretation for Constraint Handling Rules, PPDP'05, July 2005. [info,techreport]
  15. J. Sneyers, T. Schrijvers, B. Demoen. Guard and Continuation Optimization for Occurrence Representations of CHR, ICLP 2005, October 2005.
  16. T. Schrijvers. Analyses, Optimizations and Extensions of Constraint Handling Rules: Ph.D. Summary, ICLP 2005, October 2005.
  17. J. Sneyers, T. Schrijvers, B. Demoen. The Computational Power and Complexity of Constraint Handling Rules, CHR 2005, October 2005.
  18. G. J. Duck, T. Schrijvers. Accurate Functional Dependency Analysis for Constraint Handling Rules, CHR 2005, October 2005.
  19. P. Van Weert, T. Schrijvers, B. Demoen. K.U.Leuven JCHR: a User-Friendly, Flexible and Efficient CHR System for Java, CHR 2005, October 2005.
  20. T. Schrijvers, M. Bruynooghe. Towards Constraint-based Type Inference with Polymorphic Recursion for Functional and Logic Programs, IFL 2005, September 2005. SWI-Prolog source code for type inference of:
    • Λ+, λ-calculus with function definitions
    • Prolog
  21. T. Schrijvers, Thom Frühwirth. Optimal Union-Find in Constraint Handling Rules, Theory and Practice of Logic Programming, issue 6 (1&2), 2006. [article]
  22. J. Sneyers, T. Schrijvers, B. Demoen, Dijkstra's Algorithm with Fibonacci Heaps: An Executable Description in CHR, WLP 2006. [techreport]
  23. L. De Koninck, T. Schrijvers, B. Demoen, INCLP(R) - Interval-based Nonlinear Constraint Logic Programming over the Reals, WLP 2006. [webpage]
  24. T. Schrijvers, M. Bruynooghe. Polymorphic Algebraic Data Type Reconstruction, PPDP 2006. AMTypRe prototype (SWI-Prolog source code for type inference + ADT reconstruction of)
    • ΛK+, λ-calculus with function definitions and ADTs (coming soon)
    • Prolog/Mercury (coming soon)
  25. J. Sneyers, T. Schrijvers, B. Demoen, Memory reuse for CHR, ICLP 2006.
  26. P. Van Weert, J. Sneyers, T. Schrijvers, B. Demoen, CHR¬: Constraint Handling Rules with Negation, CHR 2006. [techreport]
  27. L. De Koninck, T. Schrijvers, B. Demoen, Flexible Search Strategies in CHR for Prolog, CHR 2006. [techreport]
  28. T. Schrijvers, N.-F. Zhou, B. Demoen, Translating Constraint Handling Rules into Action Rules, CHR 2006. [techreport]
  29. L. De Koninck, T. Schrijvers, and B. Demoen, CHRrp: Constraint Handling Rules with Rule Priorities, PPDP 2007. [techreport]
  30. L. De Koninck, T. Schrijvers, and B. Demoen, The Correspondence Between the Logical Algorithms Language and CHR, ICLP 2007. [techreport]

Benchmarks

Here are CHR programs of various origin that can be used as benchmarks.
Benchmark Description Source/Author
dijkstra_chr.tar.gz several variants of Dijkstra's shortest path algorithm J. Sneyers
bool.chr N digit binary addition WebCHR, T. Schrijvers
bool_chain.chr Cycle of and constraints over N variables bool.chr, J. Sneyers
fib.chr N first Fibonacci numbers WebCHR
fibonacci.chr more efficient version of fib.chr B. Demoen, T. Schrijvers
inference.chr type inference with polymorphic recursion T. Schrijvers
leq.chr circular chain of N smaller-than-or-equal variables WebCHR
primes.chr prime numbers up to N WebCHR
ram_simul.chr RAM machine simulator J. Sneyers, T. Schrijvers
sudoku.chr Sudoku puzzle solver T. Frühwirth
ta.chr clock bounds in timed automaton T. Schrijvers
union-find.chr union-by-rank with path compression T. Frühwirth, T. Schrijvers
wfs.chr well-founded semantics of 3-valued logic program T. Schrijvers
zebra.chr classic zebra puzzle with finite domain solver Pieter Valcke, T. Schrijvers

These benchmarks are useful to compare CHR performance to Prolog:
Benchmark Description Source/Author
cprimes.chr list of primes in N first integers WebCHR, J. Sneyers
dfsearch.chr depth first search in tree J. Sneyers
nrev.chr naive reverse J. Sneyers
sum.chr sum of integer list J. Sneyers
tak.chr Takeuchi function J. Sneyers

CHR and Tabling

Here is a CHR program that would benefit from tabling: Truckload
Benchmark Description Source/Author
truckload.chr shipment problem T. Schrijvers

Contact Information

If you want more info, contact:

Related Links

Last update: 03-12-2008