mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 04:03:39 +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 {
|
bool assert_expr(expr * t, bool sign) override {
|
||||||
expr* tt;
|
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;
|
return sign;
|
||||||
|
if (m.is_true(t))
|
||||||
if (m.is_true(t) || (m.is_not(t, tt) && m.is_false(tt)))
|
|
||||||
return !sign;
|
return !sign;
|
||||||
|
|
||||||
m_scoped_substitution.push();
|
m_scoped_substitution.push();
|
||||||
if (!sign) {
|
if (!sign) {
|
||||||
update_substitution(t, nullptr);
|
update_substitution(t, nullptr);
|
||||||
}
|
}
|
||||||
else if (m.is_not(t, tt)) {
|
|
||||||
update_substitution(tt, nullptr);
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
expr_ref nt(m.mk_not(t), m);
|
expr_ref nt(m.mk_not(t), m);
|
||||||
update_substitution(nt, nullptr);
|
update_substitution(nt, nullptr);
|
||||||
|
|
Loading…
Reference in a new issue