Cadmium: An implementation of ACD term rewriting

Gregory J. Duck, Leslie De Koninck, Peter J. Stuckey

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

13 Citations (Scopus)

Abstract

Cadmium is a rule based programming language for compiling solver independent constraint models to various solver dependent back-ends. Cadmium is based on a hybrid between Constraint Handling Rules (CHR) and term rewriting modulo Associativity, Commutativity and a restricted form of Distributivity (ACD) called Conjunctive Context (CC). Experience with using Cadmium in the G12 project shows that CC is a powerful language feature, as local model mapping can depend on some non-local context, such as variable declarations or other constraints. However, CC significantly complicates the Cadmium normalisation algorithm, since the normal form of a term may depend on what context it appears in. In this paper we present an implementation of Cadmium based on classic bottom-up evaluation, but modified to handle CC matching. We evaluate the performance of the new implementation compared to earlier prototype normalisation algorithms. We show that the resulting system is fast enough to run "real-world" Cadmium applications.

Original languageEnglish
Title of host publicationLogic Programming - 24th International Conference, ICLP 2008, Proceedings
Pages531-545
Number of pages15
DOIs
Publication statusPublished - 1 Dec 2008
Externally publishedYes
EventInternational Conference on Logic Programming 2008 - Udine, Italy
Duration: 9 Dec 200813 Dec 2008
Conference number: 24th
https://link.springer.com/book/10.1007/978-3-540-89982-2 (Proceedings)

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume5366 LNCS
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

ConferenceInternational Conference on Logic Programming 2008
Abbreviated titleICLP 2008
Country/TerritoryItaly
CityUdine
Period9/12/0813/12/08
Internet address

Cite this