In most circumstances, arithmetic constraints maintain
bound-consistency and detect bound-entailment and
-disentailment. There are cases where a bound-consistency
maintaining constraint may detect a contradiction when the constraint is
not yet bound-disentailed, as the following example illustrates.
Note that X #\=
Y maintains arc-consistency if
both arguments are constants or variables:
| ?- X+Y #= Z, X=1, Z=6, Y in 1..10, Y #\= 5. no | ?- X+Y #= Z #<=> B, X=1, Z=6, Y in 1..10, Y #\= 5. X = 1, Z = 6, Y in(1..4)\/(6..10), B in 0..1
Since 1+5#=6
holds, X+Y #= Z
is not bound-disentailed,
although any attempt to make it bound-consistent wrt. the store
results in a contradictory store.