diff --git a/src/api/api_ast.cpp b/src/api/api_ast.cpp index db10c8bb3..0203439ae 100644 --- a/src/api/api_ast.cpp +++ b/src/api/api_ast.cpp @@ -832,7 +832,7 @@ extern "C" { pp_params params; pp.set_simplify_implies(params.simplify_implies()); ast* a1 = to_ast(a); - pp.set_logic(mk_c(c)->fparams().m_smtlib_logic.c_str()); + pp.set_logic(mk_c(c)->fparams().m_logic.c_str()); if (!is_expr(a1)) { buffer << mk_pp(a1, mk_c(c)->m()); break; diff --git a/src/smt/params/smt_params.cpp b/src/smt/params/smt_params.cpp index 3158ea9a1..8dc0bb7d6 100644 --- a/src/smt/params/smt_params.cpp +++ b/src/smt/params/smt_params.cpp @@ -38,7 +38,7 @@ void smt_params::updt_local_params(params_ref const & _p) { m_rlimit = p.rlimit(); m_max_conflicts = p.max_conflicts(); m_core_validate = p.core_validate(); - m_smtlib_logic = _p.get_symbol("logic", m_smtlib_logic); + m_logic = _p.get_str("logic", m_logic.c_str()); model_params mp(_p); m_model_compact = mp.compact(); if (_p.get_bool("arith.greatest_error_pivot", false)) diff --git a/src/smt/params/smt_params.h b/src/smt/params/smt_params.h index 8127b7eef..a60f026bc 100644 --- a/src/smt/params/smt_params.h +++ b/src/smt/params/smt_params.h @@ -160,7 +160,7 @@ struct smt_params : public preprocessor_params, // // ----------------------------------- bool m_smtlib_dump_lemmas; - std::string m_smtlib_logic; + std::string m_logic; // ----------------------------------- // @@ -260,7 +260,7 @@ struct smt_params : public preprocessor_params, m_old_clause_relevancy(6), m_inv_clause_decay(1), m_smtlib_dump_lemmas(false), - m_smtlib_logic("AUFLIA"), + m_logic("AUFLIA"), m_profile_res_sub(false), m_display_bool_var2expr(false), m_display_ll_bool_var2expr(false), diff --git a/src/smt/smt_internalizer.cpp b/src/smt/smt_internalizer.cpp index 78a6b85cb..5cad7547e 100644 --- a/src/smt/smt_internalizer.cpp +++ b/src/smt/smt_internalizer.cpp @@ -1433,7 +1433,7 @@ namespace smt { literal_buffer tmp; neg_literals(num_lits, lits, tmp); SASSERT(tmp.size() == num_lits); - display_lemma_as_smt_problem(tmp.size(), tmp.c_ptr(), false_literal, m_fparams.m_smtlib_logic.c_str()); + display_lemma_as_smt_problem(tmp.size(), tmp.c_ptr(), false_literal, m_fparams.m_logic.c_str()); } mk_clause(num_lits, lits, js); } diff --git a/src/smt/tactic/smt_tactic.cpp b/src/smt/tactic/smt_tactic.cpp index f50f0afa5..afa4cf98f 100644 --- a/src/smt/tactic/smt_tactic.cpp +++ b/src/smt/tactic/smt_tactic.cpp @@ -123,6 +123,11 @@ public: TRACE("smt_tactic", tout << this << "\nupdt_params: " << p << "\n";); updt_params_core(p); fparams().updt_params(p); + symbol logic = p.get_sym(symbol("logic"), symbol::null); + if (logic != symbol::null) { + if (m_ctx) m_ctx->set_logic(logic); + m_logic = logic; + } SASSERT(p.get_bool("auto_config", fparams().m_auto_config) == fparams().m_auto_config); }