From a4f4975092030837f3e6bb2a8df162771dc6494c Mon Sep 17 00:00:00 2001
From: Nikolaj Bjorner <nbjorner@microsoft.com>
Date: Sun, 11 Jul 2021 21:08:53 +0200
Subject: [PATCH] #5336

---
 src/sat/smt/q_ematch.cpp | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/sat/smt/q_ematch.cpp b/src/sat/smt/q_ematch.cpp
index da7e670c8..e997476ed 100644
--- a/src/sat/smt/q_ematch.cpp
+++ b/src/sat/smt/q_ematch.cpp
@@ -401,7 +401,12 @@ namespace q {
         for (expr* arg : ors) {
             bool sign = m.is_not(arg, arg);
             expr* l, *r;
-            if (!m.is_eq(arg, l, r) || is_ground(arg)) {
+            if (m.is_distinct(arg) && to_app(arg)->get_num_args() == 2) {
+                l = to_app(arg)->get_arg(0);
+                r = to_app(arg)->get_arg(1);
+                sign = !sign;
+            }
+            else if (!m.is_eq(arg, l, r) || is_ground(arg)) {
                 l = arg;
                 r = sign ? m.mk_false() : m.mk_true();
                 sign = false;