mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
pick up log configuration consistently #3513
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
e5e6f481f9
commit
145ec8f248
2 changed files with 17 additions and 5 deletions
|
@ -151,6 +151,14 @@ extern "C" {
|
|||
init_solver_core(c, s);
|
||||
}
|
||||
|
||||
static void init_solver_log(Z3_context c, Z3_solver s) {
|
||||
solver_params sp(to_solver(s)->m_params);
|
||||
symbol smt2log = sp.smtlib2_log();
|
||||
if (smt2log.is_non_empty_string() && !to_solver(s)->m_pp) {
|
||||
to_solver(s)->m_pp = alloc(solver2smt2_pp, mk_c(c)->m(), smt2log.str().c_str());
|
||||
}
|
||||
}
|
||||
|
||||
Z3_solver Z3_API Z3_mk_simple_solver(Z3_context c) {
|
||||
Z3_TRY;
|
||||
LOG_Z3_mk_simple_solver(c);
|
||||
|
@ -158,6 +166,7 @@ extern "C" {
|
|||
Z3_solver_ref * s = alloc(Z3_solver_ref, *mk_c(c), mk_smt_solver_factory());
|
||||
mk_c(c)->save_object(s);
|
||||
Z3_solver r = of_solver(s);
|
||||
init_solver_log(c, r);
|
||||
RETURN_Z3(r);
|
||||
Z3_CATCH_RETURN(nullptr);
|
||||
}
|
||||
|
@ -169,6 +178,7 @@ extern "C" {
|
|||
Z3_solver_ref * s = alloc(Z3_solver_ref, *mk_c(c), mk_smt_strategic_solver_factory());
|
||||
mk_c(c)->save_object(s);
|
||||
Z3_solver r = of_solver(s);
|
||||
init_solver_log(c, r);
|
||||
RETURN_Z3(r);
|
||||
Z3_CATCH_RETURN(nullptr);
|
||||
}
|
||||
|
@ -187,6 +197,7 @@ extern "C" {
|
|||
Z3_solver_ref * s = alloc(Z3_solver_ref, *mk_c(c), mk_smt_strategic_solver_factory(to_symbol(logic)));
|
||||
mk_c(c)->save_object(s);
|
||||
Z3_solver r = of_solver(s);
|
||||
init_solver_log(c, r);
|
||||
RETURN_Z3(r);
|
||||
}
|
||||
Z3_CATCH_RETURN(nullptr);
|
||||
|
@ -199,6 +210,7 @@ extern "C" {
|
|||
Z3_solver_ref * s = alloc(Z3_solver_ref, *mk_c(c), mk_tactic2solver_factory(to_tactic_ref(t)));
|
||||
mk_c(c)->save_object(s);
|
||||
Z3_solver r = of_solver(s);
|
||||
init_solver_log(c, r);
|
||||
RETURN_Z3(r);
|
||||
Z3_CATCH_RETURN(nullptr);
|
||||
}
|
||||
|
@ -213,6 +225,7 @@ extern "C" {
|
|||
sr->m_solver = to_solver(s)->m_solver->translate(mk_c(target)->m(), p);
|
||||
mk_c(target)->save_object(sr);
|
||||
Z3_solver r = of_solver(sr);
|
||||
init_solver_log(target, r);
|
||||
RETURN_Z3(r);
|
||||
Z3_CATCH_RETURN(nullptr);
|
||||
}
|
||||
|
@ -343,19 +356,16 @@ extern "C" {
|
|||
Z3_CATCH_RETURN(nullptr);
|
||||
}
|
||||
|
||||
|
||||
void Z3_API Z3_solver_set_params(Z3_context c, Z3_solver s, Z3_params p) {
|
||||
Z3_TRY;
|
||||
LOG_Z3_solver_set_params(c, s, p);
|
||||
RESET_ERROR_CODE();
|
||||
|
||||
symbol logic = to_param_ref(p).get_sym("smt.logic", symbol::null);
|
||||
symbol smt2log = to_param_ref(p).get_sym("solver.smtlib2_log", symbol::null);
|
||||
if (logic != symbol::null) {
|
||||
to_solver(s)->m_logic = logic;
|
||||
}
|
||||
if (smt2log != symbol::null && !to_solver(s)->m_pp) {
|
||||
to_solver(s)->m_pp = alloc(solver2smt2_pp, mk_c(c)->m(), smt2log.str().c_str());
|
||||
}
|
||||
if (to_solver(s)->m_solver) {
|
||||
bool old_model = to_solver(s)->m_params.get_bool("model", true);
|
||||
bool new_model = to_param_ref(p).get_bool("model", true);
|
||||
|
@ -368,6 +378,8 @@ extern "C" {
|
|||
to_solver_ref(s)->updt_params(to_param_ref(p));
|
||||
}
|
||||
to_solver(s)->m_params.append(to_param_ref(p));
|
||||
|
||||
init_solver_log(c, s);
|
||||
|
||||
Z3_CATCH;
|
||||
}
|
||||
|
|
|
@ -190,7 +190,7 @@ bool arith_rewriter::is_bound(expr * arg1, expr * arg2, op_kind kind, expr_ref &
|
|||
case EQ: result = m().mk_false(); return true;
|
||||
}
|
||||
}
|
||||
expr * k = m_util.mk_numeral(c, is_int);
|
||||
expr_ref k(m_util.mk_numeral(c, is_int), m());
|
||||
switch (kind) {
|
||||
case LE: result = m_util.mk_le(pp, k); return true;
|
||||
case GE: result = m_util.mk_ge(pp, k); return true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue