3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00

saved params work

Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
Leonardo de Moura 2012-11-29 17:19:12 -08:00
parent c3055207ed
commit cf28cbab0a
130 changed files with 1469 additions and 948 deletions

View file

@ -198,15 +198,15 @@ namespace nlsat {
}
void updt_params(params_ref const & p) {
m_max_memory = megabytes_to_bytes(p.get_uint(":max-memory", UINT_MAX));
m_lazy = p.get_uint(":lazy", 0);
m_simplify_cores = p.get_bool(":simplify-conflicts", true);
bool min_cores = p.get_bool(":minimize-conflicts", false);
m_reorder = p.get_bool(":reorder", true);
m_randomize = p.get_bool(":randomize", true);
m_max_conflicts = p.get_uint(":max-conflicts", UINT_MAX);
m_random_order = p.get_bool(":shuffle-vars", false);
m_random_seed = p.get_uint(":seed", 0);
m_max_memory = megabytes_to_bytes(p.get_uint("max_memory", UINT_MAX));
m_lazy = p.get_uint("lazy", 0);
m_simplify_cores = p.get_bool("simplify_conflicts", true);
bool min_cores = p.get_bool("minimize_conflicts", false);
m_reorder = p.get_bool("reorder", true);
m_randomize = p.get_bool("randomize", true);
m_max_conflicts = p.get_uint("max_conflicts", UINT_MAX);
m_random_order = p.get_bool("shuffle_vars", false);
m_random_seed = p.get_uint("seed", 0);
m_ism.set_seed(m_random_seed);
m_explain.set_simplify_cores(m_simplify_cores);
m_explain.set_minimize_cores(min_cores);
@ -2572,13 +2572,13 @@ namespace nlsat {
void solver::collect_param_descrs(param_descrs & d) {
insert_max_memory(d);
algebraic_numbers::manager::collect_param_descrs(d);
d.insert(":max-conflicts", CPK_UINT, "(default: inf) maximum number of conflicts.");
d.insert(":shuffle-vars", CPK_BOOL, "(default: false) use a variable order.");
d.insert(":seed", CPK_UINT, "(default: 0) random seed.");
d.insert(":randomize", CPK_BOOL, "(default: true) randomize selection of a witness in nlsat.");
d.insert(":reorder", CPK_BOOL, "(default: true) reorder variables.");
d.insert(":lazy", CPK_UINT, "(default: 0) how lazy the solver is.");
d.insert(":simplify-conflicts", CPK_BOOL, "(default: true) simplify conflicts using equalities before resolving them in nlsat solver.");
d.insert("max_conflicts", CPK_UINT, "(default: inf) maximum number of conflicts.");
d.insert("shuffle_vars", CPK_BOOL, "(default: false) use a variable order.");
d.insert("seed", CPK_UINT, "(default: 0) random seed.");
d.insert("randomize", CPK_BOOL, "(default: true) randomize selection of a witness in nlsat.");
d.insert("reorder", CPK_BOOL, "(default: true) reorder variables.");
d.insert("lazy", CPK_UINT, "(default: 0) how lazy the solver is.");
d.insert("simplify_conflicts", CPK_BOOL, "(default: true) simplify conflicts using equalities before resolving them in nlsat solver.");
}
unsynch_mpq_manager & solver::qm() {

View file

@ -77,8 +77,8 @@ struct goal2nlsat::imp {
}
void updt_params(params_ref const & p) {
m_max_memory = megabytes_to_bytes(p.get_uint(":max-memory", UINT_MAX));
m_factor = p.get_bool(":factor", true);
m_max_memory = megabytes_to_bytes(p.get_uint("max_memory", UINT_MAX));
m_factor = p.get_bool("factor", true);
m_fparams.updt_params(p);
}
@ -293,7 +293,7 @@ goal2nlsat::~goal2nlsat() {
void goal2nlsat::collect_param_descrs(param_descrs & r) {
insert_max_memory(r);
r.insert(":factor", CPK_BOOL, "(default: true) factor polynomials.");
r.insert("factor", CPK_BOOL, "(default: true) factor polynomials.");
polynomial::factor_params::get_param_descrs(r);
}

View file

@ -31,13 +31,13 @@ Notes:
tactic * mk_qfnra_nlsat_tactic(ast_manager & m, params_ref const & p) {
params_ref main_p = p;
main_p.set_bool(":elim-and", true);
main_p.set_bool(":blast-distinct", true);
main_p.set_bool("elim_and", true);
main_p.set_bool("blast_distinct", true);
params_ref purify_p = p;
purify_p.set_bool(":complete", false); // temporary hack, solver does not support uninterpreted functions for encoding (div0 x) applications. So, we replace it application of this kind with an uninterpreted function symbol.
purify_p.set_bool("complete", false); // temporary hack, solver does not support uninterpreted functions for encoding (div0 x) applications. So, we replace it application of this kind with an uninterpreted function symbol.
tactic * factor;
if (p.get_bool(":factor", true))
if (p.get_bool("factor", true))
factor = mk_factor_tactic(m, p);
else
factor = mk_skip_tactic();