diff --git a/src/sat/sat_elim_eqs.cpp b/src/sat/sat_elim_eqs.cpp index 69f9fe7b8e9..e8c6f6abd57 100644 --- a/src/sat/sat_elim_eqs.cpp +++ b/src/sat/sat_elim_eqs.cpp @@ -54,8 +54,13 @@ namespace sat { literal r2 = norm(roots, l2); if (r1 == r2) { m_solver.assign_unit(r1); - if (m_solver.inconsistent()) + if (m_solver.inconsistent()) { + ++it; + for (; it != end; ++it, ++itprev) + *itprev = *it; + wlist.set_end(itprev); return; + } // consume unit continue; } @@ -97,6 +102,7 @@ namespace sat { for (; it != end; ++it) { clause & c = *(*it); TRACE("sats", tout << "processing: " << c << "\n";); + TRACE("scc_details", m_solver.display_watches(tout);); unsigned sz = c.size(); unsigned i; for (i = 0; i < sz; i++) { diff --git a/src/sat/sat_scc.cpp b/src/sat/sat_scc.cpp index 5a18b28996a..717a0cf4426 100644 --- a/src/sat/sat_scc.cpp +++ b/src/sat/sat_scc.cpp @@ -220,6 +220,7 @@ namespace sat { frames.pop_back(); } } + TRACE("scc_details", m_solver.display_watches(tout);); for (unsigned i = 0; i < m_solver.num_vars(); ++i) { if (roots[i] == null_literal) { roots[i] = literal(i, false);