Representations of Sets and Multisets in Constraint Programming

Constraint programming is a powerful and general purpose tool, but its use is limited, as the process of refining a specification of a problem into an efficient constraint program (known as modelling) is more of an art than a science at present and must be learned by years of experience. This paper theoretically analyses one frequently occurring pattern in modelling, how to choose between different representations of high-level structures, in particular sets and multisets. It differs from previous work by providing methods of comparing very different representations, and by abstracting away from a particular implementation of a representation. It demonstrates useful theoretical dominance results between representations in both a problem dependant and independent context.