3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-05-07 15:55:46 +00:00

fix pb rewriter

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2018-03-12 11:22:05 -07:00
parent f04e805fa4
commit e7d43ed516
16 changed files with 215 additions and 129 deletions

View file

@ -36,6 +36,7 @@ class bv1_blaster_tactic : public tactic {
ast_manager & m_manager;
bv_util m_util;
obj_map<func_decl, expr*> m_const2bits;
ptr_vector<func_decl> m_newbits;
expr_ref_vector m_saved;
expr_ref m_bit1;
expr_ref m_bit0;
@ -107,6 +108,7 @@ class bv1_blaster_tactic : public tactic {
ptr_buffer<expr> bits;
for (unsigned i = 0; i < bv_size; i++) {
bits.push_back(m().mk_fresh_const(0, b));
m_newbits.push_back(to_app(bits.back())->get_decl());
}
r = butil().mk_concat(bits.size(), bits.c_ptr());
m_saved.push_back(r);
@ -405,7 +407,7 @@ class bv1_blaster_tactic : public tactic {
}
if (g->models_enabled())
g->add(mk_bv1_blaster_model_converter(m(), m_rw.cfg().m_const2bits));
g->add(mk_bv1_blaster_model_converter(m(), m_rw.cfg().m_const2bits, m_rw.cfg().m_newbits));
g->inc_depth();
result.push_back(g.get());
m_rw.cfg().cleanup();