Abstract Domains for Constraint Programming, with the Example of Octagons
Résumé
In Constraint Programming (CP), the central notion of consistency can be defined as a fix point of some contracting operators. These operators always deal with cartesian products of domains of the same nature (real intervals, integer sets, etc), due to the cartesian nature of the CSP format. However, textit{inside} the solving process, there is no particular reason why the domains should be cartesian. In another research field, Abstract Interpretation (AI) in semantics relies on a strong and elegant theory dealing with over-approximations of variables. It allows in particular to mix abstract domains of different kinds (integer, reals...). Several numerical abstract domains for continuous variables have recently been proposed, some of them cartesian, other relational. In this article, we adapt to CP the AI definition of abstract domains. We give an abstract consistency definition, and show it extends the usual CP consistencies. We also give a general solving algorithm for abstract domains. Finally, we propose the octagon abstract domain and study its practical feasibility.