3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-11 05:30:51 +00:00

implementing model updates

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-10-30 16:11:51 -05:00
parent 92b5301b7f
commit 3de8c193ea
63 changed files with 482 additions and 294 deletions

View file

@ -114,6 +114,7 @@ public:
if (m_mc0.get()) result->m_mc0 = m_mc0->translate(tr);
result->m_internalized = m_internalized;
result->m_internalized_converted = m_internalized_converted;
if (mc0()) result->set_model_converter(mc0()->translate(tr));
return result;
}
@ -299,7 +300,7 @@ public:
r.reset();
r.append(m_core.size(), m_core.c_ptr());
}
virtual void get_model(model_ref & mdl) {
virtual void get_model_core(model_ref & mdl) {
if (!m_model.get()) {
extract_model();
}
@ -442,6 +443,18 @@ public:
return m_asmsf[idx];
}
virtual model_converter_ref get_model_converter() const {
if (m_internalized && m_internalized_converted) {
NOT_IMPLEMENTED_YET();
model_converter_ref mc = concat(m_mc0.get(), mk_bit_blaster_model_converter(m, m_bb_rewriter->const2bits()));
mc = concat(solver::get_model_converter().get(), mc.get());
return mc;
}
else {
return solver::get_model_converter();
}
}
void convert_internalized() {
if (!m_internalized) return;
sat2goal s2g;