3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

fix incrementality bug for pre-processing: replay has to be invoked on every push regardless.

This commit is contained in:
Nikolaj Bjorner 2024-10-16 12:18:09 -07:00
parent 8ff4036f68
commit 5a5e39ae74
4 changed files with 26 additions and 19 deletions

View file

@ -130,6 +130,10 @@ class simplifier_solver : public solver {
unsigned qhead = m_preprocess_state.qhead();
expr_ref_vector orig_assumptions(assumptions);
m_core_replace.reset();
m_preprocess_state.replay(qhead, assumptions);
for (unsigned i = 0; i < assumptions.size(); ++i)
m_core_replace.insert(assumptions.get(i), orig_assumptions.get(i));
if (qhead < m_fmls.size()) {
m_preprocess.reduce();
if (!m.inc())
@ -138,11 +142,7 @@ class simplifier_solver : public solver {
m_preprocess_state.display(tout));
m_preprocess_state.advance_qhead();
}
if (!assumptions.empty()) {
m_preprocess_state.replay(m_preprocess_state.qhead(), assumptions);
for (unsigned i = 0; i < assumptions.size(); ++i)
m_core_replace.insert(assumptions.get(i), orig_assumptions.get(i));
}
m_mc = m_preprocess_state.model_trail().get_model_converter();
m_cached_mc = nullptr;
for (; qhead < m_fmls.size(); ++qhead)