CLIP: A CLP(Intervals) Dialect for Metalevel Constraint Solving

  • Timothy J. Hickey
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1753)


CLIP is an implementation of CLP(Intervals) built on top of Prolog. It has been developed using the simplest model of constraint solving in which constraints are decomposed into sets of primitive constraints and a simple constraint queue is used to repeatedly apply primitive constraint contractions until some termination condition applies (e.g. no signicant change occurs, or a preset limit on the number of contractions is reached). The simple semantics and implementation make it relatively straightforward to prove that the system is sound. In this paper we show how to implement more complex constraint solvers in CLIP. In particu- lar, we demonstrate that several of the box-narrowing algorithms from the Newton and Numerica systems can be easily implemented in CLIP. The principal advantages of this approach are (1) the resulting solvers are relatively easy to prove correct, (2) new solvers can be rapidly prototyped since the code is more concise and declarative than for imperative languages, and (3) contractors can be implemented directly from mathematical formulae without having to first prove results about interval arithmetic operators.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Forman S. Acton, Real computing made real: Preventing Errors in Scientific and Engineering calculations, Princeton University Press, Princeton, New Jersey 1996.MATHGoogle Scholar
  2. 2.
    Applied Logic Systems. CLP(BNR) manual. 1999.
  3. 3.
    Frédéric Benhamou and David McAllister and Pascal Van Hentenryck CLP(Intervals) Revisited Proceedings of ILPS’94, 1994.Google Scholar
  4. 4.
    Frédéric Benhamou and William J. Older. Applying interval arithmetic to real, integer, and Boolean constraints. Journal of Logic Programming, 32:1–24, 1997.MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Bell Northern Research. CLP(BNR) Reference and User Manuals. 1988Google Scholar
  6. 6.
    Cucker, F. and Smale, S. Complexity Estimates Depending on Condition and Round-Off Error, Journal of the ACM, 46:1, pp. 113–184, 1999.MATHCrossRefMathSciNetGoogle Scholar
  7. 7.
    Daniel Dìaz. GNU Prolog. 1999.
  8. 8.
    L. Granvilliers. A Symbolic-Numerical Branch and Prune Algorithm for Solving Non-linear Polynomial Systems. Journal of Universal Computer Science vol. 4(2):125–146, 1998. Springer Science Online.MATHMathSciNetGoogle Scholar
  9. 9.
    F. Benhamou and L. Granvilliers. Automatic Generation of Numerical Redundancies for Non-Linear Constraint Solving. Reliable Computing, vol 3(3):335–344, 1997. Kluwer Academic Publishers.MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    T. Hickey, CLP(F) and Constrained ODEs, in the Workshop on Constraint Languages and their use in Problem Modeling, ECRC Tech. Report (defunct), 1994.Google Scholar
  11. 11.
    T. Hickey, CLIP: an implementation of CLP (Intervals),, 1999.
  12. 12.
    T. Hickey, Analytic Constraint Solving and Interval Arithmetic, to appear in the Proceedings of POPL’00, Boston, MA, Jan. 2000.Google Scholar
  13. 13.
    T. Hickey and D. Wittenberg, Validated Constraint Compilation Brandeis University, Tech Rep. CS-99-201, April, 1999.Google Scholar
  14. 14.
    T. Hickey, H. Wu, and M.H. van Emden, A Unified Framework for Interval Constraints and Interval Arithmetic, in Principles and Practice of Constraint Programming — CP98, M. Maher and J-F. Puget (eds.), Springer-Verlag, LNCS v. 1520, pp. 250–264, 1998.CrossRefGoogle Scholar
  15. 15.
    T. Hickey, Q. Ju, and M.H. van Emden, Interval Arithmetic: from Principles to Implementation, Brandeis University Tech Report. CS-99-202, July, 1999.Google Scholar
  16. 16.
    R. Hammer, M. Hocks, U. Kulisch, and D. Ratz. Numerical Toolbox for Verified Computing I. Springer-Verlag, 1993.Google Scholar
  17. 17.
    Jaffar, J. and Lassez, J. L., Constraint Logic Programming. in Proceedings of the 14th ACM Symposium on the Principles of Programming Languages, 1987.Google Scholar
  18. 18.
    Moore, R. E., Interval Analysis. Prentice-Hall, 1966.Google Scholar
  19. 19.
    A. Neumaier. Interval Methods for Systems of Equations. Cambridge University Press. 1990.Google Scholar
  20. 20.
    William Older and Frédéric Benhamou. Programming in CLP(BNR). Proceedings of PPCP’93, 1993.Google Scholar
  21. 21.
    Older, W. and Vellino, A., Constraint Arithmetic on Real Intervals, in Constraint Logic Programming: Selected Research. Colmerauer, A. and Benhamou, F. (eds), MIT Press 1993.Google Scholar
  22. 22.
    Pascal Van Hentenryck, Laurent Michel, and Yves Deville. Numerica: A Modeling Language for Global Optimization. MIT Press, 1997.Google Scholar
  23. 23.
    Pascal Van Hentenryck, David McAllester, Dipak Kapur. Solving Polynomial Systems Using a Branch and Prune Approach, SIAM Journal on Numerical Analysis, 34(2), 1997Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Timothy J. Hickey
    • 1
  1. 1.Michtom School of Computer ScienceBrandeis UniversityUSA

Personalised recommendations