3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 17:45:32 +00:00

fix model generation, add rewrite rules for sin(acos(x)) reduction to help model validation. Issue #680

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-07-13 11:12:27 -07:00
parent 247e94a7c0
commit 3a70b6aab4
3 changed files with 28 additions and 9 deletions

View file

@ -782,8 +782,8 @@ struct purify_arith_proc {
obj_map<app, std::pair<expr*,expr*> >::iterator it = m_sin_cos.begin(), end = m_sin_cos.end();
for (; it != end; ++it) {
emc->insert(it->m_key->get_decl(),
u().mk_add(u().mk_acos(it->m_value.second),
m().mk_ite(u().mk_ge(it->m_value.first, mk_real_zero()), mk_real_zero(), u().mk_pi())));
m().mk_ite(u().mk_ge(it->m_value.first, mk_real_zero()), u().mk_acos(it->m_value.second),
u().mk_add(u().mk_acos(u().mk_uminus(it->m_value.second)), u().mk_pi())));
}
}