code: private void checkAtLeast(int i) throws ContradictionException {
  		ISet pot = target.getPotSet(g, i);
  		ISet ker = target.getMandSet(g, i);
  		int potSize = pot.size();
  		if (potSize < degrees[i]) {
  			g.removeNode(i, this);
  		} else if (potSize == degrees[i] && g.getMandatoryNodes().contains(i) && ker.size() < potSize) {
  			for (int s : pot) {
  				target.enforce(g, i, s, this);
  			}
  		}
  	}
docs: ***********************************************************************************