From 1ac365ca7429421b4318576d18ccd6a8c5aaa20a Mon Sep 17 00:00:00 2001 From: Nuno Lopes <nlopes@microsoft.com> Date: Wed, 19 Feb 2020 13:02:45 +0000 Subject: [PATCH] fix #3040: soudness bug in dom-simplify --- src/tactic/core/dom_simplify_tactic.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/tactic/core/dom_simplify_tactic.cpp b/src/tactic/core/dom_simplify_tactic.cpp index 5b602148c..cdf910bc3 100644 --- a/src/tactic/core/dom_simplify_tactic.cpp +++ b/src/tactic/core/dom_simplify_tactic.cpp @@ -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);