Handling Relations over Finite Domains in the Rule-Based System ELAN
Résumé
We present a methodology for handling efficiently relations over small finite domains in the rule-based programming language ELAN. Usually, a relation is specified as a first-order formula (a constraint) interpreted in a given algebraic structure. The concept of rewriting allows us to implement an algebraic structure in a very elegant way, by using rules for defining operators and predicates. Hence, we can directly obtain a rule-based executable specification computing all tuples of a relation, but in most cases, the related computation is completely inefficient. Indeed, the specification of a relation involves conditional rules, and a lot of rewriting steps fail after being tried. In this paper, we use a constraint solver in finite algebras to transform a naive rule-based ELAN specification of a relation into an efficient rule-based ELAN program with only unconditional rules. Thus, the constraint solver enables us to improve the rule-based computation of a relation.