code: @Override
  	public void propagate(int evtmask) throws ContradictionException {
  		int max = -1;
  		for (int i : g.getPotentialNodes()) {
  			if (g.getMandatoryNodes().contains(i)) {
  				diameter.updateLowerBound(depthBFS(i, true), this);
  			}
  			max = Math.max(max, depthBFS(i, false));
  		}
  		diameter.updateUpperBound(max, this);
  	}
docs: ***********************************************************************************