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