POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Constraint arithmetic on real intervals
Constraint logic programming
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
Solving Polynomial Systems Using a Branch and Prune Approach
SIAM Journal on Numerical Analysis
Complexity estimates depending on condition and round-off error
Journal of the ACM (JACM)
Analytic constraint solving and interval arithmetic
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Real Computing Made Real: Preventing Errors in Scientific and Engineering Calculations
Real Computing Made Real: Preventing Errors in Scientific and Engineering Calculations
A Unified Framework for Interval Constraints and Interval Arithmetic
CP '98 Proceedings of the 4th International Conference on Principles and Practice of Constraint Programming
Solving Nonlinear Equations by Abstraction, Gaussian Elimination, and Interval Methods
FroCoS '02 Proceedings of the 4th International Workshop on Frontiers of Combining Systems
Constraint-Based Termination Analysis for Cyclic Active Database Rules
CL '00 Proceedings of the First International Conference on Computational Logic
Hi-index | 0.00 |
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 significant 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 particular, 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.