## 2.4. 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 $\mathrm{𝚌𝚘𝚕𝚘𝚞𝚛𝚎𝚍}_\mathrm{𝚌𝚞𝚖𝚞𝚕𝚊𝚝𝚒𝚟𝚎}$ or the $\mathrm{𝚝𝚛𝚎𝚎}$ 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., $\mathrm{𝚊𝚕𝚕𝚍𝚒𝚏𝚏𝚎𝚛𝚎𝚗𝚝}$, $\mathrm{𝚗𝚟𝚊𝚕𝚞𝚎}$, $\mathrm{𝚝𝚛𝚎𝚎}$) 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.