mirror of
https://github.com/Z3Prover/z3
synced 2025-08-22 19:17:53 +00:00
fix #7582
This commit is contained in:
parent
fa5a50c4f9
commit
d980ac9a05
4 changed files with 30 additions and 11 deletions
|
@ -75,7 +75,7 @@ void model_reconstruction_trail::replay(unsigned qhead, expr_ref_vector& assumpt
|
|||
// loose entries that intersect with free vars are deleted from the trail
|
||||
// and their removed formulas are added to the resulting constraints.
|
||||
|
||||
if (t->is_loose() && !t->is_def() && t->is_subst()) {
|
||||
if (t->is_loose_subst()) {
|
||||
for (auto const& [k, v] : t->m_subst->sub()) {
|
||||
add_vars(v, free_vars);
|
||||
st.add(dependent_expr(m, m.mk_eq(k, v), nullptr, nullptr));
|
||||
|
@ -83,6 +83,17 @@ void model_reconstruction_trail::replay(unsigned qhead, expr_ref_vector& assumpt
|
|||
t->m_active = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (t->is_loose_constraint()) {
|
||||
for (auto r : t->m_removed) {
|
||||
add_vars(r, free_vars);
|
||||
TRACE("simplifier", tout << "replay removed " << r << "\n");
|
||||
st.add(r);
|
||||
}
|
||||
t->m_active = false;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
bool all_const = true;
|
||||
for (auto const& [d, def, dep] : t->m_defs)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue