mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
include model/proof/unsat_core as part of model parameters
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
136b172b5a
commit
c739d803ab
|
@ -43,6 +43,7 @@ extern "C" {
|
||||||
|
|
||||||
param_descrs r;
|
param_descrs r;
|
||||||
s->m_solver->collect_param_descrs(r);
|
s->m_solver->collect_param_descrs(r);
|
||||||
|
context_params::collect_solver_param_descrs(r);
|
||||||
p.validate(r);
|
p.validate(r);
|
||||||
s->m_solver->updt_params(p);
|
s->m_solver->updt_params(p);
|
||||||
}
|
}
|
||||||
|
@ -106,6 +107,7 @@ extern "C" {
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
init_solver(c, s);
|
init_solver(c, s);
|
||||||
to_solver_ref(s)->collect_param_descrs(descrs);
|
to_solver_ref(s)->collect_param_descrs(descrs);
|
||||||
|
context_params::collect_solver_param_descrs(descrs);
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
to_solver(s)->m_solver = 0;
|
to_solver(s)->m_solver = 0;
|
||||||
descrs.display(buffer);
|
descrs.display(buffer);
|
||||||
|
@ -123,6 +125,7 @@ extern "C" {
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
init_solver(c, s);
|
init_solver(c, s);
|
||||||
to_solver_ref(s)->collect_param_descrs(d->m_descrs);
|
to_solver_ref(s)->collect_param_descrs(d->m_descrs);
|
||||||
|
context_params::collect_solver_param_descrs(d->m_descrs);
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
to_solver(s)->m_solver = 0;
|
to_solver(s)->m_solver = 0;
|
||||||
Z3_param_descrs r = of_param_descrs(d);
|
Z3_param_descrs r = of_param_descrs(d);
|
||||||
|
@ -142,6 +145,7 @@ extern "C" {
|
||||||
to_solver_ref(s)->set_produce_models(new_model);
|
to_solver_ref(s)->set_produce_models(new_model);
|
||||||
param_descrs r;
|
param_descrs r;
|
||||||
to_solver_ref(s)->collect_param_descrs(r);
|
to_solver_ref(s)->collect_param_descrs(r);
|
||||||
|
context_params::collect_solver_param_descrs(r);
|
||||||
to_param_ref(p).validate(r);
|
to_param_ref(p).validate(r);
|
||||||
to_solver_ref(s)->updt_params(to_param_ref(p));
|
to_solver_ref(s)->updt_params(to_param_ref(p));
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,15 +114,19 @@ void context_params::collect_param_descrs(param_descrs & d) {
|
||||||
d.insert("well_sorted_check", CPK_BOOL, "type checker", "true");
|
d.insert("well_sorted_check", CPK_BOOL, "type checker", "true");
|
||||||
d.insert("type_check", CPK_BOOL, "type checker (alias for well_sorted_check)", "true");
|
d.insert("type_check", CPK_BOOL, "type checker (alias for well_sorted_check)", "true");
|
||||||
d.insert("auto_config", CPK_BOOL, "use heuristics to automatically select solver and configure it", "true");
|
d.insert("auto_config", CPK_BOOL, "use heuristics to automatically select solver and configure it", "true");
|
||||||
d.insert("proof", CPK_BOOL, "proof generation, it must be enabled when the Z3 context is created", "false");
|
|
||||||
d.insert("check_interpolants", CPK_BOOL, "check correctness of interpolants", "false");
|
d.insert("check_interpolants", CPK_BOOL, "check correctness of interpolants", "false");
|
||||||
d.insert("model", CPK_BOOL, "model generation for solvers, this parameter can be overwritten when creating a solver", "true");
|
|
||||||
d.insert("model_validate", CPK_BOOL, "validate models produced by solvers", "false");
|
d.insert("model_validate", CPK_BOOL, "validate models produced by solvers", "false");
|
||||||
d.insert("trace", CPK_BOOL, "trace generation for VCC", "false");
|
d.insert("trace", CPK_BOOL, "trace generation for VCC", "false");
|
||||||
d.insert("trace_file_name", CPK_STRING, "trace out file name (see option 'trace')", "z3.log");
|
d.insert("trace_file_name", CPK_STRING, "trace out file name (see option 'trace')", "z3.log");
|
||||||
d.insert("unsat_core", CPK_BOOL, "unsat-core generation for solvers, this parameter can be overwritten when creating a solver, not every solver in Z3 supports unsat core generation", "false");
|
|
||||||
d.insert("debug_ref_count", CPK_BOOL, "debug support for AST reference counting", "false");
|
d.insert("debug_ref_count", CPK_BOOL, "debug support for AST reference counting", "false");
|
||||||
d.insert("smtlib2_compliant", CPK_BOOL, "enable/disable SMT-LIB 2.0 compliance", "false");
|
d.insert("smtlib2_compliant", CPK_BOOL, "enable/disable SMT-LIB 2.0 compliance", "false");
|
||||||
|
collect_solver_param_descrs(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
void context_params::collect_solver_param_descrs(param_descrs & d) {
|
||||||
|
d.insert("proof", CPK_BOOL, "proof generation, it must be enabled when the Z3 context is created", "false");
|
||||||
|
d.insert("model", CPK_BOOL, "model generation for solvers, this parameter can be overwritten when creating a solver", "true");
|
||||||
|
d.insert("unsat_core", CPK_BOOL, "unsat-core generation for solvers, this parameter can be overwritten when creating a solver, not every solver in Z3 supports unsat core generation", "false");
|
||||||
}
|
}
|
||||||
|
|
||||||
params_ref context_params::merge_default_params(params_ref const & p) {
|
params_ref context_params::merge_default_params(params_ref const & p) {
|
||||||
|
|
|
@ -55,6 +55,8 @@ public:
|
||||||
*/
|
*/
|
||||||
void get_solver_params(ast_manager const & m, params_ref & p, bool & proofs_enabled, bool & models_enabled, bool & unsat_core_enabled);
|
void get_solver_params(ast_manager const & m, params_ref & p, bool & proofs_enabled, bool & models_enabled, bool & unsat_core_enabled);
|
||||||
|
|
||||||
|
static void collect_solver_param_descrs(param_descrs & d);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Include in p parameters derived from this context_params.
|
\brief Include in p parameters derived from this context_params.
|
||||||
These are parameters that are meaningful for tactics and solvers.
|
These are parameters that are meaningful for tactics and solvers.
|
||||||
|
|
Loading…
Reference in a new issue