From 6ab83466d9e4e229ba22160140ac9ab9ff1fa627 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Fri, 24 Apr 2020 11:33:19 -0700 Subject: [PATCH] fix #4082 Signed-off-by: Nikolaj Bjorner --- src/smt/asserted_formulas.cpp | 2 ++ src/smt/theory_seq.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/smt/asserted_formulas.cpp b/src/smt/asserted_formulas.cpp index 7d0baf1e1bb..45ff5cb97fb 100644 --- a/src/smt/asserted_formulas.cpp +++ b/src/smt/asserted_formulas.cpp @@ -137,6 +137,8 @@ void asserted_formulas::set_eliminate_and(bool flag) { m_params.set_bool("expand_select_store", true); //m_params.set_bool("expand_nested_stores", true); m_params.set_bool("bv_sort_ac", true); + // seq theory solver keeps terms in normal form and has to interact with side-effect of rewriting + // m_params.set_bool("coalesce_chars", m_smt_params.m_string_solver != symbol("seq")); m_params.set_bool("som", true); m_rewriter.updt_params(m_params); flush_cache(); diff --git a/src/smt/theory_seq.cpp b/src/smt/theory_seq.cpp index 99dc19fe9d6..d9e2577d4d7 100644 --- a/src/smt/theory_seq.cpp +++ b/src/smt/theory_seq.cpp @@ -1049,6 +1049,9 @@ bool theory_seq::add_solution(expr* l, expr* r, dependency* deps) { } m_new_solution = true; m_rep.update(l, r, deps); + expr_ref sl(l, m); + m_rewrite(sl); + m_rep.update(sl, r, deps); enode* n1 = ensure_enode(l); enode* n2 = ensure_enode(r); TRACE("seq", tout << mk_bounded_pp(l, m, 2) << " ==> " << mk_bounded_pp(r, m, 2) << "\n"; display_deps(tout, deps);