@@ -4393,9 +4393,10 @@ br_status seq_rewriter::mk_str_in_regexp(expr* a, expr* b, expr_ref& result) {
43934393 expr_ref len_hd (m_autil.mk_int (re ().min_length (hd)), m ());
43944394 expr_ref len_a (str ().mk_length (a), m ());
43954395 expr_ref len_tl (m_autil.mk_sub (len_a, len_hd), m ());
4396- result = m ().mk_and (m_autil.mk_ge (len_a, len_hd),
4397- re ().mk_in_re (str ().mk_substr (a, zero (), len_hd), hd),
4398- re ().mk_in_re (str ().mk_substr (a, len_hd, len_tl), tl));
4396+ auto ge_len = m_autil.mk_ge (len_a, len_hd);
4397+ auto prefix = re ().mk_in_re (str ().mk_substr (a, zero (), len_hd), hd);
4398+ auto suffix = re ().mk_in_re (str ().mk_substr (a, len_hd, len_tl), tl);
4399+ result = m ().mk_and (ge_len, prefix, suffix);
43994400 return BR_REWRITE_FULL;
44004401 }
44014402 if (get_re_head_tail_reversed (b, hd, tl)) {
@@ -4404,10 +4405,11 @@ br_status seq_rewriter::mk_str_in_regexp(expr* a, expr* b, expr_ref& result) {
44044405 expr_ref len_a (str ().mk_length (a), m ());
44054406 expr_ref len_hd (m_autil.mk_sub (len_a, len_tl), m ());
44064407 expr* s = nullptr ;
4407- result = m ().mk_and (m_autil.mk_ge (len_a, len_tl),
4408- re ().mk_in_re (str ().mk_substr (a, zero (), len_hd), hd),
4409- (re ().is_to_re (tl, s) ? m ().mk_eq (s, str ().mk_substr (a, len_hd, len_tl)) :
4410- re ().mk_in_re (str ().mk_substr (a, len_hd, len_tl), tl)));
4408+ auto ge_len = m_autil.mk_ge (len_a, len_tl);
4409+ auto prefix = re ().mk_in_re (str ().mk_substr (a, zero (), len_hd), hd);
4410+ auto tail_seq = str ().mk_substr (a, len_hd, len_tl);
4411+ auto tail = (re ().is_to_re (tl, s) ? m ().mk_eq (s, tail_seq) : re ().mk_in_re (tail_seq, tl));
4412+ result = m ().mk_and (ge_len, prefix, tail);
44114413 return BR_REWRITE_FULL;
44124414 }
44134415
0 commit comments