22 LOG (
"attempt to minimize lit %d at depth %d",
lit, depth);
35 if (depth >
opts.minimizedepth)
39 if (
opts.minimizeticks)
52 for (i = v.
reason->
begin (); res && i != end; i++) {
64 LOG (
"minimizing %d %s",
lit, res ?
"succeeded" :
"failed");
79 return (
unsigned)
internal->var (a).trail;
98 uint64_t res = v.
level;
116 LOG (
clause,
"minimizing first UIP clause");
123 const auto end =
clause.end ();
124 auto j =
clause.begin (), i = j;
125 std::vector<int> stack;
126 for (; i != end; i++) {
138 flags (*j++ = *i).keep =
true;
140 LOG (
"minimized %zd literals", (
size_t) (
clause.end () - j));
163 while (!stack.empty ()) {
164 const int idx = stack.back ();
183 const int lit =
val (idx) > 0 ? idx : -idx;
192 LOG (v.
reason,
"LRAT chain for lit %d at depth %zd by going over",
lit,
194 stack.push_back (-idx);
196 const int other = *i;
199 stack.push_back (
vidx (other));
216 LOG (
"clearing %zd minimized literals",
minimized.size ());
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
#define CADICAL_assert(ignore)
const int * const_literal_iterator
#define MSORT(LIMIT, FIRST, LAST, RANK, LESS)
void minimize_sort_clause()
vector< int64_t > lrat_chain
void clear_minimized_literals()
void calculate_minimize_chain(int lit, std::vector< int > &stack)
Clause * learn_external_reason_clause(int lit, int falsified_elit=0, bool no_backtrack=false)
signed char val(int lit) const
int64_t unit_id(int lit) const
bool minimize_literal(int lit, int depth=0)
vector< int64_t > unit_chain
vector< int > unit_analyzed
vector< int64_t > minimize_chain
vector< int64_t > mini_chain
struct CaDiCaL::Level::@023147271015376226021074167111310127126167046351 seen
minimize_trail_level_positive_rank(Internal *s)
Type operator()(const int &a) const
bool operator()(const int &a, const int &b) const
minimize_trail_level_smaller(Internal *s)
Type operator()(const int &a) const
minimize_trail_positive_rank(Internal *s)
bool operator()(const int &a, const int &b) const
minimize_trail_smaller(Internal *s)