mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
parent
e32020ba10
commit
e45871d7c5
5 changed files with 51 additions and 57 deletions
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue