CLIP: A CLP(Intervals) Dialect for Metalevel Constraint Solving
- Cite this paper as:
- Hickey T.J. (1999) CLIP: A CLP(Intervals) Dialect for Metalevel Constraint Solving. In: Pontelli E., Santos Costa V. (eds) Practical Aspects of Declarative Languages. PADL 2000. Lecture Notes in Computer Science, vol 1753. Springer, Berlin, Heidelberg
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.