3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 02:15:19 +00:00

enable logic parameter update to configure SMTLIB logic

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-03-01 09:26:14 -08:00
parent 31c58b0999
commit 7f51ecab37
5 changed files with 10 additions and 5 deletions

View file

@ -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;

View file

@ -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))

View file

@ -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),

View file

@ -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);
}

View file

@ -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);
}