From eac7d7576fd8d21fe4c4a9980b98b9a7ff673bd1 Mon Sep 17 00:00:00 2001
From: Nikolaj Bjorner <nbjorner@microsoft.com>
Date: Tue, 24 Jan 2023 12:29:42 -0800
Subject: [PATCH] force to_fp to disambiguate +zero and -zero, #6548, filter
 unsupported on relevancy

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---
 src/ast/fpa/fpa2bv_converter.cpp | 2 ++
 src/smt/theory_lra.cpp           | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/src/ast/fpa/fpa2bv_converter.cpp b/src/ast/fpa/fpa2bv_converter.cpp
index c456da29b..ab13e751a 100644
--- a/src/ast/fpa/fpa2bv_converter.cpp
+++ b/src/ast/fpa/fpa2bv_converter.cpp
@@ -2809,6 +2809,8 @@ void fpa2bv_converter::mk_to_fp_real(func_decl * f, sort * s, expr * rm, expr *
 
         expr * e = m.mk_eq(m_util.mk_to_real(result), x);
         m_extra_assertions.push_back(e);
+        // x = 0 -> result = 0+
+        m_extra_assertions.push_back(m.mk_implies(m.mk_eq(x, zero), m.mk_eq(result, m_util.mk_pzero(result->get_sort()))));
     }
 
     SASSERT(is_well_sorted(m, result));
diff --git a/src/smt/theory_lra.cpp b/src/smt/theory_lra.cpp
index 01282a53b..c5b897d78 100644
--- a/src/smt/theory_lra.cpp
+++ b/src/smt/theory_lra.cpp
@@ -1653,7 +1653,7 @@ public:
                 return FC_CONTINUE;
             }
             for (expr* e : m_not_handled) {
-                if (!ctx().is_relevant(e) && false)
+                if (!ctx().is_relevant(e))
                     continue;
                 st = FC_DONE;
                 switch (eval_unsupported(e)) {