code: private CLClause reduceClause(final CLClause c) {
          int lit;
          int i;
          for (i = 0; i < c.lits().size(); i++) {
              lit = c.lits().get(i);
              if (val(lit) < 0) { break; }
          }
          if (i == c.lits().size()) { return c; }
          assert this.addedlits.empty();
          for (i = 0; i < c.lits().size(); i++) {
              lit = c.lits().get(i);
              if (val(lit) >= 0) { this.addedlits.push(lit); }
          }
          final boolean redundant = c.redundant();
          final int glue = c.glue();
          deleteClause(c);
          final CLClause res = newClause(redundant, glue);
          this.addedlits.clear();
          return res;
      }
docs: Removes false literals from a given clause.
  @param c the clause
  @return the new clause