From 055732423ca433f1332a0ac56f75e8476387d767 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Tue, 11 Jan 2022 08:35:25 -0800 Subject: [PATCH] ensure enode without recursion Signed-off-by: Nikolaj Bjorner --- src/smt/theory_seq.cpp | 2 ++ src/smt/theory_user_propagator.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/smt/theory_seq.cpp b/src/smt/theory_seq.cpp index c86db1aa5..2fbd2cf28 100644 --- a/src/smt/theory_seq.cpp +++ b/src/smt/theory_seq.cpp @@ -1506,6 +1506,7 @@ void theory_seq::add_length(expr* l) { Add length limit restrictions to sequence s. */ void theory_seq::add_length_limit(expr* s, unsigned k, bool is_searching) { + return; if (m_sk.is_indexof_left(s)) return; if (m_sk.is_indexof_right(s)) @@ -3232,6 +3233,7 @@ void theory_seq::add_unhandled_expr(expr* n) { void theory_seq::add_theory_assumptions(expr_ref_vector & assumptions) { + return; if (m_has_seq) { TRACE("seq", tout << "add_theory_assumption\n";); expr_ref dlimit = m_sk.mk_max_unfolding_depth(m_max_unfolding_depth); diff --git a/src/smt/theory_user_propagator.cpp b/src/smt/theory_user_propagator.cpp index 200d9b946..48e57f5fd 100644 --- a/src/smt/theory_user_propagator.cpp +++ b/src/smt/theory_user_propagator.cpp @@ -181,6 +181,8 @@ bool theory_user_propagator::internalize_atom(app* atom, bool gate_ctx) { bool theory_user_propagator::internalize_term(app* term) { for (auto arg : *term) ensure_enode(arg); + if (term->get_family_id() == get_id() && !ctx.e_internalized(term)) + ctx.mk_enode(term, true, false, true); unsigned v = add_expr(term); if (m_created_eh) m_created_eh(m_user_context, this, term, v);