85 LOG (
"analyzing failing assumptions");
104 int failed_clashing = 0;
105 int first_failed = 0;
106 int failed_level = INT_MAX;
109 for (
auto &elit :
external->assumptions) {
134 for (
const auto &other : *ev.
reason) {
150 failed_clashing =
lit;
152 }
else if (!first_failed || v.
level < failed_level) {
155 failed_level = v.
level;
165 else if (failed_clashing)
183 LOG (
"root-level falsified assumption %d",
failed);
186 unsigned eidx = (efailed > 0) + 2u * (
unsigned) abs (efailed);
188 const int64_t
id =
external->ext_units[eidx];
192 int64_t
id =
unit_id (-failed_unit);
204 if (failed_clashing) {
220 LOG (
"starting with assumption %d falsified on minimum decision level "
222 first_failed, failed_level);
232 LOG (
"failed assumption %d", first_failed);
238 clause.push_back (-first_failed);
258 for (
auto &elit :
external->constraint) {
267 if (std::find (econstraints.begin (), econstraints.end (), elit) !=
270 econstraints.push_back (elit);
293 for (
const auto &other : *v.
reason) {
303 LOG (
"failed assumption %d",
lit);
306 const unsigned bit =
bign (
lit);
329 const unsigned bit =
bign (-
lit);
345 constraint_chains.push_back (empty);
346 constraint_clauses.push_back (empty2);
348 constraint_clauses.back ().push_back (ign);
350 const unsigned bit =
bign (-ign);
352 sum_constraints.push_back (ign);
360 constraint_chains.back ().push_back (
p);
364 for (
auto &
lit : sum_constraints)
373 VERBOSE (1,
"found %zd failed assumptions %.0f%%",
clause.size (),
396 const auto &
lit = *
p;
399 for (
auto &ign : constraint_clauses.back ())
401 constraint_clauses.pop_back ();
407 for (
auto p : constraint_chains.back ()) {
410 constraint_chains.pop_back ();
423 for (
auto &elit : econstraints) {
425 unsigned eidx = (elit > 0) + 2u * (
unsigned) abs (elit);
427 const int64_t
id =
external->ext_units[eidx];