This constraint is generated by the compiler for if-then-else expressions
with potentially undefined cases.
The last entry in the c array is always the constant true, corresponding
to the else case.
The d [i] variable represents whether case
i is defined. Constrains that if b is defined, then the selected case must be defined, and
if the selected case is undefined, then b must be undefined.

Converts the float x into a string right justified
by the number of characters given by w , or left justified if
w is negative. The number of digits to appear after the decimal
point is given by p . It is a run-time error for p to be negative.

functionstring:show_int(int:w,varint:x)

Formatted to-string conversion for integers

Converts the integer x into a string right
justified by the number of characters given by w , or left
justified if w is negative.

These predicates allow users to mark constraints as e.g. symmetry breaking
or redundant, so that solvers can choose to implement them differently.

We cannot easily use annotations for this purpose, since annotations are
propagated to all constraints in a decomposition, which may be incorrect
for redundant or symmetry breaking constraints in the presence of
common subexpression elimination (CSE).