code: private Formula advancedEncoding(final Formula formula) {
      if (formula.type() == FType.AND) {
        final List<Formula> operands = new ArrayList<>(formula.numberOfOperands());
        for (final Formula op : formula)
          operands.add(singleAdvancedEncoding(op));
        return this.f.and(operands);
      }
      return singleAdvancedEncoding(formula);
    }
docs: Encodes the given formula to CNF by first trying to use Factorization for the single sub-formulas.  When certain
  user-provided boundaries are met, the method is switched to Tseitin or Plaisted & Greenbaum.
  @param formula the formula
  @return the CNF encoding of the formula