From 64af8981ba40262b369fbb55ab99da7ea4e88b20 Mon Sep 17 00:00:00 2001 From: Nikolaj Bjorner Date: Sun, 29 Nov 2020 19:43:37 -0800 Subject: [PATCH] fix #4834, regression after delay-propagating disequality axioms Signed-off-by: Nikolaj Bjorner --- src/smt/theory_bv.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/smt/theory_bv.cpp b/src/smt/theory_bv.cpp index 7157e2d13ec..730ffa9329d 100644 --- a/src/smt/theory_bv.cpp +++ b/src/smt/theory_bv.cpp @@ -1483,8 +1483,10 @@ namespace smt { for (unsigned idx = 0; idx < sz; idx++) { literal bit1 = m_bits[v1][idx]; literal bit2 = m_bits[v2][idx]; - CTRACE("bv_bug", bit1 == ~bit2, display_var(tout, v1); display_var(tout, v2); tout << "idx: " << idx << "\n";); - SASSERT(bit1 != ~bit2); + if (bit1 == ~bit2) { + add_new_diseq_axiom(v1, v2, idx); + return; + } lbool val1 = ctx.get_assignment(bit1); lbool val2 = ctx.get_assignment(bit2); TRACE("bv", tout << "merge v" << v1 << " " << bit1 << ":= " << val1 << " " << bit2 << ":= " << val2 << "\n";);