3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

scoped params on solver

solver::push_params() saves current parameters
solver::pop_params() restores previously saved parameters
This commit is contained in:
Arie Gurfinkel 2018-05-22 14:49:52 -07:00
parent 477ac4a19a
commit 1da002d7b1
3 changed files with 36 additions and 0 deletions

View file

@ -206,6 +206,12 @@ void solver::collect_param_descrs(param_descrs & r) {
r.insert("solver.enforce_model_conversion", CPK_BOOL, "(default: false) enforce model conversion when asserting formulas");
}
void solver::reset_params(params_ref const & p) {
m_params.reset();
m_params.copy(p);
m_enforce_model_conversion = m_params.get_bool("solver.enforce_model_conversion", false);
}
void solver::updt_params(params_ref const & p) {
m_params.copy(p);
m_enforce_model_conversion = m_params.get_bool("solver.enforce_model_conversion", false);

View file

@ -60,6 +60,11 @@ public:
*/
virtual void updt_params(params_ref const & p);
/**
\brief reset parameters.
*/
virtual void reset_params(params_ref const& p);
/**
\brief Retrieve set of parameters set on solver.
*/
@ -70,6 +75,17 @@ public:
parameters available in this solver.
*/
virtual void collect_param_descrs(param_descrs & r);
/**
\brief Push a parameter state. It is restored upon pop.
Only a single scope of push is supported.
*/
virtual void push_params() {}
/**
\brief Pop a parameter state. \sa push_params.
*/
virtual void pop_params() {}
/**
\brief Enable/Disable model generation for this solver object.