X in min(Y)+min(Z)..max(Y)+max(Z).which ensures that the constraint X #= Y+Z is interval-consistent on X. The indexical is activated whenever a bound of Y or Z is updated. The following shows the implementation in action rules:
'V in V+V'(X,Y,Z),{generated,ins(Y),bound(Y),ins(Z),bound(Z)} => reduce_domain(X,Y,Z). reduce_domain(X,Y,Z) => fd_min_max(Y,MinY,MaxY), fd_min_max(Z,MinZ,MaxZ), L is MinY+MinZ, U is MaxY+MaxZ, X in L..U.The action reduce_domain(X,Y,Z) is executed whenever a variable is instantiated, or whenever a variable's bound is updated. The original indexical is equivalent to the following call:
'V in V+V'(X,Y,Z)Because of the existence of generated in the action rule, interval-consistency is also enforced on X when the constraint is generated.