2.2.1. Basic data types
We provide the following basic data types:
corresponds to an atom. Predefined atoms are and , which respectively correspond to the smallest and to the largest integer.
corresponds to an integer value.
corresponds to a domain variable. A domain variable is a variable that will be assigned an integer value taken from an initial finite set of integer values denoted by . and respectively denote the minimum and the maximum values of .
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 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 constraints.
corresponds to a finite set of integer values.
corresponds to a set variable. A set variable is a variable that will be assigned to a finite set of integer values. Its lower bound denotes the set of integer values that for sure belong to , while its upper bound denotes the set of integer values that may belong to . is a shortcut for combining the lower and upper bounds of in a single notation:
Bold values designate those values that only belong to .
Plain values indicate those values that belong to and not to .
corresponds to a multiset of integer values.
corresponds to a multiset variable. A multiset variable is a variable that will be assigned to a multiset of integer values.
corresponds to a real number.
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.2.2).