clp(B): Combining Simplicity and Efficiency in Boolean Constraint Solving

We present the design and the implementation of clp(B): a boolean constraint solver in the Constraint Logic Programming paradigm. This solver is based on local propagation methods and follows the “glassbox” approach of compiling high-level constraints into primitive low-level ones. We detail its integration into the WAM showing that the necessary extension is truly minimal since only four new instructions are added. The resulting solver is around an order of magnitude faster than other existing boolean solvers.

[1]  Philippe Codognet,et al.  A Minimal Extension of the WAM for clp(FD) , 1993, ICLP.

[2]  Eugene C. Freuder,et al.  Constraint satisfaction using constraint logic programming , 1994 .

[3]  Antoine Rauzy,et al.  CLP(B): Do it Yourself , 1993, GULP.

[4]  Joxan Jaffar,et al.  Constraint logic programming , 1987, POPL '87.

[5]  Dana S. Scott,et al.  Some Domain Theory and Denotational Semantics in Coq , 2009, TPHOLs.

[6]  Hachemi Bennaceur,et al.  An Exact Algorithm for the Constraint Satisfaction Problem: Application to Logical Inference , 1993, Inf. Process. Lett..

[7]  Pascal Van Hentenryck Constraint satisfaction in logic programming , 1989, Logic programming.

[8]  Alan K. Mackworth Consistency in Networks of Relations , 1977, Artif. Intell..

[9]  Antoine Rauzy Using Enumerative Methods for Boolean Unification , 1991, WCLP.

[10]  Philippe Codognet,et al.  Boolean Constraint Solving Using clp(FD) , 1993, ILPS.

[11]  Jean-Luc Massat Using Local Consistency Techniques to Solve Boolean Constraints , 1991, WCLP.

[12]  Pascal Van Hentenryck,et al.  Constraint processing in cc(fd) , 1992 .

[13]  Vijay A. Saraswat The category of constraint systems is Cartesian-closed , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[14]  Tomás E. Uribe,et al.  Ordered Binary Decision Diagrams and the Davis-Putnam Procedure , 1994, CCL.

[15]  Hassan Aït-Kaci,et al.  Warren's Abstract Machine: A Tutorial Reconstruction , 1991 .