mirror of
https://github.com/Z3Prover/z3
synced 2025-12-04 02:56:44 +00:00
fix #1675, regression in core processing in maxres
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
26e9321517
commit
335d672bf1
43 changed files with 246 additions and 321 deletions
|
|
@ -461,8 +461,8 @@ void model_evaluator::eval_array_eq(app* e, expr* arg1, expr* arg2)
|
|||
{
|
||||
TRACE("old_spacer", tout << "array equality: " << mk_pp(e, m) << "\n";);
|
||||
expr_ref v1(m), v2(m);
|
||||
m_model->eval(arg1, v1);
|
||||
m_model->eval(arg2, v2);
|
||||
v1 = (*m_model)(arg1);
|
||||
v2 = (*m_model)(arg2);
|
||||
if (v1 == v2) {
|
||||
set_true(e);
|
||||
return;
|
||||
|
|
@ -510,8 +510,8 @@ void model_evaluator::eval_array_eq(app* e, expr* arg1, expr* arg2)
|
|||
args2.append(store[i].size() - 1, store[i].c_ptr());
|
||||
s1 = m_array.mk_select(args1.size(), args1.c_ptr());
|
||||
s2 = m_array.mk_select(args2.size(), args2.c_ptr());
|
||||
m_model->eval(s1, w1);
|
||||
m_model->eval(s2, w2);
|
||||
w1 = (*m_model)(s1);
|
||||
w2 = (*m_model)(s2);
|
||||
if (w1 == w2) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -729,7 +729,7 @@ void model_evaluator::eval_fmls(ptr_vector<expr> const& formulas)
|
|||
eval_basic(curr);
|
||||
} else {
|
||||
expr_ref vl(m);
|
||||
m_model->eval(curr, vl);
|
||||
vl = eval(m_model, curr);
|
||||
assign_value(curr, vl);
|
||||
}
|
||||
|
||||
|
|
@ -798,11 +798,10 @@ expr_ref model_evaluator::eval(const model_ref& model, func_decl* d)
|
|||
return result;
|
||||
}
|
||||
|
||||
expr_ref model_evaluator::eval(const model_ref& model, expr* e)
|
||||
{
|
||||
expr_ref result(m);
|
||||
expr_ref model_evaluator::eval(const model_ref& model, expr* e){
|
||||
m_model = model.get();
|
||||
VERIFY(m_model->eval(e, result, true));
|
||||
model::scoped_model_completion _scm(m_model, true);
|
||||
expr_ref result = (*m_model)(e);
|
||||
if (m_array.is_array(e)) {
|
||||
vector<expr_ref_vector> stores;
|
||||
expr_ref_vector args(m);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue