2.1. Describing the arguments of a global constraint

Since global constraints have to receive their arguments in some form, no matter whether we use the graph -based or the automaton -based description, we start by describing the abstract data types that we use in order to specify the arguments of a global constraint. These abstract data types are not related to any specific programming language like Caml, C, C++, Java or Prolog. If one wants to focus on a specific language, then one has to map these abstract data types to the data types that are available within the considered programming language. In a second phase we describe all the restrictions that one can impose on the arguments of a global constraint. Finally, in a third phase we show how to use these ingredients in order to declare the arguments of a global constraint.