mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
add bit-matrix, avoid flattening and/or after bit-blasting, split pdd_grobner into solver/simplifier, add xlin, add smtfd option for incremental mode logic
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
09dbacdf50
commit
1d0572354b
17 changed files with 991 additions and 386 deletions
|
@ -539,25 +539,29 @@ public:
|
|||
if (!m_bb_rewriter) {
|
||||
m_bb_rewriter = alloc(bit_blaster_rewriter, m, m_params);
|
||||
}
|
||||
params_ref simp1_p = m_params;
|
||||
simp1_p.set_bool("som", true);
|
||||
simp1_p.set_bool("pull_cheap_ite", true);
|
||||
simp1_p.set_bool("push_ite_bv", false);
|
||||
simp1_p.set_bool("local_ctx", true);
|
||||
simp1_p.set_uint("local_ctx_limit", 10000000);
|
||||
simp1_p.set_bool("flat", true); // required by som
|
||||
simp1_p.set_bool("hoist_mul", false); // required by som
|
||||
simp1_p.set_bool("elim_and", true);
|
||||
simp1_p.set_bool("blast_distinct", true);
|
||||
|
||||
params_ref simp2_p = m_params;
|
||||
simp2_p.set_bool("som", true);
|
||||
simp2_p.set_bool("pull_cheap_ite", true);
|
||||
simp2_p.set_bool("push_ite_bv", false);
|
||||
simp2_p.set_bool("local_ctx", true);
|
||||
simp2_p.set_uint("local_ctx_limit", 10000000);
|
||||
simp2_p.set_bool("flat", true); // required by som
|
||||
simp2_p.set_bool("hoist_mul", false); // required by som
|
||||
simp2_p.set_bool("elim_and", true);
|
||||
simp2_p.set_bool("blast_distinct", true);
|
||||
simp2_p.set_bool("flat", false);
|
||||
|
||||
m_preprocess =
|
||||
and_then(mk_simplify_tactic(m),
|
||||
mk_propagate_values_tactic(m),
|
||||
//time consuming if done in inner loop: mk_solve_eqs_tactic(m, simp2_p),
|
||||
//time consuming if done in inner loop: mk_solve_eqs_tactic(m, simp1_p),
|
||||
mk_card2bv_tactic(m, m_params), // updates model converter
|
||||
using_params(mk_simplify_tactic(m), simp2_p),
|
||||
using_params(mk_simplify_tactic(m), simp1_p),
|
||||
mk_max_bv_sharing_tactic(m),
|
||||
mk_bit_blaster_tactic(m, m_bb_rewriter.get()),
|
||||
using_params(mk_simplify_tactic(m), simp2_p)
|
||||
mk_bit_blaster_tactic(m, m_bb_rewriter.get())
|
||||
/*TBD remove and check what simplifier does with expansion */ , using_params(mk_simplify_tactic(m), simp2_p)
|
||||
);
|
||||
while (m_bb_rewriter->get_num_scopes() < m_num_scopes) {
|
||||
m_bb_rewriter->push();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue