21 LOG (c,
"backward enqueue");
33 LOG (res,
"backward dequeue");
49 LOG (c,
"attempting backward subsumption and strengthening with");
50 size_t len = UINT_MAX;
55 for (
const auto &
lit : *c) {
56 const signed char tmp =
val (
lit);
64 LOG (
"literal %d occurs %zd times",
lit, l);
71 LOG (
"clause actually already satisfied");
74 }
else if (len > (
size_t)
opts.elimocclim) {
75 LOG (
"skipping backward subsumption due to too many occurrences");
78 LOG (
"literal %d has smallest number of occurrences %zd", best, len);
79 LOG (
"marked %d literals in clause of size %d", size, c->
size);
80 for (
auto &d :
occs (best)) {
85 if ((
unsigned) d->size < size)
90 for (
const auto &
lit : *d) {
91 signed char tmp =
val (
lit);
112 LOG (d,
"found satisfied clause");
115 }
else if (found == size) {
117 LOG (d,
"found subsumed clause");
128 for (
const auto &
lit : *d) {
129 const signed char tmp =
val (
lit);
156 for (
const auto &
lit : *c) {
157 const signed char tmp =
val (
lit);
162 if (f.
seen && unit && unit == INT_MIN) {
165 }
else if (!f.
seen) {
170 if (unit == INT_MIN) {
171 for (
const auto &
lit : *d) {
193 }
else if (unit && unit != INT_MIN) {
195 LOG (d,
"unit %d through hyper unary resolution with", unit);
200 }
else if (
occs (negated).size () <= (
size_t)
opts.elimocclim) {
220 if (!
opts.elimbackward) {
225 LOG (
"attempting backward subsumption and strengthening with %zd clauses",
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define CADICAL_assert(ignore)
void remove_occs(Occs &os, Clause *c)
queue< Clause * > backward
void elim_update_removed_lit(Eliminator &, int lit)
void elim_backward_clause(Eliminator &, Clause *)
void mark_garbage(Clause *)
vector< int64_t > lrat_chain
void assign_unit(int lit)
signed char val(int lit) const
signed char marked(int lit) const
int64_t unit_id(int lit) const
void elim_update_removed_clause(Eliminator &, Clause *, int except=0)
void strengthen_clause(Clause *, int)
void elim_backward_clauses(Eliminator &)
vector< int64_t > minimize_chain
void clear_analyzed_literals()
void elim_propagate(Eliminator &, int unit)
vector< int64_t > mini_chain