3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

fix #2974 by using same code path as qe. It now diverges, but this is due to the use of an uninterpreted predicate which the use of mbp doesn't handle

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-02-12 13:40:23 -10:00
parent 85fd139c7f
commit 1ce0d7512a
2 changed files with 29 additions and 30 deletions

View file

@ -43,11 +43,11 @@ namespace sat {
if (m_aig[id].empty()) {
continue;
}
IF_VERBOSE(10, m_cuts[id].display(verbose_stream() << "augment " << id << "\nbefore\n"));
IF_VERBOSE(20, m_cuts[id].display(verbose_stream() << "augment " << id << "\nbefore\n"));
for (node const& n : m_aig[id]) {
augment(id, n);
}
IF_VERBOSE(10, m_cuts[id].display(verbose_stream() << "after\n"));
IF_VERBOSE(20, m_cuts[id].display(verbose_stream() << "after\n"));
}
}
@ -432,6 +432,9 @@ namespace sat {
if (eq(n, n2)) return false;
else if (n.size() < n2.size()) num_gt++;
else if (n.size() == n2.size()) num_eq++;
// avoid inserting LUTs that are likely to collide
if (n.is_lut() && !n2.is_lut() && n.size() == n2.size())
return false;
}
if (m_aig[v].size() < m_config.m_max_aux) {
on_node_add(v, n);