3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

adding div0

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-11-06 11:23:10 +01:00
parent 1048abfd9f
commit 6cf7d8e523
6 changed files with 86 additions and 14 deletions

View file

@ -334,6 +334,21 @@ struct evaluator_cfg : public default_rewriter_cfg {
func_interp * fi = m_model.get_func_interp(f);
func_decl_ref f_ui(m);
if (!fi && m_au.is_considered_uninterpreted(f, num, args, f_ui)) {
if (f_ui) {
fi = m_model.get_func_interp(f);
}
if (!fi) {
result = m_au.mk_numeral(rational(0), f->get_range());
return BR_DONE;
}
}
else if (!fi && m_fpau.is_considered_uninterpreted(f, num, args)) {
result = m.get_some_value(f->get_range());
return BR_DONE;
}
if (fi) {
if (fi->is_partial())
fi->set_else(m.get_some_value(f->get_range()));
@ -343,14 +358,6 @@ struct evaluator_cfg : public default_rewriter_cfg {
return BR_REWRITE_FULL;
}
if (m_au.is_considered_uninterpreted(f, num, args)) {
result = m_au.mk_numeral(rational(0), f->get_range());
return BR_DONE;
}
else if (m_fpau.is_considered_uninterpreted(f, num, args)) {
result = m.get_some_value(f->get_range());
return BR_DONE;
}
return BR_FAILED;
}