The constraint solving method needs access to information about the current domains of variables. This is provided by the following predicates, which are all constant time operations.
Checks that X is currently an unbound variable that is known to the CLPFD solver.
where X is a domain variable. Min is
unified with the smallest value in the current domain of X, i.e.
an integer or the atom
inf denoting minus infinity.
where X is a domain variable. Max is
unified with the upper bound of the current domain of X, i.e. an
integer or the atom
sup denoting plus infinity.
where X is a domain variable. Size is
unified with the size of the current domain of X, if the domain is
bounded, or the atom
where X is a domain variable. Set is unified with an FD set denoting the internal representation of the current domain of X; see below.
where X is a domain variable. Range is unified with a ConstantRange (see Syntax of Indexicals) denoting the current domain of X.
where X is a domain variable. Degree is unified with the number of constraints that are attached to X.
Please note: this number may include some constraints that have been detected as entailed. Also, Degree is not the number of neighbors of X in the constraint network.
The following predicates can be used for computing the set of variables that are (transitively) connected via constraints to some given variable(s).
Given a domain variable Var, Neighbors is the set of other variables, domain or otherwise, that occur with Var in some constraint.
Given a list Vars of domain variables, Closure is the set
of variables (including Vars) that can be transitively reached
via constraints. Thus,
fd_closure/2 is the transitive closure