mirror of
https://github.com/Z3Prover/z3
synced 2025-06-04 21:31:22 +00:00
n/a
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
commit
f76815a009
4 changed files with 8 additions and 10 deletions
|
@ -681,8 +681,6 @@ br_status arith_rewriter::mk_div_core(expr * arg1, expr * arg2, expr_ref & resul
|
||||||
SASSERT(!is_int);
|
SASSERT(!is_int);
|
||||||
if (v2.is_zero()) {
|
if (v2.is_zero()) {
|
||||||
return BR_FAILED;
|
return BR_FAILED;
|
||||||
//result = m_util.mk_div0(arg1);
|
|
||||||
//return BR_REWRITE1;
|
|
||||||
}
|
}
|
||||||
else if (m_util.is_numeral(arg1, v1, is_int)) {
|
else if (m_util.is_numeral(arg1, v1, is_int)) {
|
||||||
result = m_util.mk_numeral(v1/v2, false);
|
result = m_util.mk_numeral(v1/v2, false);
|
||||||
|
@ -735,10 +733,6 @@ br_status arith_rewriter::mk_idiv_core(expr * arg1, expr * arg2, expr_ref & resu
|
||||||
result = m_util.mk_numeral(div(v1, v2), is_int);
|
result = m_util.mk_numeral(div(v1, v2), is_int);
|
||||||
return BR_DONE;
|
return BR_DONE;
|
||||||
}
|
}
|
||||||
if (m_util.is_numeral(arg2, v2, is_int) && v2.is_zero()) {
|
|
||||||
//result = m_util.mk_idiv0(arg1);
|
|
||||||
//return BR_REWRITE1;
|
|
||||||
}
|
|
||||||
return BR_FAILED;
|
return BR_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -405,8 +405,6 @@ bool arith_simplifier_plugin::reduce(func_decl * f, unsigned num_args, expr * co
|
||||||
case OP_POWER: return false;
|
case OP_POWER: return false;
|
||||||
case OP_ABS: SASSERT(num_args == 1); mk_abs(args[0], result); break;
|
case OP_ABS: SASSERT(num_args == 1); mk_abs(args[0], result); break;
|
||||||
case OP_IRRATIONAL_ALGEBRAIC_NUM: return false;
|
case OP_IRRATIONAL_ALGEBRAIC_NUM: return false;
|
||||||
case OP_DIV_0: return false;
|
|
||||||
case OP_IDIV_0: return false;
|
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -407,7 +407,8 @@ namespace smt {
|
||||||
|
|
||||||
template<typename Ext>
|
template<typename Ext>
|
||||||
theory_var theory_arith<Ext>::internalize_idiv(app * n) {
|
theory_var theory_arith<Ext>::internalize_idiv(app * n) {
|
||||||
found_underspecified_op(n);
|
rational r;
|
||||||
|
if (!m_util.is_numeral(n->get_arg(1), r) || r.is_zero()) found_underspecified_op(n);
|
||||||
theory_var s = mk_binary_op(n);
|
theory_var s = mk_binary_op(n);
|
||||||
context & ctx = get_context();
|
context & ctx = get_context();
|
||||||
app * mod = m_util.mk_mod(n->get_arg(0), n->get_arg(1));
|
app * mod = m_util.mk_mod(n->get_arg(0), n->get_arg(1));
|
||||||
|
|
|
@ -377,7 +377,12 @@ namespace smt {
|
||||||
}
|
}
|
||||||
else if (is_app(n) && a.get_family_id() == to_app(n)->get_family_id()) {
|
else if (is_app(n) && a.get_family_id() == to_app(n)->get_family_id()) {
|
||||||
app* t = to_app(n);
|
app* t = to_app(n);
|
||||||
found_not_handled(n);
|
if (a.is_div(n, n1, n2) && is_numeral(n2, r)) {
|
||||||
|
// skip
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
found_not_handled(n);
|
||||||
|
}
|
||||||
internalize_args(t);
|
internalize_args(t);
|
||||||
mk_enode(t);
|
mk_enode(t);
|
||||||
theory_var v = mk_var(n);
|
theory_var v = mk_var(n);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue