mirror of
https://github.com/Z3Prover/z3
synced 2025-06-09 07:33:24 +00:00
breaking change. Enforce append semantics everywhere for parameter updates #5744
Replace semantics doesn't work with assumptions made elsewhere in code. The remedy is to apply append (override) semantics for parameter changes.
This commit is contained in:
parent
e8833f4dac
commit
fc77345bec
53 changed files with 101 additions and 98 deletions
|
@ -585,7 +585,7 @@ extern "C" {
|
||||||
to_fixedpoint_ref(d)->collect_param_descrs(descrs);
|
to_fixedpoint_ref(d)->collect_param_descrs(descrs);
|
||||||
to_params(p)->m_params.validate(descrs);
|
to_params(p)->m_params.validate(descrs);
|
||||||
to_fixedpoint_ref(d)->updt_params(to_param_ref(p));
|
to_fixedpoint_ref(d)->updt_params(to_param_ref(p));
|
||||||
to_fixedpoint(d)->m_params = to_param_ref(p);
|
to_fixedpoint(d)->m_params.append(to_param_ref(p));
|
||||||
Z3_CATCH;
|
Z3_CATCH;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -859,8 +859,8 @@ ast_manager & th_rewriter::m() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void th_rewriter::updt_params(params_ref const & p) {
|
void th_rewriter::updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->cfg().updt_params(p);
|
m_imp->cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void th_rewriter::get_param_descrs(param_descrs & r) {
|
void th_rewriter::get_param_descrs(param_descrs & r) {
|
||||||
|
|
|
@ -199,12 +199,12 @@ void tst_params(cmd_context & ctx) {
|
||||||
params_ref p1;
|
params_ref p1;
|
||||||
params_ref p2;
|
params_ref p2;
|
||||||
p1.set_uint("val", 100);
|
p1.set_uint("val", 100);
|
||||||
p2 = p1;
|
p2.append(p1);
|
||||||
SASSERT(p2.get_uint("val", 0) == 100);
|
SASSERT(p2.get_uint("val", 0) == 100);
|
||||||
p2.set_uint("val", 200);
|
p2.set_uint("val", 200);
|
||||||
SASSERT(p2.get_uint("val", 0) == 200);
|
SASSERT(p2.get_uint("val", 0) == 200);
|
||||||
SASSERT(p1.get_uint("val", 0) == 100);
|
SASSERT(p1.get_uint("val", 0) == 100);
|
||||||
p2 = p1;
|
p2.append(p1);
|
||||||
SASSERT(p2.get_uint("val", 0) == 100);
|
SASSERT(p2.get_uint("val", 0) == 100);
|
||||||
SASSERT(p1.get_uint("val", 0) == 100);
|
SASSERT(p1.get_uint("val", 0) == 100);
|
||||||
ctx.regular_stream() << "worked" << std::endl;
|
ctx.regular_stream() << "worked" << std::endl;
|
||||||
|
|
|
@ -227,8 +227,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -395,8 +395,8 @@ public:
|
||||||
char const* name() const override { return "horn"; }
|
char const* name() const override { return "horn"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -55,8 +55,8 @@ class nlsat_tactic : public tactic {
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) {
|
void updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_solver.updt_params(p);
|
m_solver.updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool contains_unsupported(expr_ref_vector & b2a, expr_ref_vector & x2t) {
|
bool contains_unsupported(expr_ref_vector & b2a, expr_ref_vector & x2t) {
|
||||||
|
@ -226,7 +226,7 @@ public:
|
||||||
char const* name() const override { return "nlsat"; }
|
char const* name() const override { return "nlsat"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -190,7 +190,8 @@ void context_params::get_solver_params(params_ref & p, bool & proofs_enabled, bo
|
||||||
proofs_enabled &= p.get_bool("proof", m_proof);
|
proofs_enabled &= p.get_bool("proof", m_proof);
|
||||||
models_enabled &= p.get_bool("model", m_model);
|
models_enabled &= p.get_bool("model", m_model);
|
||||||
unsat_core_enabled = m_unsat_core || p.get_bool("unsat_core", false);
|
unsat_core_enabled = m_unsat_core || p.get_bool("unsat_core", false);
|
||||||
p = merge_default_params(p);
|
if (!m_auto_config && !p.contains("auto_config"))
|
||||||
|
p.set_bool("auto_config", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2466,7 +2466,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
// m_imp->updt_params(p);
|
// m_imp->updt_params(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,8 +103,8 @@ public:
|
||||||
char const* name() const override { return "qe"; }
|
char const* name() const override { return "qe"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -201,8 +201,8 @@ public:
|
||||||
char const* name() const override { return "sat"; }
|
char const* name() const override { return "sat"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
if (m_imp) m_imp->updt_params(p);
|
if (m_imp) m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -124,7 +124,7 @@ namespace {
|
||||||
smt_params m_smt_params_save;
|
smt_params m_smt_params_save;
|
||||||
|
|
||||||
void push_params() override {
|
void push_params() override {
|
||||||
m_params_save = params_ref();
|
m_params_save.reset();
|
||||||
m_params_save.copy(solver::get_params());
|
m_params_save.copy(solver::get_params());
|
||||||
m_smt_params_save = m_smt_params;
|
m_smt_params_save = m_smt_params;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,8 @@ public:
|
||||||
|
|
||||||
scoped_init_ctx(smt_tactic & o, ast_manager & m):m_owner(o) {
|
scoped_init_ctx(smt_tactic & o, ast_manager & m):m_owner(o) {
|
||||||
m_params = o.fparams();
|
m_params = o.fparams();
|
||||||
m_params_ref = o.params();
|
m_params_ref.reset();
|
||||||
|
m_params_ref.append(o.params());
|
||||||
smt::kernel * new_ctx = alloc(smt::kernel, m, m_params, m_params_ref);
|
smt::kernel * new_ctx = alloc(smt::kernel, m, m_params, m_params_ref);
|
||||||
TRACE("smt_tactic", tout << "logic: " << o.m_logic << "\n";);
|
TRACE("smt_tactic", tout << "logic: " << o.m_logic << "\n";);
|
||||||
new_ctx->set_logic(o.m_logic);
|
new_ctx->set_logic(o.m_logic);
|
||||||
|
|
|
@ -50,7 +50,7 @@ struct unit_subsumption_tactic : public tactic {
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const& p) override {
|
void updt_params(params_ref const& p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
// m_context.updt_params(p); does not exist.
|
// m_context.updt_params(p); does not exist.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -226,7 +226,7 @@ void solver::collect_param_descrs(param_descrs & r) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void solver::reset_params(params_ref const & p) {
|
void solver::reset_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
solver_params sp(m_params);
|
solver_params sp(m_params);
|
||||||
m_cancel_backup_file = sp.cancel_backup_file();
|
m_cancel_backup_file = sp.cancel_backup_file();
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,8 +149,8 @@ public:
|
||||||
char const* name() const override { return "add_bounds"; }
|
char const* name() const override { return "add_bounds"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -45,7 +45,7 @@ public:
|
||||||
char const* name() const override { return "card2bv"; }
|
char const* name() const override { return "card2bv"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -360,8 +360,8 @@ public:
|
||||||
char const* name() const override { return "diff_neq"; }
|
char const* name() const override { return "diff_neq"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -297,8 +297,8 @@ public:
|
||||||
char const* name() const override { return "factor"; }
|
char const* name() const override { return "factor"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_rw.cfg().updt_params(p);
|
m_imp->m_rw.cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -303,8 +303,8 @@ public:
|
||||||
char const* name() const override { return "fix_dl_var"; }
|
char const* name() const override { return "fix_dl_var"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -1645,8 +1645,8 @@ public:
|
||||||
char const* name() const override { return "fm"; }
|
char const* name() const override { return "fm"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -135,8 +135,8 @@ public:
|
||||||
char const* name() const override { return "lia2card"; }
|
char const* name() const override { return "lia2card"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_compile_equality = p.get_bool("compile_equality", true);
|
m_compile_equality = m_params.get_bool("compile_equality", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
expr_ref mk_bounded(expr_ref_vector& axioms, app* x, unsigned lo, unsigned hi) {
|
expr_ref mk_bounded(expr_ref_vector& axioms, app* x, unsigned lo, unsigned hi) {
|
||||||
|
|
|
@ -308,8 +308,8 @@ public:
|
||||||
char const* name() const override { return "lia2pb"; }
|
char const* name() const override { return "lia2pb"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -1010,8 +1010,8 @@ public:
|
||||||
char const* name() const override { return "pb2bv"; }
|
char const* name() const override { return "pb2bv"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -543,8 +543,8 @@ propagate_ineqs_tactic::~propagate_ineqs_tactic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void propagate_ineqs_tactic::updt_params(params_ref const & p) {
|
void propagate_ineqs_tactic::updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void propagate_ineqs_tactic::operator()(goal_ref const & g,
|
void propagate_ineqs_tactic::operator()(goal_ref const & g,
|
||||||
|
|
|
@ -906,7 +906,7 @@ public:
|
||||||
char const* name() const override { return "purify_arith"; }
|
char const* name() const override { return "purify_arith"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -401,8 +401,8 @@ public:
|
||||||
char const* name() const override { return "recover_01"; }
|
char const* name() const override { return "recover_01"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -122,8 +122,8 @@ public:
|
||||||
char const* name() const override { return "bit_blaster"; }
|
char const* name() const override { return "bit_blaster"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -434,8 +434,8 @@ public:
|
||||||
char const* name() const override { return "bv1_blaster"; }
|
char const* name() const override { return "bv1_blaster"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_rw.cfg().updt_params(p);
|
m_imp->m_rw.cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -206,8 +206,8 @@ tactic * bv_bound_chk_tactic::translate(ast_manager & m) {
|
||||||
|
|
||||||
|
|
||||||
void bv_bound_chk_tactic::updt_params(params_ref const & p) {
|
void bv_bound_chk_tactic::updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void bv_bound_chk_tactic::cleanup() {
|
void bv_bound_chk_tactic::cleanup() {
|
||||||
|
|
|
@ -116,8 +116,8 @@ public:
|
||||||
char const* name() const override { return "bvarray2uf"; }
|
char const* name() const override { return "bvarray2uf"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -207,7 +207,7 @@ class elim_small_bv_tactic : public tactic {
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) {
|
void updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_max_memory = megabytes_to_bytes(p.get_uint("max_memory", UINT_MAX));
|
m_max_memory = megabytes_to_bytes(p.get_uint("max_memory", UINT_MAX));
|
||||||
m_max_steps = p.get_uint("max_steps", UINT_MAX);
|
m_max_steps = p.get_uint("max_steps", UINT_MAX);
|
||||||
m_max_bits = p.get_uint("max_bits", 4);
|
m_max_bits = p.get_uint("max_bits", 4);
|
||||||
|
@ -241,8 +241,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_rw.cfg().updt_params(p);
|
m_rw.cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -280,8 +280,8 @@ public:
|
||||||
char const* name() const override { return "max_bv_sharing"; }
|
char const* name() const override { return "max_bv_sharing"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_rw.cfg().updt_params(p);
|
m_imp->m_rw.cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -174,8 +174,8 @@ public:
|
||||||
char const* name() const override { return "blast_term_ite"; }
|
char const* name() const override { return "blast_term_ite"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_rw.m_cfg.updt_params(p);
|
m_imp->m_rw.m_cfg.updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -52,7 +52,7 @@ public:
|
||||||
|
|
||||||
~cofactor_term_ite_tactic() override {}
|
~cofactor_term_ite_tactic() override {}
|
||||||
char const* name() const override { return "cofactor"; }
|
char const* name() const override { return "cofactor"; }
|
||||||
void updt_params(params_ref const & p) override { m_params = p; m_elim_ite.updt_params(p); }
|
void updt_params(params_ref const & p) override { m_params.append(p); m_elim_ite.updt_params(m_params); }
|
||||||
void collect_param_descrs(param_descrs & r) override { m_elim_ite.collect_param_descrs(r); }
|
void collect_param_descrs(param_descrs & r) override { m_elim_ite.collect_param_descrs(r); }
|
||||||
|
|
||||||
void operator()(goal_ref const & g, goal_ref_buffer& result) override {
|
void operator()(goal_ref const & g, goal_ref_buffer& result) override {
|
||||||
|
|
|
@ -60,7 +60,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {}
|
void collect_param_descrs(param_descrs & r) override {}
|
||||||
|
|
|
@ -605,8 +605,8 @@ ctx_simplify_tactic::~ctx_simplify_tactic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ctx_simplify_tactic::updt_params(params_ref const & p) {
|
void ctx_simplify_tactic::updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ctx_simplify_tactic::get_param_descrs(param_descrs & r) {
|
void ctx_simplify_tactic::get_param_descrs(param_descrs & r) {
|
||||||
|
|
|
@ -143,8 +143,8 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_rw.cfg().updt_params(p);
|
m_imp->m_rw.cfg().updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -862,9 +862,9 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_max_memory = megabytes_to_bytes(p.get_uint("max_memory", UINT_MAX));
|
m_max_memory = megabytes_to_bytes(m_params.get_uint("max_memory", UINT_MAX));
|
||||||
m_max_steps = p.get_uint("max_steps", UINT_MAX);
|
m_max_steps = m_params.get_uint("max_steps", UINT_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -258,8 +258,8 @@ public:
|
||||||
char const* name() const override { return "injectivity"; }
|
char const* name() const override { return "injectivity"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_finder->updt_params(p);
|
m_finder->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -51,7 +51,7 @@ public:
|
||||||
|
|
||||||
char const* name() const override { return "nnf"; }
|
char const* name() const override { return "nnf"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override { m_params = p; }
|
void updt_params(params_ref const & p) override { m_params.append(p); }
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override { nnf::get_param_descrs(r); }
|
void collect_param_descrs(param_descrs & r) override { nnf::get_param_descrs(r); }
|
||||||
|
|
||||||
|
|
|
@ -219,9 +219,9 @@ public:
|
||||||
char const* name() const override { return "propagate_values"; }
|
char const* name() const override { return "propagate_values"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_r.updt_params(p);
|
m_r.updt_params(p);
|
||||||
updt_params_core(p);
|
updt_params_core(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -80,8 +80,8 @@ simplify_tactic::~simplify_tactic() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplify_tactic::updt_params(params_ref const & p) {
|
void simplify_tactic::updt_params(params_ref const & p) {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->m_r.updt_params(p);
|
m_imp->m_r.updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void simplify_tactic::get_param_descrs(param_descrs & r) {
|
void simplify_tactic::get_param_descrs(param_descrs & r) {
|
||||||
|
|
|
@ -1092,8 +1092,8 @@ public:
|
||||||
char const* name() const override { return "solve_eqs"; }
|
char const* name() const override { return "solve_eqs"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -49,7 +49,7 @@ public:
|
||||||
|
|
||||||
~special_relations_tactic() override {}
|
~special_relations_tactic() override {}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override { m_params = p; }
|
void updt_params(params_ref const & p) override { m_params.append(p); }
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override { }
|
void collect_param_descrs(param_descrs & r) override { }
|
||||||
|
|
||||||
|
|
|
@ -894,8 +894,8 @@ public:
|
||||||
char const* name() const override { return "tseitin_cnf"; }
|
char const* name() const override { return "tseitin_cnf"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -123,8 +123,8 @@ public:
|
||||||
char const* name() const override { return "fp2bv"; }
|
char const* name() const override { return "fp2bv"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -136,8 +136,8 @@ public:
|
||||||
char const* name() const override { return "solver_subsumption"; }
|
char const* name() const override { return "solver_subsumption"; }
|
||||||
|
|
||||||
void updt_params(params_ref const& p) override {
|
void updt_params(params_ref const& p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
unsigned max_conflicts = p.get_uint("max_conflicts", 2);
|
unsigned max_conflicts = m_params.get_uint("max_conflicts", 2);
|
||||||
m_params.set_uint("sat.max_conflicts", max_conflicts);
|
m_params.set_uint("sat.max_conflicts", max_conflicts);
|
||||||
m_params.set_uint("smt.max_conflicts", max_conflicts);
|
m_params.set_uint("smt.max_conflicts", max_conflicts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,8 +53,8 @@ public:
|
||||||
char const* name() const override { return "sls"; }
|
char const* name() const override { return "sls"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_engine->updt_params(p);
|
m_engine->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -108,8 +108,8 @@ public:
|
||||||
char const* name() const override { return "macro_finder"; }
|
char const* name() const override { return "macro_finder"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -103,8 +103,8 @@ public:
|
||||||
char const* name() const override { return "quasi_macros"; }
|
char const* name() const override { return "quasi_macros"; }
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
m_imp->updt_params(p);
|
m_imp->updt_params(m_params);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -35,7 +35,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
void updt_params(params_ref const & p) override {
|
void updt_params(params_ref const & p) override {
|
||||||
m_params = p;
|
m_params.append(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void collect_param_descrs(param_descrs & r) override {
|
void collect_param_descrs(param_descrs & r) override {
|
||||||
|
|
|
@ -520,7 +520,7 @@ params_ref::~params_ref() {
|
||||||
|
|
||||||
params_ref::params_ref(params_ref const & p):
|
params_ref::params_ref(params_ref const & p):
|
||||||
m_params(nullptr) {
|
m_params(nullptr) {
|
||||||
operator=(p);
|
set(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
void params_ref::display(std::ostream & out) const {
|
void params_ref::display(std::ostream & out) const {
|
||||||
|
@ -553,18 +553,18 @@ void params_ref::validate(param_descrs const & p) {
|
||||||
m_params->validate(p);
|
m_params->validate(p);
|
||||||
}
|
}
|
||||||
|
|
||||||
params_ref & params_ref::operator=(params_ref const & p) {
|
|
||||||
|
void params_ref::set(params_ref const & p) {
|
||||||
if (p.m_params)
|
if (p.m_params)
|
||||||
p.m_params->inc_ref();
|
p.m_params->inc_ref();
|
||||||
if (m_params)
|
if (m_params)
|
||||||
m_params->dec_ref();
|
m_params->dec_ref();
|
||||||
m_params = p.m_params;
|
m_params = p.m_params;
|
||||||
return *this;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void params_ref::copy(params_ref const & src) {
|
void params_ref::copy(params_ref const & src) {
|
||||||
if (m_params == nullptr)
|
if (m_params == nullptr || m_params->empty())
|
||||||
operator=(src);
|
set(src);
|
||||||
else {
|
else {
|
||||||
init();
|
init();
|
||||||
copy_core(src.m_params);
|
copy_core(src.m_params);
|
||||||
|
|
|
@ -35,6 +35,8 @@ class params_ref {
|
||||||
params * m_params;
|
params * m_params;
|
||||||
void init();
|
void init();
|
||||||
void copy_core(params const * p);
|
void copy_core(params const * p);
|
||||||
|
params_ref& operator=(params_ref const& p) = delete;
|
||||||
|
void set(params_ref const& p);
|
||||||
public:
|
public:
|
||||||
params_ref():m_params(nullptr) {}
|
params_ref():m_params(nullptr) {}
|
||||||
params_ref(params_ref const & p);
|
params_ref(params_ref const & p);
|
||||||
|
@ -42,8 +44,7 @@ public:
|
||||||
|
|
||||||
static params_ref const & get_empty() { return g_empty_params_ref; }
|
static params_ref const & get_empty() { return g_empty_params_ref; }
|
||||||
|
|
||||||
params_ref & operator=(params_ref const & p);
|
|
||||||
|
|
||||||
// copy params from src
|
// copy params from src
|
||||||
void copy(params_ref const & src);
|
void copy(params_ref const & src);
|
||||||
void append(params_ref const & src) { copy(src); }
|
void append(params_ref const & src) { copy(src); }
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue