2.1.1. Basic data types

We provide the following basic data types:

• $\mathrm{\pi \pi \pi \pi }$ corresponds to an atom. Predefined atoms are $\mathrm{\pi Ό\pi Έ\pi ½\pi Έ\pi ½\pi }$ and $\mathrm{\pi Ό\pi °\pi \pi Έ\pi ½\pi }$, which respectively correspond to the smallest and to the largest integer.

• $\mathrm{\pi \pi \pi }$ corresponds to an integer value.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a domain variable. A domain variable $V$ is a variable that will be assigned an integer value taken from an initial finite set of integer values denoted by $\mathrm{\pi \pi \pi }\left(V\right)$. $\underset{Μ²}{V}$ and $\stackrel{Β―}{V}$ respectively denote the minimum and the maximum values of $\mathrm{\pi \pi \pi }\left(V\right)$.

• $\mathrm{\pi \pi \pi \pi \pi }$ corresponds to a possibly unbounded domain variable. A possibly unbounded domain variable is a variable that will be assigned an integer value from an initial finite set of integer values denoted by $\mathrm{\pi \pi \pi }\left(V\right)$ or from interval minus infinity, plus infinity. This type is required for declaring the domain of a variable. It is also required by some systems in the context of specific constraints like arithmetic or $\mathrm{\pi \pi \pi \pi \pi \pi \pi }$ constraints.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a finite set of integer values.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a set variable. A set variable $V$ is a variable that will be assigned to a finite set of integer values. Its lower bound $\underset{Μ²}{V}$ denotes the set of integer values that for sure belong to $V$, while its upper bound $\stackrel{Β―}{V}$ denotes the set of integer values that may belong to $V$. $\mathrm{\pi \pi \pi }\left(V\right)=\left\{{\mathrm{\pi ―}}_{\mathbf{1}},...,{\mathrm{\pi ―}}_{\mathrm{\pi §}},{v}_{n+1},...,{v}_{m}\right\}$ is a shortcut for combining the lower and upper bounds of $V$ in one single notation:

• Bold values designate those values that only belong to $\underset{Μ²}{V}$.

• Plain values indicate those values that belong to $\stackrel{Β―}{V}$ and not to $\underset{Μ²}{V}$.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a multiset of integer values.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a multiset variable. A multiset variable is a variable that will be assigned to a multiset of integer values.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a real number.

• $\mathrm{\pi \pi \pi \pi }$ corresponds to a real variable. A real variable is a variable that will be assigned a real number taken from an initial finite set of intervals. A real number is usually represented by an interval of two floating point numbers.

Beside domain, set, multiset and float variables we have not yet introduced graph variablesΒ [Dooms06]. A graph variable is currently simulated by using one set variable for each vertex of the graph (see the third example of type declaration ofΒ 2.1.2).