@Override public void propagate(int evtmask) throws ContradictionException { for (int j = set.getKernelFirst(); j != SetVar.END; j = set.getKernelNext()) { min.updateUpperBound(get(j), this); } int minVal = Integer.MAX_VALUE; int lb = min.getLB(); for (int j = set.getEnvelopeFirst(); j != SetVar.END; j = set.getEnvelopeNext()) { int k = get(j); if (k < lb) { set.removeFromEnvelope(j, this); } else { if (minVal > k) { minVal = k; } } } if (notEmpty || set.getKernelSize() > 0) { min.updateLowerBound(minVal, this); } }