@@ -55,7 +55,8 @@ expr_ref sym_expr::accept(expr* e) {
5555 result = m.mk_bool_val ((r1 <= r2) && (r2 <= r3));
5656 }
5757 else {
58- result = m.mk_and (u.mk_le (m_t , e), u.mk_le (e, m_s));
58+ auto a = u.mk_le (m_t , e);
59+ result = m.mk_and (a, u.mk_le (e, m_s));
5960 }
6061 break ;
6162 }
@@ -190,7 +191,9 @@ br_status seq_rewriter::mk_eq_helper(expr* a, expr* b, expr_ref& result) {
190191 // sa in (ra n rb) u (C(ra) n C(rb))
191192 if (is_not)
192193 rb = re ().mk_complement (rb);
193- expr* r = re ().mk_union (re ().mk_inter (ra, rb), re ().mk_inter (re ().mk_complement (ra), re ().mk_complement (rb)));
194+ auto a_ = re ().mk_inter (ra, rb);
195+ auto b_ = re ().mk_complement (ra);
196+ expr* r = re ().mk_union (a_, re ().mk_inter (b_, re ().mk_complement (rb)));
194197 result = re ().mk_in_re (sa, r);
195198 return BR_REWRITE_FULL;
196199}
@@ -620,10 +623,14 @@ expr_ref seq_rewriter::mk_seq_rest(expr* t) {
620623 expr_ref result (m ());
621624 expr* s, * j, * k;
622625 rational jv;
623- if (str ().is_extract (t, s, j, k) && m_autil.is_numeral (j, jv) && jv >= 0 )
624- result = str ().mk_substr (s, m_autil.mk_int (jv + 1 ), mk_sub (k, 1 ));
625- else
626- result = str ().mk_substr (t, one (), mk_sub (str ().mk_length (t), 1 ));
626+ if (str ().is_extract (t, s, j, k) && m_autil.is_numeral (j, jv) && jv >= 0 ) {
627+ auto a = m_autil.mk_int (jv + 1 );
628+ result = str ().mk_substr (s, a, mk_sub (k, 1 ));
629+ }
630+ else {
631+ auto a = one ();
632+ result = str ().mk_substr (t, a, mk_sub (str ().mk_length (t), 1 ));
633+ }
627634 return result;
628635}
629636
0 commit comments