[ library(fd) | Reference Manual | Alphabetic Index ]
dvar_update(+DVar, +NewDom)
Change the domain of the domain variable DVar to NewDom and propagate the
changes.
- +DVar
- A domain variable.
- +NewDom
- A finite domain.
Description
If the size of the domain NewDom is 0, the predicate fails. If it is 1,
the domain variable DVar is instantiated to the value in the domain.
Otherwise, if the size of the new domain is smaller than the size of the
domain variable's domain, the domain of DVar is replaced by NewDom, the
appropriate suspension lists in its attribute are passed to the waking
scheduler and so is the constrained list in the suspend attribute of the
domain variable. If the size of the new domain is equal to the old one,
no updates and no waking is done, i.e. this predicate does not check an
explicit equality of both domains. If the size of the new domain is
greater than the old one, an error is raised.
Fail Conditions
None.
Resatisfiable
No.
See Also
dvar_attribute / 2, :: / 2, #:: / 2, dvar_replace / 2