Constraint Logic Programming

An informal introduction
  • Thom Frühwirth
  • Alexander Herold
  • Volker Küchenhoff
  • Thierry Le Provost
  • Pierre Lim
  • Eric Monfroy
  • Mark Wallace
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 636)


Constraint Logic Programming (CLP) is a new class of programming languages combining the declarativity of logic programming with the efficiency of constraint solving. New application areas, amongst them many different classes of combinatorial search problems such as scheduling, planning or resource allocation can now be solved, which were intractable for logic programming so far. The most important advantage that these languages offer is the short development time while exhibiting an efficiency comparable to imperative languages. This tutorial aims at presenting the principles and concepts underlying these languages and explaining them by examples. The objective of this paper is not to give a technical survey of the current state of art in research on CLP, but rather to give a tutorial introduction and to convey the basic philosophy that is behind the different ideas in CLP. It will discuss the currently most successful computation domains and provide an overview on the different consistency techniques used in CLP and its implementations.


Logic Program Logic Programming Constraint Satisfaction Problem Finite Domain Constraint Solver 
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. [AB91]
    A. Aggoun and N. Beldiceanu. Overview of the CHIP Compiler System. In K. Furukuwa and P. Deransart, editors, Proceedings of the 8th International Conference on Logic Programming, pages 775–789, June 1991.Google Scholar
  2. [AB92]
    A. Aggoun and N. Beldiceanau. Extending CHIP in order to solve complex scheduling problems. Technical report, COSYTEC, 1992.Google Scholar
  3. [AH92]
    A. Aiba and R. Hasegawa. Constraint Logic Programming Systems — CAL, GDCC and Their Constraint Solvers. In Proceedings of FGCS 92, pages 113–131, 1992.Google Scholar
  4. [AH92]
    [ASS+88] A. Aiba, K. Sakai, Y. Sato, D. J. Hawley, and R. Hasegawa. Constraint Logic Programming Language CAL. In Proceedings of the International Conference on Fifth Generation Computer Systems (FGCS-88), ICOT, Tokyo, pages 263–276, december 1988.Google Scholar
  5. [Bel88]
    Bell-Northern Research Ltd BNR. BNR-Prolog User Guide. Technical report, Bell-Northern Research Ltd., 1988.Google Scholar
  6. [Ber89]
    F. Berthier. A financial model using qualitative and quantitative knowledge. In F. Gardin, editor, Proceeedings of the International Symposium on Computational Intelligence 89, Milano, Italy, September 1989.Google Scholar
  7. [Bry86]
    R. Bryant. Graph based algorithms for boolean function manipulation. IEEE Transactions on Computers, 35(8):677–691, 1986.Google Scholar
  8. [BS87]
    W. Buettner and H. Simonis. Embedding Boolean Expressions into Logic Programming. Journal of Symbolic Computation, 4:191–205, October 1987.Google Scholar
  9. [Buc85]
    B. Buchberger. Gröbner Bases: an Algorithmic Method in Polynomial Ideal Theory. In N. K. Bose Ed., editor, Multidimensional Systems theory, pages 184–232. D. Reidel Publishing Company, Dordrecht — Boston — Lancaster, 1985.Google Scholar
  10. [Bue88]
    W. Buettner. Unification in finite algerbas is unitary (?). In Proceedings CADE-9. LNCS 310, Springer-Verlag, 1988.Google Scholar
  11. [Coh90]
    J. Cohen. Constraint logic programming languages. Communications of the ACM, 33(7):52–68, July 1990.Google Scholar
  12. [Col75]
    G. E. Collins. Quantifier Elimination for Real Closed Fields by Cylindrical Algebraic Decomposition. In Proceedings of the Second GI Conference on Automata Theory and Formal Languages, pages 515–532. Springer Lecture Notes in Computer Science 33, 1975.Google Scholar
  13. [Col90]
    Alain Colmerauer. An introduction to prolog-III. Communications of the ACM, 33(7):69–90, July 1990.Google Scholar
  14. [Dav87]
    E. Davis. Constraint propagation with interval labels. Artificial Intelligence, 32:281–331, 1987.Google Scholar
  15. [DSV88]
    M. Dincbas, H. Simonis, and P. Van Hentenryck. Solving a Cutting-Stock Problem in Constraint Logic Programming. In Fifth International Conference on Logic Programming, Seattle, WA, August 1988.Google Scholar
  16. [DSV90]
    M. Dincbas, H. Simonis, and P. Van Hentenryck. Solving Large Combinatorial Problems in Logic Programming. Journal of Logic Programming, 8(1–2):74–94, 1990.Google Scholar
  17. [DSVX91]
    M. Dorochevsky, K. Schuerman, A. Véron, and J. Xu. Constraints Handling, Garbage Collection and Execution Model Issues in ElipSys. In Springer Verlag, editor, Parallel Execution of Logic Programs, ICLP'91 Pre-Conference Workshop Proceedings, pages 17–28, Paris, June 1991.Google Scholar
  18. [DV91]
    Y. Deville and P. Van Hentenryck. An efficient arc consistency algorithm for a class of csp problems. In Proc. of the 13 th IJCAI, Sydney, Australia, August 1991.Google Scholar
  19. [DVS+88]
    M. Dincbas, P. Van Hentenryck, H. Simonis, A. Aggoun, T. Graf, and F. Berthier. The Constraint Logic Programming Language CHIP. In Proceedings on the International Conference on Fifth Generation Computer Systems FGCS-88, Tokyo, Japan, December 1988.Google Scholar
  20. [Fre78]
    E.C. Freuder. Synthesizing constraint expressions. Communications of the ACM, 21(11):958–966, November 1978.Google Scholar
  21. [Frü90]
    Thom Frühwirth. Constraint logic programming — an overview. Technical Report Technical Report E181-2, Christian Doppler Laboratory For Expert Systems, August 1990.Google Scholar
  22. [Frü92]
    Thom Frühwirth. Simplification rules. Technical report, ECRC, Munich, Germany, 1992.Google Scholar
  23. [FSTW91]
    T. Filkorn, R. Schmid, E. Tiden, and P. Warkentin. Experiences from a large industrial circuit design application. In ILPS, San Diego, California, October 1991.Google Scholar
  24. [Gal85]
    H. Gallaire. Logic programming: Further developments. In IEEE Symposium on Logic Programming, pages 88–99. IEEE, Boston, July 1985.Google Scholar
  25. [HE80]
    R.M. Haralick and G.L. Elliot. Increasing tree search efficiency for constraint satisfaction problems. Artificial Intelligence, 14:263–314, October 1980.Google Scholar
  26. [HHLM91]
    R. Helm, T. Huynh, C. Lassez, and K. Mariott. A linear constraint technology for user interfaces. Technical Report RC 16913, IBM Yorktown Heights, 1991.Google Scholar
  27. [Hon90]
    Hoon Hong. Improvements in CAD-Based Quantifier Elimination. PhD thesis, Ohio State University, Computer and Information Science Research Center, Colombus, Ohio, USA, 1990.Google Scholar
  28. [Hon92]
    H. Hong. Non-linear Constraints Solving over Real numbers in Constraint Logic Programming (Introducing RISC-CLP). Technical report, RISC, Linz, 1992.Google Scholar
  29. [HT85]
    J. Hopfield and D. Tank. 'Neural’ computation of decisions in optimization problems. Biological Cybernetics, 52:141–152, 1985.Google Scholar
  30. [JL87]
    Joxan Jaffar and Jean-Louis Lassez. Constraint logic programming. In Proceedings of the 14th ACM Symposium on Principles of Programming Languages, Munich, Germany, pages 111–119. ACM, January 1987.Google Scholar
  31. [JMSY90]
    Joxan Jaffar, Spiro Michaylov, Peter Stuckey, and Roland Yap. The CLPR language and system. Technical Report RC 16292 (72336) 11/15/90, IBM Research Division, November 1990.Google Scholar
  32. [JMSY92]
    J. Jaffar, M. Maher, P. Stuckey, and R. Yap. Output in CLPR. In Proceedings the FGCS'92, Tokyo, 1992.Google Scholar
  33. [KKR90]
    P. Kanellakis, G. Kuper, and P. Revesz. Constraint query languages. In Proceedings of PODS 90, pages 299–313W, 1990.Google Scholar
  34. [Kow79]
    R Kowalsi. Logic for Problem Solving. North-Holland, New York, Amsterdam, Oxford, 1979.Google Scholar
  35. [Küc92a]
    Volker Küchenhoff. Clp and novel search techniques: an integration. Technical report, ECRC, Munich, Germany, 1992.Google Scholar
  36. [Küc92b]
    Volker Küchenhoff. Novel search techniques — an overview. Technical report, ECRC, Munich, Germany, January 1992.Google Scholar
  37. [LLKS85]
    E. Lawler, J. Lenstra, R. Kan, and D. Shmoys. The Traveling Salesman Problem. John Wiley and Sons, 1985.Google Scholar
  38. [LMY87]
    Catherine Lassez, Ken McAloon, and Roland Yap. Constraint logic programming and options trading. IEEE Expert, Special Issue on Financial Software, (3):42–50, August 1987.Google Scholar
  39. [LW92a]
    T. Le Provost and M. Wallace. Constraint Satisfaction Over the CLP Scheme. Technical Report ECRC-92-1, ECRC, 1992.Google Scholar
  40. [LW92b]
    T. Le Provost and M. Wallace. Domain Independent Propagation. In Proceedings on the International Conference on Fifth Generation Computer Systems 1992 FGCS-92, pages 1004–1012, Tokyo, Japan, June 1992.Google Scholar
  41. [Mac77]
    A.K. Mackworth. Consistency in networks of relations. Artificial Intelligence, 8(1):99–118, 1977.Google Scholar
  42. [Mac86]
    A.K. Mackworth. Constraint satisfaction. In Encyclopedia of Artifical Intelligence, 1986.Google Scholar
  43. [MAC+89]
    M. Meier, A. Aggoun, D. Chan, P. Dufresne, R. Enders, D. Henry de Villeneuve, A. Herold, P. Kay, B. Perez, E. van Rossum, and J. Schimpf. SEPIA — An Extendible Prolog System. In Proceedings of the 11th World Computer Congress IFIP'89, San Francisco, August 1989.Google Scholar
  44. [Mah87]
    M. J. Maher. Logic semantics for a class of committed-choice programs. In Proc. 4th International Conference on Logic Programming, pages 858–876, Melbourne, Australia, May 1987.Google Scholar
  45. [MF85]
    A.K. Mackworth and E.C. Freuder. The complexity of some polynomial network consistency algorithms for constraint satisfaction problems. Artificial Intelligence, 25:65–74, 1985.Google Scholar
  46. [MH86]
    R. Mohr and T.C. Henderson. Arc and path consistency revisited. Artificial Intelligence, 28:225–233, 1986.Google Scholar
  47. [MN90]
    U. Martin and T. Nipkov. Boolean unification — the story so far. In C. Kirchner, editor, Unification. Academic Press, 1990.Google Scholar
  48. [Mon74]
    U. Montanari. Networks of constraints: Fundamental properties and applications to picture processing. Information Science, 7(2):95–132, 1974.Google Scholar
  49. [Mon92a]
    E. Monfroy. A Survey of Non-Linear Solvers. Technical Report 91-15i, ECRC, Munich, Germany, January 1992.Google Scholar
  50. [Mon92b]
    E. Monfroy. Non Linear Constraints: a Language and a Solver. Technical Report ECRC-92, ECRC, Munich, Germany, 1992. to appear.Google Scholar
  51. [OV90]
    W. Older and A. Vellino. Extending prolog with constraint arithmetics on ral intervals. In Canadian Conference on Computer and Electrical Engineering, Ottawa, Canada, 1990.Google Scholar
  52. [PS85]
    F. P. Preparata and M. I. Shamos. Computational Geometry: An Introduction. Springer-Verlag, New York, 1985.Google Scholar
  53. [SA89]
    K. Sakai and A. Aiba. A Theoretical background of Constraint Logic Programming and its Applications. Journal of Symbolic Computation, 8(6):589–603, December 1989.Google Scholar
  54. [Sar92]
    V. A. Saraswat. Concurrent Constraint Programming Languages. MIT Press, 1992.Google Scholar
  55. [SD87]
    H. Simonis and M. Dincbas. Using Logic Programming for Fault Diagnosis in Digital Circuits. In German Workshop on Artificial Intelligence (GWAI-87), pages 139–148, Geseke, W.Germany, September 1987.Google Scholar
  56. [SD90]
    H. Simonis and M. Dincbas. Propositional calculus problems in chip. In H. Kirchner, editor, Proceedings of the 2nd International Conf on Algebraic and Logic Programming, Nancy, France, October 1990. CRIN and INRIA-Lorraine, Springer Verlag.Google Scholar
  57. [Sim89]
    H. Simonis. Test Generation Using the Constraint Logic Programming Language CHIP. In Proceedings of the 6th International Conference on Logic Programming, Lisbon, Portugal, June 1989.Google Scholar
  58. [Sim92]
    H. Simonis. Constraint Logic Programming as a Digital Circuit Design Tool. PhD thesis, 1992. (submitted).Google Scholar
  59. [Smo91]
    Gerd Smolka. Residuation and guarded rules for constraint logic programming. Technical report, Digital Equipment Paris Research Laboratory Research Report, June 1991.Google Scholar
  60. [Ste80]
    G. L. Steele. The definition and implementation of a computer programming language based on constraints. Technical Report MIT-AI TR 595, Dept. of Electrical Engineering and Computer Science, M.I.T., August 1980.Google Scholar
  61. [Van88]
    P. Van Hentenryck. A Constraint Approach to Mastermind in Logic Programming. ACM Sigart, (103), January 1988.Google Scholar
  62. [Van89]
    P. Van Hentenryck. Constraint Satisfaction in Logic Programming, Logic Programming Series. MIT Press, Cambridge, MA, 1989.Google Scholar
  63. [Van91]
    Pascal Van Hentenryck. Constraint logic programming. The Knowledge Engineering Review, 6(3):151–194, 1991.Google Scholar
  64. [VD91]
    Pascal Van Hentenryck and Yves Deville. The cardinality operator: A new logical connective for constraint logic programming. In Proc. of the 8 th Int. Conf. on Logic Programming, pages 745–759, Paris, France, 1991. MIT Press.Google Scholar
  65. [Vod88]
    P. Voda. The constraint language trilogy: Semantics and computations. Technical report, Complete Logic Systems, North Vancouver, BC, Canada, 1988.Google Scholar
  66. [Wal72]
    D. Waltz. Generating semantic descriptions from drawings of scenes with shadows. Technical Report AI271, MIT, Massachusetts, November 1972.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Thom Frühwirth
    • 1
  • Alexander Herold
    • 1
  • Volker Küchenhoff
    • 1
  • Thierry Le Provost
    • 1
  • Pierre Lim
    • 1
  • Eric Monfroy
    • 1
  • Mark Wallace
    • 1
  1. 1.ECRC European Computer-Industry Research CentreMunich 81Germany

Personalised recommendations