mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 01:25:31 +00:00
fix #6813 - proofs terms are fragile with respect to simplificiation of not(not(e)). It would be better if proof terms didn't have to track this level of detail, but the legacy proof format assumes strictly checkable proofs. A patch is to fixup terms within the mk_transitivity constructor
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
3849f665d6
commit
8a913981f6
4 changed files with 43 additions and 23 deletions
|
@ -176,17 +176,17 @@ namespace pb {
|
|||
return false;
|
||||
}
|
||||
else if (j == bound) {
|
||||
for (unsigned i = 0; i < bound; ++i) {
|
||||
s.assign(c, c[i]);
|
||||
}
|
||||
for (unsigned i = 0; i < bound; ++i)
|
||||
s.assign(c, c[i]);
|
||||
return false;
|
||||
}
|
||||
else {
|
||||
if (c.is_watched()) return true;
|
||||
if (c.is_watched())
|
||||
return true;
|
||||
clear_watch(s);
|
||||
for (unsigned i = 0; i <= bound; ++i) {
|
||||
c.watch_literal(s, c[i]);
|
||||
}
|
||||
for (unsigned i = 0; i <= bound; ++i)
|
||||
if (!c.is_watched(s, c[i]))
|
||||
c.watch_literal(s, c[i]);
|
||||
c.set_watch();
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue