[ library(conjunto) | Reference Manual | Alphabetic Index ]
modify_bound(+Flag, ?Svar, +Var)
Flag is a flag which takes its value in fglb, lubg. It indicates the bound
of the set domain variable Svar which should be updated and take the value
Var which is ground.
- +Flag
- A ground value from fglb, lubg.
- ?Svar
- A set domain variable.
- +Var
- A ground set.
Description
Flag is a flag which should take the value glb or lub, otherwise it
fails. If Svar is a ground set, it succeeds if we have Var equals to
Svar. If Svar is a set domain variable, its new lower or upper bound
will be updated and take the value Var. For monotonicity reasons, set
domains can only get reduced. So a new upper bound has to be contained
in the old one and a new lower bound has to contain the old one.
otherwise it fails.
Fail Conditions
Fails if Svar is ground and different from Var or if the new upper bound
is not contained in the old one or the new lower bound does not contain
the old one.
Resatisfiable
No.
Examples
[eclipse 9]: S `:: {1,2}..{1,2,3,4,6}, modify_bound(glb, S, {1,2,3}).
S = S{{1, 2, 3} .. {1, 2, 3, 4, 6}}
yes.
See Also
`:: / 2, glb / 2, lub / 2, set_range / 3