mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
add rewrite for partially interpreted arithmetic functions
This commit is contained in:
parent
0f2fe6031a
commit
c6aab89662
3 changed files with 34 additions and 0 deletions
|
@ -421,6 +421,15 @@ struct evaluator_cfg : public default_rewriter_cfg {
|
|||
return BR_DONE;
|
||||
}
|
||||
}
|
||||
else if (!fi && m_au.is_considered_partially_interpreted(f, num, args, f_ui)) {
|
||||
fi = m_model.get_func_interp(f_ui);
|
||||
if (fi) {
|
||||
var_subst vs(m, false);
|
||||
result = vs(fi->get_interp(), num, args);
|
||||
result = m.mk_ite(m.mk_eq(m_au.mk_real(rational(0)), args[1]), result, m.mk_app(f, num, args));
|
||||
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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue