code: @Override
  	public void propagate(int evtmask) throws ContradictionException {
  		int min = 0;
  		int max = 0;
  		for (int i = 0; i < n; i++) {
  			ISet nei = g.getPotNeighOf(i);
  			for (int j : nei) {
  				if (i <= j) {
  					max += distMatrix[i][j];
  					if (g.getMandNeighOf(i).contains(j)) {
  						min += distMatrix[i][j];
  					}
  				}
  			}
  		}
  		gdm.unfreeze();
  		minSum.set(min);
  		maxSum.set(max);
  		sum.updateLowerBound(min, this);
  		sum.updateUpperBound(max, this);
  	}
docs: ***********************************************************************************