Constraint propagation and explanation over novel types by abstract compilation

Research output: Chapter in Book/Report/Conference proceedingConference PaperResearchpeer-review


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 languageEnglish
Title of host publicationTechnical Communications of the 32nd International Conference on Logic Programming
Subtitle of host publicationICLP 2016, October 16–21, 2016, New York City, USA
EditorsManuel Carro, Andy King, Neda Saeedloei, Marina De Vos
Place of PublicationWadern Germany
PublisherSchloss Dagstuhl
Number of pages14
ISBN (Electronic)9783959770071
Publication statusPublished - Nov 2016
Externally publishedYes
EventInternational Conference on Logic Programming 2016 - New York City, United States of America
Duration: 16 Oct 201621 Oct 2016
Conference number: 32nd

Publication series

NameOpenAccess Series in Informatics
ISSN (Print)2190-6807


ConferenceInternational Conference on Logic Programming 2016
Abbreviated titleICLP 2016
CountryUnited States of America
CityNew York City
Internet address


  • Constraint programming
  • Program analysis
  • Program synthesis

Cite this