3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-07-05 14:56:11 +00:00
This commit is contained in:
Nikolaj Bjorner 2026-07-04 12:42:50 -07:00
parent 3d29d81607
commit 70df91bc4e
2 changed files with 6 additions and 4 deletions

View file

@ -346,7 +346,8 @@ namespace smt {
return false;
TRACE(model_checker, tout << "skolems:\n" << sks << "\n";);
flet<bool> l(m_aux_context->get_fparams().m_array_fake_support, true);
flet<bool> l1(m_aux_context->get_fparams().m_array_fake_support, true);
flet<bool> l2(m_aux_context->get_fparams().m_preprocess, true);
lbool r = m_aux_context->check();
TRACE(model_checker, tout << "[complete] model-checker result: " << to_sat_str(r) << "\n";);
@ -363,7 +364,8 @@ namespace smt {
unsigned num_new_instances = 0;
while (true) {
flet<bool> l(m_aux_context->get_fparams().m_array_fake_support, true);
flet<bool> l1(m_aux_context->get_fparams().m_array_fake_support, true);
flet<bool> l2(m_aux_context->get_fparams().m_preprocess, true);
lbool r = m_aux_context->check();
TRACE(model_checker, tout << "[restricted] model-checker (" << (num_new_instances+1) << ") result: " << to_sat_str(r) << "\n";);
if (r != l_true)

View file

@ -847,14 +847,14 @@ namespace smt {
bool theory_array_full::has_non_beta_as_array() {
for (enode* n : m_as_array) {
for (enode* p : n->get_parents())
if (ctx.is_relevant(p) && !ctx.is_beta_redex(p, n)) {
if (ctx.is_relevant(p) && !m.is_eq(p->get_expr()) && !ctx.is_beta_redex(p, n)) {
TRACE(array, tout << "not a beta redex " << enode_pp(p, ctx) << "\n");
return true;
}
}
for (enode* n : m_lambdas)
for (enode* p : n->get_parents())
if (ctx.is_relevant(p) && !is_default(p) && !ctx.is_beta_redex(p, n)) {
if (ctx.is_relevant(p) && !is_default(p) && !m.is_eq(p->get_expr()) && !ctx.is_beta_redex(p, n)) {
TRACE(array, tout << "lambda is not a beta redex " << enode_pp(p, ctx) << "\n");
return true;
}