Hostname: page-component-848d4c4894-hfldf Total loading time: 0 Render date: 2024-05-03T03:42:26.962Z Has data issue: false hasContentIssue false

SMCHR: Satisfiability modulo constraint handling rules

Published online by Cambridge University Press:  05 September 2012

GREGORY J. DUCK*
Affiliation:
School of Computing, National University of Singapore (e-mail: gregory@comp.nus.edu.sg)

Abstract

Constraint Handling Rules (CHRs) are a high-level rule-based programming language for specification and implementation of constraint solvers. CHR manipulates a global store representing a flat conjunction of constraints. By default, CHR does not support goals with a more complex propositional structure including disjunction, negation, etc., or CHR relies on the host system to provide such features. In this paper we introduce Satisfiability Modulo Constraint Handling Rules (SMCHR): a tight integration of CHR with a modern Boolean Satisfiability (SAT) solver for quantifier-free formulae with an arbitrary propositional structure. SMCHR is essentially a Satisfiability Modulo Theories (SMT) solver where the theory T is implemented in CHR. The execution algorithm of SMCHR is based on lazy clause generation, where a new clause for the SAT solver is generated whenever a rule is applied. We shall also explore the practical aspects of building an SMCHR system, including extending a “built-in” constraint solver supporting equality with unification and justifications.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2012

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Boehm, H. and Weiser, M. 1988. Garbage collection in an uncooperative environment. Software Practice and Experience 18, 9 (Sept.), 807820.CrossRefGoogle Scholar
Demoen, B., Banda, M., Harvey, W., Marriott, K. and Stuckey, P. 1999. Herbrand constraint solving in HAL. In Proceedings of the Sixteenth International Conference on Logic Programming. MIT Press, 260274.Google Scholar
Duck, G., Stuckey, P., Banda, M. and Holzbaur, C. 2004. The refined operational semantics of constraint handling rules. In International Conference on Logic Programming. Springer, 90104.CrossRefGoogle Scholar
Een, N. and Srensson, N. 2003. An extensible SAT-solver. In Proceedings of the Sixth International Conference on Theory and Applications of Satisfiability Testing. Springer Verlag.Google Scholar
Frühwirth, T. 1998. Theory and practice of constraint handling rules. Special Issue on Constraint Logic Programming, Journal of Logic Programming 37.Google Scholar
Holzbaur, C. 1992. Metastructures vs. attributed variables in the context of extensible unification - applied for the implementation of CLP languages. In Proceedings of 1992 International Symposium on Programming Language Implementation and Logic Programming. Springer Verlag, 260268.Google Scholar
Holzbaur, C. 1999. Compiling constraint handling rules into prolog with attributed variables. In Proceedings of the International Conference on Principles and Practice of Declarative Programming. Springer Verlag, 117133.Google Scholar
Moura, L. and Bjørner, N. 2011. Satisfiability modulo theories: introduction and applications. Communcations of the ACM 54, 9 (Sept.), 6977.CrossRefGoogle Scholar
Nieuwenhuis, R., Oliveras, A. and Tinelli, C. 2006. Solving SAT and SAT modulo theories: From an abstract Davis-Putnam-Logemann-Loveland procedure to DPLL(T). Journal of the ACM 53, 6 (Nov.), 937977.CrossRefGoogle Scholar
Ohrimenko, O., Stuckey, P. and Codish, M. 2009. Propagation via lazy clause generation. Constraints 14, 357391.CrossRefGoogle Scholar
Sarna-Starosta, B. and Schrijvers, T. 2008. Transformation-based indexing techniques for Constraint Handling Rules. In Proceedings of the 5th Workshop on Constraint Handling Rules, Schrijvers, T., Raiser, F. and Frühwirth, T., Eds. RISC Report Series 08-10, University of Linz, Austria, 318.Google Scholar
Schrijvers, T. and Demoen, B. 2004. The K.U. Leuven CHR system: Implementation and application. In First Workshop on Constraint Handling Rules: Selected Contributions. 15.Google Scholar
Sneyers, J., Weert, P., Schrijvers, T. and Koninck, L. 2010. As time goes by: Constraint handling rules – a survey of CHR research between 1998 and 2007. Theory and Practice of Logic Programming 10, 147.CrossRefGoogle Scholar
Taylor, A. 1996. PARMA - bridging the performance gap between imperative and logic programming. The Journal of Logic Programming 29, 1–3, 516.CrossRefGoogle Scholar
Wielemaker, J., Schrijvers, T., Triska, M. and Lager, T. 2012. SWI-Prolog. Theory and Practice of Logic Programming 12, 1–2, 6796.CrossRefGoogle Scholar
Wolf, A., Robin, J. and Vitorino, J. 2008. Adaptive CHR meets CHR˅: An extended refined operational semantics for CHR˅ based on justifications. In Constraint Handling Rules. Vol. 5388. Springer Berlin/Heidelberg, 4869.CrossRefGoogle Scholar