e.add(this);
if (d != null && d.getmType() == Deduction.Type.ValRem) {
ValueRemoval vr = (ValueRemoval) d;
IntVar var = (IntVar) vr.getVar();
int val = vr.getVal();
TIntList nogoods = vars2nogood.get(var.getId());
TIntList indices = vars2idxinng.get(var.getId());
for (int i = 0; i < nogoods.size(); i++) {
INogood ng = allnogoods.get(nogoods.get(i));
int idx = indices.get(i);
if (val == ng.getVal(idx)) {
for (int j = 0; j < ng.size(); j++) {
if (ng.getVar(j) != var) {
// ng.getVar(j).explain(VariableState.REM, ng.getVal(j), e);
ng.getVar(j).explain(VariableState.DOM, e);