Creative Commons Attribution 3.0 Unported license
The appeal of constraint programming (CP) lies in compositionality – the ability to mix and match constraints as needed. However, this flexibility typically does not extend to the types of variables. Solvers usually support only a small set of pre-defined variable types, and extending this is not typically a simple exercise: not only must the solver engine be updated, but then the library of supported constraints must be re-implemented to support the new type. In this paper, we attempt to ease this second step. We describe a system for automatically deriving a native-code implementation of a global constraint (over novel variable types) from a declarative specification, complete with the ability to explain its propagation, a requirement if we want to make use of modern lazy clause generation CP solvers. We demonstrate this approach by adding support for wrapped-integer variables to chuffed, a lazy clause generation CP solver.
@InProceedings{gange_et_al:OASIcs.ICLP.2016.13,
author = {Gange, Graeme and Stuckey, Peter J.},
title = {{Constraint Propagation and Explanation over Novel Types by Abstract Compilation}},
booktitle = {Technical Communications of the 32nd International Conference on Logic Programming (ICLP 2016)},
pages = {13:1--13:14},
series = {Open Access Series in Informatics (OASIcs)},
ISBN = {978-3-95977-007-1},
ISSN = {2190-6807},
year = {2016},
volume = {52},
editor = {Carro, Manuel and King, Andy and Saeedloei, Neda and De Vos, Marina},
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
address = {Dagstuhl, Germany},
URL = {https://drops.dagstuhl.de/entities/document/10.4230/OASIcs.ICLP.2016.13},
URN = {urn:nbn:de:0030-drops-67437},
doi = {10.4230/OASIcs.ICLP.2016.13},
annote = {Keywords: constraint programming, program synthesis, program analysis}
}