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:
parent
85fd139c7f
commit
1ce0d7512a
2 changed files with 29 additions and 30 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue