#### 10.10.10.6 Monotonicity of Ranges

A range `R` is *monotone in *`S` iff the value of `R` in
`S’` is contained in the value of `R` in `S`, for every
extension `S’` of `S`. A range `R` is *anti-monotone in
*`S` iff the value of `R` in `S` is contained in the value
of `R` in `S’`, for every extension `S’` of `S`. By
abuse of notation, we will say that `X` in `R`

is
(anti-)monotone iff `R` is (anti-)monotone.

The consistency or entailment of a constraint `C` expressed as
indexicals `X` in `R`

in a store `S` is checked by
considering the relationship between `D(X,S)` and `S(R)`,
together with the (anti-)monotonicity of `R` in `S`. The
details are given in Execution of Propagating Indexicals and
Execution of Checking Indexicals.

The solver checks (anti-)monotonicity by requiring that certain
variables occurring in the indexical be ground. This sufficient
condition can sometimes be false for an (anti-)monotone indexical, but
such situations are rare in practice.

Send feedback on this subject.