3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-03-01 11:16:54 +00:00

apply relevancy filtering on unsupported ops, fix term construction bug in bv2fpa_converter fix #6548

This commit is contained in:
Nikolaj Bjorner 2023-01-20 13:04:50 -08:00
parent 37652e7e17
commit 0f4f32c5d0
5 changed files with 23 additions and 22 deletions

View file

@ -454,6 +454,11 @@ class theory_lra::imp {
st.to_ensure_var().push_back(n1);
st.to_ensure_var().push_back(n2);
}
else if (a.is_power(n, n1, n2)) {
found_unsupported(n);
st.to_ensure_var().push_back(n1);
st.to_ensure_var().push_back(n2);
}
else if (!a.is_div0(n)) {
found_unsupported(n);
}
@ -543,7 +548,7 @@ class theory_lra::imp {
}
enode * mk_enode(app * n) {
TRACE("arith", tout << expr_ref(n, m) << " internalized: " << ctx().e_internalized(n) << "\n";);
TRACE("arith", tout << mk_bounded_pp(n, m) << " internalized: " << ctx().e_internalized(n) << "\n";);
if (reflect(n))
for (expr* arg : *n)
if (!ctx().e_internalized(arg))
@ -1600,6 +1605,8 @@ public:
return FC_CONTINUE;
}
for (expr* e : m_not_handled) {
if (!ctx().is_relevant(e))
continue;
(void) e; // just in case TRACE() is a no-op
TRACE("arith", tout << "unhandled operator " << mk_pp(e, m) << "\n";);
st = FC_GIVEUP;