3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-18 03:46:17 +00:00

use propagation filter

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-10-20 15:59:10 -07:00
parent 423e084cda
commit e5504247e9
5 changed files with 217 additions and 29 deletions

View file

@ -483,7 +483,7 @@ namespace smt {
}
void set_context(context * ctx) {
SASSERT(m_context==0);
SASSERT(m_context== nullptr);
m_context = ctx;
}
@ -1065,12 +1065,14 @@ namespace smt {
void mk_inverse(node * n) {
SASSERT(n->is_root());
instantiation_set * s = n->get_instantiation_set();
instantiation_set * s = n->get_instantiation_set();
s->mk_inverse(*this);
}
void mk_inverses() {
for (node * n : m_root_nodes) {
unsigned offset = m_context->get_random_value();
for (unsigned i = m_root_nodes.size(); i-- > 0; ) {
node* n = m_root_nodes[(i + offset) % m_root_nodes.size()];
SASSERT(n->is_root());
mk_inverse(n);
}
@ -1838,7 +1840,7 @@ namespace smt {
for (qinfo* qi : m_qinfo_vect)
qi->populate_inst_sets(m_flat_q, m_the_one, *m_uvar_inst_sets, ctx);
for (instantiation_set * s : *m_uvar_inst_sets) {
if (s != nullptr)
if (s != nullptr)
s->mk_inverse(ev);
}
}