mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 00:55:31 +00:00
some of Arie's fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
fd6fe87c5d
commit
ec681d7565
3 changed files with 272 additions and 22 deletions
|
@ -305,7 +305,7 @@ namespace qe {
|
|||
SASSERT(!contains_x(t));
|
||||
|
||||
if (s == m_var->x()) {
|
||||
expr_ref result(s, m);
|
||||
expr_ref result(t, m);
|
||||
expr_ref_vector args(m);
|
||||
sort* range = get_array_range(m.get_sort(s));
|
||||
for (unsigned i = 0; i < idxs.size(); ++i) {
|
||||
|
|
|
@ -134,9 +134,7 @@ class mbp::impl {
|
|||
expr* e = lits[i].get(), *l, *r;
|
||||
if (m.is_eq(e, l, r) && reduce_eq(is_var, l, r, v, t)) {
|
||||
reduced = true;
|
||||
lits[i] = lits.back();
|
||||
lits.pop_back();
|
||||
--i;
|
||||
project_plugin::erase(lits, i);
|
||||
expr_safe_replace sub(m);
|
||||
sub.insert(v, t);
|
||||
is_rem.mark(v);
|
||||
|
@ -148,12 +146,16 @@ class mbp::impl {
|
|||
}
|
||||
}
|
||||
if (reduced) {
|
||||
unsigned j = 0;
|
||||
for (unsigned i = 0; i < vars.size(); ++i) {
|
||||
if (is_rem.is_marked(vars[i].get())) {
|
||||
vars[i] = vars.back();
|
||||
vars.pop_back();
|
||||
if (!is_rem.is_marked(vars[i].get())) {
|
||||
if (i != j) {
|
||||
vars[j] = vars[i].get();
|
||||
}
|
||||
++j;
|
||||
}
|
||||
}
|
||||
vars.shrink(j);
|
||||
}
|
||||
return reduced;
|
||||
}
|
||||
|
@ -333,9 +335,7 @@ public:
|
|||
sub(fmls[i].get(), tmp);
|
||||
rw(tmp);
|
||||
if (m.is_true(tmp)) {
|
||||
fmls[i] = fmls.back();
|
||||
fmls.pop_back();
|
||||
--i;
|
||||
project_plugin::erase(fmls, i);
|
||||
}
|
||||
else {
|
||||
fmls[i] = tmp;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue