*Domain variables*- Only variables with finite integer domains are supported. This includes
boolean variables which are considered finite integer domain variables
with the domain
`0..1`

. Domain variables declared to be of type`var int`

are initially given the finite integer domain`inf..sup`

, and are given maximally wide bounded domains before any search is performed on them, as well as before certain constraints that demand bounded domains are posted on them. *Ground set values*- Although set variables are not supported, ground set values
are supported. For example, the MiniZinc global constraint
`sum_pred/4`

takes as second argument an array of such ground set values. *Solve annotations*-
- The solve annotations currently recognized are
`bool_search`

,`int_search`

,`labelling_ff`

, and`seq_search`

. - The FlatZinc specification describes several
*exploration strategies*. Currently, the only recognized exploration strategies are`complete`

and`fail`

. - When no solve annotation is given, a default first-fail domain splitting
heuristic is used on all problem variables (excluding those that have a
`var_is_introduced`

annotation; see below). This corresponds to`labeling/2`

of`library(clpfd)`

with the option list`[ff,bisect]`

. - The choice method
`indomain_random`

as described in the FlatZinc specification uses`random_member/2`

of`library(random)`

. The random generator of SICStus is initialized using the same seed on each start up, meaning that the same sequence will be tried for`indomain_random`

on each start up. This behavior can be changed by setting a different random seed using`setrand/1`

of`library(random)`

.

- The solve annotations currently recognized are
*Constraint annotations*- Constraint annotations of the form
`domain`

,`bounds`

, and`value`

are recognized in relevant FlatZinc-to-`library(clpfd)`

constraint translations. Any other constraint annotation is ignored. *Variable annotations*- The following variable annotations are recognized:
`output_var`

: the variable may be written on the current output stream.`output_array`

: the variable array may be written on the current output stream.`var_is_introduced`

: the variable will not be considered in any default labeling (such as when no search annotation is given or when the`labelling_ff`

search annotation is given).

Any other variable annotation is ignored.

Send feedback on this subject.