code: private boolean donotelim(final int cand) {
          int sign;
          if (occs(cand).count() > this.config.elmpocclim1) { return true; }
          if (occs(-cand).count() > this.config.elmpocclim1) { return true; }
          if (occs(cand).count() > this.config.elmpocclim2 && occs(-cand).count() > this.config.elmpocclim2) { return true; }
          for (sign = -1; sign <= 1; sign += 2) {
              final CLOccs os = occs(sign * cand);
              for (final CLClause c : os) {
                  assert !c.redundant();
                  if (c.size() >= this.config.elmclslim) { return true; }
                  for (int i = 0; i < c.lits().size(); i++) { if (occs(c.lits().get(i)).count() >= this.config.elmocclim) { return true; } }
              }
          }
          return false;
      }
docs: Returns {@code true} if a given candidate literal should not be eliminated, {@code false} otherwise.
  @param cand the candidate literal
  @return {@code true} if a given candidate literal should not be eliminated