3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-11 09:35:28 -07:00
parent e32020ba10
commit e45871d7c5
5 changed files with 51 additions and 57 deletions

View file

@ -53,7 +53,8 @@ class ll_printer {
rational val;
bool is_int;
if (m_autil.is_numeral(n, val, is_int)) {
m_out << val << "::" << (is_int ? "Int" : "Real");
m_out << val;
if (!is_int && val.is_int()) m_out << ".0";
return true;
}
return false;

View file

@ -869,11 +869,14 @@ br_status arith_rewriter::mk_idiv_core(expr * arg1, expr * arg2, expr_ref & resu
}
}
if (divides(arg1, arg2, result)) {
expr_ref zero(m_util.mk_int(0), m());
result = m().mk_ite(m().mk_eq(zero, arg2), m_util.mk_idiv(arg1, zero), result);
return BR_REWRITE_FULL;
}
}
return BR_FAILED;
}
//
// implement div ab ac = floor( ab / ac) = floor (b / c) = div b c
//
@ -920,6 +923,7 @@ bool arith_rewriter::divides(expr* num, expr* den, expr_ref& result) {
return false;
}
expr_ref arith_rewriter::remove_divisor(expr* arg, expr* num, expr* den) {
ptr_buffer<expr> args1, args2;
flat_mul(num, args1);