3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-09-19 16:04:49 +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

@ -1283,7 +1283,7 @@ namespace nlsat {
if (r == l_false) {
// collect used literals from m_lemma_assumptions
vector<assumption, false> deps;
m_asm.linearize(m_lemma_assumptions.get(), deps);
get_core(deps);
for (unsigned i = 0; i < deps.size(); ++i) {
literal const* lp = (literal const*)(deps[i]);
if (ptr <= lp && lp < ptr + sz) {
@ -1299,6 +1299,10 @@ namespace nlsat {
return r;
}
void get_core(vector<assumption, false>& deps) {
m_asm.linearize(m_lemma_assumptions.get(), deps);
}
void collect(literal_vector const& assumptions, clause_vector& clauses) {
unsigned n = clauses.size();
unsigned j = 0;
@ -2712,6 +2716,10 @@ namespace nlsat {
return m_imp->check(assumptions);
}
void solver::get_core(vector<assumption, false>& assumptions) {
return m_imp->get_core(assumptions);
}
void solver::reset() {
m_imp->reset();
}