mirror of
https://github.com/Z3Prover/z3
synced 2025-06-22 05:43:39 +00:00
bit-blaster
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
a81a8de975
commit
a914142c7c
2 changed files with 4 additions and 9 deletions
|
@ -67,7 +67,6 @@ public:
|
||||||
|
|
||||||
void operator()(goal_ref const & g) {
|
void operator()(goal_ref const & g) {
|
||||||
SASSERT(g->is_well_sorted());
|
SASSERT(g->is_well_sorted());
|
||||||
tactic_report report("aig", *g);
|
|
||||||
|
|
||||||
mk_aig_manager mk(*this, g->m());
|
mk_aig_manager mk(*this, g->m());
|
||||||
if (m_aig_per_assertion) {
|
if (m_aig_per_assertion) {
|
||||||
|
@ -92,8 +91,10 @@ public:
|
||||||
|
|
||||||
void operator()(goal_ref const & g, goal_ref_buffer & result) override {
|
void operator()(goal_ref const & g, goal_ref_buffer & result) override {
|
||||||
fail_if_proof_generation("aig", g);
|
fail_if_proof_generation("aig", g);
|
||||||
|
tactic_report report("aig", *g);
|
||||||
operator()(g);
|
operator()(g);
|
||||||
g->inc_depth();
|
g->inc_depth();
|
||||||
|
TRACE("aig", g->display(tout););
|
||||||
result.push_back(g.get());
|
result.push_back(g.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -123,10 +123,7 @@ struct bit_blaster_model_converter : public model_converter {
|
||||||
SASSERT(is_uninterp_const(bit));
|
SASSERT(is_uninterp_const(bit));
|
||||||
func_decl * bit_decl = to_app(bit)->get_decl();
|
func_decl * bit_decl = to_app(bit)->get_decl();
|
||||||
expr * bit_val = old_model->get_const_interp(bit_decl);
|
expr * bit_val = old_model->get_const_interp(bit_decl);
|
||||||
if (bit_val == nullptr) {
|
if (bit_val != nullptr && m().is_true(bit_val))
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
if (m().is_true(bit_val))
|
|
||||||
val++;
|
val++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,10 +138,7 @@ struct bit_blaster_model_converter : public model_converter {
|
||||||
func_decl * bit_decl = to_app(bit)->get_decl();
|
func_decl * bit_decl = to_app(bit)->get_decl();
|
||||||
expr * bit_val = old_model->get_const_interp(bit_decl);
|
expr * bit_val = old_model->get_const_interp(bit_decl);
|
||||||
// remark: if old_model does not assign bit_val, then assume it is false.
|
// remark: if old_model does not assign bit_val, then assume it is false.
|
||||||
if (bit_val == nullptr) {
|
if (bit_val != nullptr && !util.is_zero(bit_val))
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
if (!util.is_zero(bit_val))
|
|
||||||
val++;
|
val++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue