mirror of
https://github.com/Z3Prover/z3
synced 2025-08-05 19:00:25 +00:00
Active lemmas need to be queued for repropagation after resetting conflict
This commit is contained in:
parent
2804453039
commit
e433951e27
1 changed files with 7 additions and 1 deletions
|
@ -1437,8 +1437,14 @@ namespace polysat {
|
||||||
unsigned const base_level = m_base_levels[m_base_levels.size() - num_scopes];
|
unsigned const base_level = m_base_levels[m_base_levels.size() - num_scopes];
|
||||||
LOG_H3("Pop " << num_scopes << " user scopes");
|
LOG_H3("Pop " << num_scopes << " user scopes");
|
||||||
pop_levels(m_level - base_level + 1);
|
pop_levels(m_level - base_level + 1);
|
||||||
if (m_level < m_conflict.level())
|
if (m_level < m_conflict.level()) {
|
||||||
|
clause_ref_vector lemmas = m_conflict.take_lemmas();
|
||||||
m_conflict.reset();
|
m_conflict.reset();
|
||||||
|
// TODO: currently we forget all new lemmas at this point.
|
||||||
|
for (clause* lemma : lemmas)
|
||||||
|
if (lemma->is_active())
|
||||||
|
propagate_clause(*lemma);
|
||||||
|
}
|
||||||
m_base_levels.shrink(m_base_levels.size() - num_scopes);
|
m_base_levels.shrink(m_base_levels.size() - num_scopes);
|
||||||
m_base_index.shrink(m_base_index.size() - num_scopes);
|
m_base_index.shrink(m_base_index.size() - num_scopes);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue