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.