A Presburger formula is built from constraints using the operations described in the previous subsection. In this subsection we describe the syntax of individual constraints.
A constraint is a series of expression lists, connected with the arithmetic relational operators =, !=, >, >=, <, <=. An example is 2i + 3j <= 5k,p <= 3x-z = t.
When an constraint contains a comma-separated list of expressions, it indicates that the same constraints should be introduced for each of the expressions. The constraint a,b <= c,d > e,f translates to the constraints
Expressions can be of the forms (where var is a variable, integer is an integer constant, and e, , and are expressions): var, integer, e, integer e, , , , - e, .
An important restriction is that all expressions in
the constraints must be affine functions of the variables.
For example, is legal, is legal, but is
illegal.