mirror of
https://github.com/Z3Prover/z3
synced 2025-06-29 09:28:45 +00:00
Corrected fix to #354: The parameters got shared between the MBQI checker and main context, overriding m_array_laziness to 0 which caused missing propagations
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e786d11183
commit
d4c98c1ab4
2 changed files with 3 additions and 21 deletions
|
@ -85,27 +85,9 @@ namespace smt {
|
|||
d->m_is_array = is_array_sort(n);
|
||||
if (d->m_is_array)
|
||||
register_sort(m.get_sort(n->get_owner()));
|
||||
d->m_is_select = is_select(n);
|
||||
|
||||
expr* e1, *e2, *e3;
|
||||
d->m_is_select = is_select(n);
|
||||
if (is_store(n))
|
||||
d->m_stores.push_back(n);
|
||||
else if (m.is_ite(n->get_owner(), e1, e2, e3)) {
|
||||
ptr_vector<expr> todo;
|
||||
todo.push_back(e2);
|
||||
todo.push_back(e3);
|
||||
while (!todo.empty()) {
|
||||
e1 = todo.back();
|
||||
todo.pop_back();
|
||||
if (is_app(e1) && is_store(to_app(e1))) {
|
||||
d->m_stores.push_back(ctx.get_enode(e1));
|
||||
}
|
||||
else if (m.is_ite(e1, e1, e2, e3)) {
|
||||
todo.push_back(e2);
|
||||
todo.push_back(e3);
|
||||
}
|
||||
}
|
||||
}
|
||||
ctx.attach_th_var(n, this, r);
|
||||
if (m_params.m_array_laziness <= 1 && is_store(n))
|
||||
instantiate_axiom1(n);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue