delay interp_constr(C):-no_vars_gt(1,0) : {ins(C),min(C),max(C)}, reduce_domains(C). interp_constr(C):-true : test_constr(C).The condition no_vars_gt(1,0) succeeds if there is at least one variable in C. For a constraint C, if there is at least one variable in it, the interpreter delays the constraint and invokes the procedure reduce_domains(C) to exclude no-good values from the variables in C. The three triggers, namely ins(C), min(C) and max(C), ensure that the constraint will be reconsidered whenever either a bound of any variable in C is updated or a variable is bound to any value.