@@ -487,14 +487,14 @@ br_status arith_rewriter::mk_le_ge_eq_core(expr * arg1, expr * arg2, op_kind kin
487
487
if (m ().is_ite (arg1, c, t, e) && is_numeral (t, a1) && is_numeral (arg2, a2)) {
488
488
switch (kind) {
489
489
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;
490
- case GE: result = a1 >= a1 ? 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;
490
+ 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;
491
491
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;
492
492
}
493
493
}
494
494
if (m ().is_ite (arg1, c, t, e) && is_numeral (e, a1) && is_numeral (arg2, a2)) {
495
495
switch (kind) {
496
496
case LE: result = a1 <= a2 ? m ().mk_or (m ().mk_not (c), m_util.mk_le (t, arg2)) : m ().mk_and (c, m_util.mk_le (t, arg2)); return BR_REWRITE2;
497
- case GE: result = a1 >= a1 ? m ().mk_or (m ().mk_not (c), m_util.mk_ge (t, arg2)) : m ().mk_and (c, m_util.mk_ge (t, arg2)); return BR_REWRITE2;
497
+ case GE: result = a1 >= a2 ? m ().mk_or (m ().mk_not (c), m_util.mk_ge (t, arg2)) : m ().mk_and (c, m_util.mk_ge (t, arg2)); return BR_REWRITE2;
498
498
case EQ: result = a1 == a2 ? m ().mk_or (m ().mk_not (c), m ().mk_eq (t, arg2)) : m ().mk_and (c, m_util.mk_eq (t, arg2)); return BR_REWRITE2;
499
499
}
500
500
}
0 commit comments