3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-11-22 13:41:27 +00:00

Switch to using solver instead of smt::kernel all around

This commit is contained in:
Arie Gurfinkel 2018-05-23 15:03:44 -07:00
parent 4b09cefb97
commit c2b8f25cf9
9 changed files with 146 additions and 138 deletions

View file

@ -2289,33 +2289,56 @@ void context::reset_lemma_generalizers()
// initialize global SMT parameters shared by all solvers
void context::init_global_smt_params() {
m.toggle_proof_mode(PGM_ENABLED);
smt_params &fparams = m_pm.fparams ();
params_ref p;
if (!m_params.spacer_eq_prop ()) {
fparams.m_arith_bound_prop = BP_NONE;
fparams.m_arith_auto_config_simplex = true;
fparams.m_arith_propagate_eqs = false;
fparams.m_arith_eager_eq_axioms = false;
// arith_propagation_mode
p.set_uint("arith.propagation_mode", 0);
// fparams.m_arith_bound_prop = BP_NONE;
// NOT AVAILABLE
// fparams.m_arith_auto_config_simplex = true;
// arith_propagate_eqs
// fparams.m_arith_propagate_eqs = false;
p.set_bool("arith.propagate_eqs", false);
// NOT AVAILABLE
// fparams.m_arith_eager_eq_axioms = false;
}
fparams.m_random_seed = m_params.spacer_random_seed ();
// fparams.m_random_seed = m_params.spacer_random_seed ();
p.set_uint("random_seed", m_params.spacer_random_seed());
fparams.m_dump_benchmarks = m_params.spacer_vs_dump_benchmarks();
fparams.m_dump_min_time = m_params.spacer_vs_dump_min_time();
fparams.m_dump_recheck = m_params.spacer_vs_recheck();
// fparams.m_dump_benchmarks = m_params.spacer_vs_dump_benchmarks();
// fparams.m_dump_min_time = m_params.spacer_vs_dump_min_time();
// fparams.m_dump_recheck = m_params.spacer_vs_recheck();
fparams.m_mbqi = m_params.spacer_mbqi();
// mbqi
// fparams.m_mbqi = m_params.spacer_mbqi();
p.set_bool("mbqi", m_params.spacer_mbqi());
if (!m_params.spacer_ground_cti()) {
fparams.m_pi_use_database = true; // you don't need this
fparams.m_phase_selection = PS_CACHING_CONSERVATIVE2;
fparams.m_restart_strategy = RS_GEOMETRIC;
fparams.m_restart_factor = 1.5;
fparams.m_eliminate_bounds = true;
fparams.m_qi_quick_checker = MC_UNSAT; //
fparams.m_qi_eager_threshold = 10;
fparams.m_qi_lazy_threshold = 20;
fparams.m_ng_lift_ite = LI_FULL; // ? probably useless
// fparams.m_pi_use_database = true; // you don't need this
// phase_selection
// fparams.m_phase_selection = PS_CACHING_CONSERVATIVE2;
p.set_uint("phase_selection", 4);
// restart_strategy
// fparams.m_restart_strategy = RS_GEOMETRIC;
p.set_uint("restart_strategy", 0);
// restart factor
// fparams.m_restart_factor = 1.5;
p.set_double("restart_factor", 1.5);
// probably not needed in our use case
// fparams.m_eliminate_bounds = true;
// NONE
// fparams.m_qi_quick_checker = MC_UNSAT; //
// qi_eager_threshold
// fparams.m_qi_eager_threshold = 10;
p.set_double("qi.eager_threshold", 10.0);
// qi_lazy_threshold
// fparams.m_qi_lazy_threshold = 20;
p.set_double("qi.lazy_threshold", 20.0);
// useless
// fparams.m_ng_lift_ite = LI_FULL;
}
m_pm.updt_params(p);
}
void context::init_lemma_generalizers()
{