Essentials of Constraint Programming

The more you CHR, the better you are.

Thom Frühwirth and Slim Abdennadher

Essentials of Constraint Programming. Textbook, Springer Verlag, ISBN 9780817644451, 2003.

The first book that presents constraint logic programming languages and constraint solving systems in a uniform and concise way, using CHR as a specification and implementation language.

Press Commentaries

…a very valuable book that I wholeheartedly recommend… Eric Monfory in Journal TPLP(4)3:381-382, 2004.
Anybody looking for a formal, essential but never-shallow introduction to the field should definitely consider this book. Rosella Gennari in Journal of Logic, Language and Information (JOLLI), 2004.
…a truly concise summary of constraint-based logic programming… comprehensive… by far the best summarization… Bernard M. Kuc in ACM Computing Reviews, 2004.


The formally well-founded presentation introduces the common classes of constraint programming languages and constraint systems in a uniform way. It also includes application examples from real life. We first introduce the basic ideas behind the family of (concurrent) constraint logic programming languages in a calculus-based framework. Constraint solving algorithms are specified and implemented in the constraint handling rules language (CHR) in a uniform high-level executable notation. The most common constraint domains, their solvers and applications such as Boolean constraints for circuit design, terms and trees for unification, linear polynomial equations for financial and engineering applications and finite domains for scheduling, are presented.
  • The family of (concurrent) constraint logic programming languages

    Preliminaries of Syntax and Semantics

    Constraint logic programming (incl. Prolog)

    Concurrent committed-choice constraint logic programming

    Constraint handling rules (CHR)

  • Constraint systems and their solvers Rational Trees

    Feature Terms, Description Logic (not in book)

    Boolean Constraints

    Finite Domains

    Linear polynomial equations

    Non-Linear polynomial equations

  • Applications

    Commercial applications, market and companies

    Case study Munich rent advisor on the internet

    Case study Planning wireless telecommunication

    Case study Timetabling and Roomplanning