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:
parent
84172302a2
commit
305e080239
9 changed files with 46 additions and 20 deletions
|
@ -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:
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue