Skip to content

Commit 2bd8d3b

Browse files
fixes for input4/5 #2416
Signed-off-by: Nikolaj Bjorner <[email protected]>
1 parent 06ee09a commit 2bd8d3b

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

src/sat/ba_solver.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3159,14 +3159,18 @@ namespace sat {
31593159
// -------------------------------
31603160
// set literals equivalent
31613161

3162-
bool ba_solver::set_root(literal l, literal r) {
3163-
if (s().is_assumption(l.var())) {
3164-
return false;
3165-
}
3162+
void ba_solver::reserve_roots() {
31663163
m_root_vars.reserve(s().num_vars(), false);
31673164
for (unsigned i = m_roots.size(); i < 2 * s().num_vars(); ++i) {
31683165
m_roots.push_back(to_literal(i));
31693166
}
3167+
}
3168+
3169+
bool ba_solver::set_root(literal l, literal r) {
3170+
if (s().is_assumption(l.var())) {
3171+
return false;
3172+
}
3173+
reserve_roots();
31703174
m_roots[l.index()] = r;
31713175
m_roots[(~l).index()] = ~r;
31723176
m_root_vars[l.var()] = true;
@@ -3175,7 +3179,7 @@ namespace sat {
31753179

31763180
void ba_solver::flush_roots() {
31773181
if (m_roots.empty()) return;
3178-
3182+
reserve_roots();
31793183
// validate();
31803184
m_visited.resize(s().num_vars()*2, false);
31813185
m_constraint_removed = false;

src/sat/ba_solver.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,6 +328,7 @@ namespace sat {
328328
void update_psm(constraint& c) const;
329329
void mutex_reduction();
330330
void update_pure();
331+
void reserve_roots();
331332

332333
unsigned use_count(literal lit) const { return m_cnstr_use_list[lit.index()].size() + m_clause_use_list.get(lit).size(); }
333334

0 commit comments

Comments
 (0)