diff --git a/src/ast/rewriter/seq_split.cpp b/src/ast/rewriter/seq_split.cpp index d8963ce838..452bdc420e 100644 --- a/src/ast/rewriter/seq_split.cpp +++ b/src/ast/rewriter/seq_split.cpp @@ -90,7 +90,7 @@ struct split_set::iterator::imp { next(); } if (b_it.failed() || a_it.failed()) - parent().m_failure = true; + parent().set_failure(); } }; @@ -206,8 +206,6 @@ struct split_set::iterator::imp { } void consume() override { - if (at_end()) - return; while (!parent().has_split() && !at_end() && !a_it.failed() && !b_it.failed()) { if (a_it == a_end) { auto [p, q] = *b_it; @@ -335,6 +333,7 @@ struct split_set::iterator::imp { } void unfold(expr* r) { + TRACE(seq, tout << "unfold " << mk_pp(r, m) << "\n"); SASSERT(seq.is_re(r)); if (re.is_empty(r)) return; diff --git a/src/smt/seq_regex.cpp b/src/smt/seq_regex.cpp index d9844b31a0..9f2dbd32c9 100644 --- a/src/smt/seq_regex.cpp +++ b/src/smt/seq_regex.cpp @@ -523,7 +523,7 @@ namespace smt { if (re().is_empty(q)) { enode_pair_vector eqs; literal_vector lits; - lits.push_back(~lit); + lits.push_back(lit); th.set_conflict(eqs, lits); return true; }