[ 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