- Documentation
- Reference manual
- Introduction
 - Overview
 - Initialising and Managing a Prolog Project
 - Built-in Predicates
 - SWI-Prolog extensions
 - Modules
 - Constraint Logic Programming
 - CHR: Constraint Handling Rules
 - Multithreaded applications
 - Coroutining using Prolog engines
 - Foreign Language Interface
 - Generating Runtime Applications
 - The SWI-Prolog library
 - Hackers corner
 - Compatibility with other Prolog dialects
 - Glossary of Terms
 - SWI-Prolog License Conditions and Tools
 - Summary
 - Bibliography
 
 - Packages
 
 - Reference manual
 
8 CHR: Constraint Handling Rules
This chapter is written by Tom Schrijvers, K.U. Leuven, and adjustments by Jan Wielemaker.
The CHR system of SWI-Prolog is the K.U.Leuven CHR system. The runtime environment is written by Christian Holzbaur and Tom Schrijvers while the compiler is written by Tom Schrijvers. Both are integrated with SWI-Prolog and licensed under compatible conditions with permission from the authors.
The main reference for the K.U.Leuven CHR system is:
- T. Schrijvers, and B. Demoen, The K.U.Leuven CHR System: Implementation and Application, First Workshop on Constraint Handling Rules: Selected Contributions (Frühwirth, T. and Meister, M., eds.), pp. 1--5, 2004.
 
On the K.U.Leuven CHR website (http://dtai.cs.kuleuven.be/CHR/) you can find more related papers, references and example programs.