mirror of
https://github.com/Z3Prover/z3
synced 2026-04-26 22:03:34 +00:00
more consistent use of parallel mode when enabled, takes care of example test from #1898 that didn't trigger parallel mode
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
d9e77ba443
commit
cf4bf7b591
20 changed files with 73 additions and 65 deletions
|
|
@ -58,21 +58,21 @@ probe * mk_is_quasi_pb_probe() {
|
|||
}
|
||||
|
||||
// Create SMT solver that does not use cuts
|
||||
static tactic * mk_no_cut_smt_tactic(unsigned rs) {
|
||||
static tactic * mk_no_cut_smt_tactic(ast_manager& m, unsigned rs) {
|
||||
params_ref solver_p;
|
||||
solver_p.set_sym(symbol("smt.logic"), symbol("QF_LIA")); // force smt_setup to use the new solver
|
||||
solver_p.set_uint("arith.branch_cut_ratio", 10000000);
|
||||
solver_p.set_uint("random_seed", rs);
|
||||
return annotate_tactic("no-cut-smt-tactic", using_params(mk_smt_tactic_using(false), solver_p));
|
||||
return annotate_tactic("no-cut-smt-tactic", using_params(mk_smt_tactic_using(m, false), solver_p));
|
||||
}
|
||||
|
||||
// Create SMT solver that does not use cuts
|
||||
static tactic * mk_no_cut_no_relevancy_smt_tactic(unsigned rs) {
|
||||
static tactic * mk_no_cut_no_relevancy_smt_tactic(ast_manager& m, unsigned rs) {
|
||||
params_ref solver_p;
|
||||
solver_p.set_uint("arith.branch_cut_ratio", 10000000);
|
||||
solver_p.set_uint("random_seed", rs);
|
||||
solver_p.set_uint("relevancy", 0);
|
||||
return annotate_tactic("no-cut-relevancy-tactic", using_params(mk_smt_tactic_using(false), solver_p));
|
||||
return annotate_tactic("no-cut-relevancy-tactic", using_params(mk_smt_tactic_using(m, false), solver_p));
|
||||
}
|
||||
|
||||
static tactic * mk_bv2sat_tactic(ast_manager & m) {
|
||||
|
|
@ -155,10 +155,10 @@ static tactic * mk_ilp_model_finder_tactic(ast_manager & m) {
|
|||
fail_if(mk_produce_unsat_cores_probe()),
|
||||
mk_propagate_ineqs_tactic(m),
|
||||
or_else(// try_for(mk_mip_tactic(m), 5000),
|
||||
try_for(mk_no_cut_smt_tactic(100), 2000),
|
||||
try_for(mk_no_cut_smt_tactic(m, 100), 2000),
|
||||
and_then(using_params(mk_add_bounds_tactic(m), add_bounds_p1),
|
||||
try_for(mk_lia2sat_tactic(m), 5000)),
|
||||
try_for(mk_no_cut_smt_tactic(200), 5000),
|
||||
try_for(mk_no_cut_smt_tactic(m, 200), 5000),
|
||||
and_then(using_params(mk_add_bounds_tactic(m), add_bounds_p2),
|
||||
try_for(mk_lia2sat_tactic(m), 10000))
|
||||
// , mk_mip_tactic(m)
|
||||
|
|
@ -170,9 +170,9 @@ static tactic * mk_bounded_tactic(ast_manager & m) {
|
|||
return annotate_tactic(
|
||||
"bounded-tactic",
|
||||
and_then(fail_if(mk_is_unbounded_probe()),
|
||||
or_else(try_for(mk_no_cut_smt_tactic(100), 5000),
|
||||
try_for(mk_no_cut_no_relevancy_smt_tactic(200), 5000),
|
||||
try_for(mk_no_cut_smt_tactic(300), 15000)
|
||||
or_else(try_for(mk_no_cut_smt_tactic(m, 100), 5000),
|
||||
try_for(mk_no_cut_no_relevancy_smt_tactic(m, 200), 5000),
|
||||
try_for(mk_no_cut_smt_tactic(m, 300), 15000)
|
||||
),
|
||||
mk_fail_if_undecided_tactic()));
|
||||
}
|
||||
|
|
@ -218,7 +218,7 @@ tactic * mk_qflia_tactic(ast_manager & m, params_ref const & p) {
|
|||
using_params(mk_lia2sat_tactic(m), quasi_pb_p),
|
||||
mk_fail_if_undecided_tactic()),
|
||||
mk_bounded_tactic(m),
|
||||
mk_smt_tactic())),
|
||||
mk_smt_tactic(m))),
|
||||
main_p);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue