mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
expose description of global parameters #6048
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
de892ed9f2
commit
7da9f12521
|
@ -64,6 +64,17 @@ extern "C" {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Z3_param_descrs Z3_API Z3_get_global_param_descrs(Z3_context c) {
|
||||||
|
Z3_TRY;
|
||||||
|
LOG_Z3_get_global_param_descrs(c);
|
||||||
|
Z3_param_descrs_ref * d = alloc(Z3_param_descrs_ref, *mk_c(c));
|
||||||
|
mk_c(c)->save_object(d);
|
||||||
|
d->m_descrs = gparams::get_global_param_descrs();
|
||||||
|
auto r = of_param_descrs(d);
|
||||||
|
RETURN_Z3(r);
|
||||||
|
Z3_CATCH_RETURN(nullptr);
|
||||||
|
}
|
||||||
|
|
||||||
Z3_config Z3_API Z3_mk_config(void) {
|
Z3_config Z3_API Z3_mk_config(void) {
|
||||||
try {
|
try {
|
||||||
memory::initialize(UINT_MAX);
|
memory::initialize(UINT_MAX);
|
||||||
|
|
|
@ -459,6 +459,7 @@ namespace z3 {
|
||||||
}
|
}
|
||||||
~param_descrs() { Z3_param_descrs_dec_ref(ctx(), m_descrs); }
|
~param_descrs() { Z3_param_descrs_dec_ref(ctx(), m_descrs); }
|
||||||
static param_descrs simplify_param_descrs(context& c) { return param_descrs(c, Z3_simplify_get_param_descrs(c)); }
|
static param_descrs simplify_param_descrs(context& c) { return param_descrs(c, Z3_simplify_get_param_descrs(c)); }
|
||||||
|
static param_descrs global_param_descrs(context& c) { return param_descrs(c, Z3_get_global_param_descrs(c)); }
|
||||||
|
|
||||||
unsigned size() { return Z3_param_descrs_size(ctx(), m_descrs); }
|
unsigned size() { return Z3_param_descrs_size(ctx(), m_descrs); }
|
||||||
symbol name(unsigned i) { return symbol(ctx(), Z3_param_descrs_get_name(ctx(), m_descrs, i)); }
|
symbol name(unsigned i) { return symbol(ctx(), Z3_param_descrs_get_name(ctx(), m_descrs, i)); }
|
||||||
|
|
|
@ -225,6 +225,10 @@ class Context:
|
||||||
"""
|
"""
|
||||||
Z3_interrupt(self.ref())
|
Z3_interrupt(self.ref())
|
||||||
|
|
||||||
|
def param_descrs(self):
|
||||||
|
"""Return the global parameter description set."""
|
||||||
|
return ParamDescrsRef(Z3_get_global_param_descrs(self.ref()), self)
|
||||||
|
|
||||||
|
|
||||||
# Global Z3 context
|
# Global Z3 context
|
||||||
_main_ctx = None
|
_main_ctx = None
|
||||||
|
|
|
@ -1685,6 +1685,14 @@ extern "C" {
|
||||||
*/
|
*/
|
||||||
void Z3_API Z3_update_param_value(Z3_context c, Z3_string param_id, Z3_string param_value);
|
void Z3_API Z3_update_param_value(Z3_context c, Z3_string param_id, Z3_string param_value);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Retrieve description of global parameters.
|
||||||
|
|
||||||
|
def_API('Z3_get_global_param_descrs', PARAM_DESCRS, (_in(CONTEXT),))
|
||||||
|
*/
|
||||||
|
Z3_param_descrs Z3_API Z3_get_global_param_descrs(Z3_context c);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Interrupt the execution of a Z3 procedure.
|
\brief Interrupt the execution of a Z3 procedure.
|
||||||
This procedure can be used to interrupt: solvers, simplifiers and tactics.
|
This procedure can be used to interrupt: solvers, simplifiers and tactics.
|
||||||
|
|
|
@ -534,6 +534,11 @@ public:
|
||||||
d->display(out, 4, false);
|
d->display(out, 4, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
param_descrs const& get_global_param_descrs() {
|
||||||
|
lock_guard lock(*gparams_mux);
|
||||||
|
return get_param_descrs();
|
||||||
|
}
|
||||||
|
|
||||||
void display_parameter(std::ostream & out, char const * name) {
|
void display_parameter(std::ostream & out, char const * name) {
|
||||||
std::string m, p;
|
std::string m, p;
|
||||||
normalize(name, m, p);
|
normalize(name, m, p);
|
||||||
|
@ -624,6 +629,10 @@ void gparams::display(std::ostream & out, unsigned indent, bool smt2_style, bool
|
||||||
g_imp->display(out, indent, smt2_style, include_descr);
|
g_imp->display(out, indent, smt2_style, include_descr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
param_descrs const& gparams::get_global_param_descrs() {
|
||||||
|
return g_imp->get_global_param_descrs();
|
||||||
|
}
|
||||||
|
|
||||||
void gparams::display_modules(std::ostream & out) {
|
void gparams::display_modules(std::ostream & out) {
|
||||||
SASSERT(g_imp);
|
SASSERT(g_imp);
|
||||||
g_imp->display_modules(out);
|
g_imp->display_modules(out);
|
||||||
|
|
|
@ -120,6 +120,7 @@ public:
|
||||||
static void display_modules(std::ostream & out);
|
static void display_modules(std::ostream & out);
|
||||||
static void display_module(std::ostream & out, char const * module_name);
|
static void display_module(std::ostream & out, char const * module_name);
|
||||||
static void display_parameter(std::ostream & out, char const * name);
|
static void display_parameter(std::ostream & out, char const * name);
|
||||||
|
static param_descrs const& get_global_param_descrs();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
\brief Initialize the global parameter management module.
|
\brief Initialize the global parameter management module.
|
||||||
|
|
Loading…
Reference in a new issue