mirror of
https://github.com/Z3Prover/z3
synced 2025-06-27 08:28:44 +00:00
update for equivalences
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
6dbfdf3e9c
commit
b2b2c636f8
5 changed files with 68 additions and 8 deletions
|
@ -503,6 +503,7 @@ namespace sat {
|
|||
// arcs are added in the opposite direction of implications.
|
||||
// So for implications l => u we add arcs u -> l
|
||||
void lookahead::init_arcs(literal l) {
|
||||
literal_vector lits;
|
||||
literal_vector const& succ = m_binary[l.index()];
|
||||
for (unsigned i = 0; i < succ.size(); ++i) {
|
||||
literal u = succ[i];
|
||||
|
@ -512,6 +513,16 @@ namespace sat {
|
|||
add_arc( u, l);
|
||||
}
|
||||
}
|
||||
for (auto w : m_watches[l.index()]) {
|
||||
if (w.is_ext_constraint() && m_s.m_ext->is_extended_binary(w.get_ext_constraint_idx(), lits)) {
|
||||
for (literal u : lits) {
|
||||
if (u.index() > l.index() && is_stamped(u)) {
|
||||
add_arc(~l, ~u);
|
||||
add_arc( u, l);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void lookahead::get_scc(literal v) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue