code: @Override
  	public void propagate(int evtmask) throws ContradictionException {
  		for (int i = 0; i < n; i++) {
  			ISet tmp = g.getMandSuccOrNeighOf(i);
  			for (int j : tmp) {
  				succs[i].instantiateTo(j, this);
  			}
  			for (int j = succs[i].getLB(); j <= succs[i].getUB(); j = succs[i].nextValue(j)) {
  				if (!g.getPotSuccOrNeighOf(i).contains(j)) {
  					succs[i].removeValue(j, this);
  				}
  			}
  		}
  		gdm.unfreeze();
  	}
docs: ***********************************************************************************