26 if (!
opts.deduplicate)
34 stats.deduplications++;
44 for (
auto idx :
vars) {
65 for (i = j; !unit && i != end; i++) {
70 const int tmp =
marked (other);
79 LOG (c,
"found duplicated");
87 for (k = ws.begin ();; k++) {
102 LOG (c,
"mark garbage duplicated");
104 stats.deduplicated++;
109 }
else if (tmp < 0) {
111 LOG (
"found %d %d and %d %d which produces unit %d",
lit, -other,
124 if (k->blit != -other)
137 stack.push_back (other);
141 if (j == ws.begin ())
144 ws.resize (j - ws.begin ());
146 for (
const auto &other : stack)
164 LOG (
"empty clause after propagating unit");
171 report (
'2', !
opts.reportall && !(subsumed + units));
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define CADICAL_assert(ignore)
Watches::const_iterator const_watch_iterator
void erase_vector(std::vector< T > &v)
Watches::iterator watch_iterator
#define START_SIMPLIFIER(S, M)
#define STOP_SIMPLIFIER(S, M)
void mark_duplicated_binary_clauses_as_garbage()
void mark_garbage(Clause *)
vector< int64_t > lrat_chain
void report(char type, int verbose_level=0)
bool terminated_asynchronously(int factor=1)
void learn_empty_clause()
void assign_unit(int lit)
signed char marked(int lit) const