@@ -720,10 +720,11 @@ br_status arith_rewriter::mk_le_ge_eq_core(expr * arg1, expr * arg2, op_kind kin
720720 }
721721 expr* c = nullptr , *t = nullptr , *e = nullptr ;
722722 if (m.is_ite (arg1, c, t, e) && is_numeral (t, a1) && is_numeral (arg2, a2)) {
723+ auto a = m.mk_not (c);
723724 switch (kind) {
724- case LE: result = a1 <= a2 ? m.mk_or (c, m_util.mk_le (e, arg2)) : m.mk_and (m. mk_not (c) , m_util.mk_le (e, arg2)); return BR_REWRITE2;
725- case GE: result = a1 >= a2 ? m.mk_or (c, m_util.mk_ge (e, arg2)) : m.mk_and (m. mk_not (c) , m_util.mk_ge (e, arg2)); return BR_REWRITE2;
726- case EQ: result = a1 == a2 ? m.mk_or (c, m.mk_eq (e, arg2)) : m.mk_and (m. mk_not (c) , m_util.mk_eq (e, arg2)); return BR_REWRITE2;
725+ case LE: result = a1 <= a2 ? m.mk_or (c, m_util.mk_le (e, arg2)) : m.mk_and (a , m_util.mk_le (e, arg2)); return BR_REWRITE2;
726+ case GE: result = a1 >= a2 ? m.mk_or (c, m_util.mk_ge (e, arg2)) : m.mk_and (a , m_util.mk_ge (e, arg2)); return BR_REWRITE2;
727+ case EQ: result = a1 == a2 ? m.mk_or (c, m.mk_eq (e, arg2)) : m.mk_and (a , m_util.mk_eq (e, arg2)); return BR_REWRITE2;
727728 }
728729 }
729730 if (m.is_ite (arg1, c, t, e) && is_numeral (e, a1) && is_numeral (arg2, a2)) {
0 commit comments