mirror of
https://github.com/Z3Prover/z3
synced 2025-08-11 05:30:51 +00:00
add missing caching of PB/cardinality constraints, increase limit for compiling cardinalities to circuits
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
4695ca16c8
commit
8fb7fb9f98
7 changed files with 530 additions and 77 deletions
|
@ -60,7 +60,6 @@ class inc_sat_solver : public solver {
|
|||
sat::literal_vector m_asms;
|
||||
goal_ref_buffer m_subgoals;
|
||||
proof_converter_ref m_pc;
|
||||
model_converter_ref m_mc;
|
||||
mutable model_converter_ref m_mc0;
|
||||
mutable obj_hashtable<func_decl> m_inserted_const2bits;
|
||||
mutable ref<sat2goal::mc> m_sat_mc;
|
||||
|
@ -120,7 +119,6 @@ public:
|
|||
for (unsigned a : m_asms_lim) result->m_asms_lim.push_back(a);
|
||||
for (unsigned h : m_fmls_head_lim) result->m_fmls_head_lim.push_back(h);
|
||||
for (expr* f : m_internalized_fmls) result->m_internalized_fmls.push_back(tr(f));
|
||||
if (m_mc) result->m_mc = m_mc->translate(tr);
|
||||
if (m_mc0) result->m_mc0 = m_mc0->translate(tr);
|
||||
if (m_sat_mc) result->m_sat_mc = dynamic_cast<sat2goal::mc*>(m_sat_mc->translate(tr));
|
||||
// copy m_bb_rewriter?
|
||||
|
@ -189,6 +187,7 @@ public:
|
|||
|
||||
init_reason_unknown();
|
||||
try {
|
||||
// IF_VERBOSE(0, m_solver.display(verbose_stream()));
|
||||
r = m_solver.check(m_asms.size(), m_asms.c_ptr());
|
||||
}
|
||||
catch (z3_exception& ex) {
|
||||
|
@ -526,7 +525,6 @@ private:
|
|||
|
||||
|
||||
lbool internalize_goal(goal_ref& g, dep2asm_t& dep2asm, bool is_lemma) {
|
||||
m_mc.reset();
|
||||
m_pc.reset();
|
||||
m_subgoals.reset();
|
||||
init_preprocess();
|
||||
|
@ -553,7 +551,7 @@ private:
|
|||
g = m_subgoals[0];
|
||||
expr_ref_vector atoms(m);
|
||||
m_pc = g->pc();
|
||||
m_mc = g->mc();
|
||||
m_mc0 = concat(m_mc0.get(), g->mc());
|
||||
TRACE("sat", g->display_with_dependencies(tout););
|
||||
|
||||
// ensure that if goal is already internalized, then import mc from m_solver.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue