3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 09:35:32 +00:00

enable unsat core extraction in nlsat_tactic

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-11-01 17:57:28 +01:00
parent 84172302a2
commit 305e080239
9 changed files with 46 additions and 20 deletions

View file

@ -105,6 +105,7 @@ public:
/* out */ model_converter_ref & mc,
/* out */ proof_converter_ref & pc,
/* out */ expr_dependency_ref & core) {
pc = 0; mc = 0; core = 0;
expr_ref_vector clauses(m);
expr2expr_map bool2dep;
ptr_vector<expr> assumptions;
@ -123,8 +124,6 @@ public:
}
in->reset();
result.push_back(in.get());
pc = 0;
core = 0;
break;
case l_false: {
in->reset();
@ -132,6 +131,7 @@ public:
expr_dependency* lcore = 0;
if (in->proofs_enabled()) {
pr = local_solver->get_proof();
pc = proof2proof_converter(m, pr);
}
if (in->unsat_core_enabled()) {
ptr_vector<expr> core;
@ -142,9 +142,7 @@ public:
}
in->assert_expr(m.mk_false(), pr, lcore);
result.push_back(in.get());
mc = 0;
pc = 0;
core = 0;
core = lcore;
break;
}
case l_undef:

View file

@ -137,7 +137,9 @@ lbool tactic2solver::check_sat_core(unsigned num_assumptions, expr * const * ass
g->assert_expr(m_assertions.get(i));
}
for (unsigned i = 0; i < num_assumptions; i++) {
g->assert_expr(assumptions[i], m.mk_asserted(assumptions[i]), m.mk_leaf(assumptions[i]));
proof_ref pr(m.mk_asserted(assumptions[i]), m);
expr_dependency_ref ans(m.mk_leaf(assumptions[i]), m);
g->assert_expr(assumptions[i], pr, ans);
}
model_ref md;