3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-06 22:23:22 +00:00
This commit is contained in:
Nikolaj Bjorner 2021-06-16 16:01:14 -05:00
parent fbc3aa93a5
commit f95d0b7216
2 changed files with 20 additions and 13 deletions

View file

@ -808,7 +808,6 @@ namespace smt {
if (t_val && !m.is_unique_value(t_val)) if (t_val && !m.is_unique_value(t_val))
for (expr* v : values) for (expr* v : values)
found |= m.are_equal(v, t_val); found |= m.are_equal(v, t_val);
if (t_val && !found && !already_found.contains(t_val)) { if (t_val && !found && !already_found.contains(t_val)) {
values.push_back(t_val); values.push_back(t_val);
already_found.insert(t_val); already_found.insert(t_val);
@ -1117,6 +1116,11 @@ namespace smt {
tout << "NEW MODEL:\n"; tout << "NEW MODEL:\n";
model_pp(tout, *m_model);); model_pp(tout, *m_model););
} }
bool is_default_representative(expr* t) {
app* tt = nullptr;
return t && m_sort2k.find(t->get_sort(), tt) && (tt == t);
}
}; };
@ -2511,6 +2515,8 @@ namespace smt {
if (s == nullptr) if (s == nullptr)
return nullptr; return nullptr;
expr* t = s->get_inv(val); expr* t = s->get_inv(val);
if (m_auf_solver->is_default_representative(t))
return val;
if (t != nullptr) { if (t != nullptr) {
generation = s->get_generation(t); generation = s->get_generation(t);
} }

View file

@ -496,6 +496,7 @@ struct is_non_nira_functor {
throw_found(n); throw_found(n);
if (m_linear && u.is_numeral(n->get_arg(1), r) && r.is_zero()) if (m_linear && u.is_numeral(n->get_arg(1), r) && r.is_zero())
throw_found(n); throw_found(n);
if (m_linear && u.is_numeral(n->get_arg(1), r) && !r.is_zero())
if (!is_ground(n->get_arg(0)) || !is_ground(n->get_arg(1))) if (!is_ground(n->get_arg(0)) || !is_ground(n->get_arg(1)))
throw_found(n); throw_found(n);
return; return;