mirror of
https://github.com/Z3Prover/z3
synced 2025-05-08 08:15:47 +00:00
fix bit2bool bug reported by Jianying Li
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
b533ba39d6
commit
0d400a5ad6
9 changed files with 49 additions and 20 deletions
|
@ -524,11 +524,21 @@ public:
|
|||
for (func_decl* v : m_vars) vars.push_back(v);
|
||||
for (expr* e : m_lits) lits.push_back(e);
|
||||
flatten_and(lits);
|
||||
qe::term_graph tg(m);
|
||||
tg.set_vars(vars, false);
|
||||
tg.add_lits(lits);
|
||||
expr_ref_vector p = tg.project();
|
||||
ctx.regular_stream() << p << "\n";
|
||||
solver_factory& sf = ctx.get_solver_factory();
|
||||
params_ref pa;
|
||||
solver_ref s = sf(m, pa, false, true, true, symbol::null);
|
||||
solver_ref se = sf(m, pa, false, true, true, symbol::null);
|
||||
s->assert_expr(lits);
|
||||
lbool r = s->check_sat();
|
||||
if (r != l_true) {
|
||||
ctx.regular_stream() << "sat check " << r << "\n";
|
||||
return;
|
||||
}
|
||||
model_ref mdl;
|
||||
s->get_model(mdl);
|
||||
qe::euf_arith_mbi_plugin plugin(s.get(), se.get());
|
||||
plugin.project(mdl, lits);
|
||||
ctx.regular_stream() << lits << "\n";
|
||||
}
|
||||
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue