code: public BooleanFormula resolveWith(Features features, boolean coerceUndefinedToFalse) {
  		if (isTrue() || isFalse()) {
  			return this;
  		}
  		BooleanFormula formula = new BooleanFormula();
  		for (BooleanTerm term : this) {
  			BooleanTerm evaluated = term.resolveWith(features, coerceUndefinedToFalse);
  			if (evaluated.isFalse()) {
  				// term is false.  Don't add to result
  			} else if (evaluated.isTrue()) {
  				// term is true so formula is true
  				booleanTerms = null;
  				isSimplified = true;
  				return this;
  			} else {
  				formula.add(evaluated);
  			}
  		}
  		booleanTerms = formula.booleanTerms;
  		isSimplified = formula.isSimplified;
  		return this;
  	}
docs: Resolves the formula using the boolean values specified in
  <code>features</code>. If there are no more un-resolved variables in the
  forumula, the resulting formula will be either TRUE or FALSE.
  
  @param features
  the values to assign to variables in the formula
  @param coerceUndefinedToFalse
  if true, then undefined features will be treated as false
  @return this object