2.5. Reformulating global constraints as a conjunction
Many global constraints can be reformulated as a conjunction of global or reified constraints. The slot Reformulation provides for some global constraints such reformulations (see for instance the reformulation slots respectively associated with the or the constraints). When it exists, the corresponding code is available in the “.pl file” attached to a constraint. The initial concrete motivation for providing reformulations was triggered by the fact that it is usually an easy way to have a first implementation of a constraint, which is a feature we want to have in the context of the catalogue. However many reformulations (e.g., , , ) involve a quadratic (or even more) number of variables and/or constraints, which does not scale in practice when one wants to handle constraints with thousands of variables. This is why many filtering algorithms compute again and again common quantities that would require too much memory if stored explicitly.