From 87396bd648f957c4f05a9692d2e35764b1e352e3 Mon Sep 17 00:00:00 2001
From: Nikolaj Bjorner <nbjorner@microsoft.com>
Date: Sat, 5 Sep 2015 11:03:35 -0700
Subject: [PATCH] fix issue #212 - don't use SAT solver core when division
 semantics is disabled

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
---
 src/tactic/portfolio/smt_strategic_solver.cpp | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/tactic/portfolio/smt_strategic_solver.cpp b/src/tactic/portfolio/smt_strategic_solver.cpp
index b128b9b1f..f9334bcb2 100644
--- a/src/tactic/portfolio/smt_strategic_solver.cpp
+++ b/src/tactic/portfolio/smt_strategic_solver.cpp
@@ -38,6 +38,8 @@ Notes:
 #include"horn_tactic.h"
 #include"smt_solver.h"
 #include"inc_sat_solver.h"
+#include"bv_rewriter.h"
+
 
 tactic * mk_tactic_for_logic(ast_manager & m, params_ref const & p, symbol const & logic) {
     if (logic=="QF_UF")
@@ -93,7 +95,8 @@ tactic * mk_tactic_for_logic(ast_manager & m, params_ref const & p, symbol const
 }
 
 static solver* mk_solver_for_logic(ast_manager & m, params_ref const & p, symbol const& logic) {
-    if (logic == "QF_BV") 
+    bv_rewriter rw(m);
+    if (logic == "QF_BV" && rw.hi_div0()) 
         return mk_inc_sat_solver(m, p);
     return mk_smt_solver(m, p, logic);
 }