CLIP: A CLP(Intervals) Dialect for Metalevel Constraint Solving
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.
- 2.Applied Logic Systems. CLP(BNR) manual. http://www.als.com 1999.
- 3.Frédéric Benhamou and David McAllister and Pascal Van Hentenryck CLP(Intervals) Revisited Proceedings of ILPS’94, 1994.Google Scholar
- 5.Bell Northern Research. CLP(BNR) Reference and User Manuals. 1988Google Scholar
- 7.Daniel Dìaz. GNU Prolog. http://www.gnu.org/software/prolog 1999.
- 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.T. Hickey, CLIP: an implementation of CLP (Intervals), http://www.cs.brandeis.edu/~tim/clip, 1999.
- 12.T. Hickey, Analytic Constraint Solving and Interval Arithmetic, to appear in the Proceedings of POPL’00, Boston, MA, Jan. 2000.Google Scholar
- 13.T. Hickey and D. Wittenberg, Validated Constraint Compilation Brandeis University, Tech Rep. CS-99-201, April, 1999.Google Scholar
- 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.R. Hammer, M. Hocks, U. Kulisch, and D. Ratz. Numerical Toolbox for Verified Computing I. Springer-Verlag, 1993.Google Scholar
- 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.Moore, R. E., Interval Analysis. Prentice-Hall, 1966.Google Scholar
- 19.A. Neumaier. Interval Methods for Systems of Equations. Cambridge University Press. 1990.Google Scholar
- 20.William Older and Frédéric Benhamou. Programming in CLP(BNR). Proceedings of PPCP’93, 1993.Google Scholar
- 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.Pascal Van Hentenryck, Laurent Michel, and Yves Deville. Numerica: A Modeling Language for Global Optimization. MIT Press, 1997.Google Scholar
- 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