code: @Override
  	public boolean add(BooleanTerm booleanTerm) {
  		boolean modified = false;
  		if (booleanTerm.isTrue()) {
  			modified = booleanTerms != null;
  			booleanTerms = null;
  		} else if (booleanTerms != null && !booleanTerm.isFalse()) {
  			for (BooleanTerm term : booleanTerms) {
  				if (booleanTerm.containsAll(term)) {
  					// formula already includes the term
  					return false;
  				}
  			}
  			Set<BooleanTerm> newTerms = new HashSet<BooleanTerm>();
  			newTerms.add(booleanTerm);
  			for (BooleanTerm term : booleanTerms) {
  				if (!term.containsAll(booleanTerm)) {
  					newTerms.add(term);
  				}
  			}
  			booleanTerms = newTerms;
  			isSimplified = false;
  			modified = true;
  		}
  		return modified;
  	}
docs: Adds the term to the formula.  Note that if the formula has
  previously been simplified and determined to evaluate to
  true, then adding any term will have no effect.
  <p>
  A null term represents an expression of true and sets
  the formula to true (null).
  
  @return true if the formula was modified