3
0
Fork 0
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:
Nikolaj Bjorner 2016-01-11 09:38:05 -08:00
parent e786d11183
commit d4c98c1ab4
2 changed files with 3 additions and 21 deletions

View file

@ -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);