code: private void doElim(final int cand) {
          assert this.schedule;
          assert var(cand).free();
          final CLOccs p = occs(cand);
          final CLOccs n = occs(-cand);
          for (final CLClause c : p) {
              this.stats.steps++;
              if (c.dumped() || satisfied(c)) { continue; }
              for (final CLClause d : n) {
                  this.stats.steps++;
                  if (d.dumped() || satisfied(d)) { continue; }
                  doResolve(c, cand, d);
              }
          }
          final int extend;
          final CLOccs e;
          if (p.count() < n.count()) {
              extend = cand;
              e = p;
          } else {
              extend = -cand;
              e = n;
          }
          for (final CLClause c : e) {
              if (c.dumped() || satisfied(c)) { continue; }
              this.stats.steps++;
              pushExtension(c, extend);
          }
          pushExtension(0);
          pushExtension(-extend);
          while (!p.clauses().empty()) {
              final CLClause c = p.clauses().back();
              this.stats.steps++;
              p.clauses().pop();
              if (c.satisfied() || c.dumped()) { continue; }
              this.stats.clausesEliminated++;
              dumpClause(c);
          }
          p.clauses().release();
          while (!n.clauses().empty()) {
              final CLClause c = n.clauses().back();
              this.stats.steps++;
              n.clauses().pop();
              if (c.satisfied() || c.dumped()) { continue; }
              this.stats.clausesEliminated++;
              dumpClause(c);
          }
          n.clauses().release();
          var(cand).setState(CLVar.State.ELIMINATED);
          this.stats.varsEliminated++;
          final CLClause conflict = bcp();
          if (conflict != null) {
              analyze(conflict);
              assert this.empty != null;
          }
          touchFixed();
      }
docs: Performs blocking variable elimination on a candidate.
  @param cand the candidate literal