interp_constr(Constr), n_vars_gt(1,0), {generated,ins(Constr),bound(Constr)} => reduce_domains(Constr). interp_constr(Constr) => test_constr(Constr).If a constraint Constr contains at least one variable, the interpreter delays the constraint, and invokes the procedure reduce_domains(Constr) in order to exclude no-good values from the variables in Constr. The two kinds of events, namely ins(Constr) and bound(Constr), ensure that the constraint will be reconsidered whenever a bound of a variable in Constr is updated, or whenever a variable is bound to any value.