Abstract
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.
Original language | English |
---|---|
Title of host publication | Technical Communications of the 32nd International Conference on Logic Programming |
Subtitle of host publication | ICLP 2016, October 16–21, 2016, New York City, USA |
Editors | Manuel Carro, Andy King, Neda Saeedloei, Marina De Vos |
Place of Publication | Wadern Germany |
Publisher | Schloss Dagstuhl |
Number of pages | 14 |
ISBN (Electronic) | 9783959770071 |
DOIs | |
Publication status | Published - Nov 2016 |
Externally published | Yes |
Event | International Conference on Logic Programming 2016 - New York City, United States of America Duration: 16 Oct 2016 → 21 Oct 2016 Conference number: 32nd http://software.imdea.org/Conferences/ICLP2016/ |
Publication series
Name | OpenAccess Series in Informatics |
---|---|
Volume | 52 |
ISSN (Print) | 2190-6807 |
Conference
Conference | International Conference on Logic Programming 2016 |
---|---|
Abbreviated title | ICLP 2016 |
Country/Territory | United States of America |
City | New York City |
Period | 16/10/16 → 21/10/16 |
Internet address |
Keywords
- Constraint programming
- Program analysis
- Program synthesis