mirror of
https://github.com/Z3Prover/z3
synced 2025-04-06 17:44:08 +00:00
fix #3040: soudness bug in dom-simplify
This commit is contained in:
parent
006caea5ba
commit
1ac365ca74
|
@ -524,19 +524,17 @@ public:
|
|||
|
||||
bool assert_expr(expr * t, bool sign) override {
|
||||
expr* tt;
|
||||
if (m.is_false(t) || (m.is_not(t, tt) && m.is_true(tt)))
|
||||
if (m.is_not(t, tt))
|
||||
return assert_expr(tt, !sign);
|
||||
if (m.is_false(t))
|
||||
return sign;
|
||||
|
||||
if (m.is_true(t) || (m.is_not(t, tt) && m.is_false(tt)))
|
||||
if (m.is_true(t))
|
||||
return !sign;
|
||||
|
||||
m_scoped_substitution.push();
|
||||
if (!sign) {
|
||||
update_substitution(t, nullptr);
|
||||
}
|
||||
else if (m.is_not(t, tt)) {
|
||||
update_substitution(tt, nullptr);
|
||||
}
|
||||
else {
|
||||
expr_ref nt(m.mk_not(t), m);
|
||||
update_substitution(nt, nullptr);
|
||||
|
|
Loading…
Reference in a new issue