mirror of
https://github.com/Z3Prover/z3
synced 2025-08-18 01:02:15 +00:00
bug fixes
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
bb4888ce31
commit
4c1379e8c9
22 changed files with 238 additions and 580 deletions
|
@ -169,6 +169,7 @@ namespace sat {
|
|||
unsigned idx = 0;
|
||||
unsigned elim = 0;
|
||||
for (watch_list & wlist : s.m_watches) {
|
||||
if (s.inconsistent()) break;
|
||||
literal u = to_literal(idx++);
|
||||
watch_list::iterator it = wlist.begin();
|
||||
watch_list::iterator itprev = it;
|
||||
|
@ -179,6 +180,10 @@ namespace sat {
|
|||
literal v = w.get_literal();
|
||||
if (reaches(u, v) && u != get_parent(v)) {
|
||||
++elim;
|
||||
if (find_binary_watch(wlist, ~v)) {
|
||||
IF_VERBOSE(10, verbose_stream() << "binary: " << ~u << "\n");
|
||||
s.assign(~u, justification());
|
||||
}
|
||||
// could turn non-learned non-binary tautology into learned binary.
|
||||
s.get_wlist(~v).erase(watched(~u, w.is_learned()));
|
||||
continue;
|
||||
|
@ -189,6 +194,7 @@ namespace sat {
|
|||
}
|
||||
wlist.set_end(itprev);
|
||||
}
|
||||
s.propagate(false);
|
||||
return elim;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue