3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-27 21:48:56 +00:00

Minor fixes for QF_BV div0 ackermannization

This commit is contained in:
Christoph M. Wintersteiger 2016-02-01 18:04:19 +00:00
parent de28e57dee
commit 0b298b4df9
2 changed files with 18 additions and 5 deletions

View file

@ -285,9 +285,16 @@ struct is_non_qfbv_predicate {
throw found();
family_id fid = n->get_family_id();
if (fid == m.get_basic_family_id())
return;
if (fid == u.get_family_id())
return;
return;
if (fid == u.get_family_id()) {
if (n->get_decl_kind() == OP_BSDIV0 ||
n->get_decl_kind() == OP_BUDIV0 ||
n->get_decl_kind() == OP_BSREM0 ||
n->get_decl_kind() == OP_BUREM0 ||
n->get_decl_kind() == OP_BSMOD0)
throw found();
return;
}
if (is_uninterp_const(n))
return;
throw found();
@ -305,8 +312,6 @@ public:
class is_qfbv_probe : public probe {
public:
virtual result operator()(goal const & g) {
bv_rewriter rw(g.m());
if (!rw.hi_div0()) return false;
return !test<is_non_qfbv_predicate>(g);
}
};