diff --git a/Src/COLIBRI/check_ineq.pl b/Src/COLIBRI/check_ineq.pl
index ed15c39c54099b633116f554a0c54a655c9200f2..dfb4d60c5f9260c7c28b37b26e6a668bdccfc33c 100644
--- a/Src/COLIBRI/check_ineq.pl
+++ b/Src/COLIBRI/check_ineq.pl
@@ -398,7 +398,7 @@ exists_diff_Rel(A,B) :-
             get_suspension_data(S,goal,Goal),
             (Goal = diff_real(_,X,Y);
              Goal = gt_real(_,X,Y);
-             fp_eq_reif(_,X,Y,Z),
+             Goal = fp_eq_reif(_,X,Y,Z),
              Z == 0)),
         ((X,Y) == (A,B); (X,Y) == (B,A))).
 
diff --git a/Src/COLIBRI/check_lin_expr.pl b/Src/COLIBRI/check_lin_expr.pl
index 54b3d46c15601264201dc0312a42154e8ec9bc14..cab1fe10812e0ac65593db19d37932f37f8fed07 100755
--- a/Src/COLIBRI/check_lin_expr.pl
+++ b/Src/COLIBRI/check_lin_expr.pl
@@ -18,7 +18,7 @@ check_exists_lin_expr_giving_diff_args(Type,A,B,Stop) :-
     !,
     (block(col_timeout(try_check_exists_lin_expr_giving_diff_args(Type,A,B,Stop),
              0.5,
-             %1.0Inf,
+%             1.0Inf,
              true),
           Tag,
           (exit_block(Tag),
diff --git a/Src/COLIBRI/col_solve.pl b/Src/COLIBRI/col_solve.pl
index aad4ca1ad5a8f28ab42350a5939636d8c58168b5..c048f958235061ce308abb504c595febe3d44e5e 100644
--- a/Src/COLIBRI/col_solve.pl
+++ b/Src/COLIBRI/col_solve.pl
@@ -1362,17 +1362,17 @@ smt_unit_test(TO,CI) :-
 %-----------------------------------------------------------------------    
     %StrDir = "./QF_AUFBVFP/20210301-Alive2/",% 1/1
 %------------------------------------------------------------------------
-    %StrDir = "./QF_ABVFPLRA/", % 0/74
-    %StrDir = "./QF_ABVFPLRA/20190429-UltimateAutomizerSvcomp2019/",% 0/41
-    %StrDir = "./QF_ABVFPLRA/20170501-Heizmann-UltimateAutomizer/",% 0/33
+    %StrDir = "./QF_ABVFPLRA/", % 1?(0)/74
+    %StrDir = "./QF_ABVFPLRA/20190429-UltimateAutomizerSvcomp2019/",% 1?(0)/41
+    %StrDir = "./QF_ABVFPLRA/20170501-Heizmann-UltimateAutomizer/",% 1??(0)/33
 %------------------------------------------------------------------------
     %StrDir = "./QF_ABVFP/",
-    %StrDir = "./QF_ABVFP/20170428-Liew-KLEE/", % 122/18033 TO (1 I,
+    %StrDir = "./QF_ABVFP/20170428-Liew-KLEE/", % 113/18033 TO (1 I,
     % 177 u) (69 sans simplex) (cvc4 76)
-    %StrDir = "./QF_ABVFP/20170501-Heizmann-UltimateAutomizer/", % 0/96 TO
+    %StrDir = "./QF_ABVFP/20170501-Heizmann-UltimateAutomizer/", % 1/96 TO
 %------------------------------------------------------------------------
     %StrDir = "./QF_BVFP/",
-    %StrDir = "./QF_BVFP/20170428-Liew-KLEE/", % 38(40)/17156 (89 u)
+    %StrDir = "./QF_BVFP/20170428-Liew-KLEE/", % 40/17156 (89 u)
     %StrDir = "./QF_BVFP/20170501-Heizmann-UltimateAutomizer/", % 0/4 TO
     %StrDir = "./QF_BVFP/ramalho/", % 0/32 TO
     %StrDir = "./QF_BVFP/schanda/spark/", % 1/8 TO
@@ -1385,16 +1385,16 @@ smt_unit_test(TO,CI) :-
     %StrDir = "./QF_FPLRA/schanda/spark/",% 0/2 TO
     %StrDir = "./QF_FPLRA/2019-Gudemann/",% 2/13 (3/13 en 2s)
 %------------------------------------------------------------------------
-    StrDir = "./QF_BVFPLRA/",
+    %StrDir = "./QF_BVFPLRA/",
     %StrDir = "./QF_BVFPLRA/20170501-Heizmann-UltimateAutomizer/",% 0/15 TO
-    %StrDir = "./QF_BVFPLRA/20190429-UltimateAutomizerSvcomp2019/",% 10/152 (11 u) (12/152 en 2s)
+    %StrDir = "./QF_BVFPLRA/20190429-UltimateAutomizerSvcomp2019/",% 10(9)/152 (11 u) (12/152 en 2s)
     %StrDir = "./QF_BVFPLRA/2019-Gudemann/",% 0/1 TO
 %------------------------------------------------------------------------
     %StrDir = "./QF_FP/20170501-Heizmann-UltimateAutomizer/", % 0/2 TO
     %StrDir = "./QF_FP/20190429-UltimateAutomizerSvcomp2019/", % 0/24
     %StrDir = "./QF_FP/20210211-Vector/", % 0/91
     %StrDir = "./QF_FP/ramalho/",% 0/38 T0 (5/38 en 2s)
-    %StrDir = "./QF_FP/griggio/", % 45 TO en 24s (cvc4 90 en 60s) (65/214 en 2s)
+    StrDir = "./QF_FP/griggio/", % 44 TO en 24s (cvc4 90 en 60s) (65/214 en 2s)
     %StrDir = "./QF_FP/schanda/spark/",% 5/46 TO (7 en 2s)
     %StrDir = "./QF_FP/wintersteiger/", % 0/39994
 %-----------------------------------------------------------------------    
diff --git a/Src/COLIBRI/colibri.pl b/Src/COLIBRI/colibri.pl
index 97918421e1d10824395843bf1b42d8eb3f8b356a..141e8a09488bbb8a2ca5d2c87cba6f32043c6761 100755
--- a/Src/COLIBRI/colibri.pl
+++ b/Src/COLIBRI/colibri.pl
@@ -279,6 +279,8 @@ init_colibri :-
                arith,
                mod_arith,
                realarith,
+               % NEW
+               trigo,
                dump_constraints,
                smt_import,
                simplex_ocaml,
diff --git a/Src/COLIBRI/mod.pl b/Src/COLIBRI/mod.pl
index c8cac0d9366216ea32086ff52c1fa87db4227f5d..fdb8a9f17952300db010236836c12ff119a2d33a 100755
--- a/Src/COLIBRI/mod.pl
+++ b/Src/COLIBRI/mod.pl
@@ -161,6 +161,7 @@ print_mod(_{mod:congr(R,M)}, Attribute) :-
 
 exists_congr(Num,C,Mod) :-
     number(Num),
+    abs(Num) =\= 1.0Inf,
     once (integer(Num);
           is_float_int_number(Num)),
     !,
diff --git a/Src/COLIBRI/mreal.pl b/Src/COLIBRI/mreal.pl
index ce147d3bb5f7f44aed2426c8359e4af8d440ebc1..b88a9085acdafc9b05450eea0d82ef611b30f2cb 100755
--- a/Src/COLIBRI/mreal.pl
+++ b/Src/COLIBRI/mreal.pl
@@ -780,7 +780,8 @@ set_var_domain(V{mreal:OldDom},Type,Inter,S,Wake) ?- !,
         (NInterval == OldInter ->
             true
         ;   ((NInterval = [Val],
-              float(Val)) ->
+              float(Val))
+            ->
                 (Type == real ->
                     abs(Val) =\= 1.0Inf
                 ;   true),
@@ -788,7 +789,8 @@ set_var_domain(V{mreal:OldDom},Type,Inter,S,Wake) ?- !,
             ;   arg(3,OldDom,OS),
                 setarg(2,OldDom,NInterval),
                 setarg(3,OldDom,NS),
-                ((get_sign(V,SV), SV \== OSV; % on devient signe
+                ((Type == real;
+                  get_sign(V,SV), SV \== OSV; % on devient signe
                   is_float_int_number(V);
                   is_not_float_int_number(V);
                   check_threshold(NInterval,NS,OldInter,OS))
@@ -973,7 +975,8 @@ dvar_set(Var{mreal:dom(Type,Inter0,S0)},dom(Type,Inter,S)) ?- !,
     reduce_float_int(Var,Type,Inter,S,Inter1,S1),
     Inter1 \== [],
     ((Inter1 = [Val],
-      float(Val)) ->
+      float(Val))
+    ->
         (Type == real ->
             abs(Val) =\= 1.0Inf
         ;   true),
diff --git a/Src/COLIBRI/ndelta.pl b/Src/COLIBRI/ndelta.pl
index b9c190bb684a9d1ac1f06db9815832a2b93b5088..8b792c08595f6611b5c7598bc7c38f74c3822590 100755
--- a/Src/COLIBRI/ndelta.pl
+++ b/Src/COLIBRI/ndelta.pl
@@ -351,7 +351,7 @@ check_pu(T1,T2) :-
           call(getval(from_pu,0))@eclipse)
         ->
             call(spy_here)@eclipse,
-            writeln(output,pb_unify_from_pu)
+            writeln(output,pb_unify_from_pu(T1,T2))
         ;   call(setval(from_pu,0))@eclipse)
     ;   true).
 
@@ -1307,6 +1307,13 @@ launch_delta_bis1(X,Y,S,C) :-
 % on ignore les distances nulles (pbs sinon)
 %launch_delta_bis2(X,Y,S,0,CheckCycle,LoopOnly,Abort) ?- !.
 launch_delta_bis2(X,Y,S0,C,CheckCycle,_LoopOnly,Abort) :-
+    ((C = LC..HC,
+      HC < LC)
+    ->
+        call(spy_here)@eclipse,
+        writeln(output,pb_launch_delta_bis2(X,Y,S0,C)),
+        fail
+    ;   true),
     once (getval(use_delta,1)@eclipse ->
              true
          ;   (once (get_type(X,T);
@@ -1340,7 +1347,7 @@ launch_delta_bis2(X,Y,S0,C,CheckCycle,_LoopOnly,Abort) :-
                     % On a reduit un arc d'une ou plusieurs boucles
                     % on doit verifier chaque boucle connexe
                     CheckCycle = 1
-                    % LoopOnly = 1
+                                 % LoopOnly = 1
                 ;   true)))
     ;   % On n'avait pas de delta entre X et Y
         (same_CC(X,Y) ->
diff --git a/Src/COLIBRI/new_parser_builtins.pl b/Src/COLIBRI/new_parser_builtins.pl
index 7e83f16d8fff0349559498416f0698e84329ab5d..08d60ceac976095c628dedb7c801113440af616c 100644
--- a/Src/COLIBRI/new_parser_builtins.pl
+++ b/Src/COLIBRI/new_parser_builtins.pl
@@ -86,15 +86,36 @@ add_new_parser_builtins :-
                                          [real,real],real)]),
     p_simplex_ocaml_add_builtins([builtin("colibri_min_fp",[],[],[m,e],[],
                                          [fp(m,e),fp(m,e)],fp(m,e))]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_sqrt",[],[],[],[],
+                                         [real],real)]),
     p_simplex_ocaml_add_builtins([builtin("colibri_exp_real",[],[],[],[],
                                          [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_exp",[],[],[],[],
+                                         [real],real)]),
     p_simplex_ocaml_add_builtins([builtin("colibri_exp_fp",[],[],[m,e],[],
                                          [fp(m,e)],fp(m,e))]),
     p_simplex_ocaml_add_builtins([builtin("colibri_ln_real",[],[],[],[],
                                          [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_ln",[],[],[],[],
+                                         [real],real)]),
     p_simplex_ocaml_add_builtins([builtin("colibri_ln_fp",[],[],[m,e],[],
                                          [fp(m,e)],fp(m,e))]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_sin",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_cos",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_tan",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_asin",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_acos",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_atan",[],[],[],[],
+                                         [real],real)]),
+    p_simplex_ocaml_add_builtins([builtin("colibri_pi",[],[],[],[],
+                                         [],real)]),
 % pour inities
+    p_simplex_ocaml_add_builtins([builtin("colibri_range",[],[],[],[],[real,real,real],real)]),
     p_simplex_ocaml_add_builtins([builtin("colibri_setIntegral",[],[],[],[],
                                          [real],real)]),
 % Utilisés pour définition semantique et aussi par AdaCore
diff --git a/Src/COLIBRI/rbox.pl b/Src/COLIBRI/rbox.pl
index 6179ad97f288a36a81faf11e26804470aabca12b..264ea9c9ed5dbc6db89bdeb3121364b97194fe92 100755
--- a/Src/COLIBRI/rbox.pl
+++ b/Src/COLIBRI/rbox.pl
@@ -254,19 +254,26 @@ print_rbox(Var{rbox:rf(RF,NaN)}, Attribute) :-
 %----------------------------------------------------------------
 % Les lanceurs/observateurs de status
 %----------------------------------------------------------------
+:- import is_mpi_var/4 from colibri.
 launch_box(Var) :-
     var(Var),
+    !,
     get_priority(Prio),
     set_priority(1),
     ((mreal:get_intervals(Var,[L..H]),
-      get_next_float(float_double,L,NL),
-      NL == H)
+      get_next_float(real,L,NL),
+      NL =:= H) % attention aux zeros
     ->
         % on a bien une boite
-        launch_box_prio(Var,_)
+        launch_box_prio(Var,_),
+        (is_mpi_var(Var,PV,_,_) ->
+            protected_unify(Var,PV)
+        ;   true)
     ;   true),
     set_priority(Prio),
     wake_if_other_scheduled(Prio).
+launch_box(_Var).
+
 launch_box_rat(Var,Rat) :-
     % Attention Var et Rat peuvent etre instancies
     get_priority(Prio),
@@ -283,6 +290,7 @@ launch_box_rat(Var,Rat) :-
    from colibri.
 
 %% Variable deja attribuee
+:- export launch_box_prio/2.
 launch_box_prio(Var{rbox:rf(RF,NaN)},Rat) ?- !,
     NaN == 0,
     RF \== float,
diff --git a/Src/COLIBRI/realarith.pl b/Src/COLIBRI/realarith.pl
index bb54cd527bd1c5425e8573db81b75c0216830a57..a3833f9aa9b980be1f0aa4ac11b5885768e5f880 100644
--- a/Src/COLIBRI/realarith.pl
+++ b/Src/COLIBRI/realarith.pl
@@ -1,7 +1,6 @@
 %% Par defaut on utilise les simplifications
 :- setval(real_simp,1)@eclipse.
 
-
 %% ARITHMETIQUE RELLE ET FLOTTANTE SELON LA
 %% VARIABLE GLOBALLE "float_eval" (real ou float_simple ou float_double )
 %% PMO pour l instant seule real et float_double sont implantees mais le materiel
@@ -1751,8 +1750,6 @@ real_from_rat(Rat,R) :-
             protected_unify(R,LR)
         ;   Inter = [LR..HR],
             real_vars(real,R),
-            get_reif_var_depth_from_labchoice(DD),
-            insert_dep_inst(inst_cstr(DD,R)),
             mreal:set_typed_intervals(R,real,Inter),
             add_real_cst(Rat,R),
             launch_box_rat(R,Rat))).
@@ -3399,9 +3396,9 @@ is_op_real(Type,A,OpA) :-
     get_saved_cstr_suspensions(LS),
     member((_,op_real1(Type,X,Y)),LS),
     (A == X ->
-        OpA == Y
+        protected_unify(OpA,Y)
     ;   A == Y,
-        OpA == X).
+        protected_unify(OpA,X)).
 
 
 check_2box(real,L) ?- !,
@@ -3686,83 +3683,85 @@ forbid_OpInf(Type,V) :-
 
 forbid_Inf(real,V) :- !.
 forbid_Inf(Type,V) :-
-	(float(V) ->
-		V \== 1.0Inf
-	;	get_previous_float(Type,1.0Inf,Max),
-		mreal:dvar_remove_greater(V,Max)).
+    (float(V) ->
+        V \== 1.0Inf
+    ;   get_previous_float(Type,1.0Inf,Max),
+        mreal:dvar_remove_greater(V,Max)).
 
 
 %%greatest_interval_not_absorbing(_,_,B,0.0) :- !.
 greatest_interval_not_absorbing(add,Type,B,Inter) :-
-	greatest_interval_not_absorbing(Type,B,Inter).
+    greatest_interval_not_absorbing(Type,B,Inter).
 greatest_interval_not_absorbing(minus,Type,B,Inter) :-
-	(float(B) ->
-		norm_zero_op(real,B,OpB),
-		greatest_interval_not_absorbing(Type,OpB,Inter)
-	;	mreal:get_intervals(B,IB),
-		get_float_int_status(B,FIB),%%PMO
-		split_neg_pos_real(Type,FIB,IB,NegB,PosB,_),
-		(last(NegB,NB) ->
-			min_max_inter(NB,_,OpMinPos),
-			MinPos is -OpMinPos
-		;	true),
-		(PosB = [PB|_] ->
-			min_max_inter(PB,OpMaxNeg,_),
-			MaxNeg is -OpMaxNeg
-		;	true),
-		greatest_interval_not_absorbing_interval(Type,MaxNeg,MinPos,Inter)).
+    (float(B) ->
+        norm_zero_op(real,B,OpB),
+        greatest_interval_not_absorbing(Type,OpB,Inter)
+    ;   mreal:get_intervals(B,IB),
+        get_float_int_status(B,FIB),%%PMO
+        split_neg_pos_real(Type,FIB,IB,NegB,PosB,_),
+        (last(NegB,NB) ->
+            min_max_inter(NB,_,OpMinPos),
+            MinPos is -OpMinPos
+        ;   true),
+        (PosB = [PB|_] ->
+            min_max_inter(PB,OpMaxNeg,_),
+            MaxNeg is -OpMaxNeg
+        ;   true),
+        greatest_interval_not_absorbing_interval(Type,MaxNeg,MinPos,Inter)).
 
 
 greatest_interval_not_absorbing(Type,B,Low..High) :-
-	%% B <> 0.0
-	float(B),!,
-	greatest_interval_not_absorbing_val(Type,B,Low,High).
+    % B <> 0.0
+    float(B),!,
+    greatest_interval_not_absorbing_val(Type,B,Low,High).
 greatest_interval_not_absorbing(Type,B,Low..High) :-
-	mreal:get_intervals(B,IB),
-	get_float_int_status(B,FIB),%%PMO
-	split_neg_pos_real(Type,FIB,IB,NegB,PosB,_),
-	(last(NegB,NB) ->
-		min_max_inter(NB,_,MaxNeg)
-	;	true),
-	(PosB = [PB|_] ->
-		min_max_inter(PB,MinPos,_)
-	;	true),
-	greatest_interval_not_absorbing_interval(Type,MaxNeg,MinPos,Low..High).
+    mreal:get_intervals(B,IB),
+    get_float_int_status(B,FIB),%%PMO
+    split_neg_pos_real(Type,FIB,IB,NegB,PosB,_),
+    (last(NegB,NB) ->
+        min_max_inter(NB,_,MaxNeg)
+    ;   (Type == real ->
+            MaxNeg = 0.0
+        ;   MaxNeg = -0.0)),
+    (PosB = [PB|_] ->
+        min_max_inter(PB,MinPos,_)
+    ;   MinPos = 0.0),
+    greatest_interval_not_absorbing_interval(Type,MaxNeg,MinPos,Low..High).
 
 
 greatest_interval_not_absorbing_interval(Type,MaxNeg,MinPos,Low..High) :-
-	(nonvar(MaxNeg) ->
-		greatest_interval_not_absorbing_val(Type,MaxNeg,L1,H1),
-		(nonvar(MinPos)->
-			greatest_interval_not_absorbing_val(Type,MinPos,L2,H2),
-			Low is max(L1,L2),
-			High is min(H1,H2)
-		;	Low = L1,
-			High = H1)
-	;	%% nonvar(MinPos)
-		greatest_interval_not_absorbing_val(Type,MinPos,Low,High)).
+    (nonvar(MaxNeg) ->
+        greatest_interval_not_absorbing_val(Type,MaxNeg,L1,H1),
+        (nonvar(MinPos)->
+            greatest_interval_not_absorbing_val(Type,MinPos,L2,H2),
+            Low is max(L1,L2),
+            High is min(H1,H2)
+        ;   Low = L1,
+            High = H1)
+    ;   % nonvar(MinPos)
+        greatest_interval_not_absorbing_val(Type,MinPos,Low,High)).
 
 %% On calcule le plus grand intervalle dont toute valeur
 %% absorbe B
 greatest_interval_not_absorbing_val(Type,B,Low,High) :-
-	AbsB is abs(B),
-	floor_log2(AbsB,FL2),
-	(AbsB is 2.0^FL2 ->
-		%% On est sur une puissance de 2
-		%% SH est le plus petit flottant positif qui absorbe AbsB
-		SH is 2.0^(FL2+get_mantissa_size(Type)+1),
-		get_previous_float(Type,SH,H),
-		get_next_float(Type,SH,OpL),
-		L is - OpL
-	;	%% Entre 2 puissances de deux, le premier positif est a 2^(54+FL2)
-		SH is 2.0^(FL2+get_mantissa_size(Type)+2),
-		get_previous_float(Type,SH,H),
-		L is -SH),
-	(B > 0.0 ->
-		Low = L,
-		High = H
-	;	Low is -H,
-		High is -L).
+    AbsB is abs(B),
+    floor_log2(AbsB,FL2),
+    (AbsB is 2.0^FL2 ->
+        % On est sur une puissance de 2
+        % SH est le plus petit flottant positif qui absorbe AbsB
+        SH is 2.0^(FL2+get_mantissa_size(Type)+1),
+        get_previous_float(Type,SH,H),
+        get_next_float(Type,SH,OpL),
+        L is - OpL
+    ;   % Entre 2 puissances de deux, le premier positif est a 2^(54+FL2)
+        SH is 2.0^(FL2+get_mantissa_size(Type)+2),
+        get_previous_float(Type,SH,H),
+        L is -SH),
+    (B > 0.0 ->
+        Low = L,
+        High = H
+    ;   Low is -H,
+        High is -L).
 
 add_real_zeroes(real,_,_,C) ?- !,
     protected_unify(C,0.0).
@@ -3965,7 +3964,12 @@ add_real_inst0(real,A,B,C,Continue) :- !,
         ;   (C == 0.0 ->
                 Stop = 1,
                 op_real(real,A,B)
-            ;   true))),
+            ;   ((is_real_box(A),
+                  is_real_box(B))
+                ->
+                    add_real_interval(real,A,B,C),
+                    launch_box(C)
+                ;   true)))),
     (nonvar(Stop) ->
         true
     ;   (nonvar(BoxGoal) ->
@@ -5639,7 +5643,7 @@ minus_real_int_ineqs(A,B,C) :-
 
 op_real_int_ineqs(A,OpA) :-
     getval(use_delta,1)@eclipse,
-    get_sign(A,SA),
+    get_sign_real(A,SA),
     !,
     (SA == pos ->
         % SOpA = neg
@@ -7570,8 +7574,10 @@ cast_real_int(A,B) :-
     cast_real_int_type(Type,A,B).
 
 cast_real_int_type(real,A,B) ?- !,
+    ensure_not_NaN(A),
     cast_real_int(real,A,B).
 cast_real_int_type(Type,A,B) :-
+    ensure_not_NaN(A),
     cast_fp_int(Type,A,B).
 
 cast_fp_int(Type,A,B) :-
@@ -7591,13 +7597,14 @@ cast_fp_int(Type,A,B) :-
     cast_fp_int(Cond,Type,A,B).
 
 cast_fp_int(0,Type,A,B) ?- !,
+    ensure_not_NaN(A),
     cast_real_int(Type,A,B).
 cast_fp_int(1,Type,A,B) ?- !,
     uninterp(cast_fp_int,cast_fp_int,[Type],int,[A],B).
 cast_fp_int(Cond,Type,A,B) :-
     get_priority(Prio),
-	set_priority(1),
-	((check_not_NaN(A),
+    set_priority(1),
+    ((check_not_NaN(A),
       not_inf([A]))
     ->
         protected_unify(Cond,0),
@@ -7618,6 +7625,7 @@ cast_real_int(Type,A,B) :-
     get_priority(Prio),
     set_priority(1),
     set_lazy_domain(Type,A),
+    ensure_not_NaN(A),
     save_cstr_suspensions((A,B)),
     (not_inf_bounds(A) ->
         % on peut dimensioner B
@@ -8247,12 +8255,22 @@ op_real_inst(real,A,B,Continue) :- !,
                     %launch_box_rat(A,RatA),
                     check_op_rat(B,A),
                     BoxGoal = op_real1(real,B,A)
-                ;   same_box_float_number_status(A,B,Box),
-                    Continue = 1)),
+                ;   ((is_real_box(A),
+                      is_mpi_var(A,PA,OPA,_))
+                    ->
+                        protected_unify(A,PA),
+                        protected_unify(B,OPA)
+                    ;   ((is_mpi_var(B,PB,OPB,_),
+                          is_real_box(B))
+                        ->
+                            protected_unify(B,PB),
+                            protected_unify(A,OPB)
+                        ;   same_box_float_number_status(A,B,Box),
+                            Continue = 1)))),
             (var(Continue) ->
-                check_rbox_cstrs(2,BoxGoal),
                 (nonvar(BoxGoal) ->
                     % parano
+                    check_rbox_cstrs(2,BoxGoal),
                     check_op_rat(A,B)
                 ;   true)
             ;   true))).
@@ -8379,7 +8397,6 @@ check_before_susp_op_real(Type,A,B) :-
         (MinA >= 0 ->
             AA = B, BB = A
         ;   AA = A, BB = B),
-        
         my_suspend(op_real1(Type,AA,BB),2,(AA,BB)->suspend:constrained)).
 
 
@@ -10314,12 +10331,10 @@ diff_real_value(Var,Val) :-
 		
 
 get_sign_real(A,SA) :-
-    mreal:mindomain(A,MinA),
-    mreal:maxdomain(A,MaxA),
-    (MinA >= 0.0 ->
-        % donc 0 est pos
+    mreal:dvar_range(A,L,H) ,
+    (L >= 0.0 ->
         SA = pos
-    ;   MaxA =< 0.0,
+    ;   H =< 0.0,
         SA = neg).
     
 %% On force le signe d'un argument
@@ -10419,12 +10434,13 @@ mult_real_int_ineqs(SA,SB,A,B,C) :-
             forbid_zero(real,C)
         ;   true)),
     % A revoir et generaliser
+    once (get_sign_real(C,SC);true),
     ((getval(use_delta,1)@eclipse,
       nonvar(SA),
       nonvar(SB),
+      nonvar(SC),
       var(C))
     ->
-        once (get_sign(C,SC);true),
         (var(A) ->
             mult_real_int_ineqs0(NZ,SC,SA,A,B,C)
         ;   true),
@@ -10436,10 +10452,13 @@ mult_real_int_ineqs(SA,SB,A,B,C) :-
 mult_real_int_ineqs0(NZ,SC,SOther,Other,Fact,C) :-
     % Fact * Other = C
     minus_real_interval(real,C,Other,Diff),
+    % C - Other = Diff -> C = Diff + Other
     mreal:dvar_range(Diff,LD0,HD0),
+    launch_delta(Other,C,+,LD0..HD0).
+/*
     (SOther \== SC ->
         (SOther == pos ->
-            % C neg, Other >= C
+            % C neg, Other pos, Other >= C
             HD1 is min(HD0,0.0),
             LD1 = LD0
         ;   % Other neg, C pos, Other =< C
@@ -10457,13 +10476,15 @@ mult_real_int_ineqs0(NZ,SC,SOther,Other,Fact,C) :-
         ;   rational(LD1,LD))),
     (HD1 == 1.0Inf ->
         HD = HD1
-    ;   ((HD1 == 0.0,
+    ;   call(spy_here)@eclipse,
+        ((HD1 == 0.0,
           nonvar(NZ),
           not_unify(Fact,1.0))
         ->
             HD is -1_1
         ;   rational(HD1,HD))),
     launch_delta(Other,C,+,LD..HD).
+*/
 
 op_rel(<,>).
 op_rel(>,<).
@@ -11096,14 +11117,6 @@ get_first_normal_div_mult(_,DN) :-
     %DN is 2.0^(-1022).
     DN = 2.2250738585072014e-308.
 
-is_op_real(V,OpV) :-
-    (number(V) ->
-        number(OpV),
-        OpV is -V
-    ;   get_saved_cstr_suspensions(LS),
-        member((Susp,op_real1(_,X,Y)),LS),
-        ((X,Y) == (V,OpV); (X,Y) == (OpV,V))).
-
 %% A * B = -A
 mult_real_op_arg_res(Type,A,B,Continue) :-
     (Type == real ->
@@ -12734,12 +12747,14 @@ div_real_dom(Rel12,FI1,FI2,FI,Dom1,Dom2,Dom,NewDom) :-
         (Z1 == 0.0 ->
             mreal:dom_intersection(dom(real,[0.0],1),Dom,NewDom,_)
         ;   (MP1 == 1.0 ->
-                mreal:dom_intersection(Dom2,Dom,NDom,_)
-            ;   % -1
+                %mreal:dom_intersection(Dom2,Dom,NDom,_)
+                mreal:dom_intersection(Dom1,Dom,NDom,_),
+                reduce_float_int_domain(real,FI,NDom,NewDom)
+            ;   % MP1 == -1.0
                 op_real_intervals(Type,Inter1,-1.0Inf,[],Inter),
                 mreal:list_to_typed_dom(real,Inter,NDom0),
-                mreal:dom_intersection(Dom,NDom0,NDom,_)),
-            reduce_float_int_domain(real,FI,NDom,NewDom))
+                mreal:dom_intersection(Dom,NDom0,NDom,_),
+                reduce_float_int_domain(real,FI,NDom,NewDom)))
     ;   ((Inter1 = [I1],
           Inter2 = [I2])
         ->
@@ -13877,6 +13892,7 @@ div_real_ineqs(Type,A,B,C) :-
 
 %On peut etre plus precis sur les float_int
 div_real_int_ineqs(SA,SB,A,B,C) :-
+    % B <> 0,
     (not_zero(C) ->
         NZ = 1,
         forbid_zero(real,A)
@@ -13885,12 +13901,13 @@ div_real_int_ineqs(SA,SB,A,B,C) :-
             forbid_zero(real,C)
         ;   true)),
     % A revoir et generaliser
+    once (get_sign_real(C,SC);true),
     ((getval(use_delta,1)@eclipse,
       nonvar(SA),
       nonvar(SB),
+      nonvar(SC),
       var(C))
     ->
-        once (get_sign(C,SC);true),
         (var(A) ->
             mult_real_int_ineqs0(NZ,SC,SA,A,B,C),
             % en float_int B divise A donc A=C*B
@@ -17162,7 +17179,7 @@ square_real_type(Type,A,B) :-
 
 square_real(Type,A,B) :-
     ensure_not_NaN((A,B)),
-    (ground(A) ->
+    (nonvar(A) ->
         mult_real_inst(Type,A,A,B,_)
     ;   set_lazy_domain(Type,A),
         set_lazy_domain(Type,B),
@@ -17810,33 +17827,33 @@ sqrt_real_interval(Type,A,B) :-
 
 
 sqrt_real1(Type,A,B) :-
-	get_priority(Prio),
-	set_priority(1),
-	sqrt_real_bis(Type,A,B),
-	set_priority(Prio),
-	wake_if_other_scheduled(Prio).
+    get_priority(Prio),
+    set_priority(1),
+    sqrt_real_bis(Type,A,B),
+    set_priority(Prio),
+    wake_if_other_scheduled(Prio).
 
 
 sqrt_real_bis(Type,Val1,Val) :-
-	(Val1 == Val ->
-		(Type == real ->
+    (Val1 == Val ->
+        (Type == real ->
             mreal:set_typed_intervals(Val,Type,[0.0,1.0])
         ;   mreal:set_typed_intervals(Val,Type,[-0.0,0.0,1.0,1.0Inf]))
-	;	save_cstr_suspensions((Val1,Val)),
-		(Type ==  real ->
-			(not_zero(Val1)	->
-				forbid_zero(Type,Val)
-			;	(not_zero(Val) ->
-					forbid_zero(Type,Val1)
-				;	true))
-		;	%% Inutile en float
-			true),
-		check_exists_sqrt_real(Type,Val1,Val),
-		sqrt_real_inst(Type,Val1,Val,Continue),
-		(nonvar(Continue) ->
-			sqrt_real_rec(Type,Val1,Val),
-			check_before_susp_sqrt_real(Type,Val1,Val)
-		;	true)).
+    ;   save_cstr_suspensions((Val1,Val)),
+        (Type ==  real ->
+            (not_zero(Val1) ->
+                forbid_zero(Type,Val)
+            ;   (not_zero(Val) ->
+                    forbid_zero(Type,Val1)
+                ;   true))
+        ;   % Inutile en float
+            true),
+        check_exists_sqrt_real(Type,Val1,Val),
+        sqrt_real_inst(Type,Val1,Val,Continue),
+        (nonvar(Continue) ->
+            sqrt_real_rec(Type,Val1,Val),
+            check_before_susp_sqrt_real(Type,Val1,Val)
+        ;   true)).
 
 
 sqrt_real_rec(Type,Val1,Val) :-
@@ -19062,6 +19079,7 @@ refute_diff_real_with_gt_lt(Type,A,B,Stop) :-
     var(Stop),
     getval(use_delta,1)@eclipse,
     getval(refutation_chk,0)@eclipse,
+    get_priority(Prio),
     once (mreal:get_intervals(A,[L,H]),
           number(L),number(H),
           Var = A,Other = B;
@@ -19093,7 +19111,7 @@ refute_diff_real_with_gt_lt(Type,A,B,Stop) :-
             ;   set_priority(1),
                 protected_unify(Var,H),
                 launch_diff_real(Type,Var,Other))
-        ;   set_priority(1),
+        ;   set_priority(Prio),
             protected_unify(Var,L),
             launch_diff_real(Type,Var,Other))
     ;   Continue = 1),
@@ -19111,7 +19129,7 @@ refute_diff_real_with_gt_lt(Type,A,B,Stop) :-
               mreal:dvar_range(Var,L,H),
               setval(rangeVar,(L,H)))
         ->
-            set_priority(1),
+            set_priority(Prio),
             Stop = 1,
             lin_gt_real(A,B),
             gt_real(Type,A,B),
@@ -19125,7 +19143,7 @@ refute_diff_real_with_gt_lt(Type,A,B,Stop) :-
                   mreal:dvar_range(Var,L,H),
                   setval(rangeVar,[ORange,(L,H)]))
             ->
-                set_priority(1),
+                set_priority(Prio),
                 Stop = 1,
                 ORange = (L,H),
                 interval_from_bounds(L,H,Inter),
@@ -19133,7 +19151,7 @@ refute_diff_real_with_gt_lt(Type,A,B,Stop) :-
                 lin_gt_real(B,A),
                 gt_real(Type,B,A)
             % lin_solve_var inutile ici
-            ;   set_priority(1),
+            ;   set_priority(Prio),
                 getval(rangeVar,[(L1,H1),(L2,H2)]),
                 list_to_intervals(Type,[L1..H1,L2..H2],Intervals),
                 mreal:set_typed_intervals(Var,Type,Intervals),
@@ -19292,7 +19310,8 @@ diff_real_number_box(Type,A,B,_,Continue) :-
     A \== B,
     (float(A) ->
         ((float(B);
-          is_real_box(B)) ->
+          is_real_box(B))
+        ->
             true
         ;   (is_removable_real_value_in_var(Type,diff,A,B,L,H) ->
                 mreal:set_typed_intervals(B,Type,[-1.0Inf..L,H..1.0Inf])
@@ -19314,10 +19333,17 @@ diff_real_number_box(Type,A,B,_,Continue) :-
                     ->
                         % marche aussi si variables quand IA <> IB
                         RatA \== RatB
-                    ;   % Si IA = IB, il y a des solutions reelles mais
-                        % pas de forme resolue: on garde diff_real
-                        % en esperant une unification provoquant le fail
-                        Continue = 1)
+                    ;   % c'est le moment de regarder si on est sur des *pi*
+                        (is_mpi_var(A,PA,OPA,_) ->
+                            protected_unify(A,PA),
+                            (is_mpi_var(B,PB,OPB,_) ->
+                                protected_unify(B,PB),
+                                A \== B
+                            ;   % Si IA = IB, il y a des solutions reelles mais
+                                % pas de forme resolue: on garde diff_real
+                                % en esperant une unification provoquant le fail
+                                Continue = 1)
+                        ;   Continue = 1))
                 ;   CheckIntersection = 1))
         ;   (is_removable_real_value_in_var(Type,diff,B,A,L,H) ->
                 (float(B) ->
@@ -19735,7 +19761,15 @@ geq_real_number_box(real,A,B,Continue) ?- !,
                       rational(MinA) > RB)
                       ->
                         true
-                    ;	Continue = 1)
+                    ;	(is_mpi_var(A,PA,OPA,_) ->
+                            protected_unify(A,PA),
+                            (is_mpi_var(B,PB,OPB,_) ->
+                                protected_unify(B,PB),
+                                (A == B ->
+                                    true
+                                ;   Continue = 1)
+                            ;   Continue = 1)
+                        ;   Continue = 1))
                 ;   % A real_box et B intervalle
                     % on ne peut enlever que au dessus de MaxA
                     % et on garde la contrainte (pour le cas = ?)
@@ -20171,8 +20205,14 @@ gt_real_boxA(A,B,Continue) :-
                 MaxA >= MaxB,
                 (MinA >= MaxB ->
                     true
-                ;   % Les rbox interdisent A = B
-                    Continue = 1)
+                ;   (is_mpi_var(A,PA,OPA,_) ->
+                        protected_unify(A,PA),
+                        (is_mpi_var(A,PB,OPB,_) ->
+                            protected_unify(B,PB),
+                            A \== B
+                        ;   Continue = 1)
+                    ;   % Les rbox interdisent A = B
+                        Continue = 1))
             ;   (is_float_number(B) ->
                     % MinA < A
                     mreal:dvar_remove_greater(B,MinA)
diff --git a/Src/COLIBRI/smt_import.pl b/Src/COLIBRI/smt_import.pl
index 425adb586eaf786f2bc42e803a66664b8e8d3b9a..0ecd85539de7cc71eff604c2c4a43d0cce2cf3ff 100644
--- a/Src/COLIBRI/smt_import.pl
+++ b/Src/COLIBRI/smt_import.pl
@@ -1,4 +1,4 @@
-
+:- pragma(noexpand).
 :- set_flag(syntax_option,iso_base_prefix).
 :- set_flag(syntax_option,based_bignums).
 
@@ -200,11 +200,9 @@ check_overloaded(colibri_real_isIntegral,colibri_isIntegral) :- !.
 check_overloaded(colibri_fp_isIntegral,colibri_isIntegral) :- !.
 check_overloaded(colibri_min_int,colibri_min) :- !.
 check_overloaded(colibri_min_real,colibri_min) :- !.
-%check_overloaded(colibri_min_fp,colibri_min) :- !.
 check_overloaded(colibri_min_fp,'fp.min') :- !.
 check_overloaded(colibri_max_int,colibri_max) :- !.
 check_overloaded(colibri_max_real,colibri_max) :- !.
-%check_overloaded(colibri_max_fp,colibri_max) :- !.
 check_overloaded(colibri_max_fp,'fp.max') :- !.
 check_overloaded(colibri_exp_real,colibri_exp) :- !.
 check_overloaded(colibri_exp_fp,colibri_exp) :- !.
@@ -362,7 +360,8 @@ term_from_dolmen_const(nan(E,S),Term) ?- !,
     Term = '_'('NaN',E,S).
 term_from_dolmen_const(fp(S,E,M),Term) ?- !,
     Term = fp(bv("b",S),bv("b",E),bv("b",M)).
-
+term_from_dolmen_const(colibri_builtin(S,_),Term) ?- !,
+    term_string(Term,S).
 
 build_cterm(CId,TId,CTerms,Term) :-
     get_col_id(CId,TId,ColId,Chainable),
@@ -607,7 +606,11 @@ check_sat0 :-
                 ((occurs(F,(isNaN,isNormal,isSubnormal,
                             isInfinite,isFinite,isZero,
                             isPositive,isNegative,
-                            uninterp,fp_eq1));
+                            uninterp,fp_eq1,
+                            sin_cos_value));
+                  occurs(F,(sinr,cosr)),
+                  arg(1,Goal,SC),
+                  is_real_box(SC);
                   (Goal = chk_nan_reif(_,_,_,CN);
                    ((% not_int
                         Goal = diff_int(V1,V2);
@@ -689,7 +692,8 @@ check_sat0 :-
     ;   writeln(output,Diag)).
 
 check_sat_vars :-
-    not not check_sat_vars0.
+%    not not check_sat_vars0.
+    check_sat_vars0.
 check_sat_vars0 :-
     init_real_cst,
     init_seen_expr,
@@ -713,6 +717,14 @@ check_sat_vars0 :-
                spy_here,
                call(Goal)))),
     setval(diag_code,(sat,1))@eclipse,
+
+    delayed_goals(NGoals),
+    term_variables(NGoals,GoalsVars),
+    (foreach(GV,GoalsVars),
+     foreach((GV,0,[]),NGoalsVars) do
+        trigo_no_rat(GV)),
+    once solve_cstrs_list([NGoalsVars]),
+
     % pas de residue,sinon wrong_sat
     suspensions(LSusp),
     (foreach(Susp,LSusp) do
@@ -721,7 +733,11 @@ check_sat_vars0 :-
         ((occurs(F,(isNaN,isNormal,isSubnormal,
                     isInfinite,isFinite,isZero,
                     isPositive,isNegative,
-                    uninterp,fp_eq1));
+                    uninterp,fp_eq1,
+                    sin_cos_value));
+          occurs(F,(sinr,cosr)),
+          arg(1,Goal,SC),
+          is_real_box(SC);
           (Goal = chk_nan_reif(_,_,_,CN);
            ((% not_int
              Goal = diff_int(V1,V2);
@@ -791,6 +807,11 @@ get_assignment :-
 
 % apres un check-sat
 get_model :-
+    (get_model0 ->
+        true
+    ;   Warn = "(warning: unknown error in get-model)",
+        writeln(error,Warn)).
+get_model0 :-
     (getval(diag_code,(_,1))@eclipse;
      getval(unknown_quantifier_abstraction,1)@eclipse),
     !,
@@ -833,7 +854,7 @@ get_model :-
     ;   true),
     setval(use_delta,UD)@eclipse,
     setval(use_simplex,US)@eclipse.
-get_model.
+get_model0.
 
 get_initial_variable_type(V,Type0,Type) :-
     (get_variable_type(V,TypeI) ->
@@ -857,6 +878,11 @@ get_initial_type(sort(Sort),Sort) :- !.
 
 % apres un check-sat
 get_value(LExpr) :-
+    (get_value0(LExpr) ->
+        true
+    ;   Warn = "(warning: unknown error in get-value)",
+        writeln(error,Warn)).
+get_value0(LExpr) :-
     (getval(diag_code,(_,1))@eclipse;
      getval(unknown_quantifier_abstraction,1)@eclipse),
     !,
@@ -925,8 +951,9 @@ get_value(LExpr) :-
                 as(Expr,Type) $= Res),
             ((nonvar(Res);
               %FType == sort;
-              FType == real,
-              is_real_box(Res))
+              FType == real)
+              % trop strict pour la tigo !
+              %is_real_box(Res))
             ->
                 true
             ;   ((FType == array;
@@ -939,7 +966,7 @@ get_value(LExpr) :-
     ;   true),
     setval(use_delta,UD)@eclipse,
     setval(use_simplex,US)@eclipse.
-get_value(_).
+get_value0(_).
 
 remove_all_as(Atom,Atom) :-
     atomic(Atom),
@@ -1007,24 +1034,35 @@ dump_type_val(real,Val0,Val) ?- !,
     dump_type_val('Real',Val0,Val).
 dump_type_val('Real',Val0,NVal) ?- !,
     (var(Val0) ->
-        (known_real_box(Val0,SNum,SDen,Neg) ->
-            (SDen == "1" ->
-                concat_string([SNum,".0"],Val)
-            ;   concat_string(["(/ ",SNum,".0 ",SDen,".0)"],Val))
-        ;   mreal:dvar_range(Val0,L,H),
-            rational(L,RL),
-            rational(H,RH),
-            protected_numerator(RL,NumL),
-            protected_denominator(RL,DenL),
-            (DenL == 1 ->
-                concat_string([NumL,".0"],SL)
-            ;   concat_string(["(/ ",NumL,".0 ",DenL,".0)"],SL)),
-            protected_numerator(RH,NumH),
-            protected_denominator(RH,DenH),
-            (DenH == 1 ->
-                concat_string([NumH,".0"],SH)
-            ;   concat_string(["(/ ",NumH,".0 ",DenH,".0)"],SH)),
-            concat_string(["(range ",SL," ",SH,")"], Val))
+        mreal:dvar_range(Val0,L,H),
+        (is_decimal_string(L) ->
+            number_string(L,SL0)
+        ;   true),
+        (is_decimal_string(H) ->
+            number_string(H,SH0)
+        ;   true),
+        ((nonvar(SL0),
+          nonvar(SH0))
+        ->
+            SL = SL0,
+            SH = SH0
+        ;   (known_real_box(Val0,SNum,SDen,Neg) ->
+                (SDen == "1" ->
+                    concat_string([SNum,".0"],Val)
+                ;   concat_string(["(/ ",SNum,".0 ",SDen,".0)"],Val))
+            ;   rational(L,RL),
+                rational(H,RH),
+                protected_numerator(RL,NumL),
+                protected_denominator(RL,DenL),
+                (DenL == 1 ->
+                    concat_string([NumL,".0"],SL)
+                ;   concat_string(["(/ ",NumL,".0 ",DenL,".0)"],SL)),
+                protected_numerator(RH,NumH),
+                protected_denominator(RH,DenH),
+                (DenH == 1 ->
+                    concat_string([NumH,".0"],SH)
+                ;   concat_string(["(/ ",NumH,".0 ",DenH,".0)"],SH)))),
+        concat_string(["(colibri_range ",SL," ",SH,")"], Val)
     ;   rational(Val0,Val1),
         (Val1 < 0_1 ->
             Neg = 1,
@@ -1099,7 +1137,14 @@ dump_type_val(OType,Val,SVal) :-
     atom_string(OType,SOType),
     split_string(SOType,"|","",LSOType),
     join_string(LSOType,"",SEndVal0),
-    concat_string(["(as |@uc_",SEndVal0,"_",Cpt,"| ",SEndVal,")"],SVal).
+    concat_string(["(as |@uc_",SEndVal0,"_",Cpt,"| ",SEndVal,")"],
+                  SVal).
+
+is_decimal_string(F) :-
+    float(F),
+    number_string(F,SF),
+    split_string(SF,"e","",L),
+    L = [_].
 
 build_end_val_from_old_type([],[]) :- !.
 build_end_val_from_old_type([OType|OTypes],[NType|NTypes]) :- !,
@@ -1532,11 +1577,12 @@ defined_smt_func(F/Ar,IArgs,Type,IExpr) :-
                   FIArg0 == FIArg),
             protected_unify(FIArg,IArg),
             OE = OE1,
-            ((nonvar(IArgType),
-              IArgType = sort(Sort))
-            ->
-                % Peuplement des valeurs de Sort
-                new_sort_val(Sort)
+            (nonvar(IArgType) ->
+                findall(Sort,cgiveInstanceAndPath(sort(_),IArgType,
+                                                  sort(Sort),_),LSs),
+                (foreach(Sort,LSs) do
+                    % Peuplement de valeurs de Sort pour les diff
+                    new_sort_val(Sort))
             ;   true)),
         (FType == Type ->
             IExpr = IExpr0
@@ -1557,11 +1603,13 @@ defined_smt_func(F/Ar,IArgs,Type,IExpr) :-
             ->
                 NIArg = IArg
             ;   NIArg = as(IArg,IArgType)),
-            ((nonvar(IArgType),
-              IArgType = sort(Sort))
-            ->
-                % Peuplement des valeurs de Sort
-                new_sort_val(Sort)
+            call(spy_here)@eclipse,
+            (nonvar(IArgType) ->
+                findall(Sort,cgiveInstanceAndPath(sort(_),IArgType,
+                                                  sort(Sort),_),LSs),
+                (foreach(Sort,LSs) do
+                    % Peuplement de valeurs de Sort pour les diff
+                    new_sort_val(Sort))
             ;   true)),
         Term =.. [F|NIArgs],
         (Profile == real_int ->
@@ -2177,6 +2225,7 @@ smt_interp0('_'(FCst,EB,SB),as(Val,Type),Type) :- !,
     fp_cst(FCst,EB,SB,Val,Type).
 smt_interp0(true,as(1,bool),bool) :- !.
 smt_interp0(false,as(0,bool),bool) :- !.
+smt_interp0(colibri_pi,as(pi,real),real) :- !.
 smt_interp0(Atom,IAtom,Type) :-
     atomic(Atom),
     !,
@@ -2567,13 +2616,54 @@ smt_interp0(colibri_ln(A),Ln,Type) :-
     (Type == real ->
         Ln = ln(IA)
     ;   Ln = fp_ln(IA)).
+
+smt_interp0(colibri_range(A,LA,HA),Exp,real) :-
+    smt_interp(A,A0,real),
+    smt_interp(LA,RL,real),
+    smt_interp(HA,RH,real),
+    Exp = as(range(A0,RL,RH),real).
+smt_interp0(colibri_sin(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(real,IA0,IA),
+    Exp = sin(IA).
+smt_interp0(colibri_cos(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(real,IA0,IA),
+    Exp = cos(IA).
+smt_interp0(colibri_tan(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(Type,IA0,IA),
+    Exp = tan(IA).
+smt_interp0(colibri_asin(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(real,IA0,IA),
+    Exp = asin(IA).
+smt_interp0(colibri_acos(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(real,IA0,IA),
+    Exp = acos(IA).
+smt_interp0(colibri_atan(A),Exp,real) :-
+    smt_interp(A,IA0,real),
+    !,
+    add_as(Type,IA0,IA),
+    Exp = atan(IA).
+
 smt_interp0(colibri_isIntegral(A),Exp,bool) :-
-    smt_interp(A,IA0,Type0),
+    smt_interp(A,IA0,Type),
     real_type(Type0,Type),
     !,
     add_as(Type,IA0,IA),
     Exp = isIntegral(IA).
 % uniquement pour les "real"
+smt_interp0(colibri_sqrt(A),Res,real) :- !,
+    smt_interp(A,IA0,real),
+    add_as(real,IA0,IA),
+    Res = sqrt(IA).
 smt_interp0(colibri_setIntegral(A),Exp,real) :-
     smt_interp(A,IA0,real),
     !,
diff --git a/Src/COLIBRI/solve.pl b/Src/COLIBRI/solve.pl
index 2be9843520ba9eff84fd43bf7a323810eca40612..f66f3bf6abb1dbd7fd888f0de9b5853d12db32ec 100644
--- a/Src/COLIBRI/solve.pl
+++ b/Src/COLIBRI/solve.pl
@@ -4847,22 +4847,32 @@ diff_array(Type,A,const_array(TI,TE,Const)) ?- !,
 diff_array(Type,A,B) :-
     get_priority(P),
     set_priority(1),
-    Type = array(TI,TE),
-    (getval(check_sat_vars,1)@eclipse ->
-        % Il existe un indice commun ou les elements sont non
-        % unifiables
-        check_diff_array(TE,A,B)
-    ;   (real_type(TI,_) ->
-            real_vars(TI,I)
-        ;   % ok pour les "sort" aussi
-            int_vars(TI,I)),
-        (real_type(TE,_) ->
-            real_vars(TE,[EA,EB])
-        ;   % ok pour les "sort/array" aussi
-            int_vars(TE,[EA,EB])),
-        smtlib_select(Type,A,I,EA),
-        smtlib_select(Type,B,I,EB),
-        diff_reif(TE,_,EA,EB,1)),
+    attached_suspensions(diff_array,LS),
+    ((member(S,LS),
+      get_suspension_data(S,goal,diff_array(Type,X,Y)),
+      (A == X ->
+          B == Y
+      ;   A == Y,
+          B == X))
+    ->
+        true
+    ;   Type = array(TI,TE),
+        (getval(check_sat_vars,1)@eclipse ->
+            % Il existe un indice commun ou les elements sont non
+            % unifiables
+            check_diff_array(TE,A,B)
+        ;   (real_type(TI,_) ->
+                real_vars(TI,I)
+            ;   % ok pour les "sort" aussi
+                int_vars(TI,I)),
+            (real_type(TE,_) ->
+                real_vars(TE,[EA,EB])
+            ;   % ok pour les "sort/array" aussi
+                int_vars(TE,[EA,EB])),
+            smtlib_select(Type,A,I,EA),
+            smtlib_select(Type,B,I,EB),
+            diff_reif(TE,_,EA,EB,1),
+            my_suspend(diff_array(Type,A,B),0,trigger(diff_array)))),
 /*
 % ANCIENNE VERSION MOINS RAPIDE QUE LES "select" !!!
     ;   hash_create(SureA),
@@ -6254,6 +6264,10 @@ unfold_real_expr(X,_D,Cstr,Type,R) :-
         exit_block(syntax)),
     %insert_dep_inst(inst_cstr(D,X)),
     Cstr = true.
+unfold_real_expr(pi,D,Cstr,Type,R) ?- !,
+    Type = real,
+    Cstr = true,
+    R is mpi.
 unfold_real_expr(X,_,Cstr,Type,FX) :-
     float(X),!,
     ensure_not_NaN(FX),
@@ -7017,15 +7031,6 @@ unfold_real_expr(fp_mul(Rnd0,EA,EB),D,Cstr,Type,R) ?-
                                         isZero(as(A,Type)),
                                         as(0,bool)))),
                             D,Cond,bool,BCond)),
-/*
-            unfold_int_expr(chk_nan(isNaN(as(A,Type)) or isNaN(as(B,Type)),
-                                as(1,bool),
-                                chk_nan(isInfinite(as(A,Type)),
-                                    isZero(as(B,Type)),
-                                    (isInfinite(as(B,Type)) and
-                                     isZero(as(A,Type))))),
-                            D,Cond,bool,BCond)),
-*/
         !,
         (BCond == 0 ->
             ensure_not_NaN((A,B,R))
@@ -7438,7 +7443,10 @@ unfold_real_expr(sqrt(EA),D,Cstr,RType,R) ?-
     real_type(RType,Type),
     !,
     insert_dep_inst(dep(R,D,[A])),
-    make_conj(CA,(ensure_not_NaN([A,R]),geq_real(Type,A,-0.0),sqrt_real(Type,A,R)),Cstr).
+    (Type == real ->
+        Z = 0.0
+    ;   Z = -0.0),
+    make_conj(CA,(ensure_not_NaN([A,R]),geq_real(Type,A,Z),sqrt_real(Type,A,R)),Cstr).
 
 unfold_real_expr(ln(EA),D,Cstr,RType,R) ?- !,
     ND is D + 1,
@@ -7494,6 +7502,65 @@ unfold_real_expr(fp_exp(EA),D,Cstr,Type,R) ?-
         make_conj(CNaN,CA,CNA),
         make_conj(CNA,fp_exp(NaN,Type,A,R),Cstr)).
 
+unfold_real_expr(range(EA,LA,HA),D,Cstr,Type,A) ?-
+    ND is D + 1,
+    Type = real,
+    unfold_real_expr(EA,ND,CA,real,A),
+    unfold_real_expr(LA,ND,CL,real,L),
+    unfold_real_expr(HA,ND,CH,real,H),
+    !,
+    real_vars(real,A),
+    insert_dep_inst(dep(A,D,[L,H])),
+    unfold_int_expr(((as(A,real) $>= as(L,real)) and
+                     (as(A,real) $=< as(H,real))),
+                    ND,CBool,bool,1),
+    make_conj(CA,CL,CAL),
+    make_conj(CH,CAL,Cstr0),
+    make_conj(CBool,Cstr0,Cstr).
+    
+unfold_real_expr(sin(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,sin_real(A,R),Cstr).
+unfold_real_expr(cos(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,cos_real(A,R),Cstr).
+unfold_real_expr(tan(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,tan_real(A,R),Cstr).
+unfold_real_expr(asin(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,asin_real(A,R),Cstr).
+unfold_real_expr(acos(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,acos_real(A,R),Cstr).
+unfold_real_expr(atan(EA),D,Cstr,RType,R) ?-
+    ND is D + 1,
+    unfold_real_expr(EA,ND,CA,RType,A),
+    Type = real,
+    !,
+    insert_dep_inst(dep(R,D,[A])),
+    make_conj(CA,atan_real(A,R),Cstr).
+
 unfold_real_expr(fp_min(EA,EB),D,Cstr,Type,R) ?- !,
     ND is D + 1,
     unfold_real_expr(EA,ND,CA,Type,A),
@@ -7593,6 +7660,40 @@ unfold_real_expr(ite(Cond,Then,Else),D,Cstr,RType,R) ?-
 unfold_real_expr(let(T,E),D,Cstr,Type,R) ?- !,
     unfold_let(real,T,E,D,true,Cstr,Type,R).
 
+unfold_real_expr(chk_nan(Cond,Then,Else),D,Cstr,Type,R) ?-
+    ND is D + 1,
+    unfold_int_expr(Cond,ND,CC,bool,RCond),
+    unfold_real_expr(Then,ND,CT,Type,RT),
+    unfold_real_expr(Else,ND,CE,Type,RE),
+    !,
+    int_vars(bool,RCond),
+    real_vars(real,R),
+    insert_dep_inst(dep(R,D,[RCond,RT,RE])),
+    insert_dep_inst(dep(RT,D,[RCond])),
+    insert_dep_inst(dep(RE,D,[RCond])),
+    (not_unify(RT,R) ->
+        blocked_unify(RCond,0),
+        blocked_unify(RE,R),
+        make_conj(CC,CE,Cstr)
+    ;   (not_unify(RE,R) ->
+            blocked_unify(RCond,1),
+            blocked_unify(RT,R),
+            make_conj(CC,CT,Cstr)
+        ;   ((RT == RE,
+              CT == true,
+              CE == true)
+            ->
+                % on ignore Cond
+                blocked_unify(R,RT),
+                Cstr = true
+            ;   (var(RCond) ->
+                    make_conj(CC,chk_nan_reif(RCond,(RT,CT),(RE,CE),R),Cstr)
+                ;   (RCond == 1 ->
+                        Cstr = CT,
+                        blocked_unify(R=RT)
+                    ;   Cstr = CE,
+                        blocked_unify(R=RE)))))).
+
 unfold_real_expr(uninterp(Term),D,Cstr,Type,R) ?- !,
     nonvar(Term),
     Term =.. [F|ArgsTypes],
@@ -7612,7 +7713,8 @@ unfold_real_expr(uninterp(Term),D,Cstr,Type,R) ?- !,
         ;   make_conj(IC,(SetType,AC),OC))),
     !,
     insert_dep_inst(dep(R,D,IArgs)),
-    make_conj(ACstrs,(real_vars(Type,R),uninterp_trigger(F,Types,Type,Trigger),uninterp(F,Trigger,Types,Type,IArgs,R)),Cstr).
+    make_conj(ACstrs,(real_vars(Type,R),uninterp_trigger(F,Types,Type,Trigger),
+                      uninterp(F,Trigger,Types,Type,IArgs,R)),Cstr).
     
 unfold_real_expr(Expr,_,_,_,_) :-
     spy_here,
@@ -9839,6 +9941,7 @@ uninterp(F,Trigger,TypeArgs,TypeR,Args,R) :-
                       check_diff_array(TE,R,CR)
                   ;   not_unify(R,CR)),
                   only_one_neq_args_pair(TypeArgs,Args,CArgs,TA,A,CA))
+                  %%TA \= array(_,_))
                 ->
                     call_priority(diff_reif(TA,_Kill,A,CA,1),2)
                 ;   true))
@@ -10009,6 +10112,7 @@ chk_undef_float_to_real(Bool,TypeF,A,R) :-
         ;   true)),
     (nonvar(Bool) ->
         (Bool == 0 ->
+            ensure_not_NaN(A),
             float_to_real(TypeF,A,R)
         ;   undef_float_to_real(TypeF,A,R))
     ;   save_cstr_suspensions(A),
@@ -10025,30 +10129,13 @@ chk_undef_float_to_real(Bool,TypeF,A,R) :-
 undef_float_to_real(Type,A,R) :-
     uninterp_trigger(float_to_real,[Type],real,Trigger),
     uninterp(float_to_real,Trigger,[Type],real,[A],R).
-/*
-undef_float_to_real(Type,A,R) :-
-    get_priority(Prio),
-    set_priority(1),
-    (ground(A) ->
-        (check_seen_expr(undef_float_to_real(Type,A),RR,Type) ->
-            protected_unify(R,RR)
-        ;   add_seen_expr(undef_float_to_real(Type,A),R,Type))
-    ;   save_cstr_suspensions(A),
-        get_saved_cstr_suspensions(LSusp),
-        ((member((Susp,undef_float_to_real(Type,AA,RR)),LSusp),
-          AA == A)
-        ->
-            protected_unify(R,RR)
-        ;   my_suspend(undef_float_to_real(Type,A,R),0,A->suspend:constrained))),
-    set_priority(Prio),
-    wake_if_other_scheduled(Prio).
-*/
 
 % A est le round(Rnd,EA)
 % on peut utiliser cast_real_int
 chk_undef_float_to_ubv(Bool,TypeF,Size,A,R) :-
     (nonvar(Bool) ->
         (Bool == 0 ->
+            ensure_not_NaN(A),
             cast_real_int(TypeF,A,SR),
             to_intNu(Size,SR,R)
         ;   set_lazy_domain(TypeF,A),
@@ -10068,25 +10155,6 @@ chk_undef_float_to_ubv(Bool,TypeF,Size,A,R) :-
 undef_float_to_ubv(Type,Size,A,R) :-
     uninterp_trigger(float_to_ubv,[Type],uint(Size),Trigger),
     uninterp(float_to_ubv,Trigger,[Type],uint(Size),[A],R).
-/*
-undef_float_to_ubv(Type,Size,A,R) :-
-    get_priority(Prio),
-    set_priority(1),
-    (ground(A) ->
-        (check_seen_expr(undef_float_to_ubv(Type,Size,A),RR,Type) ->
-            protected_unify(R,RR)
-        ;   add_seen_expr(undef_float_to_ubv(Type,Size,A),R,Type))
-    ;   save_cstr_suspensions(A),
-        get_saved_cstr_suspensions(LSusp),
-        ((member((Susp,undef_float_to_ubv(Type,Size,AA,RR)),LSusp),
-          AA == A)
-        ->
-            protected_unify(R,RR)
-        ;   my_suspend(undef_float_to_ubv(Type,Size,A,R),0,
-                       A->suspend:constrained))),
-    set_priority(Prio),
-    wake_if_other_scheduled(Prio).
-*/
 
 
 % A est le round(Rnd,EA)
@@ -10095,6 +10163,7 @@ undef_float_to_ubv(Type,Size,A,R) :-
 chk_undef_float_to_sbv(Bool,TypeF,Size,A,R) :-
     (nonvar(Bool) ->
         (Bool == 0 ->
+            ensure_not_NaN(A),
             cast_real_int(TypeF,A,SR),
             to_intNu(Size,SR,R)
         ;   set_lazy_domain(TypeF,A),
@@ -11592,6 +11661,8 @@ get_range(V,_,V,V).
    ;   (local reference(new_dep))).
 
 solve_cstrs :-
+    % la TRIGO peut désactiver le simplex
+    getval(use_simplex,US)@eclipse,
     garbage_collect,
     setval(nbFail,0)@eclipse,
     setval(ihm_stat,0)@eclipse,
@@ -11602,10 +11673,15 @@ solve_cstrs :-
     (DepConstraints \= [] ->
         clear_single_inst_cstr(DepConstraints,NDepConstraints),
         build_single_use_list(NDepConstraints,NSplitUseList),
-        once solve_cstrs_list([NSplitUseList]),
+        (solve_cstrs_list([NSplitUseList]) ->
+            setval(use_simplex,US)@eclipse
+        ;   setval(use_simplex,US)@eclipse,
+            fail),
         % Si on continue dans la ligne de requete
         init_dep_constraints(_NPC)
-    ;   true).
+    ;   true),
+    attached_suspensions(diff_array,LS),
+    (foreach(S,LS) do kill_suspension(S)).
 
 try_noNaN :-
     attached_suspensions(isNaN,LS),
@@ -11637,7 +11713,7 @@ solve_cstrs_list([UseList|SplitUseList]) :-
     (current_suspension(_) ->
         % filtrage 3B: on rogne les bords gauche et droit des feuilles
         % dans la limite du threshold (meme pour les entiers)
-        narrow_leaves(UseList),
+        %narrow_leaves(UseList),
         %reduce_lin_vars_bounds(UseList),
         init_last_var_fail,
         solve_cstrs2(UseList,[],0),
@@ -11961,8 +12037,8 @@ choose_fd_var([Adj|UseList],Var,Size,NUseList) :-
     MinVars \== [],
     leaf_vars([Adj|UseList],Leaves,NUseList),
     leaf_var_with_max_cstr_min_dom(MinVars,[],Var,Size).
-    %var_with_min_dom_max_cstr(MinVars,Var,Size).
-%%    leaf_var_with_max_cstr_min_dom(MinVars,Leaves,Var,Size).
+%%    var_with_min_dom_max_cstr(MinVars,Var,Size).
+%    leaf_var_with_max_cstr_min_dom(MinVars,Leaves,Var,Size).
 
 
 leaf_vars(UseList,Leaves,NUseList) :-
@@ -12086,6 +12162,7 @@ clean_uselist_var(V,C,Adj,UseList,NC,NAdj,NUseList) :-
 filter_not_box_constrained_vars([],[]).
 filter_not_box_constrained_vars([V|L],NL) :-
     ((no_constraint(V);
+      is_sin_cos_value(V);
       is_real_box(V))
     ->
         NL = ENL
@@ -12095,6 +12172,7 @@ filter_not_box_constrained_vars([V|L],NL) :-
 filter_constrained_vars([],[]).
 filter_constrained_vars([V|L],NL) :-
     ((no_constraint(V);
+      is_sin_cos_value(V);
       is_real_box_rat(V,_))
     ->
         NL = ENL
@@ -12224,15 +12302,15 @@ is_two_values_var(V) :-
 
 keep_choosable_vars([],_,[]).
 keep_choosable_vars([V|LV],DGVars,NLV) :-
-	((nonvar(V);
+    ((nonvar(V);
       is_real_box(V);
       get_type(V,T),
       T = array(_,_);
       not occurs(V,DGVars))
-	->
-		NLV = EndNLV
-	;	NLV = [V|EndNLV]),
-	keep_choosable_vars(LV,DGVars,EndNLV).
+    ->
+        NLV = EndNLV
+    ;   NLV = [V|EndNLV]),
+    keep_choosable_vars(LV,DGVars,EndNLV).
 
 
 add_adj_to_sufficient(Adj,NAdj,Sufficient,EndSufficient) :-
@@ -12415,66 +12493,70 @@ real_int_size(V,Size) :-
     sum_intervals_size_congr(ILIV,S,Mod,Size).
 
 var_with_max_cstr_min_dom([V|LV],Var,MinSize) :-
-    ((get_type(V,Type),
-      Type \= array(_,_))
-    ->
-        (LV == [] ->
-            Var = V,
-            dvar_size_check_real(Type,V,MinSize)
-        ;   dvar_size_check_real(Type,V,Size),
-            constraints_number(V,NbV),
-            var_with_max_cstr_min_dom1(LV,V,Size,NbV,Var,MinSize))
-    ;   var_with_max_cstr_min_dom(LV,Var,MinSize)).
+    (is_sin_cos_value(V) ->
+        var_with_max_cstr_min_dom(LV,Var,MinSize)
+    ;   ((get_type(V,Type),
+          Type \= array(_,_))
+        ->
+            (LV == [] ->
+                Var = V,
+                dvar_size_check_real(Type,V,MinSize)
+            ;   dvar_size_check_real(Type,V,Size),
+                constraints_number(V,NbV),
+                var_with_max_cstr_min_dom1(LV,V,Size,NbV,Var,MinSize))
+        ;   var_with_max_cstr_min_dom(LV,Var,MinSize))).
 
 var_with_max_cstr_min_dom1([],V,Size,_NbV,V,Size).
 var_with_max_cstr_min_dom1([VV|LV],IV,IS,INb,Var,MinSize) :-
     % plus de Array
-    get_type(VV,Type),
-    ((is_real_box(IV),
-      not is_real_box(VV))
-    ->
-        OV = VV,
-        dvar_size_check_real(Type,VV,OS),
-        constraints_number(VV,ONb)
-    ;   ((is_real_box(VV),
-          not is_real_box(IV))
+    (is_sin_cos_value(VV) ->
+        var_with_max_cstr_min_dom1(LV,IV,IS,INb,Var,MinSize)
+    ;   get_type(VV,Type),
+        ((is_real_box(IV),
+          not is_real_box(VV))
         ->
-            OV = IV,
-            OS = IS,
-            ONb = INb
-        ;   dvar_size_check_real(Type,VV,Size),
-            ((IS == 2,
-              Size > 2)
+            OV = VV,
+            dvar_size_check_real(Type,VV,OS),
+            constraints_number(VV,ONb)
+        ;   ((is_real_box(VV),
+              not is_real_box(IV))
             ->
-                % priorite aux booleens
+                OV = IV,
                 OS = IS,
-                ONb = INb,
-                OV = IV
-            ;   constraints_number(VV,NbVar),
-                ((IS > 2,
-                  Size == 2)
+                ONb = INb
+            ;   dvar_size_check_real(Type,VV,Size),
+                ((IS == 2,
+                  Size > 2)
                 ->
                     % priorite aux booleens
-                    ONb = NbVar,
-                    OS = Size,
-                    OV = VV
-                ;   (NbVar > INb ->
-                        OV = VV,
+                    OS = IS,
+                    ONb = INb,
+                    OV = IV
+                ;   constraints_number(VV,NbVar),
+                    ((IS > 2,
+                      Size == 2)
+                    ->
+                        % priorite aux booleens
                         ONb = NbVar,
-                        OS = Size
-                    ;   (NbVar < INb ->
-                            OV = IV,
-                            ONb = INb,
-                            OS = IS
-                        ;   % NbVar == INb
-                            (Size < IS ->
-                                OV = VV,
-                                ONb = NbVar,
-                                OS = Size
-                            ;   OV = IV,
+                        OS = Size,
+                        OV = VV
+                    ;   (NbVar > INb ->
+                            OV = VV,
+                            ONb = NbVar,
+                            OS = Size
+                        ;   (NbVar < INb ->
+                                OV = IV,
                                 ONb = INb,
-                                OS = IS))))))),
-    var_with_max_cstr_min_dom1(LV,OV,OS,ONb,Var,MinSize).
+                                OS = IS
+                            ;   % NbVar == INb
+                                (Size < IS ->
+                                    OV = VV,
+                                    ONb = NbVar,
+                                    OS = Size
+                                ;   OV = IV,
+                                    ONb = INb,
+                                    OS = IS))))))),
+        var_with_max_cstr_min_dom1(LV,OV,OS,ONb,Var,MinSize)).
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 %%   VERSIONS ADAPTEES DES PREDICATS DE "Noyau/fd_solve.pl"
@@ -12597,11 +12679,14 @@ simple_resol_int(Int) :-
                          mfd:dvar_remove_element(Int,1),
                          simple_resol_int(Int)))
                 ;   simple_resol_int1(Int))
-            ;   (protected_unify(Int,0);
-                 mfd:dvar_remove_element(Int,0),
+
+            ;   Val = 0,
+                (protected_unify(Int,Val);
+                 mfd:dvar_remove_element(Int,Val),
                  simple_resol_int(Int))),
             1)
-    ;   true).
+        ;   true).
+
 
 simple_resol_int1(Int) :-
     (var(Int) ->
@@ -12755,36 +12840,36 @@ simple_resol_float(Var) :-
             (   mreal:set_typed_intervals(Var,Type,[Inter])
             ;   (once member_begin_end(Inter,IList,NIList,End,End)),
                 mreal:set_typed_intervals(Var,Type,NIList))
+        
         ;   % Un seul intervalle
             % ESSAI BM: on regarde d'abord le min puis le max
             % avant de piocher au hasard
             IList = [Min0..Max0],
             (Var = Min0 ;
+             Var = Max0 ;
              get_next_float(Type,Min0,Min1),
-             mreal:set_typed_intervals(Var,Type,[Min1..Max0]),
-             (Var = Max0 ;
-              get_previous_float(Type,Max0,Max1),
-              mreal:set_typed_intervals(Var,Type,[Min1..Max1]),
-              (nonvar(Var) ->
-                  true
-              ;   mreal:dvar_range(Var,Min,Max),
-                  (is_float_int_number(Var) ->
-                      % On reutilise le choix de la version entiere
-                      get_small_random_value_in_real_interval_float_int(Type,Min..Max,Value)
-                  ;   get_small_random_value_in_real_interval(Type,Min..Max,Size,Value)),
-                  random_less(2,Rand),
-                  % On essaye Value, puis au dessus/dessous de Value
-                  (   Var = Value
-                  ;   (Rand == 0 ->
-                          get_next_zfloat(Type,Value,Next),
-                          mreal:dvar_remove_smaller(Var,Next)
-                      ;   get_previous_zfloat(Type,Value,Prev),
-                          mreal:dvar_remove_greater(Var,Prev))
-                  ;   (Rand == 0 ->
-                          get_previous_zfloat(Type,Value,Prev),
-                          mreal:dvar_remove_greater(Var,Prev)
-                      ;   get_next_zfloat(Type,Value,Next),
-                          mreal:dvar_remove_smaller(Var,Next))))))),
+             get_previous_float(Type,Max0,Max1),
+             mreal:set_typed_intervals(Var,Type,[Min1..Max1])),
+            (nonvar(Var) ->
+                true
+            ;   mreal:dvar_range(Var,Min,Max),
+                (is_float_int_number(Var) ->
+                    % On reutilise le choix de la version entiere
+                    get_small_random_value_in_real_interval_float_int(Type,Min..Max,Value)
+                ;   get_small_random_value_in_real_interval(Type,Min..Max,Size,Value)),
+                random_less(2,Rand),
+                % On essaye Value, puis au dessus/dessous de Value
+                (   Var = Value
+                ;   (Rand == 0 ->
+                        get_next_zfloat(Type,Value,Next),
+                        mreal:dvar_remove_smaller(Var,Next)
+                    ;   get_previous_zfloat(Type,Value,Prev),
+                        mreal:dvar_remove_greater(Var,Prev))
+                ;   (Rand == 0 ->
+                        get_previous_zfloat(Type,Value,Prev),
+                        mreal:dvar_remove_greater(Var,Prev)
+                    ;   get_next_zfloat(Type,Value,Next),
+                        mreal:dvar_remove_smaller(Var,Next))))),
         my_notify_constrained(Var)
     ;   true).
 
@@ -12812,6 +12897,19 @@ simple_resol_real(Var) :-
     simple_resol_real_int(Var).
 */
 simple_resol_real(Var) :-
+    is_trigo_no_rat(Var),
+    mpis(_,_,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4),
+    Choices = [OpPi,OpPid2,OTPid4,OpPid2,OpPid4,0.0,Pid4,Pid2,TPid4,Pi],
+    member(Val,Choices),
+    protected_unify(Var,Val). 
+simple_resol_real(Var) :-
+    (is_trigo_no_rat(Var) ->
+        mpis(_,_,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4),
+        Choices = [OpPi,OpPid2,OTPid4,OpPid2,OpPid4,0.0,Pid4,Pid2,TPid4,Pi],
+        (foreach(Val,Choices),
+         param(Var) do
+            diff_real(real,Var,Val))
+    ;   true),
     (var(Var) ->
         mreal:get_intervals(Var,IList),
         (IList = [_,_|_] ->
@@ -12822,17 +12920,20 @@ simple_resol_real(Var) :-
                 mreal:set_typed_intervals(Var,real,NIList))
         ;   % Un seul intervalle real
             IList = [Min0..Max0],
+            (is_real_box(Var) ->
+                Rbox = 1
+            ;   true),
             ((is_float_number(Var),
-              not is_real_box(Var))
+              var(Rbox))
             ->
                 % ESSAI BM: on regarde d'abord le min puis le max
                 % avant de piocher au hasard
-                (Var = Min0 ;
+                (protected_unify(Var,Min0) ;
                  get_next_float(real,Min0,Min1),
                  (Min1 == 1.0Inf ->
                      launch_box(Var)
                  ;   mreal:set_typed_intervals(Var,real,[Min1..Max0]),
-                     (Var = Max0 ;
+                     (protected_unify(Var,Max0) ;
                       get_previous_float(real,Max0,Max1),
                       (Max1 == -1.0Inf ->
                           launch_box(Var)
@@ -12851,7 +12952,7 @@ simple_resol_real(Var) :-
                               get_previous_float(real,Value,PV)),
                           random_less(2,Rand),
                           % On essaye Value, puis au dessus/dessous de Value
-                          (   Var = Value
+                          (   protected_unify(Var,Value)
                           ;   (Rand == 0 ->
                                   set_typed_intervals(Var,real,[NV..1.0Inf])
                               ;   set_typed_intervals(Var,real,[-1.0Inf..PV]))
@@ -12860,7 +12961,8 @@ simple_resol_real(Var) :-
                               ;   set_typed_intervals(Var,real,[NV..1.0Inf])))))))
             ;   mreal:dvar_range(Var,Min,Max),
                 mreal:dvar_size(Var,Size),
-                (not (Size == 2,
+                (not (nonvar(Rbox);
+                      Size == 2,
                       (Min == -1.0Inf;
                        Max == 1.0Inf))
                 ->
@@ -12874,7 +12976,7 @@ simple_resol_real(Var) :-
                     random_less(2,Rand),
                     % On essaye Value, puis au dessus/dessous de Value
                     (   % echec is +/-Inf
-                        Var = Value
+                        protected_unify(Var,Value)
                     ;   (Rand == 0 ->
                             set_typed_intervals(Var,real,[NV..1.0Inf])
                         ;   set_typed_intervals(Var,real,[-1.0Inf..PV]))
@@ -12884,23 +12986,29 @@ simple_resol_real(Var) :-
 
                     ;   % on essaye les boites autour de Value
                         set_typed_intervals(Var,real,[PV..Value]),
-                        get_rand_rat_in_rbox(Var,PV,Value,Rat),
-                        (launch_box_rat(Var,Rat);
+                        (not is_trigo_no_rat(Var),
+                         get_rand_rat_in_rbox(Var,PV,Value,Rat),
+                         launch_box_rat(Var,Rat);
                          launch_box(Var))
                     ;   set_typed_intervals(Var,real,[Value..NV]),
-                        get_rand_rat_in_rbox(Var,Value,NV,Rat),
-                        (launch_box_rat(Var,Rat);
+                        (not is_trigo_no_rat(Var),
+                         get_rand_rat_in_rbox(Var,Value,NV,Rat),
+                         launch_box_rat(Var,Rat);
+                         % on boucle
                          launch_box(Var)))
-                ;   (is_real_box(Var) ->
+                ;   (nonvar(Rbox) ->
                         get_rand_rat_in_rbox(Var,Min,Max,Rat),
                         (launch_box_rat(Var,Rat);
-                         launch_box(Var))
+                         trigo_no_rat(Var),
+                         Ratfailed = 1)
                     ;   (Min == -1.0Inf ->
                             Value = Max
                         ;   Value = Min),
-                        (  Var = Value
+                        (  protected_unify(Var,Value)
                         ;  launch_box(Var)))))),
-        my_notify_constrained(Var)
+        (nonvar(Ratfailed) ->
+            true
+        ;   my_notify_constrained(Var))
     ;   true).
 
 simple_resol_real_int(Var) :-
@@ -13115,42 +13223,43 @@ inst_rnd(Enum) :-
     protected_unify(Enum,Enum0).
 
 inst_int(Int) :-
-	nonvar(Int),
-	!.
+    nonvar(Int),
+    !.
 inst_int(Int) :-
     dvar_intervals(int,Int,IList),
-	abs_min_interval(IList,Inter),
-	min_max_inter(Inter,L,H),
-	Size is 1 + H - L,
-	mod:get_congr(Int,C,Mod),
-	get_small_random_value_in_interval(Inter,Size,C,Mod,Int0),
+    abs_min_interval(IList,Inter),
+    min_max_inter(Inter,L,H),
+    Size is 1 + H - L,
+    mod:get_congr(Int,C,Mod),
+    get_small_random_value_in_interval(Inter,Size,C,Mod,Int0),
     protected_unify(Int,Int0).
 
 inst_real(Real) :-
-	nonvar(Real),
-	!.
+    (nonvar(Real);
+     is_real_box(Real)),
+    !.
 inst_real(Real) :-
-	dvar_intervals(real,Real,IList),
-	abs_min_interval(IList,Inter),
-	get_small_random_value_in_real_interval(real,Inter,_,Real0),
+    dvar_intervals(real,Real,IList),
+    abs_min_interval(IList,Inter),
+    get_small_random_value_in_real_interval(real,Inter,_,Real0),
     protected_unify(Real,Real0).
 
 inst_float_double(Real) :-
-	nonvar(Real),
-	!.
+    nonvar(Real),
+    !.
 inst_float_double(Real) :-
-	dvar_intervals(float_double,Real,IList),
-	abs_min_interval(IList,Inter),
-	get_small_random_value_in_real_interval(float_double,Inter,_,Real0),
+    dvar_intervals(float_double,Real,IList),
+    abs_min_interval(IList,Inter),
+    get_small_random_value_in_real_interval(float_double,Inter,_,Real0),
     protected_unify(Real,Real0).
 
 inst_float_simple(Real) :-
-	nonvar(Real),
-	!.
+    nonvar(Real),
+    !.
 inst_float_simple(Real) :-
-	dvar_intervals(float_simple,Real,IList),
-	abs_min_interval(IList,Inter),
-	get_small_random_value_in_real_interval(float_simple,Inter,_,Real0),
+    dvar_intervals(float_simple,Real,IList),
+    abs_min_interval(IList,Inter),
+    get_small_random_value_in_real_interval(float_simple,Inter,_,Real0),
     protected_unify(Real,Real0).
 
 
diff --git a/Src/COLIBRI/solve_util.pl b/Src/COLIBRI/solve_util.pl
index 4d1716db43a36921f06229c14b47285f4ce9b786..6e269a5f53b8fc40da2de1b951bb76ba483f1e23 100755
--- a/Src/COLIBRI/solve_util.pl
+++ b/Src/COLIBRI/solve_util.pl
@@ -529,6 +529,9 @@ get_small_random_value_in_real_interval(Inter,Size,Res) :-
 	get_small_random_value_in_real_interval(Type,Inter,Size,Res).
 
 %%:- mode get_small_random_value_in_real_interval(++,++,++,?).
+get_small_random_value_in_real_interval(Type,LH..LH,_Size,Res) ?- !,
+    protected_unify(Res,LH).
+    
 get_small_random_value_in_real_interval(Type,Low..High,_Size,Res) :-
     Low =< 0.0,
     High >= 0.0,
diff --git a/Src/COLIBRI/trigo.pl b/Src/COLIBRI/trigo.pl
new file mode 100644
index 0000000000000000000000000000000000000000..769f6b8ecc3918876b0bdb514fa7dddf0527b200
--- /dev/null
+++ b/Src/COLIBRI/trigo.pl
@@ -0,0 +1,1351 @@
+/*
+BUG sur:
+real_vars(real, (A, T, S, C)), tan_real(A, T), sin_real(A, S),
+ cos_real(A, C), A $: -1e-8 .. 0.0, A = -1e-8, solve_cstrs.
+-> fail
+Le pb vient de cos_real qui impose A = 0.0 ?
+le fact_periodic du cos doit rester pour tuer le sinr correspondant
+sinon le sinr_rec imposera 1 pour cos en forcant pi/2 pour NA 
+et donc 0 pour A !
+*/
+
+:- setval(bpis,1).
+:- export use_bpis/0.
+use_bpis :-
+    setval(bpis,1).
+:- export no_bpis/0.
+no_bpis :-
+    setval(bpis,0).
+:- local reference(pis).
+%:- import launch_box_prio/2 from colibr. 
+:- export mpis/8.
+mpis(DPi,OpDPi,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4) :-
+    getval(pis,Pis),
+    (Pis == 0 ->
+        (getval(bpis,0)@colibri ->
+            DPi is 2.0*pi,
+            OpDPi is -DPi,
+            Pi is pi,
+            OpPi is -Pi,
+            Pid2 is Pi/2.0,
+            OpPid2 is -Pid2,
+            % pour sin(A)=cos(A)
+            Pid4 is Pi/4.0,
+            OPid4 is -Pid4,
+            % pour sin(-A)=cos(A)
+            TPid4 is 3*(Pi/4),
+            OTPid4 is -TPid4
+        ;   % on est trop précis avec des rbox !!!!
+            % 2pi
+            DPi0 is 2.0*pi,
+            get_next_float(real,DPi0,DPi1),
+            set_intervals(real,DPi,[DPi0..DPi1]),
+            launch_box_prio(DPi,_),
+            % -2pi
+            ODPi0 is -DPi0,
+            get_previous_float(real,ODPi0,ODPi1),
+            set_intervals(real,OpDPi,[ODPi1..ODPi0]),
+            launch_box_prio(OpDPi,_),
+            % pi
+            Pi0 is pi,
+            get_next_float(real,Pi0,Pi1),
+            set_intervals(real,Pi,[Pi0..Pi1]),
+            launch_box_prio(Pi,_),
+            % -pi
+            set_lazy_domain(real,OpPi),
+            op_real_interval(real,Pi,OpPi),
+            launch_box_prio(OpPi,_),
+            % pi/2
+            Pi0d2 is Pi0/2.0,
+            Pi1d2 is Pi1/2.0,
+            set_intervals(real,Pid2,[Pi0d2..Pi1d2]),
+            launch_box_prio(Pid2,_),
+            % -pi/2
+            set_lazy_domain(real,OpPid2),
+            op_real_interval(real,Pid2,OpPid2),
+            launch_box_prio(OpPid2,_),
+            % pi/4
+            Pi0d4 is Pi0d2/2.0,
+            Pi1d4 is Pi1d2/2.0,
+            set_intervals(real,Pid4,[Pi0d4..Pi1d4]),
+            launch_box_prio(Pid4,_),
+            % -pi/4
+            set_lazy_domain(real,OpPid4),
+            op_real_interval(real,Pid4,OpPid4),
+            launch_box_prio(OpPid4,_),
+            % 3pi/4
+            set_lazy_domain(real,TPid4),
+            set_intervals(real,TPid4,[2.3561944901923448 .. 2.3561944901923453]),
+            launch_box_prio(TPid4,_),
+            % -3pi/4
+            set_lazy_domain(real,OTPid4),
+            op_real_interval(real,TPid4,OTPid4),
+            launch_box_prio(OTPid4,_)),
+        setval(pis,(DPi,OpDPi,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4))
+    ;   Pis = (DPi,OpDPi,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4)).
+
+m2pi(DPi) :-
+    mpis(DPi0,_,_,_,_,_,_,_,_,_),
+    protected_unify(DPi0,DPi).
+mpi(Pi) :-
+    mpis(_,_,Pi0,_,_,_,_,_,_,_),
+    protected_unify(Pi0,Pi).
+moppi(OpPi) :-
+    mpis(_,_,_,OpPi0,_,_,_,_,_,_),
+    protected_unify(OpPi0,OpPi).
+mpid2(Pid2) :-
+    mpis(_,_,_,_,Pid20,_,_,_,_,_),
+    protected_unify(Pid20,Pid2).
+moppid2(OpPid2) :-
+    mpis(_,_,_,_,_,OpPid20,_,_,_,_),
+    protected_unify(OpPid20,OpPid2).
+mpid4(Pid4) :-
+    mpis(_,_,_,_,_,_,Pid40,_,_,_),
+    protected_unify(Pid40,Pid4).
+moppid4(OpPid4) :-
+    mpis(_,_,_,_,_,_,_,OpPid40,_,_),
+    protected_unify(OpPid40,OpPid4).
+mtpid4(TPid4) :-
+    mpis(_,_,_,_,_,_,_,_,TPid40,_),
+    protected_unify(TPid40,TPid4).
+moptpid4(OTPid4) :-
+    mpis(_,_,_,_,_,_,_,_,_,OTPid40),
+    protected_unify(OTPid40,OTPid4).
+
+:- export is_mis_mpi_var/4.
+is_mpi_var(V,PV,OPV,Name) :-
+    is_real_box(V),
+    mpis(DPi,OpDPi,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4),
+    mreal:get_intervals(V,IV),
+    mreal:get_intervals(Pi,Ip),
+    (IV == Ip ->
+        Name = pi,
+        PV = Pi,
+        OPV = OpPi
+    ;   mreal:get_intervals(OpPi,Iop),
+        (IV == Iop ->
+            Name = -pi,
+            PV = OpPi,
+            OPV = Pi
+        ;   mreal:get_intervals(Pid2,Ipd2),
+            (IV == Ipd2 ->
+                Name = pi/2.0,
+                PV = Pid2,
+                OPV = OpPid2
+            ;   mreal:get_intervals(OpPid2,Iopd2),
+                (IV == Iopd2 ->
+                    Name = -pi/2.0,
+                    PV = OpPid2,
+                    OPV = Pid2
+                ;   mreal:get_intervals(DPi,Idp),
+                    (IV == Idp ->
+                        Name = 2.0*pi,
+                        PV = DPi,
+                        OPV = OpDPi
+                    ;   mreal:get_intervals(OpDPi,IOdp),
+                        (IV == IOdp ->
+                            Name = -2.0*pi,
+                            PV = OpDPi,
+                            OPV = DPi
+                        ;   mreal:get_intervals(Pid4,Ipd4),
+                            (IV == Ipd4 ->
+                                Name = pi/4.0,
+                                PV = Pid4,
+                                OPV = OpPid4
+                            ;   mreal:get_intervals(OpPid4,Iopd4),
+                                (IV == Iopd4 ->
+                                    Name = -pi/4.0,
+                                    PV = OpPid4,
+                                    OPV = Pid4
+                                ;   mreal:get_intervals(TPid4,Itpid4),
+                                    (IV == Itpid4 ->
+                                        Name = 3.0/4.0*pi,
+                                        PV = TPid4,
+                                        OPV = OTPid4
+                                    ;   mreal:get_intervals(OTPid4,Iotpid4),
+                                        Name = -3.0/4.0*pi,
+                                        IV == Iotpid4,
+                                        PV = OTPid4,
+                                        OPV = TPid4))))))))).
+
+% pour interdire d'instancier une variable trigo par un rat
+:- local reference(trigo_no_rat).
+:- export trigo_no_rat/1.
+trigo_no_rat(A) :-
+    var(A),
+    !,
+    getval(trigo_no_rat,L),
+    (L \== 0 ->
+        (occurs(A,L) ->
+            true
+        ;   setval(trigo_no_rat,[A|L]))
+    ;   setval(trigo_no_rat,[A])).
+trigo_no_rat(A).
+
+:- export is_trigo_no_rat/1.
+is_trigo_no_rat(A) :-
+    var(A),
+    getval(trigo_no_rat,L)@colibri,
+    occurs(A,L).
+
+% sinus real
+sin_real(A,Sin) :-
+    get_priority(P),
+    set_priority(1),
+    no_simplex,
+    (exists_fact_periodic(sin,A,_,Res) ->
+        % on a un autre sin sur A
+        % factorisation
+        protected_unify(Sin,Res)
+    ;   real_vars(real,A),
+        set_intervals(real,Sin,[-1.0 .. 1.0]),
+        % invariant
+        % sin(A+k2pi) = sin(A)
+        sin_cos_tan_period(sin,A,NA,K,Sin,Stop),
+        (var(Stop) ->
+            trigo_no_rat(Sin),
+            real_vars_have_same_sign(NA,Sin),
+            sinr0(NA,Sin)
+        ;   true)),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+real_vars_have_same_sign(0.0,0.0) ?- !.
+real_vars_have_same_sign(A,B) :-
+    (((number(A) ->
+          A =\= 0.0
+      ;   true),
+      get_sign_real(A,SAB);
+      (number(B) ->
+          B =\= 0.0
+      ;   true),
+      get_sign_real(B,SAB))
+    ->
+        set_sign(real,A,SAB),
+        set_sign(real,B,SAB)
+    ;   suspensions(A,LS),
+        ((member(Susp,LS),
+          get_suspension_data(Susp,goal,real_vars_have_same_sign(AA,BB)),
+          (AA == A ->
+              BB == B
+          ;   AA == B,
+              BB == A))
+         ->
+            true
+        ;   my_suspend(real_vars_have_same_sign(A,B),0,(A,B)->suspend:constrained))).
+
+exists_fact_periodic(SCT,A,CNA,CRes) :-
+    get_cstr_suspensions(A,LS),
+    once (member(Susp,LS),
+          get_suspension_data(Susp,goal,fact_periodic(SCT,CA,CNA,CK,CKP,CRes)),
+          A == CA).
+        
+        
+sin_cos_tan_period(SCT,A,NA,K,Res,Stop) :-
+    trigo_no_rat(A),
+    trigo_no_rat(NA),
+    trigo_no_rat(KP),
+    trigo_no_rat(Res),
+    (((SCT == sin ->
+          inside_Pid2(A)
+      ;   SCT == cos,
+          inside_Pi(A)),
+      attached_suspensions(sin_val,LSusp),
+      member(Susp,LSusp),
+      get_suspension_data(Susp,goal,sin_cos_value(AA,Sin,Cos)),
+      once (Res == Sin;
+            Res == Cos),
+      (SCT == sin ->
+          inside_Pid2(AA)
+      ;   SCT == cos,
+          inside_Pi(AA)))
+    ->
+        protected_unify(A,AA),
+        protected_unify(A,NA),
+        protected_unify(K,0.0),
+        Stop = 1
+    ;   true),
+    (var(Stop) ->
+        set_lazy_domain(real,NA),
+        real_vars(real_int,K),
+        save_cstr_suspensions((A,NA,Res)),
+        get_saved_cstr_suspensions(LS),
+        (foreach((S,Goal),LS),
+         param(SCT,A,NA,K,Res,Stop) do
+            ((Goal = fact_periodic(CSCT,CA,CNA,CK,CKP,CRes),
+              (A == CA;
+               Res == CRes))
+            ->
+                ((A == CA,
+                  occurs(SCT,(sin,cos)),
+                  occurs(CSCT,(sin,cos)))
+                ->
+                    % on a un autre sin/cos sur A
+                    % meme periode, factorisation sur NA et K
+                    protected_unify(NA,CNA),
+                    protected_unify(K,CK),
+                    protected_unify(KP,CKP),
+                    (CSCT == SCT ->
+                        Stop = 1,
+                        protected_unify(Res,CRes)
+                    ;   true)
+                ;   ((SCT == tan,
+                      CSCT == SCT,
+                      (A == CA;
+                       Res == CRes))
+                    ->
+                        % tan,tan
+                        ((A == CA;
+                          (inside_Pid2(A),
+                           inside_Pid2(CA)))
+                        ->
+                            Stop = 1,
+                            protected_unify(A,CA),
+                            protected_unify(K,CK),
+                            protected_unify(K,0.0),
+                            protected_unify(Res,CRes)
+                        ;   protected_unify(NA,CNA),
+                            protected_unify(Res,CRes))
+                    ;   true))
+             ;   true))
+    ;   true),
+    (nonvar(Stop) ->
+        true
+    ;   real_vars(real,A),
+        real_vars(real_int,K),
+        set_lazy_domain(real,NA),
+        % periodicité: 
+        % sin et cos : sin(A+K*2pi) = sin(A)
+        % tan(A + pi) = tan(pi)
+        % pour forcer le plus grand K ?
+        mpis(DPi,_,Pi,OpPi,Pid2,OpPid2,_,_,_,_),
+        ((mreal:dvar_range(A,LA,HA),
+          (SCT \== tan ->
+              % sin, cos
+              VMin = OpPi,
+              VMax = Pi
+          ;   VMin = OpPid2,
+              VMax = Pid2),
+          mreal:dvar_range(VMax,_,Max),
+          mreal:dvar_range(VMin,Min,_),
+          LA >= Min,
+          HA =< Max)
+        ->
+            protected_unify(K,0.0),
+            protected_unify(KP,0.0),
+            protected_unify(A,NA),
+            (SCT == tan ->
+                true
+            ;   NStop = 1)
+        ;   true),
+        (nonvar(NStop) ->
+            true
+        ;   (SCT == tan ->
+                NMax = Pid2,
+                NOpMax = OpPid2,
+                set_lazy_domain(real,Res),
+                Period = Pi
+            ;   set_intervals(real,Res,[-1.0 .. 1.0]),
+                NMax = Pi,
+                NOpMax = OpPi,
+                Period = DPi),
+            launch_geq_real(real,NA,NOpMax),
+            launch_geq_real(real,NMax,NA),
+            mult_real(real,K,Period,KP),
+            add_real(real,NA,KP,A),
+            fact_periodic(SCT,A,NA,K,KP,Res))).
+
+
+/*
+fact_periodic(SCT,A,NA,K,KP,Res) :-
+    SCT == sin,
+    once (K == 0.0;
+          KP == 0.0),
+    !,
+    call_priority((protected_unify(A,NA),
+                   protected_unify(K,0.0),
+                   protected_unify(KP,0.0)),
+                  1).
+*/
+fact_periodic(SCT,A,NA,K,KP,Res) :-
+    get_priority(P),
+    set_priority(1),
+    trigo_no_rat(A),
+    trigo_no_rat(NA),
+    trigo_no_rat(KP),
+    trigo_no_rat(Res),
+    ((SCT == sin,
+      (A \== 0.0,
+       get_sign_real(A,SA);
+       NA \== 0.0,
+       get_sign_real(NA,SA);
+       Res \== 0.0,
+       get_sign_real(Res,SA)))
+    ->
+        set_sign(real,A,SA),
+        set_sign(real,NA,SA),
+        set_sign(real,Res,SA)
+    ;   true),
+    ((mreal:dvar_range(A,LA,HA),
+      mpis(_,_,Pi,OpPi,Pid2,OpPid2,_,_,_,_),
+      (SCT \== tan ->
+          % sin, cos
+          VMin = OpPi,
+          VMax = Pi
+      ;   VMin = OpPid2,
+          VMax = Pid2),
+      mreal:dvar_range(VMax,_,Max),
+      mreal:dvar_range(VMin,Min,_),
+      LA >= Min,
+      HA =< Max)
+    ->
+        protected_unify(K,0.0)
+    ;   true),
+    (K == 0.0 ->
+        protected_unify(A,NA),
+        protected_unify(KP,0.0)
+    ;   true),
+    ((SCT == tan; % trace pour atan
+      var(A),  % trace pour sin/cos si pas de sin_cos_value
+      not is_real_box(A))
+    ->
+        periodic_not_accurate(SCT,A,Res,Stop),
+        (nonvar(Stop) ->
+            protected_unify(K,0.0),
+            protected_unify(KP,0.0)
+        ;   Continue = 1),
+        (nonvar(Continue) ->
+            (exists_fact_periodic(SCT,A,CNA,CRes) ->
+                protected_unify(Res,CRes),
+                protected_unify(NA,CNA)
+            ;   my_suspend(fact_periodic(SCT,A,NA,K,KP,Res),0,(A,NA,K,KP,Res)->
+                              suspend:constrained))
+        ;   true)
+    ;   true),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+
+periodic_not_accurate(cos,A,Cos,Stop) ?- !,
+    % imprécision de cos
+    mreal:dvar_range(A,L,H),
+    ((L >= -1e-8,
+      H =< 1e-8)
+    ->
+        Stop = 1,
+        get_previous_float(real,1.0,L1),
+        get_next_float(real,1.0,H1),
+        set_intervals(real,Cos,[L1..H1])
+    ;   true).
+periodic_not_accurate(_,_,_,_Stop).
+
+sinr0(A,Sin) :-
+    % si A : -p1..0 -> sin(A) = -sin(-A)
+    % si A : 0..pi -> sin(A) = -sin(-A)
+    sinr(A,Sin).
+sinr(0.0,Sin) ?- !,
+    protected_unify(Sin,0.0).
+sinr(A,0.0) ?- !,
+    (A == 0.0 ->
+        true
+    ;   mreal:dvar_range(A,LA,HA),
+        mpis(_,_,Pi,OpPi,_,_,_,_,_,_),
+        mreal:get_intervals(Pi,IAp),
+        mreal:get_intervals(OpPi,IAn),
+        append(IAn,IAp,IA),
+        (exists_diff_Rel(A,0.0) -> 
+            set_intervals(real,A,IA),
+            %int_vars(bool,Bool),
+            set_intervals(int,Bool,[0,1]),
+            insert_dep_inst(inst_cstr(0,Bool)),
+            isNegative(real,A,Bool),
+            chk_nan_reif(Bool,(OpPi,true),(Pi,true),A)
+        ;   set_intervals(real,A,[0.0|IA]),
+            %int_vars(bool,Bool),
+            set_intervals(int,Bool,[0,1]),
+            insert_dep_inst(inst_cstr(0,Bool)),
+            isZero(real,A,Bool),
+            chk_nan_reif(Bool,
+                         (0.0,true),
+                         (A,
+                          (%int_vars(bool,Bool1),
+                           set_intervals(int,Bool1,[0,1]),
+                           insert_dep_inst(inst_cstr(0,Bool1)),
+                           isNegative(real,A,Bool1),
+                           chk_nan_reif(Bool1,(OpPi,true),(Pi,true),A))),
+                         A))).
+sinr(A,1.0) ?- !,
+    Pid2 is mpid2,
+    %mreal:get_intervals(Pid2,IA),
+    %set_intervals(real,A,IA).
+    protected_unify(A,Pid2).
+sinr(A,-1.0) ?- !,
+    OpPid2 is moppid2,
+    %mreal:get_intervals(OpPid2,IA),
+    %set_intervals(real,A,IA).
+    protected_unify(A,OpPid2).
+sinr(A,Sin) :- 
+    (number(A),
+     RA = A;
+     is_real_box_rat(A,RA)),
+    !,
+    sin_cos_val(RA,Sin,_).
+sinr(A,Sin) :-
+    is_real_box(A),
+    mpis(_,_,Pi,OpPi,Pid2,OpPid2,Pid4,_,TPid4,OpTPid4),
+    mreal:get_intervals(A,IA),
+    mreal:get_intervals(Pi,IPi),
+    mreal:get_intervals(OpPi,IOpPi),
+    ((IA == IPi,
+      NA = Pi;
+      IA == IOpPi,
+      NA = OpPi)
+    ->
+        !,
+        protected_unify(A,NA),
+        protected_unify(Sin,0.0)
+    ;   mreal:get_intervals(Pid2,IPid2),
+        (IA == IPid2 ->
+            !,
+            protected_unify(A,Pid2),
+            protected_unify(Sin,1.0)
+        ;   mreal:get_intervals(OpPid2,IOpPid2),
+            (IA == IOpPid2 ->
+                !,
+                protected_unify(A,OpPid2),
+                protected_unify(Sin,-1.0)
+            ;   mreal:get_intervals(Pid4,IPid4),
+                (IA == IPid4 ->
+                    !,
+                    sin_cos_val(A,Sin,Sin)
+                ;   mreal:get_intervals(OpTPid4,IOTPd4),
+                    IA == IOTPd4,
+                    !,
+                    sin_cos_val(A,Sin,Sin))))).
+sinr(A,Sin) :-
+    get_priority(P),
+    set_priority(1),
+    save_cstr_suspensions((A,Sin)),
+    ((get_sign_real(A,SA);
+      get_sign_real(Sin,SA))
+    ->
+        set_sign(real,A,SA),
+        set_sign(real,Sin,SA),
+        (SA == pos ->
+            % 0 .. A .. pi
+            mpi(Pi),
+            geq_real(real,A,0.0),
+            geq_real(real,Pi,A)
+        ;   % neg: -pi .. A .. 0
+            moppi(OpPi),
+            geq_real(real,A,OpPi),
+            geq_real(real,0.0,A))
+    ;   true),
+    (A == Sin ->
+        set_intervals(real,A,[-2.1498999999999986e-8..2.1498999999999986e-8])
+    ;   true),
+    (inside_Pid2(A) ->
+        InPid2 = 1
+    ;   true),
+    (nonvar(InPid2) ->
+        attached_suspensions(sin_val,LS),
+        ((member(SV,LS),
+          get_suspension_data(SV,goal,sin_cos_value(AA0,SA0,_)),
+          Sin == SA0,
+          inside_Pid2(AA0))
+        ->
+            protected_unify(A,AA0)
+        ;   true)
+    ;   true),
+    get_saved_cstr_suspensions(LSusp),
+    (foreach((S,Goal),LSusp),
+     param(A,Sin,InPid2,SeqC) do
+        ((Goal = sinr(AA,SA),
+          (A == AA;
+           nonvar(InPid2),
+           inside_Pid2(AA),
+           Sin == SA))
+        ->
+            % factorisation
+            kill_suspension(S),
+            protected_unify(A,AA),
+            protected_unify(Sin,SA)
+        ;   ((Goal = cosr(AA,Cos),
+              Cos == Sin)
+            ->
+                ((A == AA,
+                  get_sign_real(A,pos))
+                ->
+                    % A pos
+                    SeqC = 1,
+                    mpid4(Pid4),
+                    protected_unify(A,Pid4)
+                ;   ((get_sign_real(A,neg),
+                      is_op_real(real,A,OpA),
+                      AA == OpA)
+                    ->
+                        % A neg: -3*pi/4
+                        SeqC = 1,
+                        moptpid4(OpTPid4),
+                        protected_unify(A,OpTPid4)
+                    ;   true))
+            ;   true))),
+    (nonvar(SeqC) ->
+        trigo_no_rat(A),
+        protected_unify(Sin,Cos),
+        sin_cos_val(A,Sin,Cos)
+    ;   sinr_rec(A,Sin),
+        sin_cos_ineqs(sin,A,Sin),
+        (number(A) ->
+            sin_cos_val(A,Sin,Cos)
+        ;   my_suspend(sinr(A,Sin),5,(A,Sin)->suspend:constrained))),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+inside_Pid2(Var) :-
+    mpid2(Pid2),
+    mreal:dvar_range(Pid2,_,H),
+    OpH is -H,
+    mreal:dvar_range(Var,LA,HA),
+    OpH =< LA,
+    H >= HA.
+inside_Pi(Var) :-
+    mpi(Pi),
+    mreal:dvar_range(Pi,_,H),
+    OpH is -H,
+    mreal:dvar_range(Var,LA,HA),
+    OpH =< LA,
+    H >= HA.
+
+%sin_cos_ineqs(_,A,B) ?- !.
+
+sin_cos_ineqs(sin,A,A) ?- !. % deja traite
+sin_cos_ineqs(sin,A,Sin) :-
+    % A = Sin sur -2.1498999999999986e-8 .. 2.1498999999999986e-8
+    mreal:dvar_range(A,LA,HA),
+    % sur 0..pid2 -> 0..1, Rel = >=
+    % sur pid2..pi -> 1..0, Rel = >
+    % donc 0+..pi -> Rel = > (= autour de 0)
+    
+    % sur -pi..-pid2 -> 0..-1, Rel = <
+    % sur -pid2..0 -> -1..0, Rel = =<
+    % donc -pi..-0 -> Rel = < (= autour de 0)
+    
+    (LA >= 0.0 ->
+        (LA > 2.1498999999999986e-8 ->
+            Rel = '>'
+        ;   Rel = '>='),
+        launch_real_ineq(Rel,real,A,Sin)
+    ;   (HA =< 0.0 ->
+            (HA < -2.1498999999999986e-8 ->
+                Rel = '<'
+            ;   Rel = '=<'),
+            launch_real_ineq(Rel,real,A,Sin)
+        ;   true)).
+sin_cos_ineqs(cos,A,A) ?- !. % deja traite
+sin_cos_ineqs(cos,A,Cos) :-
+    % on est sur 0..pi
+    % A = Cos sur 0.73908513321516056 .. 0.73908513321516067
+    % sur pi/2..pi, décroissant -> 0..-1 Cos < A, Rel = '>'
+    % sur 0..pi/2 -> 1..0, 
+    %   Rel = '=<' jusqu'a 0.73908513321516067, '>=' après
+    mreal:dvar_range(A,LA,HA),
+    Pid2 is pi/2.0,
+    (LA >= Pid2 ->
+        launch_real_ineq(>=,real,A,Cos)
+    ;   (HA =< Pid2 ->
+            (HA =< 0.73908513321516067 ->
+                launch_real_ineq(>=,real,Cos,A)
+            ;   (LA >= 0.73908513321516067 ->
+                    launch_real_ineq(>=,real,A,Cos)
+                ;   true))
+        ;   true)).
+                    
+sin_cos_val(Val,Sin,Cos) :-
+    get_priority(P),
+    set_priority(1),
+    sin_cos_val0(Val,Sin,Cos),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+sin_cos_val0(0.0,Sin,Cos) ?- !,
+    protected_unify(Sin,0.0),
+    protected_unify(Cos,1.0).
+sin_cos_val0(Val,Sin,Cos) :-
+    nonvar(Val),
+    mpis(_,_,Pi,OpPi,Pid2,OpPid2,_,_,_,_),
+    mreal:get_intervals(Pi,Ip),
+    mreal:get_intervals(OpPi,Iop),
+    ((mreal:in_interval(Ip,Val);
+      mreal:in_interval(Iop,Val))
+    ->
+        !,
+        protected_unify(Sin,0.0),
+        protected_unify(Cos,-1.0)
+    ;   mreal:get_intervals(Pid2,Ipd2),
+        (mreal:in_interval(Ipd2,Val) ->
+            !,
+            protected_unify(Sin,1.0),
+            protected_unify(Cos,0.0)
+        ;   mreal:get_intervals(OpPid2,Iopd2),
+            mreal:in_interval(Iopd2,Val),
+            !,
+            protected_unify(Sin,-1.0),
+            protected_unify(Cos,0.0))).
+sin_cos_val0(A,Sin,Cos) :-
+    attached_suspensions(sin_val,LS),
+    ((member(Susp,LS),
+      get_suspension_data(Susp,goal,sin_cos_value(AA,SA,CA)),
+      A == AA)
+    ->
+        protected_unify(Sin,SA),
+        protected_unify(Cos,CA)
+    ;   real_vars(real,(VS,VC)),
+        set_intervals(real,VS,[-1.0 .. 1.0]),
+        set_intervals(real,VC,[-1.0 .. 1.0]),
+        ((is_real_box(A),
+          Sin == Cos)
+        ->
+            sin_cos_pid4(Sin),
+            protected_unify(Sin,VS),
+            protected_unify(VS,VC)
+        ;   sin(A,S),
+            get_previous_float(real,S,PS),
+            get_next_float(real,S,NS),
+            set_intervals(real,VS,[PS..NS]),
+            protected_unify(Sin,VS),
+            (A == S ->
+                % A <> 0, imprécision de sin autour de 0
+                launch_box_prio(Sin,_)
+            ;   true),
+            cos(A,C),
+            get_previous_float(real,C,PC),
+            get_next_float(real,C,NC),
+            set_intervals(real,VC,[PC..NC]),
+            protected_unify(Cos,VC)),
+        trigo_no_rat(A),
+        trigo_no_rat(VS),
+        trigo_no_rat(VC),
+        sin_cos_value(A,VS,VC)).
+
+sin_cos_pid4(SC) :-
+    % +/-sqrt(2)/2
+    (get_sign_real(SC,neg) ->
+        ISC = [-0.70710678118654757 .. -0.70710678118654746]
+    ;   ISC = [0.70710678118654746 .. 0.70710678118654757]),
+    set_intervals(real,SC,ISC),
+    trigo_no_rat(SC),
+    launch_box_prio(SC,_).
+
+sin_cos_value(A,VS,VC) :-
+    mreal:dvar_range(VS,LS,HS),
+    (get_next_float(real,LS,HS) ->
+        launch_box_prio(VS,_)
+    ;   true),
+    mreal:dvar_range(VC,LC,HC),
+    (get_next_float(real,LC,HC) ->
+        launch_box_prio(VC,_)
+    ;   true),
+    my_suspend(sin_cos_value(A,VS,VC),0,[(A,VS,VC)->suspend:constrained,trigger(sin_val)]).
+
+    
+is_sin_cos_value(Var) :-
+    is_real_box(Var),
+    mpis(DPi,OpDPi,Pi,OpPi,Pid2,OpPid2,Pid4,OpPid4,TPid4,OTPid4),
+    mreal:get_intervals(Var,IV),
+    mreal:get_intervals(DPi,Idp),
+    mreal:get_intervals(OpDPi,Iodp),
+    mreal:get_intervals(Pi,Ip),
+    mreal:get_intervals(OpPi,Iop),
+    mreal:get_intervals(Pid2,Ipd2),
+    mreal:get_intervals(OpPid2,Iopd2),
+    mreal:get_intervals(Pid4,Ipd4),
+    mreal:get_intervals(OpPid4,Iopd4),
+    mreal:get_intervals(TPid4,Itpd4),
+    mreal:get_intervals(OTPid4,Iotpd4),
+    (member(IV,[Idp,Iodp,Ip,Iop,Ipd2,Iopd2,Ipd4,Iopd4,Itpd4,Iotpd4]) ->
+        true
+    ;   is_trigo_no_rat(Var)).
+
+
+sin_val_min(0.0,Res) ?- !,
+    Res = 0.0.
+sin_val_min(A,Res) :-
+    abs(A,AA),
+    (AA =:= pi ->
+        Res = 0.0
+    ;   (A =:= pi/2 ->
+            Res = 1.0
+        ;   (A =:= -pi/2 ->
+                Res = -1.0
+            ;   sin(A,S),
+                get_previous_float(real,S,Res)))).
+sin_val_max(0.0,Res) ?- !,
+    Res = 0.0.
+sin_val_max(A,Res) :-
+    abs(A,AA),
+    (AA =:= pi ->
+        Res = 0.0
+    ;   (A =:= pi/2 ->
+            Res = 1.0
+        ;   (A =:= -pi/2 ->
+                Res = -1.0
+            ;   sin(A,S),
+                get_next_float(real,S,Res)))).
+
+asin_val_min(A,Min) :-
+    asin(A,S),
+    get_previous_float(real,S,Min).
+asin_val_max(A,Max) :-
+    asin(A,S),
+    get_next_float(real,S,Max).
+
+sinr_rec(A,Sin) :-
+    Pid2 is pi/2.0,
+    OpPid2 is - Pid2,
+    sinr_rec0(A,Pid2,OpPid2,Sin).
+
+sinr_rec0(A,Pid2,OpPid2,Sin) :-
+    mreal:get_intervals(A,As),
+    mreal:get_intervals(Sin,Sins),
+    sin_intervals(As,Pid2,OpPid2,Sins0),
+    (is_real_box(Sin) ->
+        list_to_intervals(real,Sins0,IS0),
+        check_intervals_intersection(IS0,Sins)
+    ;   set_intervals(real,Sin,Sins0)),
+    mreal:get_intervals(Sin,NSins),
+    
+    asin_intervals0(NSins,As1),
+    (is_real_box(A)->
+        list_to_intervals(real,As1,IAs1),
+        check_intervals_intersection(IAs1,As)
+    ;   set_intervals(real,A,As1)),
+    mreal:get_intervals(A,NAs),
+    ((As == NAs,
+      Sins == NSins)
+    ->
+        true
+    ;   sinr_rec0(A,Pid2,OpPid2,Sin)).
+
+sin_intervals(LI,NLI) :-
+    Pid2 is mpid2,
+    OpPid2 is - Pid2,
+    sin_intervals(LI,Pid2,OpPid2,NLI).
+
+sin_intervals([],_,_,[]).
+sin_intervals([I|LI],Pid2,OpPid2,NewLI) :-
+    min_max_inter(I,L,H),
+    (L < OpPid2 ->
+        (H =< OpPid2 ->
+            % -pi..-pi/2 on est décroissant
+            sin_val_max(L,NH),
+            sin_val_min(H,NL),
+            NLI = LI,
+            NewLI = [NL..NH|ENewLI]
+        ;   (H =< 0.0 ->
+                % -pi..0 -> -pi..-pi/2 U -pi/2..0
+                NLI = [L..OpPid2,OpPid2..H|LI],
+                NewLI = ENewLI
+            ;   (H =< pi/2 ->
+                    % -pi..pi/2 -> -pi..-pi/2 U -pi/2..pi/2
+                    NLI = [L..OpPid2,OpPid2..H|LI],
+                    NewLI = ENewLI
+                ;   % -pi..pi -> -pi..-pi/2 U -pi/2..pi/2 U pi/2..pi
+                    NLI = [L..OpPid2,OpPid2..Pid2, Pid2..H|LI],
+                    NewLI = ENewLI)))
+    ;   % L >= OpPid2 
+        (H =< Pid2 ->
+            % -pi/2..pi/2 on est croissant
+            sin_val_min(L,NL),
+            sin_val_max(H,NH),
+            NLI = LI,
+            NewLI = [NL..NH|ENewLI]
+        ;   (L >= Pid2 ->
+                % pi/2..pi on est décroissant
+                sin_val_max(L,NH),
+                sin_val_min(H,NL),
+                NLI = LI,
+                NewLI = [NL..NH|ENewLI]
+            ;   % -pi/2..pi -> 0..pi/2 U pi/2..pi
+                NLI = [L..Pid2,Pid2..H|LI],
+                NewLI = ENewLI))),
+    sin_intervals(NLI,Pid2,OpPid2,ENewLI).
+
+asin_intervals0([],[]).
+asin_intervals0([I|LI],NLI) :-
+    Pid2 is pi/2,
+    Pi is pi,
+    min_max_inter(I,L,H),
+    (H =< 0.0 ->
+        % on est dans -1 .. 0 donc asin dans -pi/2 .. 0 U -pi .. -pi/2
+        % [asin(L)..asin(H)] U [-pi-asin(H) .. -pi/2-asin(L)]
+        asin_val_min(L,AL),
+        asin_val_max(H,AH),
+        % AL..AH dans -pi/2 ..0, symétrie autour de -pi/2
+        NAH0 is -Pi - AL,
+        NAL0 is -Pi - AH,
+        get_previous_float(real,NAL0,NAL),
+        get_next_float(real,NAH0,NAH),
+        append([AL..AH,NAL..NAH],ENLI,NLI),
+        asin_intervals0(LI,ENLI)
+    ;   (L >= 0.0 ->
+            % [asin(L)..asin(H)] U [pi-asin(H) .. pi-asin(L)]
+            asin_val_min(L,AL),
+            asin_val_max(H,AH),
+            NAH1 is Pi - AL,
+            NAL1 is Pi - AH,
+            get_previous_float(real,NAL1,NAL),
+            get_next_float(real,NAH1,NAH),
+            append([AL..AH,NAL..NAH],ENLI,NLI),
+            asin_intervals0(LI,ENLI)
+        ;   asin_intervals0([L..0.0,0.0..H|LI],NLI))).
+            
+
+cosr(0.0,Cos) ?- !,
+    protected_unify(Cos,1.0).
+cosr(A,0.0) ?- !,
+    mpis(_,_,_,_,Pid2,OpPid2,_,_,_,_),
+    mreal:get_intervals(Pid2,I1),
+    mreal:get_intervals(OpPid2,I2),
+    append(I2,I1,IA),
+    set_intervals(real,A,IA),
+    %int_vars(bool,Bool),
+    set_intervals(int,Bool,[0,1]),
+    insert_dep_inst(inst_cstr(0,Bool)),
+    isNegative(real,A,Bool),
+    chk_nan_reif(Bool,(OpPid2,true),(Pid2,true),A).
+
+cosr(A,1.0) ?- !,
+    protected_unify(A,0.0).
+cosr(A,-1.0) ?- !,
+    mpis(_,_,Pi,OpPi,_,_,_,_,_,_),
+    mreal:get_intervals(Pi,I1),
+    mreal:get_intervals(OpPi,I2),
+    append(I2,I1,IA),
+    set_intervals(real,A,IA),
+    %int_vars(bool,Bool),
+    set_intervals(int,Bool,[0,1]),
+    insert_dep_inst(inst_cstr(0,Bool)),
+    isNegative(real,A,Bool),
+    chk_nan_reif(Bool,(OpPi,true),(Pi,true),A).
+
+cosr(A,Cos) :- 
+    (number(A),
+     RA = A;
+     is_real_box_rat(A,RA)),
+    !,
+    sin_cos_val(RA,_,Cos).
+cosr(A,Cos) :-
+    is_real_box(A),
+    mpis(_,_,Pi,OpPi,Pid2,OpPid2,_,_,_,_),
+    mreal:get_intervals(A,IA),
+    mreal:get_intervals(Pid2,IPid2),
+    mreal:get_intervals(OpPid2,IOpPid2),
+    ((IA == IPid2,
+      NA = Pid2;
+      IA == IOpPid2,
+      NA = OpPid2)
+    ->
+        !,
+        protected_unify(A,NA),
+        protected_unify(Cos,0.0)
+    ;   mreal:get_intervals(Pi,IPi),
+        mreal:get_intervals(OpPi,IOpPi),
+        once (IA == IPi,
+              NA = Pi;
+              IA == IOpPi,
+              NA = OpPi),
+        !,
+        protected_unify(A,NA),
+        protected_unify(Cos,-1.0)).
+cosr(A,Cos) :-
+    get_priority(P),
+    set_priority(1),
+    % cos(-A) = cos(A), passage dans 0..pi
+    (get_sign_real(A,SA) ->
+        % si fail on passe aux cas suivants
+        set_priority(P),
+        SA == neg,
+        !,
+        op_real(real,A,OpA),
+        trigo_no_rat(A),
+        trigo_no_rat(OpA),
+        cosr(OpA,Cos)
+    ;   !,
+        save_cstr_suspensions(A),
+        get_saved_cstr_suspensions(LSusp),
+        ((member((Susp,cosr(AA,CC)),LSusp),
+          A == AA)
+        ->
+            set_priority(P),
+            protected_unify(Cos,CC)
+        ;   %int_vars(bool,Bool),
+            set_intervals(int,Bool,[0,1]),
+            insert_dep_inst(inst_cstr(0,Bool)),
+            % pour forcer le signe, pos en priorite au labeling
+            isNegative(real,A,Bool),
+            (nonvar(Bool) ->
+                set_priority(P),
+                (Bool == 0 ->
+                    % pos
+                    set_sign(real,A,pos)
+                ;   % neg
+                    set_sign(real,A,neg)),
+                cosr(A,Cos)
+            ;   set_priority(P),
+                my_suspend(cosr(A,Cos),3,(A,Cos,Bool)->suspend:constrained)))).
+cosr(A,Cos) :-
+    get_priority(P),
+    set_priority(1),
+    save_cstr_suspensions((A,Cos)),
+    get_saved_cstr_suspensions(LSusp),
+    % 0 .. A .. pi,
+    % si A =< pi/2 alors Cos >= 0
+    % sinon Cos =< 0
+    mpid2(Pid2),
+    (get_sign_real(Cos,SC) ->
+        % A pos
+        (SC == neg ->
+            % pi/2 .. A .. pi
+            launch_geq_real(real,A,Pid2)
+        ;   % pos: 0 .. A .. pi/2
+            launch_geq_real(real,Pid2,A))
+    ;   true),
+    (exists_diff_Rel(Cos,0.0) ->
+        launch_diff_real(real,A,Pid2)
+    ;   true),
+    (A == Cos ->
+        set_intervals(real,A,[0.73908513321516056 .. 0.73908513321516067])
+    ;   true),
+    % si on a un sin_cos_value(AA,SS,Cos) avec A et AA pos
+    % on peut factoriser !!!
+    attached_suspensions(sin_val,LS),
+    ((member(S,LS),
+      get_suspension_data(S,goal,sin_cos_value(AA,SS,CC)),
+      get_sign_real(AA,pos),
+      CC == Cos)
+    ->
+        Stop = 1,
+        protected_unify(A,AA)
+    ;   (foreach((S,Goal),LSusp),
+         param(A,Cos,SeqC,Stop) do
+            ((Goal = cosr(AA,CA),
+              (A == AA;
+               var(Cos),
+               % entre 0 et pi c'est bon
+               Cos == CA))
+            ->
+                % factorisation
+                kill_suspension(S),
+                protected_unify(A,AA),
+                protected_unify(Cos,CA)
+            ;   ((Goal = sinr(AA,Sin),
+                  Cos == Sin)
+                ->
+                    (A == AA ->
+                        % A pos
+                        SeqC = 1,
+                        mpid4(Pid4),
+                        protected_unify(A,Pid4)
+                    ;   ((get_sign_real(AA,neg),
+                          is_op_real(real,A,OpA),
+                          AA == OpA)
+                        ->
+                            % AA neg donc A: 3*pi/4
+                            SeqC = 1,
+                            mtpid4(TPid4),
+                            protected_unify(A,TPid4)
+                        ;   true))
+                ;   ((Goal = sin_cos_value(AA,SA,CA),
+                      SA == CA,
+                      (A == AA;
+                       is_mpi_var(A,PosA,NegA,_),
+                       AA == NegA))
+                    ->
+                        Stop = 1,
+                        protected_unify(Cos,CA)
+                    ;   true))))),
+    (nonvar(Stop) ->
+        true
+    ;   (nonvar(SeqC) ->
+            trigo_no_rat(A),
+            protected_unify(Sin,Cos),
+            sin_cos_val(A,Sin,Cos)
+        ;   cosr_rec(A,Cos),
+            sin_cos_ineqs(cos,A,Cos),
+            (number(A) ->
+                sin_cos_val(A,Sin,Cos)
+            ;   my_suspend(cosr(A,Cos),5,(A,Cos)->suspend:constrained)))),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+cos_val_min(0.0,Res) ?- !,
+    Res = 1.0.
+cos_val_min(A,Res) :-
+    abs(A,AA),
+    (AA =:= pi ->
+        Res = -1.0
+    ;   (AA =:= pi/2 ->
+            Res = 0.0
+        ;   cos(A,S),
+            get_previous_float(real,S,Res))).
+cos_val_max(0.0,Res) ?- !,
+    Res = 1.0.
+cos_val_max(A,Res) :-
+    abs(A,AA),
+    (AA =:= pi ->
+        Res = -1.0
+    ;   (AA =:= pi/2 ->
+            Res = 0.0
+        ;   cos(A,S),
+            get_next_float(real,S,Res))).
+
+acos_val_min(A,Min) :-
+    acos(A,S),
+    get_previous_float(real,S,Min).
+acos_val_max(A,Max) :-
+    acos(A,S),
+    get_next_float(real,S,Max).
+
+cosr_rec(A,Cos) :-
+    mreal:get_intervals(A,As),
+    mreal:get_intervals(Cos,Coss),
+    
+    cos_intervals(As,Coss0),
+    (is_real_box(Cos) ->
+        list_to_intervals(real,Coss0,IC),
+        check_intervals_intersection(IC,Coss)
+    ;   set_intervals(real,Cos,Coss0)),
+    mreal:get_intervals(Cos,NCoss),
+    
+    inv_acos_intervals(NCoss,Ac1),
+    (is_real_box(A) ->
+        list_to_intervals(real,Ac1,IA1),
+        check_intervals_intersection(IA1,As)
+    ;   set_intervals(real,A,Ac1)),
+    mreal:get_intervals(A,NAs),
+    ((As == NAs,
+      Coss == NCoss)
+    ->
+        true
+    ;   cosr_rec(A,Cos)).
+
+% on est dans 0..pi: cos décroissant
+cos_intervals([],[]).
+cos_intervals([I|LI],NLI) :-
+    min_max_inter(I,L,H),
+    cos_val_max(L,NH),
+    cos_val_min(H,NL),
+    NLI = [NL..NH|ENLI],
+    cos_intervals(LI,ENLI).
+
+% on vient de 0..pi et on est dans -1..1
+% décroissant sur 0 .. pi
+inv_acos_intervals([],[]).
+inv_acos_intervals([I|LI],NLI) :-
+    min_max_inter(I,L,H),
+    acos_val_min(H,NL),
+    acos_val_max(L,NH),
+    NLI = [NL..NH|ENLI],
+    inv_acos_intervals(LI,ENLI).
+
+
+cos_real(A,Cos) :-
+    get_priority(P),
+    set_priority(1),
+    no_simplex,
+    (exists_fact_periodic(cos,A,_,Res) ->
+        % on a un autre cos sur A
+        % factorisation
+        protected_unify(Cos,Res)
+    ;   real_vars(real,A),
+        set_intervals(real,Cos,[-1.0 .. 1.0]),
+        sin_cos_tan_period(cos,A,NA,_,Cos,Stop),
+        (var(Stop) ->
+            trigo_no_rat(Cos),
+            cosr(NA,Cos)
+        ;   true)),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+
+tan_real(A,Tan) :-
+    (exists_fact_periodic(tan,A,_,Res) ->
+        protected_unify(Tan,Res)
+    ;   real_vars(real,(A,Tan)),
+        trigo_no_rat(A),
+        trigo_no_rat(Tan),
+
+        cos_real(A,Cos),
+        ((exists_diff_Rel(Cos,0.0),
+          exists_diff_Rel(Tan,0.0))
+        ->
+            launch_diff_real(real,A,0.0)
+        ;   true),
+
+        ((number(Tan),
+          exists_diff_Rel(Cos,0.0),
+          occurs(Tan,(-1.0,0.0,1.0)))
+        ->
+            (Tan == -1.0 ->
+                Goal = (op_real(real,Sin,OpSin),protected_unify(OpSin,Cos),sin_real(A,Sin))
+            ;   (Tan == 0.0 ->
+                    Goal = (protected_unify(Sin,0.0),sin_real(A,Sin))
+                ;   % Tan == 1.0
+                    Goal = (protected_unify(Sin,Cos),sin_real(A,Sin)))),
+            call(Goal)
+        ;   set_intervals(int,Bool,[0,1]),
+            (as(Cos,real) $= as(0.0,real)) #= as(Bool,bool),
+            tan_real(Bool,A,Cos,Tan))).
+
+tan_real(1,A,_,Tan) ?- !,
+    as(Tan,real) $= as(uninterp(tan(as(A,real))),real).
+tan_real(0,A,Cos,Tan) ?- !,
+    get_priority(P),
+    set_priority(1),
+    ((number(Tan),
+      exists_diff_Rel(Cos,0.0),
+      occurs(Tan,(-1.0,0.0,1.0)))
+    ->
+        (Tan == -1.0 ->
+            Goal = (op_real(real,Sin,OpSin),protected_unify(OpSin,Cos),sin_real(A,Sin))
+        ;   (Tan == 0.0 ->
+                Goal = (protected_unify(Sin,0.0),sin_real(A,Sin))
+            ;   % Tan == 1.0
+                Goal = (protected_unify(Sin,Cos),sin_real(A,Sin)))),
+        call(Goal)
+    ;   sin_cos_tan_period(tan,A,NA,K,Tan,Stop),
+        (nonvar(Stop) ->
+            true
+        ;   (A == Tan ->
+                protected_unify(NA,0.0)
+            ;   sin_real(NA,Sin),
+                cos_real(NA,Cos),
+                div_real(real,Sin,Cos,Tan)))),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+tan_real(Bool,A,Cos,Tan) :-
+    my_suspend(tan_real(Bool,A,Cos,Tan),0,Bool->suspend:inst).
+
+
+% Versions naives de asin/acos/atan
+% pas définies partout danger !!!
+asin_real(Sin,A) :-
+    real_vars(real,(Sin,A)),
+    set_intervals(int,B,[0,1]),
+    insert_dep_inst(inst_cstr(0,B)),
+    ((as(Sin,real) $< as(-1.0,real)) or 
+     (as(Sin,real) $> as(1.0,real))) #=
+    not(as(B,bool)),
+    asin_real(B,Sin,A).
+asin_real(0,Sin,A) ?- !,
+    as(Sin,real) $= uninterp(asin(as(A,real))).
+asin_real(1,Sin,A) ?- !,
+    trigo_no_rat(A),
+    trigo_no_rat(Sin),
+    % inversible vers -pi/2..pi/2
+    mpid2(Pid2),
+    mreal:dvar_range(Pid2,_,Max),
+    Min is - Max,
+    set_intervals(real,A,[Min..Max]),
+    asin_intervals(Sin,A),
+    sin_real(A,Sin).
+asin_real(B,Sin,A) :-
+    my_suspend(asin_real(B,Sin,A),0,B->my_suspend:inst).
+
+asin_intervals(Sin,A) :-
+    mreal:get_intervals(Sin,ISs),
+    asin_intervals0(ISs,IAs),
+    set_intervals(real,A,IAs).
+
+
+acos_real(Cos,A) :-
+    real_vars(real,(Cos,A)),
+    set_intervals(int,B,[0,1]),
+    insert_dep_inst(inst_cstr(0,B)),
+    ((as(Cos,real) $< as(-1.0,real)) or 
+     (as(Cos,real) $> as(1.0,real))) #=
+    not(as(B,bool)),
+    acos_real(B,Cos,A).
+
+acos_real(0,Cos,A) ?- !,
+    as(Cos,real) $= uninterp(acos(as(A,real))).
+acos_real(1,Cos,A) ?- !,
+    get_priority(P),
+    set_priority(1),
+    trigo_no_rat(A),
+    trigo_no_rat(Cos),
+    % inversible vers 0..pi
+    mpi(Pi),
+    launch_geq_real(real,A,0.0),
+    launch_geq_real(real,Pi,A),
+    acos_intervals(Cos,A),
+    % si on a un cosr/sin_cos_value sur Cos avec
+    % un AA dans 0..pi alors A = AA
+    get_cstr_suspensions(Cos,LS),
+    ((member(S,LS),
+      get_suspension_data(S,goal,G),
+      (G = cosr(_,AA,CC);
+       G = cosr(AA,CC)),
+      Cos == CC,
+      inside_0Pi(AA))
+    ->
+        protected_unify(A,AA)
+    ;   attached_suspensions(sin_val,NLS),
+        ((member(NS,NLS),
+          get_suspension_data(NS,goal,sin_cos_value(AA,_,CC)),
+          Cos == CC,
+          inside_0Pi(AA))
+        ->
+            protected_unify(A,AA)
+        ;   cos_real(A,Cos))),
+    set_priority(P),
+    wake_if_other_scheduled(P).
+acos_real(B,Cos,A) :-
+    my_suspend(acos_real(B,Cos,A),0,B->my_suspend:inst).
+
+inside_0Pi(V) :-
+    mpi(Pi),
+    mreal:dvar_range(V,L,H),
+    mreal:dvar_range(Pi,_,PM),
+    0.0 =< L,
+    PM >= H.
+
+acos_intervals(Cos,A) :-
+    mreal:get_intervals(Cos,ICs),
+    inv_acos_intervals(ICs,PIAs),
+    op_real_intervals(real,PIAs,0.0,[],NIAs),
+    append(NIAs,PIAs,IAs),
+    set_intervals(real,A,IAs).
+
+
+atan_real(Tan,A) :-
+    real_vars(real,(Tan,A)),
+    trigo_no_rat(Tan),
+    trigo_no_rat(A),
+    % inversible vers ]-pi/2..pi/2[
+    ((get_sign_real(Tan,S);
+      get_sign_real(A,S))
+    ->
+        set_sign(real,Tan,S),
+        set_sign(real,A,S)
+    ;   true),
+    moppid2(OpPid2),
+    mpid2(Pid2),
+    gt_real(real,A,OpPid2),
+    gt_real(real,Pid2,A),
+    atan_intervals(Tan,A),
+    tan_real(A,Tan).
+
+atan_intervals(Tan,A) :-
+    mreal:get_intervals(Tan,ITs),
+    (foreach(IT,ITs),
+     foreach(IA,IAs) do
+        (IT = L..H ->
+            atan(L,L0),
+            atan(H,H0)
+        ;   atan(IT,L0),
+            H0 = L0),
+        get_previous_float(real,L0,LA),
+        get_next_float(real,H0,HA),
+        IA = LA..HA),
+    set_intervals(real,A,IAs).
\ No newline at end of file
diff --git a/UnitTests/sat/ALL/acosP_1_sat.smt2 b/UnitTests/sat/ALL/acosP_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4c58a96f24ad893cf8332f07a066992534bec185
--- /dev/null
+++ b/UnitTests/sat/ALL/acosP_1_sat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) 1.0))
+(check-sat)
diff --git a/UnitTests/sat/ALL/acos_0_sat.smt2 b/UnitTests/sat/ALL/acos_0_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..831c60f1e7b5bb2b9a97ee6ecc838664636d8848
--- /dev/null
+++ b/UnitTests/sat/ALL/acos_0_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) (/ pi 2.0)))
+(check-sat)
+(get-value (X (/ pi 2.0)))
diff --git a/UnitTests/sat/ALL/acos_1_sat.smt2 b/UnitTests/sat/ALL/acos_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..68068cb5db692f990bddce4dbae992cf7ad13c62
--- /dev/null
+++ b/UnitTests/sat/ALL/acos_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) 0.0))
+(check-sat)
+(get-value (X))
diff --git a/UnitTests/sat/ALL/acos_m1_sat.smt2 b/UnitTests/sat/ALL/acos_m1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..457c55266b76eda491e2346bfee0846d1adca0cb
--- /dev/null
+++ b/UnitTests/sat/ALL/acos_m1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) pi))
+(check-sat)
+(get-value (X pi))
diff --git a/UnitTests/sat/ALL/asinN_m1_sat.smt2 b/UnitTests/sat/ALL/asinN_m1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..24e1a0667158ad9078c87029f87ae4fd3f738fc6
--- /dev/null
+++ b/UnitTests/sat/ALL/asinN_m1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (<= (- 1.0) X) (<= X 0.0)))
+(assert (= (colibri_asin X) (- (/ pi 2.0))))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (colibri_asin X)))
diff --git a/UnitTests/sat/ALL/asinP_1_sat.smt2 b/UnitTests/sat/ALL/asinP_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..05eecd465207dc1962dc5d977945673238552a0f
--- /dev/null
+++ b/UnitTests/sat/ALL/asinP_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (< 0.0 X) (<= X 1.0)))
+(assert (= (colibri_asin X) (/ pi 2.0)))
+(check-sat)
+(get-value (X (/ pi 2.0) (colibri_asin X)))
diff --git a/UnitTests/sat/ALL/asinZ_sat.smt2 b/UnitTests/sat/ALL/asinZ_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5fb0827785363bf3ee21cdca02669bd8b837d6c9
--- /dev/null
+++ b/UnitTests/sat/ALL/asinZ_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (< (- 1.0) X) (< X 1.0)))
+(assert (= (colibri_asin X) 0.0))
+(check-sat)
+(get-value (X (colibri_asin X)))
diff --git a/UnitTests/sat/ALL/atan_0_sat.smt2 b/UnitTests/sat/ALL/atan_0_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9af64ffa06586945620b8b40c3116ae90c827907
--- /dev/null
+++ b/UnitTests/sat/ALL/atan_0_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- (/ pi 2.0)) X (/ pi 2.0)))
+(assert (= (colibri_atan X) 0.0))
+(check-sat)
+(get-value (X (/ pi 2.0)))
diff --git a/UnitTests/sat/ALL/cos_eq_sin_p_pid2_sat.smt2 b/UnitTests/sat/ALL/cos_eq_sin_p_pid2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a3afa49d5d4b606017647d78993c19a14bd4db46
--- /dev/null
+++ b/UnitTests/sat/ALL/cos_eq_sin_p_pid2_sat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin+pid2 ((X Real)) Real (sin (+ (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (= (colibri_abs_real (- (cos X) (sin+pid2 X))) 0.0))
+(check-sat)
+
diff --git a/UnitTests/sat/ALL/cos_eq_sin_pid2_m_X_sat.smt2 b/UnitTests/sat/ALL/cos_eq_sin_pid2_m_X_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8ae9df49a2d892cfe8aee19489f13f8a6051b16f
--- /dev/null
+++ b/UnitTests/sat/ALL/cos_eq_sin_pid2_m_X_sat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin_pid2-X ((X Real)) Real (sin (- (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (= (colibri_abs_real (- (cos X) (sin_pid2-X X))) 0.0))
+(check-sat)
+
diff --git a/UnitTests/sat/ALL/cos_pi_sat.smt2 b/UnitTests/sat/ALL/cos_pi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3d2086c0506c8253054a5740aa0e8cab182a330b
--- /dev/null
+++ b/UnitTests/sat/ALL/cos_pi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (= (colibri_cos X) 0.0))
+(check-sat)
+(get-value (X (- pi) pi))
diff --git a/UnitTests/sat/ALL/cos_pid2_sat.smt2 b/UnitTests/sat/ALL/cos_pid2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a9ce64d052be4f6c12efb161e7de5a6794ce787b
--- /dev/null
+++ b/UnitTests/sat/ALL/cos_pid2_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (= (colibri_cos X) (- 1.0)))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (/ pi 2.0)))
diff --git a/UnitTests/sat/ALL/diff_sqrt_real_double_sat.smt2 b/UnitTests/sat/ALL/diff_sqrt_real_double_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f90271455e72a907b3e46190db28d35232c4f0ce
--- /dev/null
+++ b/UnitTests/sat/ALL/diff_sqrt_real_double_sat.smt2
@@ -0,0 +1,34 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status sat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float64)
+
+(define-fun fp.isFinite ((x Float64)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+(define-fun diff () Real
+  (- (colibri_sqrt (fp.to_real x))
+     (fp.to_real (fp.sqrt RNE x))))
+
+(assert (fp.isFinite x))
+(assert (<= 0.0 (fp.to_real x) 2.0))
+;(assert (>= diff 0.0)) ; impossible ?
+
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (ite (>= diff 0.0)
+	  diff
+	  (- diff))
+;    0.0003)))) ; UNSAT: less than 5s, the time grows very fast if more accurate
+     (/ 1.0 9007199254740992.0))))) ; SAT: 2e-53, ulp for 2.0 in Float64
+
+(check-sat)
+
+(get-value (x (fp.to_real x) diff))
diff --git a/UnitTests/sat/ALL/faulty.smt2 b/UnitTests/sat/ALL/faulty.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ab4a23bf480f04aee128cbd2516e3610aab477b5
--- /dev/null
+++ b/UnitTests/sat/ALL/faulty.smt2
@@ -0,0 +1,31 @@
+;; produced by colibri.drv ;;
+(set-option :produce-proofs true)
+(set-logic ALL)
+(set-info :smt-lib-version 2.6)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+
+(declare-sort character 0)
+;(declare-fun c1 () character)
+;(declare-fun c2 () character)
+;; "mk"
+(declare-fun mk (Int) Int)
+
+;; "__t'mk"
+(declare-fun us_tqtmk ((Array Int character) Int) Int)
+
+;; "Literal_190"
+(declare-fun Literal_190 (Int) (Array Int character))
+
+;; "Literal_193"
+(declare-fun Literal_193 (Int) (Array Int character))
+
+;; Goal "def'vc"
+;; File "main.adb", line 1, characters 0-0
+(assert
+  (not
+  (= (us_tqtmk (Literal_190 0) (mk 0))
+     (us_tqtmk (Literal_193 0) (mk 0)))))
+
+(check-sat)
diff --git a/UnitTests/sat/ALL/heron_sqrt_sat.smt2 b/UnitTests/sat/ALL/heron_sqrt_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2d991af71589d57a5eb98de96c6781d2bcd0f391
--- /dev/null
+++ b/UnitTests/sat/ALL/heron_sqrt_sat.smt2
@@ -0,0 +1,43 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status sat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float32)
+
+(define-fun fp.isFinite ((x Float32)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+
+;; Assume
+(assert (fp.isFinite x))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp #b0 #b01111110 #b01100110011001100110011) (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000))))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)) (fp #b0 #b01111111 #b11001100110011001100110)))
+
+;; Goal def'vc
+;; File "heron.ads", line 11, characters 0-0
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (let ((diff (+ (colibri_sqrt (fp.to_real x))
+		    (- (fp.to_real (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)))))))
+       (ite (>= diff 0.0)
+	    diff
+	    (- diff)))
+     0.1))))
+;     (+ (/ 1.0 4.0) (/ 3.0 8388608.0))))))
+
+(check-sat)
+
diff --git a/UnitTests/sat/ALL/interlog_sat.smt2 b/UnitTests/sat/ALL/interlog_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..fdd1f4f131afff71826c85463f8efcd4d5a3fcef
--- /dev/null
+++ b/UnitTests/sat/ALL/interlog_sat.smt2
@@ -0,0 +1,29 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(declare-fun T () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun SZ () Real (colibri_sin Z))
+(define-fun CZ () Real (colibri_cos Z))
+(define-fun ST () Real (colibri_sin T))
+(define-fun CT () Real (colibri_cos T))
+
+(assert (<= (- pi) Z pi))
+(assert (<= (- pi) T pi))
+
+(assert (= 4.0 (+ (* X Y) (- T (* 2.0 Z)))))
+
+(assert (= 0.0 (+ (* X SZ) (* Y CT))))
+
+(assert (let ((CZ2 (* CZ CZ))
+              (ST2 (* ST ST)))
+        (= ST2 (+ (- X Y) CZ2))))
+
+(assert (= (* X Y Z) (* 2.0 T)))
+
+(check-sat)
+(get-value (X Y Z T))
diff --git a/UnitTests/sat/ALL/mod_for_int1_sat.smt2 b/UnitTests/sat/ALL/mod_for_int1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..26308625166fdb152a37dad2c21cb4ca79e9b4d4
--- /dev/null
+++ b/UnitTests/sat/ALL/mod_for_int1_sat.smt2
@@ -0,0 +1,11 @@
+(set-logic ALL)
+(set-info :status sat)
+(declare-const x Int)
+(declare-const y Int)
+
+(assert (not (= y 0)))
+
+;sat ok
+(assert (not (= (mod (abs x) y) (mod x y))))
+
+(check-sat)
diff --git a/UnitTests/sat/ALL/mod_for_int2_sat.smt2 b/UnitTests/sat/ALL/mod_for_int2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a5c842aa96d2c0ee7ccf1bc2da71f40fe0f1589c
--- /dev/null
+++ b/UnitTests/sat/ALL/mod_for_int2_sat.smt2
@@ -0,0 +1,11 @@
+(set-logic ALL)
+(set-info :status sat)
+(declare-const x Int)
+(declare-const y Int)
+
+(assert (not (= y 0)))
+
+;sat ok
+(assert (not (= (mod (abs x) y) (mod x (abs y)))))
+
+(check-sat)
diff --git a/UnitTests/sat/ALL/sin2_cos2_sat.smt2 b/UnitTests/sat/ALL/sin2_cos2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..adaab4f8b6bc14e06f13ae25d322cdbae00767c3
--- /dev/null
+++ b/UnitTests/sat/ALL/sin2_cos2_sat.smt2
@@ -0,0 +1,15 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin2 ((X Real)) Real (* (colibri_sin X) (colibri_sin X)))
+(define-fun cos2 ((X Real)) Real (* (colibri_cos X) (colibri_cos X)))
+(define-fun sin2+cos2 ((X Real)) Real (+ (sin2 X) (cos2 X)))
+
+(assert (<= (- pi) X pi))
+(assert (<= 0.99 (sin2+cos2 X) 1.01))
+(check-sat)
+(get-value (X (sin2+cos2 X)))
+
diff --git a/UnitTests/sat/ALL/sinN_eq_cos_sat.smt2 b/UnitTests/sat/ALL/sinN_eq_cos_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5f88be1fe68970155ac539c2c6e3adb096ac4aee
--- /dev/null
+++ b/UnitTests/sat/ALL/sinN_eq_cos_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (= (colibri_sin X) (colibri_cos X)))
+(check-sat)
+(get-value (X (- (* 3.0 (/ pi 4.0))) (colibri_sin X) (colibri_cos X)))
diff --git a/UnitTests/sat/ALL/sinP_eq_cos_sat.smt2 b/UnitTests/sat/ALL/sinP_eq_cos_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..96db2db15eb573abb7f6392a525a6011fef11c94
--- /dev/null
+++ b/UnitTests/sat/ALL/sinP_eq_cos_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (= (colibri_sin X) (colibri_cos X)))
+(check-sat)
+(get-value (X (/ pi 4.0) (colibri_sin X) (colibri_cos X)))
diff --git a/UnitTests/sat/ALL/sin_mpi_sat.smt2 b/UnitTests/sat/ALL/sin_mpi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..287a760e4e77236fa5124e112770624975be763c
--- /dev/null
+++ b/UnitTests/sat/ALL/sin_mpi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (and (distinct X 0.0) (= (colibri_sin X) 0.0)))
+(check-sat)
+(get-value (X (- pi)))
diff --git a/UnitTests/sat/ALL/sin_pi_sat.smt2 b/UnitTests/sat/ALL/sin_pi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8acc12b1ad7a8d209d63e9ffca6ccf0838acbcc4
--- /dev/null
+++ b/UnitTests/sat/ALL/sin_pi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (and (distinct X 0.0) (= (colibri_sin X) 0.0)))
+(check-sat)
+(get-value (X pi))
diff --git a/UnitTests/sat/ALL/tanN_eq_1_sat.smt2 b/UnitTests/sat/ALL/tanN_eq_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..98abeee7375811ecf18c8c15caf46be2c61148a7
--- /dev/null
+++ b/UnitTests/sat/ALL/tanN_eq_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (= (colibri_tan X) 1.0))
+(check-sat)
+(get-value (X (* (- 3.0) (/ pi 4.0)) (colibri_sin X) (colibri_cos X)))
diff --git a/UnitTests/sat/ALL/tanN_undef_sat.smt2 b/UnitTests/sat/ALL/tanN_undef_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c6e963524c45b3bae67a5f39aa24e9406a33a8f3
--- /dev/null
+++ b/UnitTests/sat/ALL/tanN_undef_sat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun optpid4 () Real (- (* 3 (/ pi 4.0))))
+
+(assert (<= (- pi) X 0.0))
+(assert (and (distinct X optpid4) (= (colibri_tan X) 1.0)))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (colibri_cos X)))
diff --git a/UnitTests/sat/ALL/tanP_eq_1_sat.smt2 b/UnitTests/sat/ALL/tanP_eq_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..81216c1fa44108fbd3f52f8ac3092f5dddfff713
--- /dev/null
+++ b/UnitTests/sat/ALL/tanP_eq_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (= (colibri_tan X) 1.0))
+(check-sat)
+(get-value (X (/ pi 4.0) (colibri_sin X) (colibri_cos X)))
diff --git a/UnitTests/sat/ALL/tanP_undef_sat.smt2 b/UnitTests/sat/ALL/tanP_undef_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..616394d37e566dd6aa4ee3ace7c57225c126eebd
--- /dev/null
+++ b/UnitTests/sat/ALL/tanP_undef_sat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid4 () Real (/ pi 4.0))
+
+(assert (<= 0.0 X pi))
+(assert (and (distinct X pid4) (= (colibri_tan X) 1.0)))
+(check-sat)
+(get-value (X (/ pi 2.0) (colibri_cos X)))
diff --git a/UnitTests/sat/QF_ABVFP/query.22.smt2 b/UnitTests/sat/QF_ABVFP/query.22.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2f459aab1b9f76b35678a7e9759f84bfcfb224df
--- /dev/null
+++ b/UnitTests/sat/QF_ABVFP/query.22.smt2
@@ -0,0 +1,30 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+Corresponding query: An equisatisfiable query (arrays replaced with bitvectors) is available at QF_BVFP/20170428-Liew-KLEE/imperial_svcomp_float-benchs_svcomp_filter2_set.x86_64/query.22.smt2
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun symbolic_0_double_80 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x12 (concat (select symbolic_0_double_80 (_ bv1 32)) (select symbolic_0_double_80 (_ bv0 32)))))
+ (let ((?x18 (concat (select symbolic_0_double_80 (_ bv3 32)) (concat (select symbolic_0_double_80 (_ bv2 32)) ?x12))))
+ (let ((?x24 (concat (select symbolic_0_double_80 (_ bv5 32)) (concat (select symbolic_0_double_80 (_ bv4 32)) ?x18))))
+ (let ((?x30 (concat (select symbolic_0_double_80 (_ bv7 32)) (concat (select symbolic_0_double_80 (_ bv6 32)) ?x24))))
+ (fp.geq ((_ to_fp 11 53) ?x30) ((_ to_fp 11 53) (_ bv0 64))))))))
+(assert
+ (let ((?x12 (concat (select symbolic_0_double_80 (_ bv1 32)) (select symbolic_0_double_80 (_ bv0 32)))))
+ (let ((?x18 (concat (select symbolic_0_double_80 (_ bv3 32)) (concat (select symbolic_0_double_80 (_ bv2 32)) ?x12))))
+ (let ((?x24 (concat (select symbolic_0_double_80 (_ bv5 32)) (concat (select symbolic_0_double_80 (_ bv4 32)) ?x18))))
+ (let ((?x30 (concat (select symbolic_0_double_80 (_ bv7 32)) (concat (select symbolic_0_double_80 (_ bv6 32)) ?x24))))
+ (fp.leq ((_ to_fp 11 53) ?x30) ((_ to_fp 11 53) (_ bv4607182418800017408 64))))))))
+(assert
+ (not false))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_ABVFP/query.24.smt2 b/UnitTests/sat/QF_ABVFP/query.24.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..357819339db8c226c804d31eaa106f4c37394481
--- /dev/null
+++ b/UnitTests/sat/QF_ABVFP/query.24.smt2
@@ -0,0 +1,386 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+Corresponding query: An equisatisfiable query (arrays replaced with bitvectors) is available at QF_BVFP/20170428-Liew-KLEE/imperial_synthetic_non_terminating_klee_bug.x86_64/query.24.smt2
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun delta0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (not (fp.isNaN ?x19)))))
+(assert
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (not (fp.lt ?x19 ((_ to_fp 8 24) (_ bv914358274 32)))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (fp.gt ?x29 ?x30))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (fp.gt ?x32 ?x30)))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (fp.gt ?x34 ?x30))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (fp.gt ?x36 ?x30)))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (fp.gt ?x38 ?x30))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (fp.gt ?x40 ?x30)))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (fp.gt ?x42 ?x30))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (fp.gt ?x44 ?x30)))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (fp.gt ?x46 ?x30))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (fp.gt ?x48 ?x30)))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (fp.gt ?x50 ?x30))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (fp.gt ?x52 ?x30)))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (fp.gt ?x54 ?x30))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (fp.gt ?x56 ?x30)))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (fp.gt ?x58 ?x30))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (fp.gt ?x60 ?x30)))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+ (fp.gt ?x62 ?x30))))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+ (let ((?x64 (fp.sub roundNearestTiesToEven ?x62 ?x19)))
+ (fp.gt ?x64 ?x30)))))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+ (let ((?x64 (fp.sub roundNearestTiesToEven ?x62 ?x19)))
+ (let ((?x66 (fp.sub roundNearestTiesToEven ?x64 ?x19)))
+ (fp.gt ?x66 ?x30))))))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+ (let ((?x64 (fp.sub roundNearestTiesToEven ?x62 ?x19)))
+ (let ((?x66 (fp.sub roundNearestTiesToEven ?x64 ?x19)))
+ (let ((?x68 (fp.sub roundNearestTiesToEven ?x66 ?x19)))
+ (fp.gt ?x68 ?x30)))))))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+ (let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+ (let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+ (let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+ (let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+ (let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+ (let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+ (let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+ (let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+ (let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+ (let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+ (let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+ (let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+ (let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+ (let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+ (let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+ (let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+ (let ((?x64 (fp.sub roundNearestTiesToEven ?x62 ?x19)))
+ (let ((?x66 (fp.sub roundNearestTiesToEven ?x64 ?x19)))
+ (let ((?x68 (fp.sub roundNearestTiesToEven ?x66 ?x19)))
+ (let ((?x70 (fp.sub roundNearestTiesToEven ?x68 ?x19)))
+ (fp.gt ?x70 ?x30))))))))))))))))))))))))))
+(assert
+ (let ((?x30 ((_ to_fp 8 24) (_ bv0 32))))
+(let ((?x15 (concat (select delta0 (_ bv2 32)) (concat (select delta0 (_ bv1 32)) (select delta0 (_ bv0 32))))))
+(let ((?x19 ((_ to_fp 8 24) (concat (select delta0 (_ bv3 32)) ?x15))))
+(let ((?x29 (fp.sub roundNearestTiesToEven ((_ to_fp 8 24) (_ bv1120403456 32)) ?x19)))
+(let ((?x32 (fp.sub roundNearestTiesToEven ?x29 ?x19)))
+(let ((?x34 (fp.sub roundNearestTiesToEven ?x32 ?x19)))
+(let ((?x36 (fp.sub roundNearestTiesToEven ?x34 ?x19)))
+(let ((?x38 (fp.sub roundNearestTiesToEven ?x36 ?x19)))
+(let ((?x40 (fp.sub roundNearestTiesToEven ?x38 ?x19)))
+(let ((?x42 (fp.sub roundNearestTiesToEven ?x40 ?x19)))
+(let ((?x44 (fp.sub roundNearestTiesToEven ?x42 ?x19)))
+(let ((?x46 (fp.sub roundNearestTiesToEven ?x44 ?x19)))
+(let ((?x48 (fp.sub roundNearestTiesToEven ?x46 ?x19)))
+(let ((?x50 (fp.sub roundNearestTiesToEven ?x48 ?x19)))
+(let ((?x52 (fp.sub roundNearestTiesToEven ?x50 ?x19)))
+(let ((?x54 (fp.sub roundNearestTiesToEven ?x52 ?x19)))
+(let ((?x56 (fp.sub roundNearestTiesToEven ?x54 ?x19)))
+(let ((?x58 (fp.sub roundNearestTiesToEven ?x56 ?x19)))
+(let ((?x60 (fp.sub roundNearestTiesToEven ?x58 ?x19)))
+(let ((?x62 (fp.sub roundNearestTiesToEven ?x60 ?x19)))
+(let ((?x64 (fp.sub roundNearestTiesToEven ?x62 ?x19)))
+(let ((?x66 (fp.sub roundNearestTiesToEven ?x64 ?x19)))
+(let ((?x68 (fp.sub roundNearestTiesToEven ?x66 ?x19)))
+(let ((?x70 (fp.sub roundNearestTiesToEven ?x68 ?x19)))
+(not (fp.gt (fp.sub roundNearestTiesToEven ?x70 ?x19) ?x30)))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_ABVFP/query.25.smt2 b/UnitTests/sat/QF_ABVFP/query.25.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..32f491e079b0531cbdf1e50f04559228ed5d6a3b
--- /dev/null
+++ b/UnitTests/sat/QF_ABVFP/query.25.smt2
@@ -0,0 +1,201 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+Corresponding query: An equisatisfiable query (arrays replaced with bitvectors) is available at QF_BVFP/20170428-Liew-KLEE/imperial_synthetic_sqrt_klee.x86_64/query.25.smt2
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun x0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(assert
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19))))))
+(assert
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.lt ?x19 ?x22)))))))
+(assert
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.gt ?x19 ((_ to_fp 8 24) (_ bv1120403456 32))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x34 ?x19)) ?x38))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x50 ?x19)) ?x38))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x64 ?x19)) ?x38))))))))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (let (($x69 (fp.gt ?x64 ?x19)))
+ (let ((?x75 (ite $x69 ?x61 ?x63)))
+ (let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+ (let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+ (let ((?x78 (fp.mul roundNearestTiesToEven ?x77 ?x77)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x78 ?x19)) ?x38)))))))))))))))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (= ?x33 ((_ to_fp 8 24) fresh_to_ieee_bv_!0)))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (= ?x49 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (= ?x63 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (let (($x69 (fp.gt ?x64 ?x19)))
+ (let ((?x75 (ite $x69 ?x61 ?x63)))
+ (let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+ (let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+ (= ?x77 ((_ to_fp 8 24) fresh_to_ieee_bv_!3)))))))))))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+(let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+(let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+(let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+(let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+(let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+(let (($x41 (fp.gt ?x34 ?x19)))
+(let ((?x47 (ite $x41 ?x22 ?x33)))
+(let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+(let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+(let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+(let (($x55 (fp.gt ?x50 ?x19)))
+(let ((?x61 (ite $x55 ?x47 ?x49)))
+(let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+(let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+(let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+(let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+(let (($x69 (fp.gt ?x64 ?x19)))
+(let ((?x75 (ite $x69 ?x61 ?x63)))
+(let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+(let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+(let ((?x78 (fp.mul roundNearestTiesToEven ?x77 ?x77)))
+(let (($x83 (fp.gt ?x78 ?x19)))
+(let ((?x88 ((_ to_fp 8 24) (ite $x83 fresh_to_ieee_bv_!3 (ite $x69 fresh_to_ieee_bv_!2 ?x59)))))
+(let ((?x91 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x88 (ite $x83 ?x75 ?x77)) ?x32)))
+(let ((?x93 (fp.sub roundNearestTiesToEven (fp.mul roundNearestTiesToEven ?x91 ?x91) ?x19)))
+(not (not (fp.lt (fp.abs ?x93) ?x38))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/015b094d.smt2 b/UnitTests/sat/QF_FP/015b094d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..87404dc7b1619c358f8d521b161736b962242490
--- /dev/null
+++ b/UnitTests/sat/QF_FP/015b094d.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.gt (fp.add roundTowardPositive
+                                         M896J7EXAG
+                                         (fp #b0 #x7e #b00000000000000000000000))
+                                 (fp #b0 #x8e #b11111111111111100000000))
+                          #x00000001
+                          #x00000000)
+                     #x00000000)))
+  (not a!1)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/027f2c4d.smt2 b/UnitTests/sat/QF_FP/027f2c4d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1ee349dbe164f7a40253453f1a8cd0c672e040ba
--- /dev/null
+++ b/UnitTests/sat/QF_FP/027f2c4d.smt2
@@ -0,0 +1,52 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun WJ5TE03BC9 () (_ FloatingPoint 8 24))
+(declare-fun MJZIDHLWRZ () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.eq MJZIDHLWRZ (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.eq WJ5TE03BC9 (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+(let ((a!2 (ite (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))
+                #x00000001
+                #x00000000)))
+  (not (distinct a!2 #x00000000)))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/04453243.smt2 b/UnitTests/sat/QF_FP/04453243.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..bd54b85f3697491fe93e12853257fb774dfcc171
--- /dev/null
+++ b/UnitTests/sat/QF_FP/04453243.smt2
@@ -0,0 +1,51 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun XOWMRNM266 () (_ FloatingPoint 8 24))
+(declare-fun KUF9FPBB38 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.leq (fp.add roundTowardPositive
+                                (fp.mul roundTowardPositive
+                                        KUF9FPBB38
+                                        KUF9FPBB38)
+                                (fp.mul roundTowardPositive
+                                        XOWMRNM266
+                                        XOWMRNM266))
+                        (_ +zero 8 24))
+                #b1
+                #b0)))
+  (distinct a!1 #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/15845779.smt2 b/UnitTests/sat/QF_FP/15845779.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e73f6a98f73662182ed9fc0d94f63ca4bece8480
--- /dev/null
+++ b/UnitTests/sat/QF_FP/15845779.smt2
@@ -0,0 +1,46 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt (fp.add roundTowardPositive
+                              M896J7EXAG
+                              (fp #b0 #x7e #b00000000000000000000000))
+                      (fp #b0 #x8e #b11111111111111100000000))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/16527595.smt2 b/UnitTests/sat/QF_FP/16527595.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..258a8ed83b0aed140afd88467f198b2595934119
--- /dev/null
+++ b/UnitTests/sat/QF_FP/16527595.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.lt M896J7EXAG
+                                     (fp #b1 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt M896J7EXAG
+                                     (fp #b0 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/18128f78.smt2 b/UnitTests/sat/QF_FP/18128f78.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..97cf79d3c84401b7a7205e9f2ee9361d5e09696e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/18128f78.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun RCDU6O1CCA () (_ FloatingPoint 8 24))
+(declare-fun MWJXXG40AK () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.eq MWJXXG40AK (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.eq RCDU6O1CCA (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/1822afb1.smt2 b/UnitTests/sat/QF_FP/1822afb1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a25f3990bcd525c6fba57e665204759e65447b2d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/1822afb1.smt2
@@ -0,0 +1,46 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt (fp.add roundTowardPositive
+                              M896J7EXAG
+                              (fp #b0 #x7e #b00000000000000000000000))
+                      (fp #b0 #x9f #b00000000000000000000000))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/18b22f7c.smt2 b/UnitTests/sat/QF_FP/18b22f7c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d8408d6ae50f9d612fcc736a22feb65487248e4c
--- /dev/null
+++ b/UnitTests/sat/QF_FP/18b22f7c.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun ETSQVHOQNO () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt ETSQVHOQNO (_ +zero 8 24)) #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/197caf3a.smt2 b/UnitTests/sat/QF_FP/197caf3a.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..016716f9da84cc4b7248e76b8bed5b8bb933a5b1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/197caf3a.smt2
@@ -0,0 +1,48 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun H2X2V2Y8RL () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (fp.lt (fp.div roundTowardPositive
+                          (fp.div roundTowardPositive
+                                  (fp.mul roundTowardPositive
+                                          H2X2V2Y8RL
+                                          (fp #b0 #x89 #b11001111010000000000000))
+                                  (fp #b0 #x85 #b01110010100110011001101))
+                          (fp #b0 #x85 #b10010000000000000000000))
+                  (fp #b0 #x7f #b00000000000000000000000))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/1a59ab1c.smt2 b/UnitTests/sat/QF_FP/1a59ab1c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5e98baca77851086062f47f725add18c4627da6d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/1a59ab1c.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.lt M896J7EXAG
+                                     (fp #b1 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.lt (fp #b0 #x7f #b00000000000000000000000)
+                                     M896J7EXAG)
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/1d805d54.smt2 b/UnitTests/sat/QF_FP/1d805d54.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ab48be92eb87b6e16c28d15a0c4e0a363337ac22
--- /dev/null
+++ b/UnitTests/sat/QF_FP/1d805d54.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun NOKPR71WHF () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.eq NOKPR71WHF (fp #b1 #x7f #b00000000000000000000000))
+                    #b1
+                    #b0)
+               #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/1de31dae.smt2 b/UnitTests/sat/QF_FP/1de31dae.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..43ce90a5c7c33fe93d18017af4193f85b812acfc
--- /dev/null
+++ b/UnitTests/sat/QF_FP/1de31dae.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun XRJPPOP5T2 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.leq XRJPPOP5T2 (_ +zero 8 24)) #x00000001 #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/1de5c35a.smt2 b/UnitTests/sat/QF_FP/1de5c35a.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b3a6ad035e3be675ee6241892a4688f50615f83f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/1de5c35a.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (not (fp.eq ZY1OTBYAN8 ZY1OTBYAN8))
+                          #x00000001
+                          #x00000000)
+                     #x00000000)))
+  (not a!1)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/20ad29a9.smt2 b/UnitTests/sat/QF_FP/20ad29a9.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..db529f0129b32dd0b8251aad34dd2c78c1e84663
--- /dev/null
+++ b/UnitTests/sat/QF_FP/20ad29a9.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun NWXFPVYGIA () (_ FloatingPoint 8 24))
+(declare-fun F5K1HM4V21 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt F5K1HM4V21 NWXFPVYGIA) #x00000001 #x00000000) #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/2137a85e.smt2 b/UnitTests/sat/QF_FP/2137a85e.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..72b91a6a2141fbe7c2e5f883894fb017aee200da
--- /dev/null
+++ b/UnitTests/sat/QF_FP/2137a85e.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun S3CNOML3V1 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.gt S3CNOML3V1 (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.lt S3CNOML3V1
+                                      (fp #b0 #x87 #b00101100000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/256ebcb6.smt2 b/UnitTests/sat/QF_FP/256ebcb6.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f9396a17eff967b1aad3d4bbf96aa3ba53cf16da
--- /dev/null
+++ b/UnitTests/sat/QF_FP/256ebcb6.smt2
@@ -0,0 +1,54 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YQH7HID5G8 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.leq (_ +zero 8 24)
+                                  (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x74 #b00011011000101111100011)))
+                          #b1
+                          #b0)
+                     #b0))
+      (a!2 (distinct (ite (fp.leq (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x74 #b00011011000101111100011))
+                                  (fp #b0 #x83 #b00000000000000000000000))
+                          #b1
+                          #b0)
+                     #b0)))
+  (distinct (ite (and a!1 a!2) #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/258ad19e.smt2 b/UnitTests/sat/QF_FP/258ad19e.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7bf05104dfab8a134dedc86bdf16f5c8289c26fc
--- /dev/null
+++ b/UnitTests/sat/QF_FP/258ad19e.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun FE263603A2 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt FE263603A2 (fp #b0 #x85 #b01100111111101111100111))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/25fc47d6.smt2 b/UnitTests/sat/QF_FP/25fc47d6.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e92b85deb89ea97f5a6084798309704db343f7c4
--- /dev/null
+++ b/UnitTests/sat/QF_FP/25fc47d6.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun W07OWBZLZ5 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.eq W07OWBZLZ5 (_ +zero 8 24)) #x00000001 #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/27559300.smt2 b/UnitTests/sat/QF_FP/27559300.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..771a9b3121a2b7ad8fb4f3f84c752c21b5e8d057
--- /dev/null
+++ b/UnitTests/sat/QF_FP/27559300.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun USS1S3P5N3 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.lt (fp.sub roundTowardPositive
+                                         (fp #b0 #x7f #b10010010000111111011011)
+                                         USS1S3P5N3)
+                                 (_ +zero 8 24))
+                          #b1
+                          #b0)
+                     #b0)))
+  (not a!1)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/28a8cae6.smt2 b/UnitTests/sat/QF_FP/28a8cae6.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0499c22073c4abbb50bc89893fbef8e7c42c3e5e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/28a8cae6.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.sub roundTowardPositive
+                               LQCYSCXBAT
+                               (fp.mul roundTowardPositive
+                                       LQCYSCXBAT
+                                       (fp #b0 #x77 #b01000111101011100001010)))
+                       F6JVIWB9LB)
+                #b1
+                #b0)))
+  (distinct a!1 #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/29e21932.smt2 b/UnitTests/sat/QF_FP/29e21932.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..15a6c33dff78d29db8c63f94e52d429300ca4415
--- /dev/null
+++ b/UnitTests/sat/QF_FP/29e21932.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun SS9MCBOP8C () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt SS9MCBOP8C (fp #b0 #x86 #b01101000000000000000000))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/2c556790.smt2 b/UnitTests/sat/QF_FP/2c556790.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..13947c9cbf718704829aba0e146680280b4fdf78
--- /dev/null
+++ b/UnitTests/sat/QF_FP/2c556790.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (_ +zero 8 24))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x83 #b10000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/3054578f.smt2 b/UnitTests/sat/QF_FP/3054578f.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4d5c3782a04e5bb1419fa1a52c9b4f68943e0fd2
--- /dev/null
+++ b/UnitTests/sat/QF_FP/3054578f.smt2
@@ -0,0 +1,57 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.geq LQCYSCXBAT
+                        (fp.sub roundTowardPositive
+                                F6JVIWB9LB
+                                (fp.mul roundTowardPositive
+                                        LQCYSCXBAT
+                                        (fp #b0 #x77 #b01000111101011100001010))))
+                #b1
+                #b0))
+      (a!2 (ite (fp.leq LQCYSCXBAT
+                        (fp.add roundTowardPositive
+                                F6JVIWB9LB
+                                (fp.mul roundTowardPositive
+                                        LQCYSCXBAT
+                                        (fp #b0 #x77 #b01000111101011100001010))))
+                #b1
+                #b0)))
+  (distinct (ite (and (distinct a!1 #b0) (distinct a!2 #b0)) #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/3be94f8d.smt2 b/UnitTests/sat/QF_FP/3be94f8d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..235aafef8f4add75ae5cba14662837fe01432dc3
--- /dev/null
+++ b/UnitTests/sat/QF_FP/3be94f8d.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun JF07D0PEMO () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.eq JF07D0PEMO (_ +zero 8 24)) #b1 #b0) #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/401ce1d6.smt2 b/UnitTests/sat/QF_FP/401ce1d6.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..bcb019d0c6e5c73dcb793d7dea094e36599bf750
--- /dev/null
+++ b/UnitTests/sat/QF_FP/401ce1d6.smt2
@@ -0,0 +1,60 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M1H20GM63P () (_ FloatingPoint 8 24))
+(declare-fun NSENXH4HM6 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.mul roundTowardPositive
+                               (fp.mul roundTowardPositive
+                                       NSENXH4HM6
+                                       M1H20GM63P)
+                               (fp #b0 #x84 #b11001010010111011100001))
+                       (fp #b0 #x9e #b00000000000000000000000))
+                #x00000001
+                #x00000000))
+      (a!2 (ite (fp.gt (fp.mul roundTowardPositive
+                               (fp.mul roundTowardPositive
+                                       NSENXH4HM6
+                                       M1H20GM63P)
+                               (fp #b0 #x84 #b11001010010111011100001))
+                       (fp #b1 #x9e #b00000000000000000000000))
+                #x00000001
+                #x00000000)))
+  (distinct (ite (and (distinct a!1 #x00000000) (distinct a!2 #x00000000))
+                 #x00000001
+                 #x00000000)
+            #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/406b3443.smt2 b/UnitTests/sat/QF_FP/406b3443.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b7059de59a42f048b4100d622e3303d7dfc958c6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/406b3443.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Railway* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun UAUKO0N1VY () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt UAUKO0N1VY (fp #b0 #x85 #b10001111001100110011010))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/407a0d9b.smt2 b/UnitTests/sat/QF_FP/407a0d9b.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..bb35caf30188dc1d8aa1db3225217fd31fe35bd6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/407a0d9b.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (not (fp.eq ZY1OTBYAN8 ZY1OTBYAN8)) #x00000001 #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/40f50c70.smt2 b/UnitTests/sat/QF_FP/40f50c70.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2eccc8db7ae53cc26c94a57b85c35b368d2ee021
--- /dev/null
+++ b/UnitTests/sat/QF_FP/40f50c70.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (_ +zero 8 24))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x85 #b10001100000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/4277f91d.smt2 b/UnitTests/sat/QF_FP/4277f91d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5bd434610712cee9c14fd2dbe75092ba109492a1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/4277f91d.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun B5NXJTMACN () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.geq B5NXJTMACN (fp #b0 #x87 #b00101100000000000000000))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/4560eee1.smt2 b/UnitTests/sat/QF_FP/4560eee1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..871c666d01f242cb52cd03b5e28eb6e98fddae7d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/4560eee1.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun VVC946XFCY () (_ FloatingPoint 8 24))
+(declare-fun SFAXBSJEBH () (_ FloatingPoint 8 24))
+(declare-fun HSEK10EBXO () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.sub roundTowardPositive
+                               HSEK10EBXO
+                               (fp.mul roundTowardPositive
+                                       SFAXBSJEBH
+                                       VVC946XFCY))
+                       (_ +zero 8 24))
+                #x00000001
+                #x00000000)))
+  (distinct a!1 #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/48576ff4.smt2 b/UnitTests/sat/QF_FP/48576ff4.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7d2f05a0ad0236808a912ac571c27a30afdbab01
--- /dev/null
+++ b/UnitTests/sat/QF_FP/48576ff4.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun UGSA1RJV7H () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.geq UGSA1RJV7H (fp #b0 #x80 #b10010010000111111011011))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/4e876fa1.smt2 b/UnitTests/sat/QF_FP/4e876fa1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c7bcb57cab0c331711562bbdef34ef116fa2e09d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/4e876fa1.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YV9UKDPV70 () (_ FloatingPoint 8 24))
+(declare-fun PO4AEZR7FI () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.eq PO4AEZR7FI YV9UKDPV70) #x00000001 #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/4f1b844f.smt2 b/UnitTests/sat/QF_FP/4f1b844f.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4c7d2bce3115533c3ebfff80632d6c1b968cf14a
--- /dev/null
+++ b/UnitTests/sat/QF_FP/4f1b844f.smt2
@@ -0,0 +1,63 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun B818DSVEEC () (_ FloatingPoint 8 24))
+(declare-fun V3NDLCGKZU () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq V3NDLCGKZU
+                                       (fp #b0 #x85 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0)
+                (distinct (ite (fp.geq V3NDLCGKZU
+                                       (fp #b1 #x85 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+(let ((a!2 (and (distinct (ite a!1 #b1 #b0) #b0)
+                (distinct (ite (fp.leq B818DSVEEC
+                                       (fp #b0 #x86 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+(let ((a!3 (and (distinct (ite a!2 #b1 #b0) #b0)
+                (distinct (ite (fp.geq B818DSVEEC
+                                       (fp #b1 #x86 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+  (not (distinct (ite a!3 #b1 #b0) #b0))))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/522e9701.smt2 b/UnitTests/sat/QF_FP/522e9701.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3d3b6ac5adfeddbff7211b0d1fe20de2fee109d9
--- /dev/null
+++ b/UnitTests/sat/QF_FP/522e9701.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun WN3CP740PJ () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq WN3CP740PJ
+                                       (fp #b0 #x84 #b01000000000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.geq WN3CP740PJ
+                                       (fp #b0 #x83 #b01000000000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/54c1fdea.smt2 b/UnitTests/sat/QF_FP/54c1fdea.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c611abced4cd0005ecd149ad164203efc6d42883
--- /dev/null
+++ b/UnitTests/sat/QF_FP/54c1fdea.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Railway* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun ZMSDSBR4F3 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.lt ZMSDSBR4F3 (_ +zero 8 24)) #x00000001 #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/54c417ee.smt2 b/UnitTests/sat/QF_FP/54c417ee.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8c7b6b7009b61edffb9f754e3c7dbc17a12edff1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/54c417ee.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun TFYI3UDKWI () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt TFYI3UDKWI (fp #b1 #x8f #b10000110100111110000000))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/59645890.smt2 b/UnitTests/sat/QF_FP/59645890.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5b2749b7d81534e0eb1f14752c24793e9f204e58
--- /dev/null
+++ b/UnitTests/sat/QF_FP/59645890.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.gt (fp.add roundTowardPositive
+                                         M896J7EXAG
+                                         (fp #b0 #x7e #b00000000000000000000000))
+                                 (fp #b0 #x9f #b00000000000000000000000))
+                          #x00000001
+                          #x00000000)
+                     #x00000000)))
+  (not a!1)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/5d16872d.smt2 b/UnitTests/sat/QF_FP/5d16872d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..86262c25709080107d998eb7be1f0f7087ae9b5f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/5d16872d.smt2
@@ -0,0 +1,63 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun B818DSVEEC () (_ FloatingPoint 8 24))
+(declare-fun V3NDLCGKZU () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq V3NDLCGKZU
+                                       (fp #b0 #x85 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0)
+                (distinct (ite (fp.geq V3NDLCGKZU
+                                       (fp #b1 #x85 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+(let ((a!2 (and (distinct (ite a!1 #b1 #b0) #b0)
+                (distinct (ite (fp.leq B818DSVEEC
+                                       (fp #b0 #x86 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+(let ((a!3 (and (distinct (ite a!2 #b1 #b0) #b0)
+                (distinct (ite (fp.geq B818DSVEEC
+                                       (fp #b1 #x86 #b01101000000000000000000))
+                               #b1
+                               #b0)
+                          #b0))))
+  (distinct (ite a!3 #b1 #b0) #b0)))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/5dbd40d9.smt2 b/UnitTests/sat/QF_FP/5dbd40d9.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a49cbf6aa590092cd08b79aff5e7568fc2a649ea
--- /dev/null
+++ b/UnitTests/sat/QF_FP/5dbd40d9.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun H05AROCGBL () (_ FloatingPoint 8 24))
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(declare-fun KRSNEHM8FS () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.eq ZY1OTBYAN8 KRSNEHM8FS)
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.eq ZY1OTBYAN8 H05AROCGBL)
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/5f531060.smt2 b/UnitTests/sat/QF_FP/5f531060.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2fb673eb416575348a81e84251fe00a12b5607bd
--- /dev/null
+++ b/UnitTests/sat/QF_FP/5f531060.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun FMY1KYGJHS () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.eq FMY1KYGJHS (fp #b1 #x92 #b01000101100001010100000))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/632feaff.smt2 b/UnitTests/sat/QF_FP/632feaff.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1406b9dd951a4a740ef5669e1245d3f264303e16
--- /dev/null
+++ b/UnitTests/sat/QF_FP/632feaff.smt2
@@ -0,0 +1,46 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Robotics* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun O024TVK1PK () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq (_ +zero 8 24) O024TVK1PK) #b1 #b0) #b0)
+                (distinct (ite (fp.geq (fp #b0 #x7f #b00000000000000000000000)
+                                       O024TVK1PK)
+                               #b1
+                               #b0)
+                          #b0))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/65c01688.smt2 b/UnitTests/sat/QF_FP/65c01688.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..29c76b0839126c9c6f2e92820a1f7abb23a767de
--- /dev/null
+++ b/UnitTests/sat/QF_FP/65c01688.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.gt (fp.add roundTowardPositive
+                               LQCYSCXBAT
+                               (fp.mul roundTowardPositive
+                                       LQCYSCXBAT
+                                       (fp #b0 #x77 #b01000111101011100001010)))
+                       F6JVIWB9LB)
+                #b1
+                #b0)))
+  (distinct a!1 #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/694fecf2.smt2 b/UnitTests/sat/QF_FP/694fecf2.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..03a376f547d0c71bcbaddf23cb6183826e4db912
--- /dev/null
+++ b/UnitTests/sat/QF_FP/694fecf2.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x82 #b10000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/6b5ad0b8.smt2 b/UnitTests/sat/QF_FP/6b5ad0b8.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2506159ff32295dd89f89e3fe9fbb8b0efa1166d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/6b5ad0b8.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun UGSA1RJV7H () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.geq UGSA1RJV7H (fp #b0 #x80 #b10010010000111111011011))
+                    #b1
+                    #b0)
+               #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/6cdcd6b3.smt2 b/UnitTests/sat/QF_FP/6cdcd6b3.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6811ff9474a935f8bbf83316cb7c1ffdc3bdd0a8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/6cdcd6b3.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b1 #x85 #b01101000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x85 #b01101000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/6d71ca58.smt2 b/UnitTests/sat/QF_FP/6d71ca58.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0710504cc0a1ff1c00297b50fdef231ea0a01d9d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/6d71ca58.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun WSFSG2OW9I () (_ FloatingPoint 8 24))
+(declare-fun DRM3O4Q5LH () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.lt DRM3O4Q5LH WSFSG2OW9I) #b1 #b0) #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/71dc23bb.smt2 b/UnitTests/sat/QF_FP/71dc23bb.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0c27cc991cda279c6294dcea2e720504597871bd
--- /dev/null
+++ b/UnitTests/sat/QF_FP/71dc23bb.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun VK3H7H4EC3 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.geq VK3H7H4EC3
+                                      (fp #b0 #x80 #b10010010000111111011011))
+                              #b1
+                              #b0)
+                         #b0)
+               (distinct (ite (fp.lt VK3H7H4EC3
+                                     (fp #b1 #x80 #b10010010000111111011011))
+                              #b1
+                              #b0)
+                         #b0))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/71f7ce43.smt2 b/UnitTests/sat/QF_FP/71f7ce43.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..27c1161143965e7776b21241ce88f333232c546e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/71f7ce43.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq M896J7EXAG
+                                       (fp #b0 #x00 #b11111111111111111100001))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.gt M896J7EXAG (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/7475e081.smt2 b/UnitTests/sat/QF_FP/7475e081.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0485a2684cf69d89119e27a0938951634fe8e1ad
--- /dev/null
+++ b/UnitTests/sat/QF_FP/7475e081.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun WN3CP740PJ () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq WN3CP740PJ
+                                       (fp #b0 #x84 #b01000000000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.geq WN3CP740PJ
+                                       (fp #b0 #x83 #b01000000000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (not (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/7db277d0.smt2 b/UnitTests/sat/QF_FP/7db277d0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..723ee9895d03d513a14c73841b3133a1e360b101
--- /dev/null
+++ b/UnitTests/sat/QF_FP/7db277d0.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.leq ZY1OTBYAN8
+                       (fp.neg (fp #b0 #x9e #b00000000000000000000000)))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/7e8cd122.smt2 b/UnitTests/sat/QF_FP/7e8cd122.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d11a38ecf8904266196113bde3b0aae7ecc3c830
--- /dev/null
+++ b/UnitTests/sat/QF_FP/7e8cd122.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YRNKB8PZ9H () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt YRNKB8PZ9H (fp #b0 #x6b #b00001100011011110111101))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/87e8f851.smt2 b/UnitTests/sat/QF_FP/87e8f851.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a7dca872446dcf1cee0216cfec1f5224e5250d19
--- /dev/null
+++ b/UnitTests/sat/QF_FP/87e8f851.smt2
@@ -0,0 +1,48 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun H2X2V2Y8RL () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (fp.lt (fp.div roundTowardPositive
+                          (fp.div roundTowardPositive
+                                  (fp.mul roundTowardPositive
+                                          H2X2V2Y8RL
+                                          (fp #b0 #x89 #b11001111010000000000000))
+                                  (fp #b0 #x85 #b01110010100110011001101))
+                          (fp #b0 #x85 #b10010000000000000000000))
+                  (fp #b0 #x7f #b00000000000000000000000))))
+  (distinct (ite a!1 #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/88c6b3ae.smt2 b/UnitTests/sat/QF_FP/88c6b3ae.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5633364b38c28c7eb92ed00a2e77b128af99cc7f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/88c6b3ae.smt2
@@ -0,0 +1,54 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YQH7HID5G8 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.leq (_ +zero 8 24)
+                                  (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x74 #b00011011000101111100011)))
+                          #b1
+                          #b0)
+                     #b0))
+      (a!2 (distinct (ite (fp.leq (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x74 #b00011011000101111100011))
+                                  (fp #b0 #x83 #b00000000000000000000000))
+                          #b1
+                          #b0)
+                     #b0)))
+  (not (distinct (ite (and a!1 a!2) #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/900f6695.smt2 b/UnitTests/sat/QF_FP/900f6695.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4557e7ffc81a929d5ea4c2e14ecf1531468bb5e3
--- /dev/null
+++ b/UnitTests/sat/QF_FP/900f6695.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun WZ1LOZELNR () (_ FloatingPoint 8 24))
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(declare-fun ASUBJAPY8U () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.eq ZY1OTBYAN8 ASUBJAPY8U)
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.eq ZY1OTBYAN8 WZ1LOZELNR)
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/9212e93c.smt2 b/UnitTests/sat/QF_FP/9212e93c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ed5665b5eab87fee6ae74af1743c6f2f368d9540
--- /dev/null
+++ b/UnitTests/sat/QF_FP/9212e93c.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun FMY1KYGJHS () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.eq FMY1KYGJHS (fp #b1 #x92 #b01000101100001010100000))
+                    #b1
+                    #b0)
+               #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/94474154.smt2 b/UnitTests/sat/QF_FP/94474154.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..09eb642160ed93367f3ed0cb754d18149bfb32b1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/94474154.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun VVC946XFCY () (_ FloatingPoint 8 24))
+(declare-fun SFAXBSJEBH () (_ FloatingPoint 8 24))
+(declare-fun HSEK10EBXO () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.sub roundTowardPositive
+                               HSEK10EBXO
+                               (fp.mul roundTowardPositive
+                                       SFAXBSJEBH
+                                       VVC946XFCY))
+                       (_ +zero 8 24))
+                #x00000001
+                #x00000000)))
+  (not (distinct a!1 #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/967afe84.smt2 b/UnitTests/sat/QF_FP/967afe84.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..09a25931996fa35ad04209f3ea5eeed9ecc05819
--- /dev/null
+++ b/UnitTests/sat/QF_FP/967afe84.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun PERQU5662Z () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.gt PERQU5662Z
+                                      (fp #b1 #x9d #b11111111111111111100100))
+                               #b1
+                               #b0)
+                          #b0)
+                (distinct (ite (fp.lt PERQU5662Z
+                                      (fp #b0 #x9d #b11111111111111111100100))
+                               #b1
+                               #b0)
+                          #b0))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/9705db3a.smt2 b/UnitTests/sat/QF_FP/9705db3a.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ac8279cb99ebabb4c720472cea427ca35c73fd88
--- /dev/null
+++ b/UnitTests/sat/QF_FP/9705db3a.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.sub roundTowardPositive
+                               LQCYSCXBAT
+                               (fp.mul roundTowardPositive
+                                       LQCYSCXBAT
+                                       (fp #b0 #x77 #b01000111101011100001010)))
+                       F6JVIWB9LB)
+                #b1
+                #b0)))
+  (not (distinct a!1 #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/9fda8040.smt2 b/UnitTests/sat/QF_FP/9fda8040.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..eeff3688b05714c027d53b8231bdc2638113c711
--- /dev/null
+++ b/UnitTests/sat/QF_FP/9fda8040.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (_ +zero 8 24))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x84 #b11100000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/a0802d5d.smt2 b/UnitTests/sat/QF_FP/a0802d5d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0c02a0c1e8be186627315968b789d9e4871dbec3
--- /dev/null
+++ b/UnitTests/sat/QF_FP/a0802d5d.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun CIDCAWXKOW () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.lt CIDCAWXKOW (_ +zero 8 24)) #x00000001 #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/a31a6e5e.smt2 b/UnitTests/sat/QF_FP/a31a6e5e.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..816860ccde7290b6c33a3773f82a59c260215fd6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/a31a6e5e.smt2
@@ -0,0 +1,59 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.geq LQCYSCXBAT
+                        (fp.sub roundTowardPositive
+                                F6JVIWB9LB
+                                (fp.mul roundTowardPositive
+                                        LQCYSCXBAT
+                                        (fp #b0 #x77 #b01000111101011100001010))))
+                #b1
+                #b0))
+      (a!2 (ite (fp.leq LQCYSCXBAT
+                        (fp.add roundTowardPositive
+                                F6JVIWB9LB
+                                (fp.mul roundTowardPositive
+                                        LQCYSCXBAT
+                                        (fp #b0 #x77 #b01000111101011100001010))))
+                #b1
+                #b0)))
+(let ((a!3 (distinct (ite (and (distinct a!1 #b0) (distinct a!2 #b0)) #b1 #b0)
+                     #b0)))
+  (not a!3))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/a4996fd8.smt2 b/UnitTests/sat/QF_FP/a4996fd8.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8d0ff2a6718ed44d5d2b8d2ee1227b54f1d5ef08
--- /dev/null
+++ b/UnitTests/sat/QF_FP/a4996fd8.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun G1NSJXX1AU () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt G1NSJXX1AU (fp #b0 #x82 #b01000110011001100110011))
+               #x00000001
+               #x00000000)
+          #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/b045cfdb.smt2 b/UnitTests/sat/QF_FP/b045cfdb.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7b97774c07dacc1d1379e160893c35b9ce5f39d7
--- /dev/null
+++ b/UnitTests/sat/QF_FP/b045cfdb.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun MFPH6SNENW () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.gt MFPH6SNENW
+                                      (fp #b1 #xbd #b11111111111111111111100))
+                               #b1
+                               #b0)
+                          #b0)
+                (distinct (ite (fp.lt MFPH6SNENW
+                                      (fp #b0 #xbd #b11111111111111111111100))
+                               #b1
+                               #b0)
+                          #b0))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/b1a376ae.smt2 b/UnitTests/sat/QF_FP/b1a376ae.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f594de369859e19d69f49ab1e236c2eac1a1152e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/b1a376ae.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun JF07D0PEMO () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.eq JF07D0PEMO (_ +zero 8 24)) #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/b2ee114d.smt2 b/UnitTests/sat/QF_FP/b2ee114d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..de647f2a596379e738b89597a4a3cbf10a85d726
--- /dev/null
+++ b/UnitTests/sat/QF_FP/b2ee114d.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun QPITUP7UU4 () (_ FloatingPoint 8 24))
+(declare-fun F0UDG8HL7E () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (not (distinct (ite (fp.eq (_ +zero 8 24) QPITUP7UU4)
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+(let ((a!2 (and (distinct (ite (fp.eq (_ +zero 8 24) F0UDG8HL7E)
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite a!1 #x00000001 #x00000000) #x00000000))))
+  (distinct (ite a!2 #x00000001 #x00000000) #x00000000))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/b375167e.smt2 b/UnitTests/sat/QF_FP/b375167e.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b6bc16f6beb5a86eb02d8a8a4ce8912e87381e1a
--- /dev/null
+++ b/UnitTests/sat/QF_FP/b375167e.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun NOKPR71WHF () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.eq NOKPR71WHF (fp #b1 #x7f #b00000000000000000000000))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/b5d01232.smt2 b/UnitTests/sat/QF_FP/b5d01232.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7d442b3afae7a401cd994f01c67554e209142f46
--- /dev/null
+++ b/UnitTests/sat/QF_FP/b5d01232.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun PBRZ3K32A9 () (_ FloatingPoint 8 24))
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.leq M896J7EXAG PBRZ3K32A9) #x00000001 #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/bc0d3950.smt2 b/UnitTests/sat/QF_FP/bc0d3950.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4a1f6028e159294745ed8af55eb6b686b4459687
--- /dev/null
+++ b/UnitTests/sat/QF_FP/bc0d3950.smt2
@@ -0,0 +1,62 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M1H20GM63P () (_ FloatingPoint 8 24))
+(declare-fun NSENXH4HM6 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.lt (fp.mul roundTowardPositive
+                               (fp.mul roundTowardPositive
+                                       NSENXH4HM6
+                                       M1H20GM63P)
+                               (fp #b0 #x84 #b11001010010111011100001))
+                       (fp #b0 #x9e #b00000000000000000000000))
+                #x00000001
+                #x00000000))
+      (a!2 (ite (fp.gt (fp.mul roundTowardPositive
+                               (fp.mul roundTowardPositive
+                                       NSENXH4HM6
+                                       M1H20GM63P)
+                               (fp #b0 #x84 #b11001010010111011100001))
+                       (fp #b1 #x9e #b00000000000000000000000))
+                #x00000001
+                #x00000000)))
+(let ((a!3 (distinct (ite (and (distinct a!1 #x00000000)
+                               (distinct a!2 #x00000000))
+                          #x00000001
+                          #x00000000)
+                     #x00000000)))
+  (not a!3))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/c7df0882.smt2 b/UnitTests/sat/QF_FP/c7df0882.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e5605eea538e024adcf34942eb890bea82c7bca5
--- /dev/null
+++ b/UnitTests/sat/QF_FP/c7df0882.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun BGWJO0UDRP () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt BGWJO0UDRP (fp #b0 #x82 #b01100000000000000000000))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/cea35ecc.smt2 b/UnitTests/sat/QF_FP/cea35ecc.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..652cdef2f0800b63575aea7b342c1011f04c5e7c
--- /dev/null
+++ b/UnitTests/sat/QF_FP/cea35ecc.smt2
@@ -0,0 +1,45 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YTWTSZHKXI () (_ FloatingPoint 8 24))
+(declare-fun JP4E3XKLYF () (_ FloatingPoint 8 24))
+(declare-fun N076B8U67M () (_ FloatingPoint 8 24))
+(declare-fun H42INPCN42 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.lt H42INPCN42 N076B8U67M) #b1 #b0) #b0)
+                (distinct (ite (fp.gt JP4E3XKLYF YTWTSZHKXI) #b1 #b0) #b0))))
+  (not (distinct (ite a!1 #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/cec84439.smt2 b/UnitTests/sat/QF_FP/cec84439.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5c11d6420c12601d4d584b50b623f1be15cef310
--- /dev/null
+++ b/UnitTests/sat/QF_FP/cec84439.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun AQGGFXKK2B () (_ FloatingPoint 8 24))
+(declare-fun ZY1OTBYAN8 () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.lt ZY1OTBYAN8 AQGGFXKK2B) #x00000001 #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/cfa0460f.smt2 b/UnitTests/sat/QF_FP/cfa0460f.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d2fc89294b1e6fc0b2389214db9a95497a71e919
--- /dev/null
+++ b/UnitTests/sat/QF_FP/cfa0460f.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YRNKB8PZ9H () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt YRNKB8PZ9H (fp #b0 #x6b #b00001100011011110111101))
+                    #x00000001
+                    #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/d24aa31a.smt2 b/UnitTests/sat/QF_FP/d24aa31a.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7e36db3838baa07213f79586ee556c76e0526f37
--- /dev/null
+++ b/UnitTests/sat/QF_FP/d24aa31a.smt2
@@ -0,0 +1,54 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YQH7HID5G8 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.leq (_ +zero 8 24)
+                                  (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x80 #b10100011111100101001000)))
+                          #b1
+                          #b0)
+                     #b0))
+      (a!2 (distinct (ite (fp.leq (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x80 #b10100011111100101001000))
+                                  (fp #b0 #x8e #b00000000000000000000000))
+                          #b1
+                          #b0)
+                     #b0)))
+  (not (distinct (ite (and a!1 a!2) #b1 #b0) #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/d6353b82.smt2 b/UnitTests/sat/QF_FP/d6353b82.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d640ebbf9aa59c3e9264f1cb0ee9af5ed0a32df0
--- /dev/null
+++ b/UnitTests/sat/QF_FP/d6353b82.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun B321BZEJA6 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.geq B321BZEJA6 (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.lt B321BZEJA6
+                                      (fp #b0 #x8f #b01010001100000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/ddbee7f5.smt2 b/UnitTests/sat/QF_FP/ddbee7f5.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a72d21536845c9a291b7c8966ad25a73d5900b86
--- /dev/null
+++ b/UnitTests/sat/QF_FP/ddbee7f5.smt2
@@ -0,0 +1,57 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun Z3ERSZ5GEC () (_ FloatingPoint 8 24))
+(declare-fun XRJPPOP5T2 () (_ FloatingPoint 8 24))
+(declare-fun EKOWP71ETZ () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.leq EKOWP71ETZ
+                                       (fp #b0 #x81 #b10010010000111111011011))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.gt XRJPPOP5T2
+                                      (fp #b0 #x85 #b10010000000000000000000))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+(let ((a!2 (and (distinct (ite a!1 #x00000001 #x00000000) #x00000000)
+                (distinct (ite (fp.gt Z3ERSZ5GEC (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (not (distinct (ite a!2 #x00000001 #x00000000) #x00000000)))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/dee2ffe1.smt2 b/UnitTests/sat/QF_FP/dee2ffe1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0ffe04fe964cfc61d54d2557337737e2aaf2e109
--- /dev/null
+++ b/UnitTests/sat/QF_FP/dee2ffe1.smt2
@@ -0,0 +1,46 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun USS1S3P5N3 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.lt (fp.sub roundTowardPositive
+                              (fp #b0 #x7f #b10010010000111111011011)
+                              USS1S3P5N3)
+                      (_ +zero 8 24))
+               #b1
+               #b0)
+          #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/df445454.smt2 b/UnitTests/sat/QF_FP/df445454.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2741fdd4dbe6e58596b873ccaaec070feaba127f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/df445454.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun QR37N689TD () (_ FloatingPoint 8 24))
+(declare-fun XMVY5623AR () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.lt XMVY5623AR QR37N689TD) #x00000001 #x00000000) #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_4.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_4.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..10c31571ae97db4edf95b2598147197d31990272
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_4.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~S2_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S3_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S4_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S5_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S6_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_sin_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun |c_sin_double_#res| () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~z~3_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~r~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~v~0_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_sin_~z~3_primed (fp.mul c_currentRoundingMode c___kernel_sin_~x c___kernel_sin_~x)) (= c___kernel_sin_~r~2_primed (fp.add c_currentRoundingMode c_~S2_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S3_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S4_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S5_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c_~S6_ksin~0))))))))) (= c___kernel_sin_~v~0_primed (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c___kernel_sin_~x))))
+(assert (not (= |c_sin_double_#res| (fp.sub c_currentRoundingMode |c_sin_double_#in~x| |c_sin_double_#in~x|))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_5.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_5.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..79560e3929e6be2e64375761e6d87201a5b400e7
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_5.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~S2_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S3_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S4_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S5_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S6_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_sin_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun c_sin_double_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~z~3_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~r~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~v~0_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_sin_~z~3_primed (fp.mul c_currentRoundingMode c___kernel_sin_~x c___kernel_sin_~x)) (= c___kernel_sin_~r~2_primed (fp.add c_currentRoundingMode c_~S2_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S3_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S4_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S5_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c_~S6_ksin~0))))))))) (= c___kernel_sin_~v~0_primed (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c___kernel_sin_~x))))
+(assert (not (or (not (let ((.cse0 (fp.sub c_currentRoundingMode c_sin_double_~x c_sin_double_~x))) (fp.eq .cse0 .cse0))) (let ((.cse1 (fp.sub c_currentRoundingMode |c_sin_double_#in~x| |c_sin_double_#in~x|))) (fp.eq .cse1 .cse1)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_7.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_7.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..07f18815783d4d5433c21955d7a01f4efce996ff
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0240a_true-unreach-call.c_7.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~S2_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S3_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S4_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S5_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~S6_ksin~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_sin_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun |c_sin_double_#res| () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~z~3_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~r~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_sin_~v~0_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_sin_~z~3_primed (fp.mul c_currentRoundingMode c___kernel_sin_~x c___kernel_sin_~x)) (= c___kernel_sin_~r~2_primed (fp.add c_currentRoundingMode c_~S2_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S3_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S4_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed (fp.add c_currentRoundingMode c_~S5_ksin~0 (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c_~S6_ksin~0))))))))) (= c___kernel_sin_~v~0_primed (fp.mul c_currentRoundingMode c___kernel_sin_~z~3_primed c___kernel_sin_~x))))
+(assert (not (or (not (fp.eq |c_sin_double_#res| |c_sin_double_#res|)) (let ((.cse0 (fp.sub c_currentRoundingMode |c_sin_double_#in~x| |c_sin_double_#in~x|))) (fp.eq .cse0 .cse0)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_1.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f22b6223374201b81ef41cbc48ddad167895a51e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_1.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_29_const_1497110568 () RoundingMode)
+(declare-fun v___kernel_cos_~z~2_1_const_-511681433 () (_ FloatingPoint 11 53))
+(declare-fun v_~C6_kcos~0_1_const_591143907 () (_ FloatingPoint 11 53))
+(declare-fun v_~C5_kcos~0_1_const_784838860 () (_ FloatingPoint 11 53))
+(declare-fun v_~C4_kcos~0_1_const_445201965 () (_ FloatingPoint 11 53))
+(declare-fun v_~C3_kcos~0_1_const_105942798 () (_ FloatingPoint 11 53))
+(declare-fun v_~C2_kcos~0_1_const_1914313839 () (_ FloatingPoint 11 53))
+(declare-fun v_~C1_kcos~0_1_const_2041408840 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_cos_~r~1_1_const_-516744130 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_cos_~x_1_const_-118762711 () (_ FloatingPoint 11 53))
+(assert (and (= v___kernel_cos_~r~1_1_const_-516744130 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_29_const_1497110568 v_~C1_kcos~0_1_const_2041408840 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_29_const_1497110568 v_~C2_kcos~0_1_const_1914313839 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_29_const_1497110568 v_~C3_kcos~0_1_const_105942798 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_29_const_1497110568 v_~C4_kcos~0_1_const_445201965 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_29_const_1497110568 v_~C5_kcos~0_1_const_784838860 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~z~2_1_const_-511681433 v_~C6_kcos~0_1_const_591143907)))))))))))) (= v___kernel_cos_~z~2_1_const_-511681433 (fp.mul v_currentRoundingMode_29_const_1497110568 v___kernel_cos_~x_1_const_-118762711 v___kernel_cos_~x_1_const_-118762711))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_8.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_8.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..58e155a605d1b8ae23cc81a8d2294b6735d62da6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0310_true-unreach-call.c_8.smt2
@@ -0,0 +1,46 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~C1_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C2_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C3_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C4_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C5_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C6_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_main_~x~0 () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~z~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~r~1_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_cos_~r~1_primed (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C1_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C2_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C3_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C4_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C5_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed c_~C6_kcos~0)))))))))))) (= c___kernel_cos_~z~2_primed (fp.mul c_currentRoundingMode c___kernel_cos_~x c___kernel_cos_~x))))
+(assert (not (= (fp.div c_currentRoundingMode (_ +zero 11 53) (_ +zero 11 53)) c_main_~x~0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b7414b2ca4aca5a72d5e174cd617a3e6f7dfbd88
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_0.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_30_const_1497110530 () RoundingMode)
+(declare-fun v___kernel_cos_~z~2_1_const_-511681433 () (_ FloatingPoint 11 53))
+(declare-fun v_~C6_kcos~0_1_const_591143907 () (_ FloatingPoint 11 53))
+(declare-fun v_~C5_kcos~0_1_const_784838860 () (_ FloatingPoint 11 53))
+(declare-fun v_~C4_kcos~0_1_const_445201965 () (_ FloatingPoint 11 53))
+(declare-fun v_~C3_kcos~0_1_const_105942798 () (_ FloatingPoint 11 53))
+(declare-fun v_~C2_kcos~0_1_const_1914313839 () (_ FloatingPoint 11 53))
+(declare-fun v_~C1_kcos~0_1_const_2041408840 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_cos_~r~1_1_const_-516744130 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_cos_~x_3_const_-118762709 () (_ FloatingPoint 11 53))
+(assert (and (= v___kernel_cos_~r~1_1_const_-516744130 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_30_const_1497110530 v_~C1_kcos~0_1_const_2041408840 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_30_const_1497110530 v_~C2_kcos~0_1_const_1914313839 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_30_const_1497110530 v_~C3_kcos~0_1_const_105942798 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_30_const_1497110530 v_~C4_kcos~0_1_const_445201965 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 (fp.add v_currentRoundingMode_30_const_1497110530 v_~C5_kcos~0_1_const_784838860 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~z~2_1_const_-511681433 v_~C6_kcos~0_1_const_591143907)))))))))))) (= v___kernel_cos_~z~2_1_const_-511681433 (fp.mul v_currentRoundingMode_30_const_1497110530 v___kernel_cos_~x_3_const_-118762709 v___kernel_cos_~x_3_const_-118762709))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_1.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cf773b87f443dbc88816b2e1251018ba027a4606
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0320_true-unreach-call.c_1.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_65_const_1497110688 () RoundingMode)
+(declare-fun v___kernel_sin_~z~3_1_const_-1523861289 () (_ FloatingPoint 11 53))
+(declare-fun v_~S6_ksin~0_4_const_-1857488689 () (_ FloatingPoint 11 53))
+(declare-fun v_~S5_ksin~0_4_const_-1659746776 () (_ FloatingPoint 11 53))
+(declare-fun v_~S4_ksin~0_4_const_-2002397431 () (_ FloatingPoint 11 53))
+(declare-fun v_~S3_ksin~0_4_const_-194042774 () (_ FloatingPoint 11 53))
+(declare-fun v_~S2_ksin~0_4_const_-533285557 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~r~2_1_const_-1529186066 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~x_3_const_822903706 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~v~0_1_const_-1528689048 () (_ FloatingPoint 11 53))
+(assert (and (= v___kernel_sin_~r~2_1_const_-1529186066 (fp.add v_currentRoundingMode_65_const_1497110688 v_~S2_ksin~0_4_const_-533285557 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_65_const_1497110688 v_~S3_ksin~0_4_const_-194042774 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_65_const_1497110688 v_~S4_ksin~0_4_const_-2002397431 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_65_const_1497110688 v_~S5_ksin~0_4_const_-1659746776 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~z~3_1_const_-1523861289 v_~S6_ksin~0_4_const_-1857488689))))))))) (= v___kernel_sin_~z~3_1_const_-1523861289 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~x_3_const_822903706 v___kernel_sin_~x_3_const_822903706)) (= v___kernel_sin_~v~0_1_const_-1528689048 (fp.mul v_currentRoundingMode_65_const_1497110688 v___kernel_sin_~z~3_1_const_-1523861289 v___kernel_sin_~x_3_const_822903706))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_3.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_3.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3ff89627e00f95ca6f7873d725e5686fd51bcabe
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_3.smt2
@@ -0,0 +1,44 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_64_const_1497110689 () RoundingMode)
+(declare-fun v___kernel_sin_~z~3_1_const_-1523861289 () (_ FloatingPoint 11 53))
+(declare-fun v_~S6_ksin~0_4_const_-1857488689 () (_ FloatingPoint 11 53))
+(declare-fun v_~S5_ksin~0_4_const_-1659746776 () (_ FloatingPoint 11 53))
+(declare-fun v_~S4_ksin~0_4_const_-2002397431 () (_ FloatingPoint 11 53))
+(declare-fun v_~S3_ksin~0_4_const_-194042774 () (_ FloatingPoint 11 53))
+(declare-fun v_~S2_ksin~0_4_const_-533285557 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~r~2_1_const_-1529186066 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~x_3_const_822903706 () (_ FloatingPoint 11 53))
+(declare-fun v___kernel_sin_~v~0_1_const_-1528689048 () (_ FloatingPoint 11 53))
+(assert (and (= v___kernel_sin_~z~3_1_const_-1523861289 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~x_3_const_822903706 v___kernel_sin_~x_3_const_822903706)) (= v___kernel_sin_~r~2_1_const_-1529186066 (fp.add v_currentRoundingMode_64_const_1497110689 v_~S2_ksin~0_4_const_-533285557 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_64_const_1497110689 v_~S3_ksin~0_4_const_-194042774 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_64_const_1497110689 v_~S4_ksin~0_4_const_-2002397431 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~z~3_1_const_-1523861289 (fp.add v_currentRoundingMode_64_const_1497110689 v_~S5_ksin~0_4_const_-1659746776 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~z~3_1_const_-1523861289 v_~S6_ksin~0_4_const_-1857488689))))))))) (= v___kernel_sin_~v~0_1_const_-1528689048 (fp.mul v_currentRoundingMode_64_const_1497110689 v___kernel_sin_~z~3_1_const_-1523861289 v___kernel_sin_~x_3_const_822903706))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_4.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_4.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f0a4b3d4600b4fb3e3dadb2348982f5de0305e77
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0330a_true-unreach-call.c_4.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~C1_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C2_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C3_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C4_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C5_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C6_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_cos_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun |c_cos_double_#res| () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~z~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~r~1_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_cos_~r~1_primed (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C1_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C2_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C3_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C4_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C5_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed c_~C6_kcos~0)))))))))))) (= c___kernel_cos_~z~2_primed (fp.mul c_currentRoundingMode c___kernel_cos_~x c___kernel_cos_~x))))
+(assert (not (= (fp.sub c_currentRoundingMode |c_cos_double_#in~x| |c_cos_double_#in~x|) |c_cos_double_#res|)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_11.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_11.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f506dcacebd1b805425d998d5c3b1e2f74a1a9d8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_11.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~C1_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C2_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C3_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C4_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C5_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C6_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_cos_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun |c_cos_double_#res| () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~z~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~r~1_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_cos_~r~1_primed (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C1_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C2_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C3_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C4_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C5_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed c_~C6_kcos~0)))))))))))) (= c___kernel_cos_~z~2_primed (fp.mul c_currentRoundingMode c___kernel_cos_~x c___kernel_cos_~x))))
+(assert (not (or (let ((.cse0 (fp.sub c_currentRoundingMode |c_cos_double_#in~x| |c_cos_double_#in~x|))) (fp.eq .cse0 .cse0)) (not (fp.eq |c_cos_double_#res| |c_cos_double_#res|)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_9.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_9.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..fab916678cd61b772f0521e647cbfae0197f0ef6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0330b_true-unreach-call.c_9.smt2
@@ -0,0 +1,47 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_~C1_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C2_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C3_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C4_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C5_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun c_~C6_kcos~0 () (_ FloatingPoint 11 53))
+(declare-fun |c_cos_double_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun c_cos_double_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~x () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~z~2_primed () (_ FloatingPoint 11 53))
+(declare-fun c___kernel_cos_~r~1_primed () (_ FloatingPoint 11 53))
+(assert (and (= c___kernel_cos_~r~1_primed (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C1_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C2_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C3_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C4_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed (fp.add c_currentRoundingMode c_~C5_kcos~0 (fp.mul c_currentRoundingMode c___kernel_cos_~z~2_primed c_~C6_kcos~0)))))))))))) (= c___kernel_cos_~z~2_primed (fp.mul c_currentRoundingMode c___kernel_cos_~x c___kernel_cos_~x))))
+(assert (not (or (not (let ((.cse0 (fp.sub c_currentRoundingMode c_cos_double_~x c_cos_double_~x))) (fp.eq .cse0 .cse0))) (let ((.cse1 (fp.sub c_currentRoundingMode |c_cos_double_#in~x| |c_cos_double_#in~x|))) (fp.eq .cse1 .cse1)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0740_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0740_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..65630ef9bc8a2b960084aa77d7c3023651bb2c0d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0740_true-unreach-call.c_0.smt2
@@ -0,0 +1,39 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun c_currentRoundingMode () RoundingMode)
+(declare-fun c_main_~x~0 () (_ FloatingPoint 11 53))
+(declare-fun |c___ieee754_sqrt_#in~x| () (_ FloatingPoint 11 53))
+(declare-fun c___ieee754_sqrt_~x () (_ FloatingPoint 11 53))
+(assert (or (let ((.cse0 (fp.add c_currentRoundingMode (fp.mul c_currentRoundingMode |c___ieee754_sqrt_#in~x| |c___ieee754_sqrt_#in~x|) |c___ieee754_sqrt_#in~x|))) (fp.eq .cse0 .cse0)) (not (let ((.cse1 (fp.add c_currentRoundingMode (fp.mul c_currentRoundingMode c___ieee754_sqrt_~x c___ieee754_sqrt_~x) c___ieee754_sqrt_~x))) (fp.eq .cse1 .cse1)))))
+(assert (let ((.cse0 (fp.add c_currentRoundingMode (fp.mul c_currentRoundingMode c_main_~x~0 c_main_~x~0) c_main_~x~0))) (fp.eq .cse0 .cse0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0832_true-unreach-call.c_1.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0832_true-unreach-call.c_1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..92bdc53c7546391baa3b49869405ecc1da95de9e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0832_true-unreach-call.c_1.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_14_const_1497110604 () RoundingMode)
+(declare-fun v___ieee754_exp_~t~0_3_const_-736622184 () (_ FloatingPoint 11 53))
+(declare-fun v_~P5_exp~0_1_const_-376148152 () (_ FloatingPoint 11 53))
+(declare-fun v_~P4_exp~0_1_const_1968242255 () (_ FloatingPoint 11 53))
+(declare-fun v_~P3_exp~0_1_const_-2128654002 () (_ FloatingPoint 11 53))
+(declare-fun v_~P2_exp~0_1_const_752590925 () (_ FloatingPoint 11 53))
+(declare-fun v_~P1_exp~0_1_const_-1201261748 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_exp_~x_15_const_-729912307 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_exp_~c~0_2_const_-687228562 () (_ FloatingPoint 11 53))
+(assert (and (= v___ieee754_exp_~t~0_3_const_-736622184 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~x_15_const_-729912307 v___ieee754_exp_~x_15_const_-729912307)) (= v___ieee754_exp_~c~0_2_const_-687228562 (fp.sub v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~x_15_const_-729912307 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~t~0_3_const_-736622184 (fp.add v_currentRoundingMode_14_const_1497110604 v_~P1_exp~0_1_const_-1201261748 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~t~0_3_const_-736622184 (fp.add v_currentRoundingMode_14_const_1497110604 v_~P2_exp~0_1_const_752590925 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~t~0_3_const_-736622184 (fp.add v_currentRoundingMode_14_const_1497110604 v_~P3_exp~0_1_const_-2128654002 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~t~0_3_const_-736622184 (fp.add v_currentRoundingMode_14_const_1497110604 v_~P4_exp~0_1_const_1968242255 (fp.mul v_currentRoundingMode_14_const_1497110604 v___ieee754_exp_~t~0_3_const_-736622184 v_~P5_exp~0_1_const_-376148152)))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0876_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0876_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9e50fb6f6c9d585dffea922db68c49c6f3760df0
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0876_true-unreach-call.c_0.smt2
@@ -0,0 +1,55 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_22_const_1497110575 () RoundingMode)
+(declare-fun v___ieee754_pow_~t~1_9_const_938605228 () (_ FloatingPoint 11 53))
+(declare-fun v_~P5_pow~0_1_const_543211651 () (_ FloatingPoint 11 53))
+(declare-fun v_~P4_pow~0_1_const_1278169986 () (_ FloatingPoint 11 53))
+(declare-fun v_~P3_pow~0_1_const_-605314431 () (_ FloatingPoint 11 53))
+(declare-fun v_~P2_pow~0_1_const_1739994496 () (_ FloatingPoint 11 53))
+(declare-fun v_~P1_pow~0_1_const_-210598777 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~u~0_1_const_937676516 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~v~0_1_const_874358629 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~t1~1_3_const_-2126021703 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~r~1_1_const_936644026 () (_ FloatingPoint 11 53))
+(declare-fun v_~one_pow~0_3_const_1365703620 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~z~1_7_const_874858920 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~t~1_10_const_-2057129196 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_h_pow~0_1_const_333399804 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~p_h~0_9_const_3334792 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~p_l~0_7_const_8028298 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_pow~0_1_const_1597189483 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_l_pow~0_1_const_1087210232 () (_ FloatingPoint 11 53))
+(declare-fun v_~two_pow~0_1_const_-1624373728 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~w~0_1_const_873447398 () (_ FloatingPoint 11 53))
+(assert (let ((.cse0 (fp.add v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~u~0_1_const_937676516 v___ieee754_pow_~v~0_1_const_874358629))) (and (= (fp.sub v_currentRoundingMode_22_const_1497110575 v_~one_pow~0_3_const_1365703620 (fp.sub v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~r~1_1_const_936644026 .cse0)) v___ieee754_pow_~z~1_7_const_874858920) (= v___ieee754_pow_~t~1_9_const_938605228 (fp.mul v_currentRoundingMode_22_const_1497110575 .cse0 .cse0)) (= v___ieee754_pow_~u~0_1_const_937676516 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_10_const_-2057129196 v_~lg2_h_pow~0_1_const_333399804)) (= v___ieee754_pow_~t1~1_3_const_-2126021703 (fp.sub v_currentRoundingMode_22_const_1497110575 .cse0 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_9_const_938605228 (fp.add v_currentRoundingMode_22_const_1497110575 v_~P1_pow~0_1_const_-210598777 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_9_const_938605228 (fp.add v_currentRoundingMode_22_const_1497110575 v_~P2_pow~0_1_const_1739994496 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_9_const_938605228 (fp.add v_currentRoundingMode_22_const_1497110575 v_~P3_pow~0_1_const_-605314431 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_9_const_938605228 (fp.add v_currentRoundingMode_22_const_1497110575 v_~P4_pow~0_1_const_1278169986 (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_9_const_938605228 v_~P5_pow~0_1_const_543211651))))))))))) (= v___ieee754_pow_~v~0_1_const_874358629 (fp.add v_currentRoundingMode_22_const_1497110575 (fp.mul v_currentRoundingMode_22_const_1497110575 (fp.sub v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~p_l~0_7_const_8028298 (fp.sub v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_10_const_-2057129196 v___ieee754_pow_~p_h~0_9_const_3334792)) v_~lg2_pow~0_1_const_1597189483) (fp.mul v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t~1_10_const_-2057129196 v_~lg2_l_pow~0_1_const_1087210232))) (= (fp.sub v_currentRoundingMode_22_const_1497110575 (fp.div v_currentRoundingMode_22_const_1497110575 (fp.mul v_currentRoundingMode_22_const_1497110575 .cse0 v___ieee754_pow_~t1~1_3_const_-2126021703) (fp.sub v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~t1~1_3_const_-2126021703 v_~two_pow~0_1_const_-1624373728)) (fp.add v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~w~0_1_const_873447398 (fp.mul v_currentRoundingMode_22_const_1497110575 .cse0 v___ieee754_pow_~w~0_1_const_873447398))) v___ieee754_pow_~r~1_1_const_936644026) (= (fp.sub v_currentRoundingMode_22_const_1497110575 v___ieee754_pow_~v~0_1_const_874358629 (fp.sub v_currentRoundingMode_22_const_1497110575 .cse0 v___ieee754_pow_~u~0_1_const_937676516)) v___ieee754_pow_~w~0_1_const_873447398))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0882_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0882_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..840f281466f38a6ec67da27c9e48624d9121cfbe
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0882_true-unreach-call.c_0.smt2
@@ -0,0 +1,55 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_21_const_1497110560 () RoundingMode)
+(declare-fun v___ieee754_pow_~t~1_8_const_938605219 () (_ FloatingPoint 11 53))
+(declare-fun v_~P5_pow~0_1_const_543211651 () (_ FloatingPoint 11 53))
+(declare-fun v_~P4_pow~0_1_const_1278169986 () (_ FloatingPoint 11 53))
+(declare-fun v_~P3_pow~0_1_const_-605314431 () (_ FloatingPoint 11 53))
+(declare-fun v_~P2_pow~0_1_const_1739994496 () (_ FloatingPoint 11 53))
+(declare-fun v_~P1_pow~0_1_const_-210598777 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~u~0_1_const_937676516 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~v~0_1_const_874358629 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~t1~1_2_const_-2126021704 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~t~1_9_const_938605228 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_h_pow~0_1_const_333399804 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~w~0_1_const_873447398 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~p_h~0_9_const_3334792 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~p_l~0_7_const_8028298 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_pow~0_1_const_1597189483 () (_ FloatingPoint 11 53))
+(declare-fun v_~lg2_l_pow~0_1_const_1087210232 () (_ FloatingPoint 11 53))
+(declare-fun v_~two_pow~0_1_const_-1624373728 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~r~1_1_const_936644026 () (_ FloatingPoint 11 53))
+(declare-fun v_~one_pow~0_1_const_1365703642 () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_pow_~z~1_7_const_874858920 () (_ FloatingPoint 11 53))
+(assert (let ((.cse0 (fp.add v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~u~0_1_const_937676516 v___ieee754_pow_~v~0_1_const_874358629))) (and (= v___ieee754_pow_~u~0_1_const_937676516 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_9_const_938605228 v_~lg2_h_pow~0_1_const_333399804)) (= (fp.sub v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~v~0_1_const_874358629 (fp.sub v_currentRoundingMode_21_const_1497110560 .cse0 v___ieee754_pow_~u~0_1_const_937676516)) v___ieee754_pow_~w~0_1_const_873447398) (= v___ieee754_pow_~v~0_1_const_874358629 (fp.add v_currentRoundingMode_21_const_1497110560 (fp.mul v_currentRoundingMode_21_const_1497110560 (fp.sub v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~p_l~0_7_const_8028298 (fp.sub v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_9_const_938605228 v___ieee754_pow_~p_h~0_9_const_3334792)) v_~lg2_pow~0_1_const_1597189483) (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_9_const_938605228 v_~lg2_l_pow~0_1_const_1087210232))) (= v___ieee754_pow_~t1~1_2_const_-2126021704 (fp.sub v_currentRoundingMode_21_const_1497110560 .cse0 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_8_const_938605219 (fp.add v_currentRoundingMode_21_const_1497110560 v_~P1_pow~0_1_const_-210598777 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_8_const_938605219 (fp.add v_currentRoundingMode_21_const_1497110560 v_~P2_pow~0_1_const_1739994496 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_8_const_938605219 (fp.add v_currentRoundingMode_21_const_1497110560 v_~P3_pow~0_1_const_-605314431 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_8_const_938605219 (fp.add v_currentRoundingMode_21_const_1497110560 v_~P4_pow~0_1_const_1278169986 (fp.mul v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t~1_8_const_938605219 v_~P5_pow~0_1_const_543211651))))))))))) (= (fp.mul v_currentRoundingMode_21_const_1497110560 .cse0 .cse0) v___ieee754_pow_~t~1_8_const_938605219) (= (fp.sub v_currentRoundingMode_21_const_1497110560 (fp.div v_currentRoundingMode_21_const_1497110560 (fp.mul v_currentRoundingMode_21_const_1497110560 .cse0 v___ieee754_pow_~t1~1_2_const_-2126021704) (fp.sub v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~t1~1_2_const_-2126021704 v_~two_pow~0_1_const_-1624373728)) (fp.add v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~w~0_1_const_873447398 (fp.mul v_currentRoundingMode_21_const_1497110560 .cse0 v___ieee754_pow_~w~0_1_const_873447398))) v___ieee754_pow_~r~1_1_const_936644026) (= v___ieee754_pow_~z~1_7_const_874858920 (fp.sub v_currentRoundingMode_21_const_1497110560 v_~one_pow~0_1_const_1365703642 (fp.sub v_currentRoundingMode_21_const_1497110560 v___ieee754_pow_~r~1_1_const_936644026 .cse0))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0920b_true-unreach-call.c_6.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0920b_true-unreach-call.c_6.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e5fc625958d17ba5632a84eeb45f8a5135e075f9
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0920b_true-unreach-call.c_6.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_34 () RoundingMode)
+(declare-fun v___ieee754_log_~x_23 () (_ FloatingPoint 11 53))
+(declare-fun v_~zero~0_19 () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log_#res_25| () (_ FloatingPoint 11 53))
+(declare-fun |v_main_#t~ret14_16| () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log_#in~x_11| () (_ FloatingPoint 11 53))
+(declare-fun v_main_~x~0_8 () (_ FloatingPoint 11 53))
+(assert (and (= |v_main_#t~ret14_16| |v___ieee754_log_#res_25|) (= |v___ieee754_log_#in~x_11| v_main_~x~0_8) (= |v___ieee754_log_#in~x_11| v___ieee754_log_~x_23) (= (fp.div v_currentRoundingMode_34 (fp.sub v_currentRoundingMode_34 v___ieee754_log_~x_23 v___ieee754_log_~x_23) v_~zero~0_19) |v___ieee754_log_#res_25|)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0960b_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0960b_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9af4145d87b1bc6787786d2181e38b97ce2cdf41
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0960b_true-unreach-call.c_0.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_7_const_205912936 () RoundingMode)
+(declare-fun v___ieee754_log10_~y~0_2_const_74741918 () (_ FloatingPoint 11 53))
+(declare-fun v_~log10_2lo_log10~0_1_const_-1906172200 () (_ FloatingPoint 11 53))
+(declare-fun v_~ivln10_log10~0_1_const_-607855457 () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log10_#t~ret20_3_const_-2022209884| () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_log10_~z~1_1_const_73815391 () (_ FloatingPoint 11 53))
+(declare-fun v_~log10_2hi_log10~0_1_const_307026142 () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log10_#res_2_const_-1465748562| () (_ FloatingPoint 11 53))
+(assert (and (= v___ieee754_log10_~z~1_1_const_73815391 (fp.add v_currentRoundingMode_7_const_205912936 (fp.mul v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~y~0_2_const_74741918 v_~log10_2lo_log10~0_1_const_-1906172200) (fp.mul v_currentRoundingMode_7_const_205912936 v_~ivln10_log10~0_1_const_-607855457 |v___ieee754_log10_#t~ret20_3_const_-2022209884|))) (= |v___ieee754_log10_#res_2_const_-1465748562| (fp.add v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~z~1_1_const_73815391 (fp.mul v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~y~0_2_const_74741918 v_~log10_2hi_log10~0_1_const_307026142)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_0971_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/double_req_bl_0971_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..667fc2c7116b182a6ce4e005ded193470aa90ee8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_0971_true-unreach-call.c_0.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_7_const_205912936 () RoundingMode)
+(declare-fun v___ieee754_log10_~y~0_2_const_74741918 () (_ FloatingPoint 11 53))
+(declare-fun v_~log10_2lo_log10~0_1_const_-1906172200 () (_ FloatingPoint 11 53))
+(declare-fun v_~ivln10_log10~0_1_const_-607855457 () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log10_#t~ret16_3_const_-2022184893| () (_ FloatingPoint 11 53))
+(declare-fun v___ieee754_log10_~z~1_1_const_73815391 () (_ FloatingPoint 11 53))
+(declare-fun v_~log10_2hi_log10~0_1_const_307026142 () (_ FloatingPoint 11 53))
+(declare-fun |v___ieee754_log10_#res_2_const_-1465748562| () (_ FloatingPoint 11 53))
+(assert (and (= |v___ieee754_log10_#res_2_const_-1465748562| (fp.add v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~z~1_1_const_73815391 (fp.mul v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~y~0_2_const_74741918 v_~log10_2hi_log10~0_1_const_307026142))) (= v___ieee754_log10_~z~1_1_const_73815391 (fp.add v_currentRoundingMode_7_const_205912936 (fp.mul v_currentRoundingMode_7_const_205912936 v___ieee754_log10_~y~0_2_const_74741918 v_~log10_2lo_log10~0_1_const_-1906172200) (fp.mul v_currentRoundingMode_7_const_205912936 v_~ivln10_log10~0_1_const_-607855457 |v___ieee754_log10_#t~ret16_3_const_-2022184893|)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_1.smt2 b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..839dfc1e96e77320d617c753c5c40298169b9514
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_1.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_14 () RoundingMode)
+(declare-fun v_fmod_double_~x_13 () (_ FloatingPoint 11 53))
+(declare-fun v_fmod_double_~y_7 () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#res_11| () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#in~x_4| () (_ FloatingPoint 11 53))
+(assert (= |v_fmod_double_#res_11| (let ((.cse0 (fp.mul v_currentRoundingMode_14 v_fmod_double_~x_13 v_fmod_double_~y_7))) (fp.div v_currentRoundingMode_14 .cse0 .cse0))))
+(assert (not (= |v_fmod_double_#in~x_4| v_fmod_double_~x_13)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_3.smt2 b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_3.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0ad9a99c04b63b2ec2f15c9e4ae3ab835d63e8eb
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_3.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_14 () RoundingMode)
+(declare-fun v_fmod_double_~x_13 () (_ FloatingPoint 11 53))
+(declare-fun v_fmod_double_~y_7 () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#res_11| () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#in~x_4| () (_ FloatingPoint 11 53))
+(assert (= |v_fmod_double_#in~x_4| v_fmod_double_~x_13))
+(assert (= |v_fmod_double_#res_11| (let ((.cse0 (fp.mul v_currentRoundingMode_14 v_fmod_double_~x_13 v_fmod_double_~y_7))) (fp.div v_currentRoundingMode_14 .cse0 .cse0))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_4.smt2 b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_4.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..92fb5e783c1cc94083ba5b8adf0dbd29fb95b280
--- /dev/null
+++ b/UnitTests/sat/QF_FP/double_req_bl_1122b_true-unreach-call.c_4.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_15 () RoundingMode)
+(declare-fun v_fmod_double_~x_14 () (_ FloatingPoint 11 53))
+(declare-fun v_fmod_double_~y_8 () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#res_12| () (_ FloatingPoint 11 53))
+(declare-fun |v_fmod_double_#in~x_5| () (_ FloatingPoint 11 53))
+(declare-fun |v_main_#t~ret17_10| () (_ FloatingPoint 11 53))
+(declare-fun v_main_~x~0_4 () (_ FloatingPoint 11 53))
+(assert (and (= (let ((.cse0 (fp.mul v_currentRoundingMode_15 v_fmod_double_~x_14 v_fmod_double_~y_8))) (fp.div v_currentRoundingMode_15 .cse0 .cse0)) |v_fmod_double_#res_12|) (= |v_fmod_double_#in~x_5| v_fmod_double_~x_14) (= |v_fmod_double_#res_12| |v_main_#t~ret17_10|) (= |v_fmod_double_#in~x_5| v_main_~x~0_4)))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/e606329c.smt2 b/UnitTests/sat/QF_FP/e606329c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a97938b1faa37ad67b68df994e69f461e730c1e6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/e606329c.smt2
@@ -0,0 +1,41 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun PBRZ3K32A9 () (_ FloatingPoint 8 24))
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.leq M896J7EXAG PBRZ3K32A9) #x00000001 #x00000000) #x00000000))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/e7d25d08.smt2 b/UnitTests/sat/QF_FP/e7d25d08.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6661bcdbc1701806e2473a79b11f46324f2b4773
--- /dev/null
+++ b/UnitTests/sat/QF_FP/e7d25d08.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun V1QYGRYVIN () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.gt V1QYGRYVIN (_ +zero 8 24)) #b1 #b0) #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/e8c80b80.smt2 b/UnitTests/sat/QF_FP/e8c80b80.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..546d5b54e4ccc216b88b8129c90c9d86453cbc68
--- /dev/null
+++ b/UnitTests/sat/QF_FP/e8c80b80.smt2
@@ -0,0 +1,52 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun Y84ES1U2Q3 () (_ FloatingPoint 8 24))
+(declare-fun XEI9EFVWEE () (_ FloatingPoint 8 24))
+(declare-fun FNIUU74W44 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (fp.lt (fp.mul roundTowardPositive
+                          (fp.div roundTowardPositive
+                                  (fp.sub roundTowardPositive
+                                          FNIUU74W44
+                                          Y84ES1U2Q3)
+                                  (fp.sub roundTowardPositive
+                                          XEI9EFVWEE
+                                          Y84ES1U2Q3))
+                          (fp #b0 #x8b #b00000000000000000000000))
+                  (_ +zero 8 24))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/eba05d37.smt2 b/UnitTests/sat/QF_FP/eba05d37.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8e189aa17e29154eeebad7b175d8e2ab3c4c9a67
--- /dev/null
+++ b/UnitTests/sat/QF_FP/eba05d37.smt2
@@ -0,0 +1,50 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Automotive* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (or (distinct (ite (fp.lt M896J7EXAG
+                                     (fp #b1 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt M896J7EXAG
+                                     (fp #b0 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/ec0eea5c.smt2 b/UnitTests/sat/QF_FP/ec0eea5c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c9382e74b678906b4d25489f1eed927b24c3788c
--- /dev/null
+++ b/UnitTests/sat/QF_FP/ec0eea5c.smt2
@@ -0,0 +1,42 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun NWXFPVYGIA () (_ FloatingPoint 8 24))
+(declare-fun F5K1HM4V21 () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt F5K1HM4V21 NWXFPVYGIA) #x00000001 #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/ecea15f1.smt2 b/UnitTests/sat/QF_FP/ecea15f1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..27fe37e80ec085912dc3e538d4a876db3838380a
--- /dev/null
+++ b/UnitTests/sat/QF_FP/ecea15f1.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun G1NSJXX1AU () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt G1NSJXX1AU (fp #b0 #x82 #b01000110011001100110011))
+                    #x00000001
+                    #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/edf48133.smt2 b/UnitTests/sat/QF_FP/edf48133.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e4f2cebd46709de3c95314b8fef09d17909ac7b9
--- /dev/null
+++ b/UnitTests/sat/QF_FP/edf48133.smt2
@@ -0,0 +1,54 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun YQH7HID5G8 () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (distinct (ite (fp.leq (_ +zero 8 24)
+                                  (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x80 #b10100011111100101001000)))
+                          #b1
+                          #b0)
+                     #b0))
+      (a!2 (distinct (ite (fp.leq (fp.mul roundTowardPositive
+                                          YQH7HID5G8
+                                          (fp #b0 #x80 #b10100011111100101001000))
+                                  (fp #b0 #x8e #b00000000000000000000000))
+                          #b1
+                          #b0)
+                     #b0)))
+  (distinct (ite (and a!1 a!2) #b1 #b0) #b0)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/f0ea15fd.smt2 b/UnitTests/sat/QF_FP/f0ea15fd.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c4d87857f2dbce876e3d36629e220527e0ce746f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/f0ea15fd.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(assert (let ((a!1 (or (distinct (ite (fp.lt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x7f #b00000000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000)
+               (distinct (ite (fp.gt (fp #b0 #xaa #b10101010101010101010101)
+                                     (fp #b0 #x83 #b11110000000000000000000))
+                              #x00000001
+                              #x00000000)
+                         #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/f1016306.smt2 b/UnitTests/sat/QF_FP/f1016306.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6b7c7984f55c8d5735b02479bdd0db3c03f3a198
--- /dev/null
+++ b/UnitTests/sat/QF_FP/f1016306.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *RTOS* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun SS9MCBOP8C () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt SS9MCBOP8C (fp #b0 #x86 #b01101000000000000000000))
+                    #x00000001
+                    #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/f77f6f95.smt2 b/UnitTests/sat/QF_FP/f77f6f95.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5045468c1af8b261c601cbc49d446257062781c1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/f77f6f95.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun M1H20GM63P () (_ FloatingPoint 8 24))
+(declare-fun DR3KQ0IQQL () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.gt (fp.mul roundTowardPositive
+                               (fp.mul roundTowardPositive
+                                       DR3KQ0IQQL
+                                       M1H20GM63P)
+                               (fp #b0 #x84 #b11001010010111011100001))
+                       (fp #b0 #x9d #b00000000000000000000000))
+                #x00000001
+                #x00000000)))
+  (distinct a!1 #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/f94ab5a1.smt2 b/UnitTests/sat/QF_FP/f94ab5a1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ac9e03a2da631af67ec7d0994ce2406474c9ab9a
--- /dev/null
+++ b/UnitTests/sat/QF_FP/f94ab5a1.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun FE263603A2 () (_ FloatingPoint 8 24))
+(declare-fun M896J7EXAG () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (and (distinct (ite (fp.eq M896J7EXAG (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000)
+                (distinct (ite (fp.eq FE263603A2 (_ +zero 8 24))
+                               #x00000001
+                               #x00000000)
+                          #x00000000))))
+  (distinct (ite a!1 #x00000001 #x00000000) #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/f96438f1.smt2 b/UnitTests/sat/QF_FP/f96438f1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..eac1d95f101fdb0224364b9c89e68f9873fef54d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/f96438f1.smt2
@@ -0,0 +1,43 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun TFYI3UDKWI () (_ FloatingPoint 8 24))
+(assert (not (distinct (ite (fp.gt TFYI3UDKWI (fp #b1 #x8f #b10000110100111110000000))
+                    #x00000001
+                    #x00000000)
+               #x00000000)))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/fa09d75d.smt2 b/UnitTests/sat/QF_FP/fa09d75d.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..faa388baa60c54340a349b47577b8ac7dfab22ca
--- /dev/null
+++ b/UnitTests/sat/QF_FP/fa09d75d.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Aerospace* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun T95ZNRDWK4 () (_ FloatingPoint 8 24))
+(assert (distinct (ite (fp.leq T95ZNRDWK4 (_ +zero 8 24)) #b1 #b0) #b0))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/ff84c43c.smt2 b/UnitTests/sat/QF_FP/ff84c43c.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..663a23781122dd8d480da7eb26352db3ca52c780
--- /dev/null
+++ b/UnitTests/sat/QF_FP/ff84c43c.smt2
@@ -0,0 +1,49 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source |
+Generated by: Andrew V. Jones (andrew.jones@vector.com)
+Generated on: 2021-02-11
+Generator: VectorCAST 2020sp6, ATG 2.0c-pre
+Application: Test-case generation for safety-critical C and C++
+Target solver: Z3/CVC4 (with SymFPU)/Bitwuzla (with SymFPU)
+
+These benchmarks were generated using VectorCAST's [1] automated test-case
+generation capability, an industrial symbolic execution engine targeted towards
+generating high-coverage test-suites for safety-critical C and C++.
+
+While VectorCAST can target multiple SMT solvers via a generic Python API, it
+does not support generating SMTLIB2 files directly. Consequently, these
+benchmarks were obtained using Z3's [2] 'smtlib2_log' [3] facility to capture
+all interactions between VectorCAST and the SMT solver, including all push/pop
+commands.
+
+The input to the test-case generator was:
+
+    * A *C* file,
+
+    * which came from project from the *Industrial_Control* market
+
+[1] https://www.vector.com/int/en/products/products-a-z/software/vectorcast
+
+[2] Leonardo de Moura, Nikolaj Bjorner (2008), "Z3: An Efficient SMT Solver".
+In: Proceedings of TACAS 2008.
+
+[3] Z3 4.8.7 release notes:
+https://raw.githubusercontent.com/Z3Prover/z3/master/RELEASE_NOTES
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun F6JVIWB9LB () (_ FloatingPoint 8 24))
+(declare-fun LQCYSCXBAT () (_ FloatingPoint 8 24))
+(assert (let ((a!1 (ite (fp.gt (fp.add roundTowardPositive
+                               LQCYSCXBAT
+                               (fp.mul roundTowardPositive
+                                       LQCYSCXBAT
+                                       (fp #b0 #x77 #b01000111101011100001010)))
+                       F6JVIWB9LB)
+                #b1
+                #b0)))
+  (not (distinct a!1 #b0))))
+(check-sat)
+(exit)
\ No newline at end of file
diff --git a/UnitTests/sat/QF_FP/float_req_bl_0877_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/float_req_bl_0877_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cd93d745b088bac7037be3044537b0019e7e1527
--- /dev/null
+++ b/UnitTests/sat/QF_FP/float_req_bl_0877_true-unreach-call.c_0.smt2
@@ -0,0 +1,55 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_5_const_205912938 () RoundingMode)
+(declare-fun v___ieee754_powf_~t~1_2_const_1226724764 () (_ FloatingPoint 8 24))
+(declare-fun v_~P5_pow~0_1_const_1812017236 () (_ FloatingPoint 8 24))
+(declare-fun v_~P4_pow~0_1_const_5153621 () (_ FloatingPoint 8 24))
+(declare-fun v_~P3_pow~0_1_const_-1752542634 () (_ FloatingPoint 8 24))
+(declare-fun v_~P2_pow~0_1_const_735561047 () (_ FloatingPoint 8 24))
+(declare-fun v_~P1_pow~0_1_const_-1089244080 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~u~0_1_const_1225279837 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~v~0_1_const_1241153244 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~t1~0_1_const_-816610753 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~t~1_3_const_1226724771 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~p_h~0_1_const_-1815640063 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~p_l~0_1_const_-1819286011 () (_ FloatingPoint 8 24))
+(declare-fun v_~lg2_pow~0_1_const_324197820 () (_ FloatingPoint 8 24))
+(declare-fun v_~lg2_l_pow~0_1_const_212628015 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~r~1_1_const_1228014751 () (_ FloatingPoint 8 24))
+(declare-fun v_~one_pow~0_1_const_487000845 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~z~1_1_const_1237500071 () (_ FloatingPoint 8 24))
+(declare-fun v___ieee754_powf_~w~0_1_const_1240766051 () (_ FloatingPoint 8 24))
+(declare-fun v_~lg2_h_pow~0_1_const_1606333995 () (_ FloatingPoint 8 24))
+(declare-fun v_~two_pow~0_1_const_-749734153 () (_ FloatingPoint 8 24))
+(assert (let ((.cse0 (fp.add v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~u~0_1_const_1225279837 v___ieee754_powf_~v~0_1_const_1241153244))) (and (= v___ieee754_powf_~v~0_1_const_1241153244 (fp.add v_currentRoundingMode_5_const_205912938 (fp.mul v_currentRoundingMode_5_const_205912938 (fp.sub v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~p_l~0_1_const_-1819286011 (fp.sub v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_3_const_1226724771 v___ieee754_powf_~p_h~0_1_const_-1815640063)) v_~lg2_pow~0_1_const_324197820) (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_3_const_1226724771 v_~lg2_l_pow~0_1_const_212628015))) (= (fp.mul v_currentRoundingMode_5_const_205912938 .cse0 .cse0) v___ieee754_powf_~t~1_2_const_1226724764) (= (fp.sub v_currentRoundingMode_5_const_205912938 v_~one_pow~0_1_const_487000845 (fp.sub v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~r~1_1_const_1228014751 .cse0)) v___ieee754_powf_~z~1_1_const_1237500071) (= (fp.sub v_currentRoundingMode_5_const_205912938 .cse0 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_2_const_1226724764 (fp.add v_currentRoundingMode_5_const_205912938 v_~P1_pow~0_1_const_-1089244080 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_2_const_1226724764 (fp.add v_currentRoundingMode_5_const_205912938 v_~P2_pow~0_1_const_735561047 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_2_const_1226724764 (fp.add v_currentRoundingMode_5_const_205912938 v_~P3_pow~0_1_const_-1752542634 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_2_const_1226724764 (fp.add v_currentRoundingMode_5_const_205912938 v_~P4_pow~0_1_const_5153621 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_2_const_1226724764 v_~P5_pow~0_1_const_1812017236)))))))))) v___ieee754_powf_~t1~0_1_const_-816610753) (= (fp.sub v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~v~0_1_const_1241153244 (fp.sub v_currentRoundingMode_5_const_205912938 .cse0 v___ieee754_powf_~u~0_1_const_1225279837)) v___ieee754_powf_~w~0_1_const_1240766051) (= v___ieee754_powf_~u~0_1_const_1225279837 (fp.mul v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t~1_3_const_1226724771 v_~lg2_h_pow~0_1_const_1606333995)) (= (fp.sub v_currentRoundingMode_5_const_205912938 (fp.div v_currentRoundingMode_5_const_205912938 (fp.mul v_currentRoundingMode_5_const_205912938 .cse0 v___ieee754_powf_~t1~0_1_const_-816610753) (fp.sub v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~t1~0_1_const_-816610753 v_~two_pow~0_1_const_-749734153)) (fp.add v_currentRoundingMode_5_const_205912938 v___ieee754_powf_~w~0_1_const_1240766051 (fp.mul v_currentRoundingMode_5_const_205912938 .cse0 v___ieee754_powf_~w~0_1_const_1240766051))) v___ieee754_powf_~r~1_1_const_1228014751))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/float_req_bl_0910a_true-unreach-call.c_0.smt2 b/UnitTests/sat/QF_FP/float_req_bl_0910a_true-unreach-call.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b8589c2fc69d7c585eef8d2ea185605bf8d2ea9b
--- /dev/null
+++ b/UnitTests/sat/QF_FP/float_req_bl_0910a_true-unreach-call.c_0.smt2
@@ -0,0 +1,40 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_27 () RoundingMode)
+(declare-fun v_~two25_log~0_10 () (_ FloatingPoint 8 24))
+(declare-fun v_~zero_log~0_13 () (_ FloatingPoint 8 24))
+(declare-fun |v___ieee754_logf_#res_17| () (_ FloatingPoint 8 24))
+(declare-fun |v_main_#t~ret8_10| () (_ FloatingPoint 8 24))
+(assert (= |v_main_#t~ret8_10| |v___ieee754_logf_#res_17|))
+(assert (= (fp.div v_currentRoundingMode_27 (fp.neg v_~two25_log~0_10) v_~zero_log~0_13) |v___ieee754_logf_#res_17|))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/gaussian.c.25.smt2 b/UnitTests/sat/QF_FP/gaussian.c.25.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d366dbea9736ad32220a538769df22c5f7aed157
--- /dev/null
+++ b/UnitTests/sat/QF_FP/gaussian.c.25.smt2
@@ -0,0 +1,543 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status sat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:52
+
+(declare-fun b283 () (_ FloatingPoint 8 24))
+(declare-fun b413 () (_ FloatingPoint 8 24))
+(declare-fun b900 () (_ FloatingPoint 8 24))
+(declare-fun b166 () (_ FloatingPoint 8 24))
+(declare-fun b189 () (_ FloatingPoint 8 24))
+(declare-fun b296 () (_ FloatingPoint 8 24))
+(declare-fun b890 () (_ FloatingPoint 8 24))
+(declare-fun b387 () (_ FloatingPoint 8 24))
+(declare-fun b910 () (_ FloatingPoint 8 24))
+(declare-fun b865 () (_ FloatingPoint 8 24))
+(declare-fun b400 () (_ FloatingPoint 8 24))
+(declare-fun b930 () (_ FloatingPoint 8 24))
+(declare-fun b423 () (_ FloatingPoint 8 24))
+(declare-fun b384 () (_ FloatingPoint 8 24))
+(declare-fun b965 () (_ FloatingPoint 8 24))
+(declare-fun b267 () (_ FloatingPoint 8 24))
+(declare-fun b244 () (_ FloatingPoint 8 24))
+(declare-fun b205 () (_ FloatingPoint 8 24))
+(declare-fun b465 () (_ FloatingPoint 8 24))
+(declare-fun b439 () (_ FloatingPoint 8 24))
+(declare-fun b970 () (_ FloatingPoint 8 24))
+(declare-fun b306 () (_ FloatingPoint 8 24))
+(declare-fun b136 () (_ FloatingPoint 8 24))
+(declare-fun b436 () (_ FloatingPoint 8 24))
+(declare-fun b192 () (_ FloatingPoint 8 24))
+(declare-fun b875 () (_ FloatingPoint 8 24))
+(declare-fun b345 () (_ FloatingPoint 8 24))
+(declare-fun b159 () (_ FloatingPoint 8 24))
+(declare-fun b452 () (_ FloatingPoint 8 24))
+(declare-fun b426 () (_ FloatingPoint 8 24))
+(declare-fun b361 () (_ FloatingPoint 8 24))
+(declare-fun b955 () (_ FloatingPoint 8 24))
+(declare-fun b335 () (_ FloatingPoint 8 24))
+(declare-fun b218 () (_ FloatingPoint 8 24))
+(declare-fun b270 () (_ FloatingPoint 8 24))
+(declare-fun b241 () (_ FloatingPoint 8 24))
+(declare-fun b935 () (_ FloatingPoint 8 24))
+(declare-fun b905 () (_ FloatingPoint 8 24))
+(declare-fun b148 () (_ FloatingPoint 8 24))
+(declare-fun b880 () (_ FloatingPoint 8 24))
+(declare-fun b202 () (_ FloatingPoint 8 24))
+(declare-fun b397 () (_ FloatingPoint 8 24))
+(declare-fun b254 () (_ FloatingPoint 8 24))
+(declare-fun b945 () (_ FloatingPoint 8 24))
+(declare-fun b950 () (_ FloatingPoint 8 24))
+(declare-fun b885 () (_ FloatingPoint 8 24))
+(declare-fun b975 () (_ FloatingPoint 8 24))
+(declare-fun b410 () (_ FloatingPoint 8 24))
+(declare-fun b348 () (_ FloatingPoint 8 24))
+(declare-fun b915 () (_ FloatingPoint 8 24))
+(declare-fun b309 () (_ FloatingPoint 8 24))
+(declare-fun b215 () (_ FloatingPoint 8 24))
+(declare-fun b462 () (_ FloatingPoint 8 24))
+(declare-fun b860 () (_ FloatingPoint 8 24))
+(declare-fun b163 () (_ FloatingPoint 8 24))
+(declare-fun b332 () (_ FloatingPoint 8 24))
+(declare-fun b371 () (_ FloatingPoint 8 24))
+(declare-fun b610 () (_ FloatingPoint 8 24))
+(declare-fun b960 () (_ FloatingPoint 8 24))
+(declare-fun b870 () (_ FloatingPoint 8 24))
+(declare-fun b151 () (_ FloatingPoint 8 24))
+(declare-fun b280 () (_ FloatingPoint 8 24))
+(declare-fun b293 () (_ FloatingPoint 8 24))
+(declare-fun b940 () (_ FloatingPoint 8 24))
+(declare-fun b176 () (_ FloatingPoint 8 24))
+(declare-fun b449 () (_ FloatingPoint 8 24))
+(declare-fun b322 () (_ FloatingPoint 8 24))
+(declare-fun b374 () (_ FloatingPoint 8 24))
+(declare-fun b179 () (_ FloatingPoint 8 24))
+(declare-fun b146 () (_ FloatingPoint 8 24))
+(declare-fun b228 () (_ FloatingPoint 8 24))
+(declare-fun b319 () (_ FloatingPoint 8 24))
+(declare-fun b895 () (_ FloatingPoint 8 24))
+(declare-fun b257 () (_ FloatingPoint 8 24))
+(declare-fun b231 () (_ FloatingPoint 8 24))
+(declare-fun b925 () (_ FloatingPoint 8 24))
+(declare-fun b920 () (_ FloatingPoint 8 24))
+(declare-fun b134 () (_ FloatingPoint 8 24))
+(declare-fun b358 () (_ FloatingPoint 8 24))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 8 24) b970)
+(define-fun _t_10 () (_ FloatingPoint 8 24) b975)
+(define-fun _t_11 () Bool (= _t_9 _t_10))
+(define-fun _t_12 () Bool (not _t_11))
+(define-fun _t_13 () (_ FloatingPoint 8 24) b965)
+(define-fun _t_14 () Bool (= _t_9 _t_13))
+(define-fun _t_15 () Bool (not _t_14))
+(define-fun _t_16 () (_ FloatingPoint 8 24) b960)
+(define-fun _t_17 () Bool (= _t_13 _t_16))
+(define-fun _t_18 () Bool (not _t_17))
+(define-fun _t_19 () (_ FloatingPoint 8 24) b955)
+(define-fun _t_20 () Bool (= _t_16 _t_19))
+(define-fun _t_21 () Bool (not _t_20))
+(define-fun _t_22 () (_ FloatingPoint 8 24) b950)
+(define-fun _t_23 () Bool (= _t_19 _t_22))
+(define-fun _t_24 () Bool (not _t_23))
+(define-fun _t_25 () (_ FloatingPoint 8 24) b945)
+(define-fun _t_26 () Bool (= _t_22 _t_25))
+(define-fun _t_27 () Bool (not _t_26))
+(define-fun _t_28 () (_ FloatingPoint 8 24) b940)
+(define-fun _t_29 () Bool (= _t_25 _t_28))
+(define-fun _t_30 () Bool (not _t_29))
+(define-fun _t_31 () (_ FloatingPoint 8 24) b935)
+(define-fun _t_32 () Bool (= _t_28 _t_31))
+(define-fun _t_33 () Bool (not _t_32))
+(define-fun _t_34 () (_ FloatingPoint 8 24) b930)
+(define-fun _t_35 () Bool (= _t_31 _t_34))
+(define-fun _t_36 () Bool (not _t_35))
+(define-fun _t_37 () (_ FloatingPoint 8 24) b925)
+(define-fun _t_38 () Bool (= _t_34 _t_37))
+(define-fun _t_39 () Bool (not _t_38))
+(define-fun _t_40 () (_ FloatingPoint 8 24) b920)
+(define-fun _t_41 () Bool (= _t_37 _t_40))
+(define-fun _t_42 () Bool (not _t_41))
+(define-fun _t_43 () (_ FloatingPoint 8 24) b915)
+(define-fun _t_44 () Bool (= _t_40 _t_43))
+(define-fun _t_45 () Bool (not _t_44))
+(define-fun _t_46 () (_ FloatingPoint 8 24) b910)
+(define-fun _t_47 () Bool (= _t_43 _t_46))
+(define-fun _t_48 () Bool (not _t_47))
+(define-fun _t_49 () (_ FloatingPoint 8 24) b905)
+(define-fun _t_50 () Bool (= _t_46 _t_49))
+(define-fun _t_51 () Bool (not _t_50))
+(define-fun _t_52 () (_ FloatingPoint 8 24) b900)
+(define-fun _t_53 () Bool (= _t_49 _t_52))
+(define-fun _t_54 () Bool (not _t_53))
+(define-fun _t_55 () (_ FloatingPoint 8 24) b895)
+(define-fun _t_56 () Bool (= _t_52 _t_55))
+(define-fun _t_57 () Bool (not _t_56))
+(define-fun _t_58 () (_ FloatingPoint 8 24) b890)
+(define-fun _t_59 () Bool (= _t_55 _t_58))
+(define-fun _t_60 () Bool (not _t_59))
+(define-fun _t_61 () (_ FloatingPoint 8 24) b885)
+(define-fun _t_62 () Bool (= _t_58 _t_61))
+(define-fun _t_63 () Bool (not _t_62))
+(define-fun _t_64 () (_ FloatingPoint 8 24) b880)
+(define-fun _t_65 () Bool (= _t_61 _t_64))
+(define-fun _t_66 () Bool (not _t_65))
+(define-fun _t_67 () (_ FloatingPoint 8 24) b875)
+(define-fun _t_68 () Bool (= _t_64 _t_67))
+(define-fun _t_69 () Bool (not _t_68))
+(define-fun _t_70 () (_ FloatingPoint 8 24) b870)
+(define-fun _t_71 () Bool (= _t_67 _t_70))
+(define-fun _t_72 () Bool (not _t_71))
+(define-fun _t_73 () (_ FloatingPoint 8 24) b865)
+(define-fun _t_74 () Bool (= _t_70 _t_73))
+(define-fun _t_75 () Bool (not _t_74))
+(define-fun _t_76 () (_ FloatingPoint 8 24) b860)
+(define-fun _t_77 () Bool (= _t_73 _t_76))
+(define-fun _t_78 () Bool (not _t_77))
+(define-fun _t_79 () (_ FloatingPoint 8 24) b148)
+(define-fun _t_80 () (_ FloatingPoint 8 24) b465)
+(define-fun _t_81 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_80))
+(define-fun _t_82 () (_ FloatingPoint 8 24) b136)
+(define-fun _t_83 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_81 _t_82))
+(define-fun _t_84 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_83 _t_83))
+(define-fun _t_85 () (_ FloatingPoint 8 24) b462)
+(define-fun _t_86 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_85))
+(define-fun _t_87 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_86))
+(define-fun _t_88 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_87 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_84 _t_88))
+(define-fun _t_90 () Bool (= _t_76 _t_89))
+(define-fun _t_91 () Bool (not _t_90))
+(define-fun _t_92 () (_ FloatingPoint 8 24) b452)
+(define-fun _t_93 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_92))
+(define-fun _t_94 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_93))
+(define-fun _t_95 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_94 _t_94))
+(define-fun _t_96 () (_ FloatingPoint 8 24) b449)
+(define-fun _t_97 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_96))
+(define-fun _t_98 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_97))
+(define-fun _t_99 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_98 _t_98))
+(define-fun _t_100 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_95 _t_99))
+(define-fun _t_101 () (_ FloatingPoint 8 24) b159)
+(define-fun _t_102 () Bool (fp.lt _t_101 _t_100))
+(define-fun _t_103 () Bool (not _t_102))
+(define-fun _t_104 () Bool (= _t_76 _t_100))
+(define-fun _t_105 () Bool (and _t_103 _t_104))
+(define-fun _t_106 () (_ FloatingPoint 8 24) b610)
+(define-fun _t_107 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_106 _t_10))
+(define-fun _t_108 () (_ FloatingPoint 8 24) b134)
+(define-fun _t_109 () Bool (fp.leq _t_108 _t_107))
+(define-fun _t_110 () Bool (not _t_109))
+(define-fun _t_111 () Bool (and _t_105 _t_110))
+(define-fun _t_112 () Bool (and _t_91 _t_111))
+(define-fun _t_113 () (_ FloatingPoint 8 24) b439)
+(define-fun _t_114 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_113))
+(define-fun _t_115 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_114))
+(define-fun _t_116 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_115 _t_115))
+(define-fun _t_117 () (_ FloatingPoint 8 24) b436)
+(define-fun _t_118 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_118))
+(define-fun _t_120 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_119 _t_119))
+(define-fun _t_121 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_116 _t_120))
+(define-fun _t_122 () Bool (fp.lt _t_101 _t_121))
+(define-fun _t_123 () Bool (not _t_122))
+(define-fun _t_124 () Bool (and _t_112 _t_123))
+(define-fun _t_125 () Bool (= _t_73 _t_121))
+(define-fun _t_126 () Bool (and _t_124 _t_125))
+(define-fun _t_127 () Bool (and _t_78 _t_126))
+(define-fun _t_128 () (_ FloatingPoint 8 24) b426)
+(define-fun _t_129 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_128))
+(define-fun _t_130 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_129))
+(define-fun _t_131 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_130 _t_130))
+(define-fun _t_132 () (_ FloatingPoint 8 24) b423)
+(define-fun _t_133 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_132))
+(define-fun _t_134 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_133))
+(define-fun _t_135 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_134 _t_134))
+(define-fun _t_136 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_131 _t_135))
+(define-fun _t_137 () Bool (fp.lt _t_101 _t_136))
+(define-fun _t_138 () Bool (not _t_137))
+(define-fun _t_139 () Bool (and _t_127 _t_138))
+(define-fun _t_140 () Bool (= _t_70 _t_136))
+(define-fun _t_141 () Bool (and _t_139 _t_140))
+(define-fun _t_142 () Bool (and _t_75 _t_141))
+(define-fun _t_143 () (_ FloatingPoint 8 24) b413)
+(define-fun _t_144 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_143))
+(define-fun _t_145 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_144))
+(define-fun _t_146 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_145 _t_145))
+(define-fun _t_147 () (_ FloatingPoint 8 24) b410)
+(define-fun _t_148 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_147))
+(define-fun _t_149 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_148))
+(define-fun _t_150 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_149 _t_149))
+(define-fun _t_151 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_146 _t_150))
+(define-fun _t_152 () Bool (fp.lt _t_101 _t_151))
+(define-fun _t_153 () Bool (not _t_152))
+(define-fun _t_154 () Bool (and _t_142 _t_153))
+(define-fun _t_155 () Bool (= _t_67 _t_151))
+(define-fun _t_156 () Bool (and _t_154 _t_155))
+(define-fun _t_157 () Bool (and _t_72 _t_156))
+(define-fun _t_158 () (_ FloatingPoint 8 24) b400)
+(define-fun _t_159 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_158))
+(define-fun _t_160 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_159))
+(define-fun _t_161 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_160 _t_160))
+(define-fun _t_162 () (_ FloatingPoint 8 24) b397)
+(define-fun _t_163 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_162))
+(define-fun _t_164 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_163))
+(define-fun _t_165 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_164 _t_164))
+(define-fun _t_166 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_161 _t_165))
+(define-fun _t_167 () Bool (fp.lt _t_101 _t_166))
+(define-fun _t_168 () Bool (not _t_167))
+(define-fun _t_169 () Bool (and _t_157 _t_168))
+(define-fun _t_170 () Bool (= _t_64 _t_166))
+(define-fun _t_171 () Bool (and _t_169 _t_170))
+(define-fun _t_172 () Bool (and _t_69 _t_171))
+(define-fun _t_173 () (_ FloatingPoint 8 24) b387)
+(define-fun _t_174 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_173))
+(define-fun _t_175 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_174))
+(define-fun _t_176 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_175 _t_175))
+(define-fun _t_177 () (_ FloatingPoint 8 24) b384)
+(define-fun _t_178 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_177))
+(define-fun _t_179 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_178))
+(define-fun _t_180 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_179 _t_179))
+(define-fun _t_181 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_176 _t_180))
+(define-fun _t_182 () Bool (fp.lt _t_101 _t_181))
+(define-fun _t_183 () Bool (not _t_182))
+(define-fun _t_184 () Bool (and _t_172 _t_183))
+(define-fun _t_185 () Bool (= _t_61 _t_181))
+(define-fun _t_186 () Bool (and _t_184 _t_185))
+(define-fun _t_187 () Bool (and _t_66 _t_186))
+(define-fun _t_188 () (_ FloatingPoint 8 24) b374)
+(define-fun _t_189 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_188))
+(define-fun _t_190 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_189))
+(define-fun _t_191 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_190 _t_190))
+(define-fun _t_192 () (_ FloatingPoint 8 24) b371)
+(define-fun _t_193 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_192))
+(define-fun _t_194 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_193))
+(define-fun _t_195 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_194 _t_194))
+(define-fun _t_196 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_191 _t_195))
+(define-fun _t_197 () Bool (fp.lt _t_101 _t_196))
+(define-fun _t_198 () Bool (not _t_197))
+(define-fun _t_199 () Bool (and _t_187 _t_198))
+(define-fun _t_200 () Bool (= _t_58 _t_196))
+(define-fun _t_201 () Bool (and _t_199 _t_200))
+(define-fun _t_202 () Bool (and _t_63 _t_201))
+(define-fun _t_203 () (_ FloatingPoint 8 24) b361)
+(define-fun _t_204 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_203))
+(define-fun _t_205 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_204))
+(define-fun _t_206 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_205 _t_205))
+(define-fun _t_207 () (_ FloatingPoint 8 24) b358)
+(define-fun _t_208 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_207))
+(define-fun _t_209 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_208))
+(define-fun _t_210 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_209 _t_209))
+(define-fun _t_211 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_206 _t_210))
+(define-fun _t_212 () Bool (fp.lt _t_101 _t_211))
+(define-fun _t_213 () Bool (not _t_212))
+(define-fun _t_214 () Bool (and _t_202 _t_213))
+(define-fun _t_215 () Bool (= _t_55 _t_211))
+(define-fun _t_216 () Bool (and _t_214 _t_215))
+(define-fun _t_217 () Bool (and _t_60 _t_216))
+(define-fun _t_218 () (_ FloatingPoint 8 24) b348)
+(define-fun _t_219 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_218))
+(define-fun _t_220 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_219))
+(define-fun _t_221 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_220 _t_220))
+(define-fun _t_222 () (_ FloatingPoint 8 24) b345)
+(define-fun _t_223 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_222))
+(define-fun _t_224 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_223))
+(define-fun _t_225 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_224 _t_224))
+(define-fun _t_226 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_221 _t_225))
+(define-fun _t_227 () Bool (fp.lt _t_101 _t_226))
+(define-fun _t_228 () Bool (not _t_227))
+(define-fun _t_229 () Bool (and _t_217 _t_228))
+(define-fun _t_230 () Bool (= _t_52 _t_226))
+(define-fun _t_231 () Bool (and _t_229 _t_230))
+(define-fun _t_232 () Bool (and _t_57 _t_231))
+(define-fun _t_233 () (_ FloatingPoint 8 24) b335)
+(define-fun _t_234 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_233))
+(define-fun _t_235 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_234))
+(define-fun _t_236 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_235 _t_235))
+(define-fun _t_237 () (_ FloatingPoint 8 24) b332)
+(define-fun _t_238 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_237))
+(define-fun _t_239 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_238))
+(define-fun _t_240 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_239 _t_239))
+(define-fun _t_241 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_236 _t_240))
+(define-fun _t_242 () Bool (fp.lt _t_101 _t_241))
+(define-fun _t_243 () Bool (not _t_242))
+(define-fun _t_244 () Bool (and _t_232 _t_243))
+(define-fun _t_245 () Bool (= _t_49 _t_241))
+(define-fun _t_246 () Bool (and _t_244 _t_245))
+(define-fun _t_247 () Bool (and _t_54 _t_246))
+(define-fun _t_248 () (_ FloatingPoint 8 24) b322)
+(define-fun _t_249 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_248))
+(define-fun _t_250 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_249))
+(define-fun _t_251 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_250 _t_250))
+(define-fun _t_252 () (_ FloatingPoint 8 24) b319)
+(define-fun _t_253 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_252))
+(define-fun _t_254 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_253))
+(define-fun _t_255 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_254 _t_254))
+(define-fun _t_256 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_251 _t_255))
+(define-fun _t_257 () Bool (fp.lt _t_101 _t_256))
+(define-fun _t_258 () Bool (not _t_257))
+(define-fun _t_259 () Bool (and _t_247 _t_258))
+(define-fun _t_260 () Bool (= _t_46 _t_256))
+(define-fun _t_261 () Bool (and _t_259 _t_260))
+(define-fun _t_262 () Bool (and _t_51 _t_261))
+(define-fun _t_263 () (_ FloatingPoint 8 24) b309)
+(define-fun _t_264 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_263))
+(define-fun _t_265 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_264))
+(define-fun _t_266 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_265 _t_265))
+(define-fun _t_267 () (_ FloatingPoint 8 24) b306)
+(define-fun _t_268 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_267))
+(define-fun _t_269 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_268))
+(define-fun _t_270 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_269 _t_269))
+(define-fun _t_271 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_266 _t_270))
+(define-fun _t_272 () Bool (fp.lt _t_101 _t_271))
+(define-fun _t_273 () Bool (not _t_272))
+(define-fun _t_274 () Bool (and _t_262 _t_273))
+(define-fun _t_275 () Bool (= _t_43 _t_271))
+(define-fun _t_276 () Bool (and _t_274 _t_275))
+(define-fun _t_277 () Bool (and _t_48 _t_276))
+(define-fun _t_278 () (_ FloatingPoint 8 24) b296)
+(define-fun _t_279 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_278))
+(define-fun _t_280 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_279))
+(define-fun _t_281 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_280 _t_280))
+(define-fun _t_282 () (_ FloatingPoint 8 24) b293)
+(define-fun _t_283 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_282))
+(define-fun _t_284 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_283))
+(define-fun _t_285 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_284 _t_284))
+(define-fun _t_286 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_281 _t_285))
+(define-fun _t_287 () Bool (fp.lt _t_101 _t_286))
+(define-fun _t_288 () Bool (not _t_287))
+(define-fun _t_289 () Bool (and _t_277 _t_288))
+(define-fun _t_290 () Bool (= _t_40 _t_286))
+(define-fun _t_291 () Bool (and _t_289 _t_290))
+(define-fun _t_292 () Bool (and _t_45 _t_291))
+(define-fun _t_293 () (_ FloatingPoint 8 24) b283)
+(define-fun _t_294 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_293))
+(define-fun _t_295 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_294))
+(define-fun _t_296 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_295 _t_295))
+(define-fun _t_297 () (_ FloatingPoint 8 24) b280)
+(define-fun _t_298 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_297))
+(define-fun _t_299 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_298))
+(define-fun _t_300 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_299 _t_299))
+(define-fun _t_301 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_296 _t_300))
+(define-fun _t_302 () Bool (fp.lt _t_101 _t_301))
+(define-fun _t_303 () Bool (not _t_302))
+(define-fun _t_304 () Bool (and _t_292 _t_303))
+(define-fun _t_305 () Bool (= _t_37 _t_301))
+(define-fun _t_306 () Bool (and _t_304 _t_305))
+(define-fun _t_307 () Bool (and _t_42 _t_306))
+(define-fun _t_308 () (_ FloatingPoint 8 24) b270)
+(define-fun _t_309 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_308))
+(define-fun _t_310 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_309))
+(define-fun _t_311 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_310 _t_310))
+(define-fun _t_312 () (_ FloatingPoint 8 24) b267)
+(define-fun _t_313 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_312))
+(define-fun _t_314 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_313))
+(define-fun _t_315 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_314 _t_314))
+(define-fun _t_316 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_311 _t_315))
+(define-fun _t_317 () Bool (fp.lt _t_101 _t_316))
+(define-fun _t_318 () Bool (not _t_317))
+(define-fun _t_319 () Bool (and _t_307 _t_318))
+(define-fun _t_320 () Bool (= _t_34 _t_316))
+(define-fun _t_321 () Bool (and _t_319 _t_320))
+(define-fun _t_322 () Bool (and _t_39 _t_321))
+(define-fun _t_323 () (_ FloatingPoint 8 24) b257)
+(define-fun _t_324 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_323))
+(define-fun _t_325 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_324))
+(define-fun _t_326 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_325 _t_325))
+(define-fun _t_327 () (_ FloatingPoint 8 24) b254)
+(define-fun _t_328 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_327))
+(define-fun _t_329 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_328))
+(define-fun _t_330 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_329 _t_329))
+(define-fun _t_331 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_326 _t_330))
+(define-fun _t_332 () Bool (fp.lt _t_101 _t_331))
+(define-fun _t_333 () Bool (not _t_332))
+(define-fun _t_334 () Bool (and _t_322 _t_333))
+(define-fun _t_335 () Bool (= _t_31 _t_331))
+(define-fun _t_336 () Bool (and _t_334 _t_335))
+(define-fun _t_337 () Bool (and _t_36 _t_336))
+(define-fun _t_338 () (_ FloatingPoint 8 24) b244)
+(define-fun _t_339 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_338))
+(define-fun _t_340 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_339))
+(define-fun _t_341 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_340 _t_340))
+(define-fun _t_342 () (_ FloatingPoint 8 24) b241)
+(define-fun _t_343 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_342))
+(define-fun _t_344 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_343))
+(define-fun _t_345 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_344 _t_344))
+(define-fun _t_346 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_341 _t_345))
+(define-fun _t_347 () Bool (fp.lt _t_101 _t_346))
+(define-fun _t_348 () Bool (not _t_347))
+(define-fun _t_349 () Bool (and _t_337 _t_348))
+(define-fun _t_350 () Bool (= _t_28 _t_346))
+(define-fun _t_351 () Bool (and _t_349 _t_350))
+(define-fun _t_352 () Bool (and _t_33 _t_351))
+(define-fun _t_353 () (_ FloatingPoint 8 24) b231)
+(define-fun _t_354 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_353))
+(define-fun _t_355 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_354))
+(define-fun _t_356 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_355 _t_355))
+(define-fun _t_357 () (_ FloatingPoint 8 24) b228)
+(define-fun _t_358 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_357))
+(define-fun _t_359 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_358))
+(define-fun _t_360 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_359 _t_359))
+(define-fun _t_361 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_356 _t_360))
+(define-fun _t_362 () Bool (fp.lt _t_101 _t_361))
+(define-fun _t_363 () Bool (not _t_362))
+(define-fun _t_364 () Bool (and _t_352 _t_363))
+(define-fun _t_365 () Bool (= _t_25 _t_361))
+(define-fun _t_366 () Bool (and _t_364 _t_365))
+(define-fun _t_367 () Bool (and _t_30 _t_366))
+(define-fun _t_368 () (_ FloatingPoint 8 24) b218)
+(define-fun _t_369 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_368))
+(define-fun _t_370 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_369))
+(define-fun _t_371 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_370 _t_370))
+(define-fun _t_372 () (_ FloatingPoint 8 24) b215)
+(define-fun _t_373 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_372))
+(define-fun _t_374 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_373))
+(define-fun _t_375 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_374 _t_374))
+(define-fun _t_376 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_371 _t_375))
+(define-fun _t_377 () Bool (fp.lt _t_101 _t_376))
+(define-fun _t_378 () Bool (not _t_377))
+(define-fun _t_379 () Bool (and _t_367 _t_378))
+(define-fun _t_380 () Bool (= _t_22 _t_376))
+(define-fun _t_381 () Bool (and _t_379 _t_380))
+(define-fun _t_382 () Bool (and _t_27 _t_381))
+(define-fun _t_383 () (_ FloatingPoint 8 24) b205)
+(define-fun _t_384 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_383))
+(define-fun _t_385 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_384))
+(define-fun _t_386 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_385 _t_385))
+(define-fun _t_387 () (_ FloatingPoint 8 24) b202)
+(define-fun _t_388 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_387))
+(define-fun _t_389 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_388))
+(define-fun _t_390 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_389 _t_389))
+(define-fun _t_391 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_386 _t_390))
+(define-fun _t_392 () Bool (fp.lt _t_101 _t_391))
+(define-fun _t_393 () Bool (not _t_392))
+(define-fun _t_394 () Bool (and _t_382 _t_393))
+(define-fun _t_395 () Bool (= _t_19 _t_391))
+(define-fun _t_396 () Bool (and _t_394 _t_395))
+(define-fun _t_397 () Bool (and _t_24 _t_396))
+(define-fun _t_398 () (_ FloatingPoint 8 24) b192)
+(define-fun _t_399 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_398))
+(define-fun _t_400 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_399))
+(define-fun _t_401 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_400 _t_400))
+(define-fun _t_402 () (_ FloatingPoint 8 24) b189)
+(define-fun _t_403 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_402))
+(define-fun _t_404 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_403))
+(define-fun _t_405 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_404 _t_404))
+(define-fun _t_406 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_401 _t_405))
+(define-fun _t_407 () Bool (fp.lt _t_101 _t_406))
+(define-fun _t_408 () Bool (not _t_407))
+(define-fun _t_409 () Bool (and _t_397 _t_408))
+(define-fun _t_410 () Bool (= _t_16 _t_406))
+(define-fun _t_411 () Bool (and _t_409 _t_410))
+(define-fun _t_412 () Bool (and _t_21 _t_411))
+(define-fun _t_413 () (_ FloatingPoint 8 24) b179)
+(define-fun _t_414 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_413))
+(define-fun _t_415 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_414))
+(define-fun _t_416 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_415 _t_415))
+(define-fun _t_417 () (_ FloatingPoint 8 24) b176)
+(define-fun _t_418 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_417))
+(define-fun _t_419 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_418))
+(define-fun _t_420 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_419 _t_419))
+(define-fun _t_421 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_416 _t_420))
+(define-fun _t_422 () Bool (fp.lt _t_101 _t_421))
+(define-fun _t_423 () Bool (not _t_422))
+(define-fun _t_424 () Bool (and _t_412 _t_423))
+(define-fun _t_425 () Bool (= _t_13 _t_421))
+(define-fun _t_426 () Bool (and _t_424 _t_425))
+(define-fun _t_427 () Bool (and _t_18 _t_426))
+(define-fun _t_428 () (_ FloatingPoint 8 24) b166)
+(define-fun _t_429 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_428))
+(define-fun _t_430 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_429))
+(define-fun _t_431 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_430 _t_430))
+(define-fun _t_432 () (_ FloatingPoint 8 24) b163)
+(define-fun _t_433 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_432))
+(define-fun _t_434 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_433))
+(define-fun _t_435 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_434 _t_434))
+(define-fun _t_436 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_431 _t_435))
+(define-fun _t_437 () Bool (fp.lt _t_101 _t_436))
+(define-fun _t_438 () Bool (not _t_437))
+(define-fun _t_439 () Bool (and _t_427 _t_438))
+(define-fun _t_440 () Bool (= _t_9 _t_436))
+(define-fun _t_441 () Bool (and _t_439 _t_440))
+(define-fun _t_442 () Bool (and _t_15 _t_441))
+(define-fun _t_443 () (_ FloatingPoint 8 24) b151)
+(define-fun _t_444 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_443))
+(define-fun _t_445 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_444))
+(define-fun _t_446 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_445 _t_445))
+(define-fun _t_447 () (_ FloatingPoint 8 24) b146)
+(define-fun _t_448 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_79 _t_447))
+(define-fun _t_449 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_82 _t_448))
+(define-fun _t_450 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_449 _t_449))
+(define-fun _t_451 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_446 _t_450))
+(define-fun _t_452 () Bool (fp.lt _t_101 _t_451))
+(define-fun _t_453 () Bool (not _t_452))
+(define-fun _t_454 () Bool (and _t_442 _t_453))
+(define-fun _t_455 () Bool (= _t_10 _t_451))
+(define-fun _t_456 () Bool (and _t_454 _t_455))
+(define-fun _t_457 () Bool (and _t_12 _t_456))
+(define-fun _t_458 () Bool (fp.lt _t_101 _t_89))
+(define-fun _t_459 () Bool (not _t_458))
+(define-fun _t_460 () Bool (and _t_457 _t_459))
+(assert _t_460)
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sin2.c.10.smt2 b/UnitTests/sat/QF_FP/sin2.c.10.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..da97dc356b6d3c0104ed3f7bce85933bb2f26453
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sin2.c.10.smt2
@@ -0,0 +1,339 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unknown)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:53
+
+(declare-fun b199 () (_ FloatingPoint 11 53))
+(declare-fun b283 () (_ FloatingPoint 11 53))
+(declare-fun b606 () (_ FloatingPoint 8 24))
+(declare-fun b216 () (_ FloatingPoint 11 53))
+(declare-fun b616 () (_ FloatingPoint 8 24))
+(declare-fun b621 () (_ FloatingPoint 8 24))
+(declare-fun b601 () (_ FloatingPoint 8 24))
+(declare-fun b182 () (_ FloatingPoint 11 53))
+(declare-fun b567 () (_ FloatingPoint 8 24))
+(declare-fun b250 () (_ FloatingPoint 11 53))
+(declare-fun b582 () (_ FloatingPoint 8 24))
+(declare-fun b641 () (_ FloatingPoint 8 24))
+(declare-fun b557 () (_ FloatingPoint 8 24))
+(declare-fun b562 () (_ FloatingPoint 8 24))
+(declare-fun b596 () (_ FloatingPoint 8 24))
+(declare-fun b547 () (_ FloatingPoint 8 24))
+(declare-fun b149 () (_ FloatingPoint 11 53))
+(declare-fun b626 () (_ FloatingPoint 8 24))
+(declare-fun b552 () (_ FloatingPoint 8 24))
+(declare-fun b577 () (_ FloatingPoint 8 24))
+(declare-fun b267 () (_ FloatingPoint 11 53))
+(declare-fun b233 () (_ FloatingPoint 11 53))
+(declare-fun b587 () (_ FloatingPoint 8 24))
+(declare-fun b376 () (_ FloatingPoint 8 24))
+(declare-fun b140 () (_ FloatingPoint 11 53))
+(declare-fun b540 () (_ FloatingPoint 8 24))
+(declare-fun b117 () (_ FloatingPoint 8 24))
+(declare-fun b631 () (_ FloatingPoint 8 24))
+(declare-fun b110 () (_ FloatingPoint 8 24))
+(declare-fun b572 () (_ FloatingPoint 8 24))
+(declare-fun b108 () (_ FloatingPoint 8 24))
+(declare-fun b545 () (_ FloatingPoint 8 24))
+(declare-fun b127 () (_ FloatingPoint 11 53))
+(declare-fun b373 () (_ FloatingPoint 8 24))
+(declare-fun b165 () (_ FloatingPoint 11 53))
+(declare-fun b636 () (_ FloatingPoint 8 24))
+(declare-fun b611 () (_ FloatingPoint 8 24))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 8 24) b108)
+(define-fun _t_10 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_11 () (_ FloatingPoint 8 24) (fp.neg _t_10))
+(define-fun _t_12 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_11))
+(define-fun _t_13 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_12))
+(define-fun _t_14 () (_ FloatingPoint 11 53) b127)
+(define-fun _t_15 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_13 _t_14))
+(define-fun _t_16 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_15))
+(define-fun _t_17 () (_ FloatingPoint 8 24) b641)
+(define-fun _t_18 () Bool (= _t_16 _t_17))
+(define-fun _t_19 () Bool (not _t_18))
+(define-fun _t_20 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_16))
+(define-fun _t_21 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_20))
+(define-fun _t_22 () (_ FloatingPoint 11 53) b149)
+(define-fun _t_23 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_21 _t_22))
+(define-fun _t_24 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_23))
+(define-fun _t_25 () (_ FloatingPoint 8 24) b636)
+(define-fun _t_26 () Bool (= _t_24 _t_25))
+(define-fun _t_27 () Bool (not _t_26))
+(define-fun _t_28 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_24))
+(define-fun _t_29 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_28))
+(define-fun _t_30 () (_ FloatingPoint 11 53) b165)
+(define-fun _t_31 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_29 _t_30))
+(define-fun _t_32 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_31))
+(define-fun _t_33 () (_ FloatingPoint 8 24) b631)
+(define-fun _t_34 () Bool (= _t_32 _t_33))
+(define-fun _t_35 () Bool (not _t_34))
+(define-fun _t_36 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_32))
+(define-fun _t_37 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_36))
+(define-fun _t_38 () (_ FloatingPoint 11 53) b182)
+(define-fun _t_39 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_37 _t_38))
+(define-fun _t_40 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_39))
+(define-fun _t_41 () (_ FloatingPoint 8 24) b626)
+(define-fun _t_42 () Bool (= _t_40 _t_41))
+(define-fun _t_43 () Bool (not _t_42))
+(define-fun _t_44 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_40))
+(define-fun _t_45 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_44))
+(define-fun _t_46 () (_ FloatingPoint 11 53) b199)
+(define-fun _t_47 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_45 _t_46))
+(define-fun _t_48 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_47))
+(define-fun _t_49 () (_ FloatingPoint 8 24) b621)
+(define-fun _t_50 () Bool (= _t_48 _t_49))
+(define-fun _t_51 () Bool (not _t_50))
+(define-fun _t_52 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_48))
+(define-fun _t_53 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_52))
+(define-fun _t_54 () (_ FloatingPoint 11 53) b216)
+(define-fun _t_55 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_53 _t_54))
+(define-fun _t_56 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_55))
+(define-fun _t_57 () (_ FloatingPoint 8 24) b616)
+(define-fun _t_58 () Bool (= _t_56 _t_57))
+(define-fun _t_59 () Bool (not _t_58))
+(define-fun _t_60 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_56))
+(define-fun _t_61 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_60))
+(define-fun _t_62 () (_ FloatingPoint 11 53) b233)
+(define-fun _t_63 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_61 _t_62))
+(define-fun _t_64 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_63))
+(define-fun _t_65 () (_ FloatingPoint 8 24) b611)
+(define-fun _t_66 () Bool (= _t_64 _t_65))
+(define-fun _t_67 () Bool (not _t_66))
+(define-fun _t_68 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_64))
+(define-fun _t_69 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_68))
+(define-fun _t_70 () (_ FloatingPoint 11 53) b250)
+(define-fun _t_71 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_69 _t_70))
+(define-fun _t_72 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_71))
+(define-fun _t_73 () (_ FloatingPoint 8 24) b606)
+(define-fun _t_74 () Bool (= _t_72 _t_73))
+(define-fun _t_75 () Bool (not _t_74))
+(define-fun _t_76 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_72))
+(define-fun _t_77 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_76))
+(define-fun _t_78 () (_ FloatingPoint 11 53) b267)
+(define-fun _t_79 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_77 _t_78))
+(define-fun _t_80 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_79))
+(define-fun _t_81 () (_ FloatingPoint 8 24) b601)
+(define-fun _t_82 () Bool (= _t_80 _t_81))
+(define-fun _t_83 () Bool (not _t_82))
+(define-fun _t_84 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_80))
+(define-fun _t_85 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_84))
+(define-fun _t_86 () (_ FloatingPoint 11 53) b283)
+(define-fun _t_87 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_85 _t_86))
+(define-fun _t_88 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 8 24) b596)
+(define-fun _t_90 () Bool (= _t_88 _t_89))
+(define-fun _t_91 () Bool (not _t_90))
+(define-fun _t_92 () (_ FloatingPoint 8 24) b545)
+(define-fun _t_93 () (_ FloatingPoint 8 24) b587)
+(define-fun _t_94 () Bool (= _t_92 _t_93))
+(define-fun _t_95 () Bool (not _t_94))
+(define-fun _t_96 () (_ FloatingPoint 8 24) b582)
+(define-fun _t_97 () Bool (= _t_93 _t_96))
+(define-fun _t_98 () Bool (not _t_97))
+(define-fun _t_99 () (_ FloatingPoint 8 24) b577)
+(define-fun _t_100 () Bool (= _t_96 _t_99))
+(define-fun _t_101 () Bool (not _t_100))
+(define-fun _t_102 () (_ FloatingPoint 8 24) b572)
+(define-fun _t_103 () Bool (= _t_99 _t_102))
+(define-fun _t_104 () Bool (not _t_103))
+(define-fun _t_105 () (_ FloatingPoint 8 24) b567)
+(define-fun _t_106 () Bool (= _t_102 _t_105))
+(define-fun _t_107 () Bool (not _t_106))
+(define-fun _t_108 () (_ FloatingPoint 8 24) b562)
+(define-fun _t_109 () Bool (= _t_105 _t_108))
+(define-fun _t_110 () Bool (not _t_109))
+(define-fun _t_111 () (_ FloatingPoint 8 24) b557)
+(define-fun _t_112 () Bool (= _t_108 _t_111))
+(define-fun _t_113 () Bool (not _t_112))
+(define-fun _t_114 () (_ FloatingPoint 8 24) b552)
+(define-fun _t_115 () Bool (= _t_111 _t_114))
+(define-fun _t_116 () Bool (not _t_115))
+(define-fun _t_117 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_9 _t_16))
+(define-fun _t_118 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_24 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_32 _t_118))
+(define-fun _t_120 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_40 _t_119))
+(define-fun _t_121 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_48 _t_120))
+(define-fun _t_122 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_56 _t_121))
+(define-fun _t_123 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_64 _t_122))
+(define-fun _t_124 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_72 _t_123))
+(define-fun _t_125 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_80 _t_124))
+(define-fun _t_126 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_88 _t_125))
+(define-fun _t_127 () Bool (= _t_114 _t_126))
+(define-fun _t_128 () Bool (not _t_127))
+(define-fun _t_129 () (_ FloatingPoint 8 24) b547)
+(define-fun _t_130 () Bool (= _t_92 _t_129))
+(define-fun _t_131 () Bool (not _t_130))
+(define-fun _t_132 () (_ FloatingPoint 8 24) b540)
+(define-fun _t_133 () Bool (= _t_9 _t_132))
+(define-fun _t_134 () Bool (not _t_133))
+(define-fun _t_135 () (_ FloatingPoint 8 24) b110)
+(define-fun _t_136 () Bool (fp.leq _t_135 _t_9))
+(define-fun _t_137 () Bool (not _t_136))
+(define-fun _t_138 () (_ FloatingPoint 8 24) (fp.neg _t_9))
+(define-fun _t_139 () Bool (= _t_132 _t_138))
+(define-fun _t_140 () Bool (and _t_137 _t_139))
+(define-fun _t_141 () Bool (and _t_134 _t_140))
+(define-fun _t_142 () Bool (fp.leq _t_135 _t_92))
+(define-fun _t_143 () Bool (not _t_142))
+(define-fun _t_144 () Bool (and _t_141 _t_143))
+(define-fun _t_145 () (_ FloatingPoint 8 24) (fp.neg _t_92))
+(define-fun _t_146 () Bool (= _t_129 _t_145))
+(define-fun _t_147 () Bool (and _t_144 _t_146))
+(define-fun _t_148 () Bool (and _t_131 _t_147))
+(define-fun _t_149 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_81))
+(define-fun _t_150 () (_ FloatingPoint 11 53) b140)
+(define-fun _t_151 () Bool (fp.leq _t_150 _t_149))
+(define-fun _t_152 () Bool (not _t_151))
+(define-fun _t_153 () Bool (and _t_148 _t_152))
+(define-fun _t_154 () Bool (= _t_114 _t_125))
+(define-fun _t_155 () Bool (and _t_153 _t_154))
+(define-fun _t_156 () (_ FloatingPoint 8 24) b117)
+(define-fun _t_157 () Bool (fp.leq _t_129 _t_156))
+(define-fun _t_158 () Bool (not _t_157))
+(define-fun _t_159 () Bool (and _t_155 _t_158))
+(define-fun _t_160 () (_ FloatingPoint 8 24) b376)
+(define-fun _t_161 () Bool (fp.leq _t_132 _t_160))
+(define-fun _t_162 () Bool (and _t_159 _t_161))
+(define-fun _t_163 () (_ FloatingPoint 8 24) b373)
+(define-fun _t_164 () Bool (fp.leq _t_163 _t_9))
+(define-fun _t_165 () Bool (and _t_162 _t_164))
+(define-fun _t_166 () Bool (fp.leq _t_9 _t_160))
+(define-fun _t_167 () Bool (and _t_165 _t_166))
+(define-fun _t_168 () Bool (and _t_128 _t_167))
+(define-fun _t_169 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_73))
+(define-fun _t_170 () Bool (fp.leq _t_150 _t_169))
+(define-fun _t_171 () Bool (not _t_170))
+(define-fun _t_172 () Bool (and _t_168 _t_171))
+(define-fun _t_173 () Bool (= _t_111 _t_124))
+(define-fun _t_174 () Bool (and _t_172 _t_173))
+(define-fun _t_175 () Bool (and _t_116 _t_174))
+(define-fun _t_176 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_65))
+(define-fun _t_177 () Bool (fp.leq _t_150 _t_176))
+(define-fun _t_178 () Bool (not _t_177))
+(define-fun _t_179 () Bool (and _t_175 _t_178))
+(define-fun _t_180 () Bool (= _t_108 _t_123))
+(define-fun _t_181 () Bool (and _t_179 _t_180))
+(define-fun _t_182 () Bool (and _t_113 _t_181))
+(define-fun _t_183 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_57))
+(define-fun _t_184 () Bool (fp.leq _t_150 _t_183))
+(define-fun _t_185 () Bool (not _t_184))
+(define-fun _t_186 () Bool (and _t_182 _t_185))
+(define-fun _t_187 () Bool (= _t_105 _t_122))
+(define-fun _t_188 () Bool (and _t_186 _t_187))
+(define-fun _t_189 () Bool (and _t_110 _t_188))
+(define-fun _t_190 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_49))
+(define-fun _t_191 () Bool (fp.leq _t_150 _t_190))
+(define-fun _t_192 () Bool (not _t_191))
+(define-fun _t_193 () Bool (and _t_189 _t_192))
+(define-fun _t_194 () Bool (= _t_102 _t_121))
+(define-fun _t_195 () Bool (and _t_193 _t_194))
+(define-fun _t_196 () Bool (and _t_107 _t_195))
+(define-fun _t_197 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_41))
+(define-fun _t_198 () Bool (fp.leq _t_150 _t_197))
+(define-fun _t_199 () Bool (not _t_198))
+(define-fun _t_200 () Bool (and _t_196 _t_199))
+(define-fun _t_201 () Bool (= _t_99 _t_120))
+(define-fun _t_202 () Bool (and _t_200 _t_201))
+(define-fun _t_203 () Bool (and _t_104 _t_202))
+(define-fun _t_204 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_33))
+(define-fun _t_205 () Bool (fp.leq _t_150 _t_204))
+(define-fun _t_206 () Bool (not _t_205))
+(define-fun _t_207 () Bool (and _t_203 _t_206))
+(define-fun _t_208 () Bool (= _t_96 _t_119))
+(define-fun _t_209 () Bool (and _t_207 _t_208))
+(define-fun _t_210 () Bool (and _t_101 _t_209))
+(define-fun _t_211 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_25))
+(define-fun _t_212 () Bool (fp.leq _t_150 _t_211))
+(define-fun _t_213 () Bool (not _t_212))
+(define-fun _t_214 () Bool (and _t_210 _t_213))
+(define-fun _t_215 () Bool (= _t_93 _t_118))
+(define-fun _t_216 () Bool (and _t_214 _t_215))
+(define-fun _t_217 () Bool (and _t_98 _t_216))
+(define-fun _t_218 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_17))
+(define-fun _t_219 () Bool (fp.leq _t_150 _t_218))
+(define-fun _t_220 () Bool (not _t_219))
+(define-fun _t_221 () Bool (and _t_217 _t_220))
+(define-fun _t_222 () Bool (= _t_92 _t_117))
+(define-fun _t_223 () Bool (and _t_221 _t_222))
+(define-fun _t_224 () Bool (and _t_95 _t_223))
+(define-fun _t_225 () Bool (fp.leq _t_135 _t_88))
+(define-fun _t_226 () Bool (not _t_225))
+(define-fun _t_227 () Bool (and _t_224 _t_226))
+(define-fun _t_228 () (_ FloatingPoint 8 24) (fp.neg _t_88))
+(define-fun _t_229 () Bool (= _t_89 _t_228))
+(define-fun _t_230 () Bool (and _t_227 _t_229))
+(define-fun _t_231 () Bool (and _t_91 _t_230))
+(define-fun _t_232 () Bool (fp.leq _t_135 _t_80))
+(define-fun _t_233 () Bool (not _t_232))
+(define-fun _t_234 () Bool (and _t_231 _t_233))
+(define-fun _t_235 () (_ FloatingPoint 8 24) (fp.neg _t_80))
+(define-fun _t_236 () Bool (= _t_81 _t_235))
+(define-fun _t_237 () Bool (and _t_234 _t_236))
+(define-fun _t_238 () Bool (and _t_83 _t_237))
+(define-fun _t_239 () Bool (fp.leq _t_135 _t_72))
+(define-fun _t_240 () Bool (not _t_239))
+(define-fun _t_241 () Bool (and _t_238 _t_240))
+(define-fun _t_242 () (_ FloatingPoint 8 24) (fp.neg _t_72))
+(define-fun _t_243 () Bool (= _t_73 _t_242))
+(define-fun _t_244 () Bool (and _t_241 _t_243))
+(define-fun _t_245 () Bool (and _t_75 _t_244))
+(define-fun _t_246 () Bool (fp.leq _t_135 _t_64))
+(define-fun _t_247 () Bool (not _t_246))
+(define-fun _t_248 () Bool (and _t_245 _t_247))
+(define-fun _t_249 () (_ FloatingPoint 8 24) (fp.neg _t_64))
+(define-fun _t_250 () Bool (= _t_65 _t_249))
+(define-fun _t_251 () Bool (and _t_248 _t_250))
+(define-fun _t_252 () Bool (and _t_67 _t_251))
+(define-fun _t_253 () Bool (fp.leq _t_135 _t_56))
+(define-fun _t_254 () Bool (not _t_253))
+(define-fun _t_255 () Bool (and _t_252 _t_254))
+(define-fun _t_256 () (_ FloatingPoint 8 24) (fp.neg _t_56))
+(define-fun _t_257 () Bool (= _t_57 _t_256))
+(define-fun _t_258 () Bool (and _t_255 _t_257))
+(define-fun _t_259 () Bool (and _t_59 _t_258))
+(define-fun _t_260 () Bool (fp.leq _t_135 _t_48))
+(define-fun _t_261 () Bool (not _t_260))
+(define-fun _t_262 () Bool (and _t_259 _t_261))
+(define-fun _t_263 () (_ FloatingPoint 8 24) (fp.neg _t_48))
+(define-fun _t_264 () Bool (= _t_49 _t_263))
+(define-fun _t_265 () Bool (and _t_262 _t_264))
+(define-fun _t_266 () Bool (and _t_51 _t_265))
+(define-fun _t_267 () Bool (fp.leq _t_135 _t_40))
+(define-fun _t_268 () Bool (not _t_267))
+(define-fun _t_269 () Bool (and _t_266 _t_268))
+(define-fun _t_270 () (_ FloatingPoint 8 24) (fp.neg _t_40))
+(define-fun _t_271 () Bool (= _t_41 _t_270))
+(define-fun _t_272 () Bool (and _t_269 _t_271))
+(define-fun _t_273 () Bool (and _t_43 _t_272))
+(define-fun _t_274 () Bool (fp.leq _t_135 _t_32))
+(define-fun _t_275 () Bool (not _t_274))
+(define-fun _t_276 () Bool (and _t_273 _t_275))
+(define-fun _t_277 () (_ FloatingPoint 8 24) (fp.neg _t_32))
+(define-fun _t_278 () Bool (= _t_33 _t_277))
+(define-fun _t_279 () Bool (and _t_276 _t_278))
+(define-fun _t_280 () Bool (and _t_35 _t_279))
+(define-fun _t_281 () Bool (fp.leq _t_135 _t_24))
+(define-fun _t_282 () Bool (not _t_281))
+(define-fun _t_283 () Bool (and _t_280 _t_282))
+(define-fun _t_284 () (_ FloatingPoint 8 24) (fp.neg _t_24))
+(define-fun _t_285 () Bool (= _t_25 _t_284))
+(define-fun _t_286 () Bool (and _t_283 _t_285))
+(define-fun _t_287 () Bool (and _t_27 _t_286))
+(define-fun _t_288 () Bool (fp.leq _t_135 _t_16))
+(define-fun _t_289 () Bool (not _t_288))
+(define-fun _t_290 () Bool (and _t_287 _t_289))
+(define-fun _t_291 () (_ FloatingPoint 8 24) (fp.neg _t_16))
+(define-fun _t_292 () Bool (= _t_17 _t_291))
+(define-fun _t_293 () Bool (and _t_290 _t_292))
+(define-fun _t_294 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_89))
+(define-fun _t_295 () Bool (fp.leq _t_150 _t_294))
+(define-fun _t_296 () Bool (not _t_295))
+(define-fun _t_297 () Bool (and _t_293 _t_296))
+(define-fun _t_298 () Bool (and _t_19 _t_297))
+(assert _t_298)
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sin2.c.5.smt2 b/UnitTests/sat/QF_FP/sin2.c.5.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5d8ce8cb65a5e70400f3e26ff355848363a89d39
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sin2.c.5.smt2
@@ -0,0 +1,194 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status sat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:54
+
+(declare-fun b137 () (_ FloatingPoint 11 53))
+(declare-fun b333 () (_ FloatingPoint 8 24))
+(declare-fun b338 () (_ FloatingPoint 8 24))
+(declare-fun b95 () (_ FloatingPoint 11 53))
+(declare-fun b63 () (_ FloatingPoint 8 24))
+(declare-fun b104 () (_ FloatingPoint 11 53))
+(declare-fun b367 () (_ FloatingPoint 8 24))
+(declare-fun b72 () (_ FloatingPoint 8 24))
+(declare-fun b120 () (_ FloatingPoint 11 53))
+(declare-fun b219 () (_ FloatingPoint 8 24))
+(declare-fun b321 () (_ FloatingPoint 8 24))
+(declare-fun b357 () (_ FloatingPoint 8 24))
+(declare-fun b222 () (_ FloatingPoint 8 24))
+(declare-fun b323 () (_ FloatingPoint 8 24))
+(declare-fun b328 () (_ FloatingPoint 8 24))
+(declare-fun b82 () (_ FloatingPoint 11 53))
+(declare-fun b347 () (_ FloatingPoint 8 24))
+(declare-fun b154 () (_ FloatingPoint 11 53))
+(declare-fun b362 () (_ FloatingPoint 8 24))
+(declare-fun b316 () (_ FloatingPoint 8 24))
+(declare-fun b65 () (_ FloatingPoint 8 24))
+(declare-fun b352 () (_ FloatingPoint 8 24))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 8 24) b63)
+(define-fun _t_10 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_11 () (_ FloatingPoint 8 24) (fp.neg _t_10))
+(define-fun _t_12 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_11))
+(define-fun _t_13 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_12))
+(define-fun _t_14 () (_ FloatingPoint 11 53) b82)
+(define-fun _t_15 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_13 _t_14))
+(define-fun _t_16 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_15))
+(define-fun _t_17 () (_ FloatingPoint 8 24) b367)
+(define-fun _t_18 () Bool (= _t_16 _t_17))
+(define-fun _t_19 () Bool (not _t_18))
+(define-fun _t_20 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_16))
+(define-fun _t_21 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_20))
+(define-fun _t_22 () (_ FloatingPoint 11 53) b104)
+(define-fun _t_23 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_21 _t_22))
+(define-fun _t_24 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_23))
+(define-fun _t_25 () (_ FloatingPoint 8 24) b362)
+(define-fun _t_26 () Bool (= _t_24 _t_25))
+(define-fun _t_27 () Bool (not _t_26))
+(define-fun _t_28 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_24))
+(define-fun _t_29 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_28))
+(define-fun _t_30 () (_ FloatingPoint 11 53) b120)
+(define-fun _t_31 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_29 _t_30))
+(define-fun _t_32 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_31))
+(define-fun _t_33 () (_ FloatingPoint 8 24) b357)
+(define-fun _t_34 () Bool (= _t_32 _t_33))
+(define-fun _t_35 () Bool (not _t_34))
+(define-fun _t_36 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_32))
+(define-fun _t_37 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_36))
+(define-fun _t_38 () (_ FloatingPoint 11 53) b137)
+(define-fun _t_39 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_37 _t_38))
+(define-fun _t_40 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_39))
+(define-fun _t_41 () (_ FloatingPoint 8 24) b352)
+(define-fun _t_42 () Bool (= _t_40 _t_41))
+(define-fun _t_43 () Bool (not _t_42))
+(define-fun _t_44 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_11 _t_40))
+(define-fun _t_45 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_44))
+(define-fun _t_46 () (_ FloatingPoint 11 53) b154)
+(define-fun _t_47 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_45 _t_46))
+(define-fun _t_48 () (_ FloatingPoint 8 24) ((_ to_fp 8 24) _t_3 _t_47))
+(define-fun _t_49 () (_ FloatingPoint 8 24) b347)
+(define-fun _t_50 () Bool (= _t_48 _t_49))
+(define-fun _t_51 () Bool (not _t_50))
+(define-fun _t_52 () (_ FloatingPoint 8 24) b321)
+(define-fun _t_53 () (_ FloatingPoint 8 24) b338)
+(define-fun _t_54 () Bool (= _t_52 _t_53))
+(define-fun _t_55 () Bool (not _t_54))
+(define-fun _t_56 () (_ FloatingPoint 8 24) b333)
+(define-fun _t_57 () Bool (= _t_53 _t_56))
+(define-fun _t_58 () Bool (not _t_57))
+(define-fun _t_59 () (_ FloatingPoint 8 24) b328)
+(define-fun _t_60 () Bool (= _t_56 _t_59))
+(define-fun _t_61 () Bool (not _t_60))
+(define-fun _t_62 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_9 _t_16))
+(define-fun _t_63 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_24 _t_62))
+(define-fun _t_64 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_32 _t_63))
+(define-fun _t_65 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_40 _t_64))
+(define-fun _t_66 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_48 _t_65))
+(define-fun _t_67 () Bool (= _t_59 _t_66))
+(define-fun _t_68 () Bool (not _t_67))
+(define-fun _t_69 () (_ FloatingPoint 8 24) b323)
+(define-fun _t_70 () Bool (= _t_52 _t_69))
+(define-fun _t_71 () Bool (not _t_70))
+(define-fun _t_72 () (_ FloatingPoint 8 24) b316)
+(define-fun _t_73 () Bool (= _t_9 _t_72))
+(define-fun _t_74 () Bool (not _t_73))
+(define-fun _t_75 () (_ FloatingPoint 8 24) b65)
+(define-fun _t_76 () Bool (fp.leq _t_75 _t_9))
+(define-fun _t_77 () Bool (not _t_76))
+(define-fun _t_78 () (_ FloatingPoint 8 24) (fp.neg _t_9))
+(define-fun _t_79 () Bool (= _t_72 _t_78))
+(define-fun _t_80 () Bool (and _t_77 _t_79))
+(define-fun _t_81 () Bool (and _t_74 _t_80))
+(define-fun _t_82 () Bool (fp.leq _t_75 _t_52))
+(define-fun _t_83 () Bool (not _t_82))
+(define-fun _t_84 () Bool (and _t_81 _t_83))
+(define-fun _t_85 () (_ FloatingPoint 8 24) (fp.neg _t_52))
+(define-fun _t_86 () Bool (= _t_69 _t_85))
+(define-fun _t_87 () Bool (and _t_84 _t_86))
+(define-fun _t_88 () Bool (and _t_71 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_41))
+(define-fun _t_90 () (_ FloatingPoint 11 53) b95)
+(define-fun _t_91 () Bool (fp.leq _t_90 _t_89))
+(define-fun _t_92 () Bool (not _t_91))
+(define-fun _t_93 () Bool (and _t_88 _t_92))
+(define-fun _t_94 () Bool (= _t_59 _t_65))
+(define-fun _t_95 () Bool (and _t_93 _t_94))
+(define-fun _t_96 () (_ FloatingPoint 8 24) b72)
+(define-fun _t_97 () Bool (fp.leq _t_69 _t_96))
+(define-fun _t_98 () Bool (not _t_97))
+(define-fun _t_99 () Bool (and _t_95 _t_98))
+(define-fun _t_100 () (_ FloatingPoint 8 24) b222)
+(define-fun _t_101 () Bool (fp.leq _t_72 _t_100))
+(define-fun _t_102 () Bool (and _t_99 _t_101))
+(define-fun _t_103 () (_ FloatingPoint 8 24) b219)
+(define-fun _t_104 () Bool (fp.leq _t_103 _t_9))
+(define-fun _t_105 () Bool (and _t_102 _t_104))
+(define-fun _t_106 () Bool (fp.leq _t_9 _t_100))
+(define-fun _t_107 () Bool (and _t_105 _t_106))
+(define-fun _t_108 () Bool (and _t_68 _t_107))
+(define-fun _t_109 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_33))
+(define-fun _t_110 () Bool (fp.leq _t_90 _t_109))
+(define-fun _t_111 () Bool (not _t_110))
+(define-fun _t_112 () Bool (and _t_108 _t_111))
+(define-fun _t_113 () Bool (= _t_56 _t_64))
+(define-fun _t_114 () Bool (and _t_112 _t_113))
+(define-fun _t_115 () Bool (and _t_61 _t_114))
+(define-fun _t_116 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_25))
+(define-fun _t_117 () Bool (fp.leq _t_90 _t_116))
+(define-fun _t_118 () Bool (not _t_117))
+(define-fun _t_119 () Bool (and _t_115 _t_118))
+(define-fun _t_120 () Bool (= _t_53 _t_63))
+(define-fun _t_121 () Bool (and _t_119 _t_120))
+(define-fun _t_122 () Bool (and _t_58 _t_121))
+(define-fun _t_123 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_17))
+(define-fun _t_124 () Bool (fp.leq _t_90 _t_123))
+(define-fun _t_125 () Bool (not _t_124))
+(define-fun _t_126 () Bool (and _t_122 _t_125))
+(define-fun _t_127 () Bool (= _t_52 _t_62))
+(define-fun _t_128 () Bool (and _t_126 _t_127))
+(define-fun _t_129 () Bool (and _t_55 _t_128))
+(define-fun _t_130 () Bool (fp.leq _t_75 _t_48))
+(define-fun _t_131 () Bool (not _t_130))
+(define-fun _t_132 () Bool (and _t_129 _t_131))
+(define-fun _t_133 () (_ FloatingPoint 8 24) (fp.neg _t_48))
+(define-fun _t_134 () Bool (= _t_49 _t_133))
+(define-fun _t_135 () Bool (and _t_132 _t_134))
+(define-fun _t_136 () Bool (and _t_51 _t_135))
+(define-fun _t_137 () Bool (fp.leq _t_75 _t_40))
+(define-fun _t_138 () Bool (not _t_137))
+(define-fun _t_139 () Bool (and _t_136 _t_138))
+(define-fun _t_140 () (_ FloatingPoint 8 24) (fp.neg _t_40))
+(define-fun _t_141 () Bool (= _t_41 _t_140))
+(define-fun _t_142 () Bool (and _t_139 _t_141))
+(define-fun _t_143 () Bool (and _t_43 _t_142))
+(define-fun _t_144 () Bool (fp.leq _t_75 _t_32))
+(define-fun _t_145 () Bool (not _t_144))
+(define-fun _t_146 () Bool (and _t_143 _t_145))
+(define-fun _t_147 () (_ FloatingPoint 8 24) (fp.neg _t_32))
+(define-fun _t_148 () Bool (= _t_33 _t_147))
+(define-fun _t_149 () Bool (and _t_146 _t_148))
+(define-fun _t_150 () Bool (and _t_35 _t_149))
+(define-fun _t_151 () Bool (fp.leq _t_75 _t_24))
+(define-fun _t_152 () Bool (not _t_151))
+(define-fun _t_153 () Bool (and _t_150 _t_152))
+(define-fun _t_154 () (_ FloatingPoint 8 24) (fp.neg _t_24))
+(define-fun _t_155 () Bool (= _t_25 _t_154))
+(define-fun _t_156 () Bool (and _t_153 _t_155))
+(define-fun _t_157 () Bool (and _t_27 _t_156))
+(define-fun _t_158 () Bool (fp.leq _t_75 _t_16))
+(define-fun _t_159 () Bool (not _t_158))
+(define-fun _t_160 () Bool (and _t_157 _t_159))
+(define-fun _t_161 () (_ FloatingPoint 8 24) (fp.neg _t_16))
+(define-fun _t_162 () Bool (= _t_17 _t_161))
+(define-fun _t_163 () Bool (and _t_160 _t_162))
+(define-fun _t_164 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_49))
+(define-fun _t_165 () Bool (fp.leq _t_90 _t_164))
+(define-fun _t_166 () Bool (not _t_165))
+(define-fun _t_167 () Bool (and _t_163 _t_166))
+(define-fun _t_168 () Bool (and _t_19 _t_167))
+(assert _t_168)
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-10284.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-10284.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7496ec88d7a74f86e1a12497c48e5e969bd321ac
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-10284.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.9866781053479025676011815448873676359653472900390625p964 {- 4443603147579441 964 (-3.09773e+290)}
+; -1.9866781053479025676011815448873676359653472900390625p964 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11111000011 #b1111110010010110111011111011001000100110000000110001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-10286.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-10286.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..35d17ccf01d8af613d5c807f52e4fe0293658de9
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-10286.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.4010406739299134937226654074038378894329071044921875p307 {- 1806126629671171 307 (-3.65308e+092)}
+; -1.4010406739299134937226654074038378894329071044921875p307 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10100110010 #b0110011010101010100110100000001011100101000100000011)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-11504.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-11504.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3834e8473fd5eb5ce586031b3bd1900a4a55d968
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-11504.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.8881272406469451485833133119740523397922515869140625p916 {+ 3999769510035169 916 (1.04594e+276)}
+; 1.8881272406469451485833133119740523397922515869140625p916 S == 1.3740914236858277064357025665231049060821533203125p458
+; [HW: 1.3740914236858277064357025665231049060821533203125p458] 
+
+; mpf : + 1684757996313992 458
+; mpfd: + 1684757996313992 458 (1.02271e+138) class: Pos. norm. non-zero
+; hwf : + 1684757996313992 458 (1.02271e+138) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11110010011 #b1110001101011100010011101000110101000011111011100001)))
+(assert (= r (fp #b0 #b10111001001 #b0101111111000100011101001001111001110001110110001000)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-11967.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-11967.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d0b8898161460c04642f3f6e2229afd792660bd8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-11967.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.443208308459445365912188208312727510929107666015625p-982 {- 1996032772825466 -982 (-3.5308e-296)}
+; -1.443208308459445365912188208312727510929107666015625p-982 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00000101001 #b0111000101110110000110011000011000100110000101111010)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-1201.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-1201.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..86fc9df8eae9069cebcdcb6ecdbc65d0449004ec
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-1201.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.1263064392537069924316028846078552305698394775390625p-925 {- 568833632757489 -925 (-3.9711e-279)}
+; -1.1263064392537069924316028846078552305698394775390625p-925 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00001100010 #b0010000001010101100111100110100111011110011011110001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-12401.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-12401.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0966003216bff8d8e120f4ba44a52eb81850bcdf
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-12401.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.4629343096259532774894296380807645618915557861328125p-13 {+ 2084870784328461 -13 (0.000178581)}
+; 1.4629343096259532774894296380807645618915557861328125p-13 S == 1.7105170619587244384973701016861014068126678466796875p-7
+; [HW: 1.7105170619587244384973701016861014068126678466796875p-7] 
+
+; mpf : + 3199884375477691 -7
+; mpfd: + 3199884375477691 -7 (0.0133634) class: Pos. norm. non-zero
+; hwf : + 3199884375477691 -7 (0.0133634) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01111110010 #b0111011010000010110111001110100000001010001100001101)))
+(assert (= r (fp #b0 #b01111111000 #b1011010111100100011100100011100001011100110110111011)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-12581.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-12581.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1d7212dbb6e36a3d314bf5e5c9bc8abe1a200227
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-12581.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.264722843237104488167688032262958586215972900390625p664 {- 1192205698159082 664 (-9.68083e+199)}
+; -1.264722843237104488167688032262958586215972900390625p664 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11010010111 #b0100001111000100111000000101001000110101000111101010)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-13316.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-13316.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ca3cb58d2bf8cae1bacd0a726d6c1e70b5edef89
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-13316.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.721705659740254024114847197779454290866851806640625p-538 {+ 3250273340277386 -538 (1.91347e-162)}
+; 1.721705659740254024114847197779454290866851806640625p-538 S == 1.3121378204061697747562220683903433382511138916015625p-269
+; [HW: 1.3121378204061697747562220683903433382511138916015625p-269] 
+
+; mpf : + 1405743771669465 -269
+; mpfd: + 1405743771669465 -269 (1.38328e-081) class: Pos. norm. non-zero
+; hwf : + 1405743771669465 -269 (1.38328e-081) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00111100101 #b1011100011000001101100111011110111101100001010001010)))
+(assert (= r (fp #b0 #b01011110010 #b0100111111101000010000111010001001111101001111011001)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-13690.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-13690.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1ac30dfa05307cb60219b2e628dc4373f4110351
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-13690.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.97861771541432229781776186428032815456390380859375p938 {- 4407302378478108 938 (-4.59725e+282)}
+; -1.97861771541432229781776186428032815456390380859375p938 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11110101001 #b1111101010000110101100001100101011111101101000011100)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-13762.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-13762.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..77c938215ececb0c72e3f6c9ea7d7a775d50f270
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-13762.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.559333285171588645567908315570093691349029541015625p132 {- 2519013174674682 132 (-8.48982e+039)}
+; -1.559333285171588645567908315570093691349029541015625p132 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10010000011 #b1000111100110000011101110101011101100000010011111010)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-13880.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-13880.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5325153c8684c2ae5879b2fb9869aa11b5ede911
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-13880.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.3571348728035363961907933116890490055084228515625p1023 {- 1608392480079016 1023 (-1.21986e+308)}
+; -1.3571348728035363961907933116890490055084228515625p1023 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11111111110 #b0101101101101101001100001110011011110011110010101000)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-14248.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-14248.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7debd7716e277b9627dc95e29fb6999dc6b22ddd
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-14248.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.81863394397416033854142369818873703479766845703125p225 {+ 3686799525034868 225 (9.80605e+067)}
+; 1.81863394397416033854142369818873703479766845703125p225 S == 1.9071622605190992061352517339400947093963623046875p112
+; [HW: 1.9071622605190992061352517339400947093963623046875p112] 
+
+; mpf : + 4085495618438392 112
+; mpfd: + 4085495618438392 112 (9.90255e+033) class: Pos. norm. non-zero
+; hwf : + 4085495618438392 112 (9.90255e+033) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10011100000 #b1101000110010001111111101000000011000011101101110100)))
+(assert (= r (fp #b0 #b10001101111 #b1110100000111011110010010011000100011000010011111000)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-14254.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-14254.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e158f08e921121ffc44ce2121b0556a35bab7b70
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-14254.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.306250880706244288376183249056339263916015625p600 {- 1379231352230528 600 (-5.42031e+180)}
+; -1.306250880706244288376183249056339263916015625p600 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11001010111 #b0100111001100110011101010010110100000001001010000000)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-145.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-145.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a5fb4ba6964b4fe55aec35b9935c7beb5c8332a0
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-145.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.4444016368819279083623996484675444662570953369140625p-212 {- 2001407046264289 -212 (-2.19447e-064)}
+; -1.4444016368819279083623996484675444662570953369140625p-212 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100101011 #b0111000111000100010011100100000010110010010111100001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-14564.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-14564.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f2a31e835e99d4e2696c345f9a0426c67b48afb6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-14564.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.3761190398807767731881313011399470269680023193359375p607 {- 1693889567854015 607 (-7.30909e+182)}
+; -1.3761190398807767731881313011399470269680023193359375p607 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11001011110 #b0110000001001001010101100101111110110000110110111111)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-14628.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-14628.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..766b920171f155a91f26d4f70d313d45e59ca4c1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-14628.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.947018437986577144016564488993026316165924072265625p-537 {+ 4264991884429338 -537 (4.32775e-162)}
+; 1.947018437986577144016564488993026316165924072265625p-537 S == 1.9733314156454191401479647538508288562297821044921875p-269
+; [HW: 1.9733314156454191401479647538508288562297821044921875p-269] 
+
+; mpf : + 4383495000808707 -269
+; mpfd: + 4383495000808707 -269 (2.08033e-081) class: Pos. norm. non-zero
+; hwf : + 4383495000808707 -269 (2.08033e-081) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00111100110 #b1111001001101111110011001110001111011100100000011010)))
+(assert (= r (fp #b0 #b01011110010 #b1111100100101100001111110110011001011101110100000011)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-15135.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-15135.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..988c4d4744598fd3aa433c095f3e38639dee2025
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-15135.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.253987679328981474924376016133464872837066650390625p870 {+ 1143858817982698 870 (9.87164e+261)}
+; 1.253987679328981474924376016133464872837066650390625p870 S == 1.1198159131433083057771682433667592704296112060546875p435
+; [HW: 1.1198159131433083057771682433667592704296112060546875p435] 
+
+; mpf : + 539602901785259 435
+; mpfd: + 539602901785259 435 (9.93561e+130) class: Pos. norm. non-zero
+; hwf : + 539602901785259 435 (9.93561e+130) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11101100101 #b0100000100000101010101100010100001001110000011101010)))
+(assert (= r (fp #b0 #b10110110010 #b0001111010101100010000010111010001111101101010101011)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-15730.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-15730.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6b86c0b4c88b8b80fba0daa08cc5387d9e933d3c
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-15730.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.4519480247274139106394841292058117687702178955078125p43 {- 2035392955753213 43 (-1.27715e+013)}
+; -1.4519480247274139106394841292058117687702178955078125p43 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10000101010 #b0111001110110010110111011010000110110010001011111101)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-16064.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-16064.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9d5680ca49264f2e36ed0b32cbb56987f1c1f114
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-16064.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.7908800790036616401579294688417576253414154052734375p-838 {+ 3561807229095639 -838 (9.7708e-253)}
+; 1.7908800790036616401579294688417576253414154052734375p-838 S == 1.3382376765745542801511192010366357862949371337890625p-419
+; [HW: 1.3382376765745542801511192010366357862949371337890625p-419] 
+
+; mpf : + 1523287074183825 -419
+; mpfd: + 1523287074183825 -419 (9.88474e-127) class: Pos. norm. non-zero
+; hwf : + 1523287074183825 -419 (9.88474e-127) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00010111001 #b1100101001110111000111011110101001100000111011010111)))
+(assert (= r (fp #b0 #b01001011100 #b0101011010010110101111101000111100101001101010010001)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-16305.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-16305.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..bc257268d0ed0580e67c7727bd813b475eeeed9f
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-16305.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.56053193678175450287426428985781967639923095703125p443 {- 2524411421619572 443 (-3.54455e+133)}
+; -1.56053193678175450287426428985781967639923095703125p443 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10110111010 #b1000111101111111000001010110000011010111010101110100)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-16646.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-16646.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d72069d10aab4d14b84fa3e037a98b6d8500fa54
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-16646.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.3079737789590859531330124809755943715572357177734375p751 {+ 1386990596160023 751 (1.54927e+226)}
+; 1.3079737789590859531330124809755943715572357177734375p751 S == 1.6173891176578913952965876887901686131954193115234375p375
+; [HW: 1.6173891176578913952965876887901686131954193115234375p375] 
+
+; mpf : + 2780473400226679 375
+; mpfd: + 2780473400226679 375 (1.24469e+113) class: Pos. norm. non-zero
+; hwf : + 2780473400226679 375 (1.24469e+113) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11011101110 #b0100111011010111010111101001110010100111101000010111)))
+(assert (= r (fp #b0 #b10101110110 #b1001111000001101001101101001010100111111001101110111)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-16876.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-16876.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..40b9b5e65b3a3fe706f709b2333d4d69f75fe7d8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-16876.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.043882556980177067629256271175108850002288818359375p675 {+ 197629467263990 675 (1.63643e+203)}
+; 1.043882556980177067629256271175108850002288818359375p675 S == 1.444910071236391591043002335936762392520904541015625p337
+; [HW: 1.444910071236391591043002335936762392520904541015625p337] 
+
+; mpf : + 2003696831033594 337
+; mpfd: + 2003696831033594 337 (4.04529e+101) class: Pos. norm. non-zero
+; hwf : + 2003696831033594 337 (4.04529e+101) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11010100010 #b0000101100111011111000110010001100011000001111110110)))
+(assert (= r (fp #b0 #b10101010000 #b0111000111100101101000000101110110011111000011111010)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-17024.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-17024.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..20693c4443dffe993c534ffd7583ac79954a01e3
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-17024.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.8017718704231613369159958892851136624813079833984375p-746 {- 3610859496873895 -746 (-4.86769e-225)}
+; -1.8017718704231613369159958892851136624813079833984375p-746 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00100010101 #b1100110101000000111010111101101001010001111110100111)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-17361.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-17361.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7ee9ed6b5083e9652c4cf8c60cc8e92badce510b
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-17361.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.36681740492838965650435056886635720729827880859375p201 {- 1651998728148508 201 (-4.39278e+060)}
+; -1.36681740492838965650435056886635720729827880859375p201 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10011001000 #b0101110111100111101111101101010111000101011000011100)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-17538.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-17538.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..11cf91b09ab625c8bbc6314506867366ba1633a1
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-17538.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.687539428165591548491875073523260653018951416015625p-813 {- 3096402312489082 -813 (-3.08935e-245)}
+; -1.687539428165591548491875073523260653018951416015625p-813 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00011010010 #b1011000000000010100101010111111010101110100001111010)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-1766.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-1766.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7c5274ecbe24d2f25b2f3d3b5d6954306eea8e49
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-1766.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.9927739432137185904281295734108425676822662353515625p472 {+ 4471056360720441 472 (2.43005e+142)}
+; 1.9927739432137185904281295734108425676822662353515625p472 S == 1.4116564536790525696829945445642806589603424072265625p236
+; [HW: 1.4116564536790525696829945445642806589603424072265625p236] 
+
+; mpf : + 1853935851393641 236
+; mpfd: + 1853935851393641 236 (1.55886e+071) class: Pos. norm. non-zero
+; hwf : + 1853935851393641 236 (1.55886e+071) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10111010111 #b1111111000100110011011101110001001101100100000111001)))
+(assert (= r (fp #b0 #b10011101011 #b0110100101100010010100010011110110111101001001101001)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-18917.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-18917.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..aa367c9b13bb16dd92feda62605bc6254a9a4f36
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-18917.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.3983528091389574310454690930782817304134368896484375p-40 {- 1794021562800199 -40 (-1.27179e-012)}
+; -1.3983528091389574310454690930782817304134368896484375p-40 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01111010111 #b0110010111111010011100110001111110000101100001000111)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-18939.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-18939.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7dde8008977ca8120f3af2d6dbe647a016f5ca53
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-18939.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.9019019044212346347677566882339306175708770751953125p932 {+ 4061805080676213 932 (6.90469e+280)}
+; 1.9019019044212346347677566882339306175708770751953125p932 S == 1.379094595892984553842097739106975495815277099609375p466
+; [HW: 1.379094595892984553842097739106975495815277099609375p466] 
+
+; mpf : + 1707290280801814 466
+; mpfd: + 1707290280801814 466 (2.62768e+140) class: Pos. norm. non-zero
+; hwf : + 1707290280801814 466 (2.62768e+140) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11110100011 #b1110011011100011000010110000111110110000011101110101)))
+(assert (= r (fp #b0 #b10111010001 #b0110000100001100010101111110101101110011011000010110)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-19265.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-19265.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..95905770a0330cc539d91817b788198895680cac
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-19265.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.51144588353136821723410321283154189586639404296875p881 {- 2303347490492044 881 (-2.43679e+265)}
+; -1.51144588353136821723410321283154189586639404296875p881 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11101110000 #b1000001011101110000111100000111101110000111010001100)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-19297.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-19297.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d5cfa2478998311bcdfad9dc820b2cd228d51560
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-19297.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.490565945465146757697993962210603058338165283203125p595 {- 2209312609197490 595 (-1.93285e+179)}
+; -1.490565945465146757697993962210603058338165283203125p595 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11001010010 #b0111110110010101101110101101010001001101110110110010)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-19725.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-19725.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f61f4ec2ee277ecfce587500071d49a2ac6e8368
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-19725.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.5526884316961713228266717123915441334247589111328125p-208 {- 2489087415038861 -208 (-3.77438e-063)}
+; -1.5526884316961713228266717123915441334247589111328125p-208 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100101111 #b1000110101111100111111010011001100000011001110001101)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-2173.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-2173.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e65409c549add2af99a03e9a60aa0816119f02ea
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-2173.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.6889953566008439889145620327326469123363494873046875p-129 {+ 3102959231247563 -129 (2.48176e-039)}
+; 1.6889953566008439889145620327326469123363494873046875p-129 S == 1.8379310958797361319483343322644941508769989013671875p-65
+; [HW: 1.8379310958797361319483343322644941508769989013671875p-65] 
+
+; mpf : + 3773706171166131 -65
+; mpfd: + 3773706171166131 -65 (4.98172e-020) class: Pos. norm. non-zero
+; hwf : + 3773706171166131 -65 (4.98172e-020) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01101111110 #b1011000001100001111111111110101110110010010011001011)))
+(assert (= r (fp #b0 #b01110111110 #b1101011010000010101001101111110100011010110110110011)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-3270.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-3270.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..823292cb3e8f38d5a64a485cb656a984cb0eca50
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-3270.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.2113528000757194380554437884711660444736480712890625p-276 {+ 951848391664721 -276 (9.97681e-084)}
+; 1.2113528000757194380554437884711660444736480712890625p-276 S == 1.1006147373516854681696486295550130307674407958984375p-138
+; [HW: 1.1006147373516854681696486295550130307674407958984375p-138] 
+
+; mpf : + 453128493645031 -138
+; mpfd: + 453128493645031 -138 (3.15861e-042) class: Pos. norm. non-zero
+; hwf : + 453128493645031 -138 (3.15861e-042) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01011101011 #b0011011000011011001101111001010000111110010001010001)))
+(assert (= r (fp #b0 #b01101110101 #b0001100111000001111000110010111001101011110011100111)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-3535.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-3535.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..45d590642c8bbd3b7e04afb084004073afb5582a
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-3535.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.12526158961176125927750035771168768405914306640625p-173 {+ 564128048299364 -173 (9.39862e-053)}
+; 1.12526158961176125927750035771168768405914306640625p-173 S == 1.5001743829380378425497610805905424058437347412109375p-87
+; [HW: 1.5001743829380378425497610805905424058437347412109375p-87] 
+
+; mpf : + 2252585164620015 -87
+; mpfd: + 2252585164620015 -87 (9.69465e-027) class: Pos. norm. non-zero
+; hwf : + 2252585164620015 -87 (9.69465e-027) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01101010010 #b0010000000010001001001001011111011010011110101100100)))
+(assert (= r (fp #b0 #b01110101000 #b1000000000001011011011011010100100000100000011101111)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-4100.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-4100.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..10112c554cf1e632c4d4612ff15b86241bf9c19d
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-4100.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.3936893811619597283169014190207235515117645263671875p528 {- 1773019350300723 528 (-1.22463e+159)}
+; -1.3936893811619597283169014190207235515117645263671875p528 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11000001111 #b0110010011001000110100111100100011011111100000110011)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-4331.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-4331.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..97d3bdf7fb2de1b84aa56eeb7b599599a299ade0
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-4331.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.7058042728881657179584863115451298654079437255859375p-911 {- 3178659860375647 -911 (-9.85379e-275)}
+; -1.7058042728881657179584863115451298654079437255859375p-911 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00001110000 #b1011010010101111100101101011110101101110100001011111)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-5119.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-5119.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6f14bccf8cd2a3b0180e665484d36653185d1d9e
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-5119.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.8565993123956270327568063294165767729282379150390625p-219 {- 3857780344110769 -219 (-2.20368e-066)}
+; -1.8565993123956270327568063294165767729282379150390625p-219 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100100100 #b1101101101001010000101111011000010000011111010110001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-5274.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-5274.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3d3db11d9a8d720d14e899e3624fe7a2d5dbae40
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-5274.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.0762515670854500005049203537055291235446929931640625p825 {- 343406529112449 825 (-2.40802e+248)}
+; -1.0762515670854500005049203537055291235446929931640625p825 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11100111000 #b0001001110000101001110010000001011100110100110000001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-5905.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-5905.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..da7e12a6cec69f5806e23ef48867403e4b1c0402
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-5905.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.95396644924768025930461590178310871124267578125p476 {+ 4296282945355808 476 (3.81237e+143)}
+; 1.95396644924768025930461590178310871124267578125p476 S == 1.3978434995548252306463155036908574402332305908203125p238
+; [HW: 1.3978434995548252306463155036908574402332305908203125p238] 
+
+; mpf : + 1791727836346885 238
+; mpfd: + 1791727836346885 238 (6.17444e+071) class: Pos. norm. non-zero
+; hwf : + 1791727836346885 238 (6.17444e+071) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10111011011 #b1111010000110111001001010010110100000000000000100000)))
+(assert (= r (fp #b0 #b10011101101 #b0110010111011001000100100101001110000011101000000101)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-6014.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-6014.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6e90ad2635a215c13362f96b3f11db61798a6b32
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-6014.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.03880298571301477039696692372672259807586669921875p-739 {+ 174753111997996 -739 (3.59225e-223)}
+; 1.03880298571301477039696692372672259807586669921875p-739 S == 1.4413902911515774629691577501944266259670257568359375p-370
+; [HW: 1.4413902911515774629691577501944266259670257568359375p-370] 
+
+; mpf : + 1987845150755199 -370
+; mpfd: + 1987845150755199 -370 (5.99354e-112) class: Pos. norm. non-zero
+; hwf : + 1987845150755199 -370 (5.99354e-112) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00100011100 #b0000100111101110111111100001001010011111111000101100)))
+(assert (= r (fp #b0 #b01010001101 #b0111000011111110111101000100000101000100100101111111)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-6055.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-6055.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a19e8b54c76f52871c7d1aaba60bcc0a1fef64d4
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-6055.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.8698164609234790844993767677806317806243896484375p-193 {- 3917305089295704 -193 (-1.48939e-058)}
+; -1.8698164609234790844993767677806317806243896484375p-193 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100111110 #b1101111010101100010010101010010100110000010101011000)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-6410.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-6410.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8b48c6a4be9367bada94852785900a662f3c083c
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-6410.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.6211421693822172240828649592003785073757171630859375p-10 {- 2797375642573855 -10 (-0.00158315)}
+; -1.6211421693822172240828649592003785073757171630859375p-10 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01111110101 #b1001111100000011001011000101011110101001110000011111)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-6585.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-6585.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..479052ce4846f4fae11643df959bb9ac28a8aa07
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-6585.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.055919008086902977083809673786163330078125p-998 {+ 251836823983104 -998 (3.9418e-301)}
+; 1.055919008086902977083809673786163330078125p-998 S == 1.0275791979633017714235165840364061295986175537109375p-499
+; [HW: 1.0275791979633017714235165840364061295986175537109375p-499] 
+
+; mpf : + 124205665670703 -499
+; mpfd: + 124205665670703 -499 (6.27838e-151) class: Pos. norm. non-zero
+; hwf : + 124205665670703 -499 (6.27838e-151) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00000011001 #b0000111001010000101101010100011011110101010000000000)))
+(assert (= r (fp #b0 #b01000001100 #b0000011100001111011011100010100101001101011000101111)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-673.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-673.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..34643cfffa90478894ee5a67fec221a90cd6f21b
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-673.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.100116175620114322697418174357153475284576416015625p-303 {+ 450883171216506 -303 (6.75072e-092)}
+; 1.100116175620114322697418174357153475284576416015625p-303 S == 1.483318020938270809239156733383424580097198486328125p-152
+; [HW: 1.483318020938270809239156733383424580097198486328125p-152] 
+
+; mpf : + 2176670858999042 -152
+; mpfd: + 2176670858999042 -152 (2.59821e-046) class: Pos. norm. non-zero
+; hwf : + 2176670858999042 -152 (2.59821e-046) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01011010000 #b0001100110100001001101101011010000010110110001111010)))
+(assert (= r (fp #b0 #b01101100111 #b0111101110111010101110101101010101111111010100000010)))
+(assert (= (fp.sqrt roundTowardNegative x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-674.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-674.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1f1402b5b236d04ea456919c49c3eea5a4814ec6
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-674.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.1222315799318207663048951872042380273342132568359375p615 {+ 550482097833855 615 (1.52591e+185)}
+; 1.1222315799318207663048951872042380273342132568359375p615 S == 1.498153249792437247123189081321470439434051513671875p307
+; [HW: 1.498153249792437247123189081321470439434051513671875p307] 
+
+; mpf : + 2243482790138622 307
+; mpfd: + 2243482790138622 307 (3.90629e+092) class: Pos. norm. non-zero
+; hwf : + 2243482790138622 307 (3.90629e+092) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11001100110 #b0001111101001010100100011001111001011000011101111111)))
+(assert (= r (fp #b0 #b10100110010 #b0111111110000110111110001010110001000001001011111110)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-7134.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-7134.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b5dde1b938e4592e111583749c4a564ecf5411b9
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-7134.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.3717148547829054461288933453033678233623504638671875p518 {+ 1674054881488371 518 (1.17707e+156)}
+; 1.3717148547829054461288933453033678233623504638671875p518 S == 1.1712023116365954944484428779105655848979949951171875p259
+; [HW: 1.1712023116365954944484428779105655848979949951171875p259] 
+
+; mpf : + 771026666891539 259
+; mpfd: + 771026666891539 259 (1.08493e+078) class: Pos. norm. non-zero
+; hwf : + 771026666891539 259 (1.08493e+078) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11000000101 #b0101111100101000101101000110100010111010110111110011)))
+(assert (= r (fp #b0 #b10100000010 #b0010101111010011111010100010100101111010100100010011)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-7164.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-7164.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7c14309c83d276b84934b3af50c24615a9abd402
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-7164.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.568792356148156041939500937587581574916839599609375p-807 {+ 2561613043200022 -807 (1.83806e-243)}
+; 1.568792356148156041939500937587581574916839599609375p-807 S == 1.7713228707088701785465900684357620775699615478515625p-404
+; [HW: 1.7713228707088701785465900684357620775699615478515625p-404] 
+
+; mpf : + 3473729393106809 -404
+; mpfd: + 3473729393106809 -404 (4.28726e-122) class: Pos. norm. non-zero
+; hwf : + 3473729393106809 -404 (4.28726e-122) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00011011000 #b1001000110011100011000000011011111011111000000010110)))
+(assert (= r (fp #b0 #b01001101011 #b1100010101110101011010100110100001011001111101111001)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-7272.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-7272.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..584a956529ecc8eead21029d432df0411c91c4bc
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-7272.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.8297816762885050767550865202792920172214508056640625p-953 {- 3737004448131777 -953 (-2.40333e-287)}
+; -1.8297816762885050767550865202792920172214508056640625p-953 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00001000110 #b1101010001101100100100100110101001111010101011000001)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-8776.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-8776.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8e11d78a65c3409d0c19b94b7380694bf3a05881
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-8776.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.8840795801424856659167517136665992438793182373046875p876 {+ 3981540467695563 876 (9.49239e+263)}
+; 1.8840795801424856659167517136665992438793182373046875p876 S == 1.3726177837047301988349090606789104640483856201171875p438
+; [HW: 1.3726177837047301988349090606789104640483856201171875p438] 
+
+; mpf : + 1678121311844243 438
+; mpfd: + 1678121311844243 438 (9.74289e+131) class: Pos. norm. non-zero
+; hwf : + 1678121311844243 438 (9.74289e+131) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11101101011 #b1110001001010011000010100001001111000101111111001011)))
+(assert (= r (fp #b0 #b10110110101 #b0101111101100011111000010000101011101011011110010011)))
+(assert (= (fp.sqrt roundTowardZero x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-8940.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-8940.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..40ec8443f697e414ee8b57b81fdd3e18d08dc800
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-8940.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.31453747049236913113645641715265810489654541015625p842 {- 1416550834903492 842 (-3.85504e+253)}
+; -1.31453747049236913113645641715265810489654541015625p842 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11101001001 #b0101000010000101100001110001010100100001100111000100)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-9497.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-9497.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..210c7dd96ad11b4bd7f19075d489d57540620d05
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-9497.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.9000057718251930349850908896769396960735321044921875p-534 {+ 4053265658623235 -534 (3.3786e-161)}
+; 1.9000057718251930349850908896769396960735321044921875p-534 S == 1.378406968868481019541150089935399591922760009765625p-267
+; [HW: 1.378406968868481019541150089935399591922760009765625p-267] 
+
+; mpf : + 1704193483990490 -267
+; mpfd: + 1704193483990490 -267 (5.81258e-081) class: Pos. norm. non-zero
+; hwf : + 1704193483990490 -267 (5.81258e-081) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00111101001 #b1110011001100110110001110011110000110011010100000011)))
+(assert (= r (fp #b0 #b01011110100 #b0110000011011111010001110111001111011110010111011010)))
+(assert (= (fp.sqrt roundTowardPositive x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/sqrt-has-solution-9896.smt2 b/UnitTests/sat/QF_FP/sqrt-has-solution-9896.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..56d7071adca5610716fc1b935f5eeed3efd6b1f8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/sqrt-has-solution-9896.smt2
@@ -0,0 +1,24 @@
+(set-info :status sat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.7069910430387402744401015297626145184040069580078125p-428 {- 3184004597983549 -428 (-2.4626e-129)}
+; -1.7069910430387402744401015297626145184040069580078125p-428 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status sat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01001010011 #b1011010011111101010111010111000001101010100100111101)))
+(assert (= r (_ NaN 11 53)))
+(assert (= (fp.sqrt roundNearestTiesToEven x) r))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/test_v5_r5_vr5_c1_s2800.smt2 b/UnitTests/sat/QF_FP/test_v5_r5_vr5_c1_s2800.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..96e74ad4cb6344826ac03a204ca9bbf56c3fef30
--- /dev/null
+++ b/UnitTests/sat/QF_FP/test_v5_r5_vr5_c1_s2800.smt2
@@ -0,0 +1,134 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status sat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:56
+
+(declare-fun x0 () (_ FloatingPoint 8 24))
+(declare-fun x1 () (_ FloatingPoint 8 24))
+(declare-fun x2 () (_ FloatingPoint 8 24))
+(declare-fun x3 () (_ FloatingPoint 8 24))
+(declare-fun x4 () (_ FloatingPoint 8 24))
+(define-fun _t_10 () (_ FloatingPoint 8 24) (fp #b0 #b10000001 #b01000000000000000000000))
+(define-fun _t_12 () (_ FloatingPoint 8 24) (fp #b1 #b10000001 #b01000000000000000000000))
+(define-fun _t_13 () (_ FloatingPoint 8 24) x0)
+(define-fun _t_14 () Bool (fp.leq _t_12 _t_13))
+(define-fun _t_15 () Bool (fp.leq _t_13 _t_10))
+(define-fun _t_16 () Bool (and _t_14 _t_15))
+(assert _t_16)
+(define-fun _t_17 () (_ FloatingPoint 8 24) x1)
+(define-fun _t_18 () Bool (fp.leq _t_12 _t_17))
+(define-fun _t_19 () Bool (fp.leq _t_17 _t_10))
+(define-fun _t_20 () Bool (and _t_18 _t_19))
+(assert _t_20)
+(define-fun _t_21 () (_ FloatingPoint 8 24) x2)
+(define-fun _t_22 () Bool (fp.leq _t_12 _t_21))
+(define-fun _t_23 () Bool (fp.leq _t_21 _t_10))
+(define-fun _t_24 () Bool (and _t_22 _t_23))
+(assert _t_24)
+(define-fun _t_25 () (_ FloatingPoint 8 24) x3)
+(define-fun _t_26 () Bool (fp.leq _t_12 _t_25))
+(define-fun _t_27 () Bool (fp.leq _t_25 _t_10))
+(define-fun _t_28 () Bool (and _t_26 _t_27))
+(assert _t_28)
+(define-fun _t_29 () (_ FloatingPoint 8 24) x4)
+(define-fun _t_30 () Bool (fp.leq _t_12 _t_29))
+(define-fun _t_31 () Bool (fp.leq _t_29 _t_10))
+(define-fun _t_32 () Bool (and _t_30 _t_31))
+(assert _t_32)
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_34 () (_ FloatingPoint 8 24) (fp #b0 #b00000000 #b00000000000000000000000))
+(define-fun _t_36 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b10010011011101001011101))
+(define-fun _t_38 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00110001001001101110100))
+(define-fun _t_39 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_38))
+(define-fun _t_40 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_34 _t_39))
+(define-fun _t_43 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10001001001101110100110))
+(define-fun _t_44 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_43))
+(define-fun _t_45 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_40 _t_44))
+(define-fun _t_47 () (_ FloatingPoint 8 24) (fp #b0 #b01111011 #b11111011111001110110110))
+(define-fun _t_48 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_47))
+(define-fun _t_49 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_45 _t_48))
+(define-fun _t_52 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11110111110011101101100))
+(define-fun _t_53 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_52))
+(define-fun _t_54 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_49 _t_53))
+(define-fun _t_57 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b01101111100111011011001))
+(define-fun _t_58 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_57))
+(define-fun _t_59 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_54 _t_58))
+(define-fun _t_60 () Bool (fp.leq _t_36 _t_59))
+(assert _t_60)
+(define-fun _t_63 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10001110010101100000010))
+(define-fun _t_66 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00000010000011000100100))
+(define-fun _t_67 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_66))
+(define-fun _t_68 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_34 _t_67))
+(define-fun _t_70 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b11000110101001111111000))
+(define-fun _t_71 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_70))
+(define-fun _t_72 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_68 _t_71))
+(define-fun _t_75 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b01011100001010001111010))
+(define-fun _t_76 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_75))
+(define-fun _t_77 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_72 _t_76))
+(define-fun _t_79 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01001000101101000011100))
+(define-fun _t_80 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_79))
+(define-fun _t_81 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_77 _t_80))
+(define-fun _t_83 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00110001001001101110100))
+(define-fun _t_84 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_83))
+(define-fun _t_85 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_81 _t_84))
+(define-fun _t_86 () Bool (fp.leq _t_85 _t_63))
+(assert _t_86)
+(define-fun _t_88 () (_ FloatingPoint 8 24) (fp #b0 #b01111011 #b00001110010101100000010))
+(define-fun _t_91 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b10010000011000100100110))
+(define-fun _t_92 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_91))
+(define-fun _t_93 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_34 _t_92))
+(define-fun _t_96 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b01001010110000001000010))
+(define-fun _t_97 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_96))
+(define-fun _t_98 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_93 _t_97))
+(define-fun _t_101 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01101100000010000011001))
+(define-fun _t_102 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_101))
+(define-fun _t_103 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_98 _t_102))
+(define-fun _t_106 () (_ FloatingPoint 8 24) (fp #b1 #b01111010 #b11001010110000001000001))
+(define-fun _t_107 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_106))
+(define-fun _t_108 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_103 _t_107))
+(define-fun _t_111 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00001001101110100101110))
+(define-fun _t_112 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_111))
+(define-fun _t_113 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_108 _t_112))
+(define-fun _t_114 () Bool (fp.leq _t_113 _t_88))
+(assert _t_114)
+(define-fun _t_117 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b00000101000111101011100))
+(define-fun _t_119 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01101111100111011011001))
+(define-fun _t_120 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_119))
+(define-fun _t_121 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_34 _t_120))
+(define-fun _t_124 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11100010010011011101001))
+(define-fun _t_125 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_124))
+(define-fun _t_126 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_121 _t_125))
+(define-fun _t_128 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b00001011010000111001010))
+(define-fun _t_129 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_128))
+(define-fun _t_130 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_126 _t_129))
+(define-fun _t_133 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10100000110001001001101))
+(define-fun _t_134 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_133))
+(define-fun _t_135 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_130 _t_134))
+(define-fun _t_137 () (_ FloatingPoint 8 24) (fp #b0 #b01111011 #b10001101010011111110000))
+(define-fun _t_138 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_137))
+(define-fun _t_139 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_135 _t_138))
+(define-fun _t_140 () Bool (fp.leq _t_139 _t_117))
+(assert _t_140)
+(define-fun _t_143 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01100110111010010111100))
+(define-fun _t_145 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11101110000101000111100))
+(define-fun _t_146 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_145))
+(define-fun _t_147 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_34 _t_146))
+(define-fun _t_149 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10011110101110000101001))
+(define-fun _t_150 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_149))
+(define-fun _t_151 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_147 _t_150))
+(define-fun _t_153 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b10110110010001011010000))
+(define-fun _t_154 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_153))
+(define-fun _t_155 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_151 _t_154))
+(define-fun _t_157 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b01000100100110111010011))
+(define-fun _t_158 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_157))
+(define-fun _t_159 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_155 _t_158))
+(define-fun _t_161 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00101101000011100101011))
+(define-fun _t_162 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_161))
+(define-fun _t_163 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_159 _t_162))
+(define-fun _t_164 () Bool (fp.leq _t_163 _t_143))
+(assert _t_164)
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/test_v7_r12_vr5_c1_s8938.smt2 b/UnitTests/sat/QF_FP/test_v7_r12_vr5_c1_s8938.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5818b9910a84bbcae4dfb14c1d1f05e168a717d8
--- /dev/null
+++ b/UnitTests/sat/QF_FP/test_v7_r12_vr5_c1_s8938.smt2
@@ -0,0 +1,342 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status sat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:57
+
+(declare-fun x0 () (_ FloatingPoint 8 24))
+(declare-fun x1 () (_ FloatingPoint 8 24))
+(declare-fun x2 () (_ FloatingPoint 8 24))
+(declare-fun x3 () (_ FloatingPoint 8 24))
+(declare-fun x4 () (_ FloatingPoint 8 24))
+(declare-fun x5 () (_ FloatingPoint 8 24))
+(declare-fun x6 () (_ FloatingPoint 8 24))
+(define-fun _t_10 () (_ FloatingPoint 8 24) (fp #b0 #b10000001 #b01000000000000000000000))
+(define-fun _t_12 () (_ FloatingPoint 8 24) (fp #b1 #b10000001 #b01000000000000000000000))
+(define-fun _t_13 () (_ FloatingPoint 8 24) x0)
+(define-fun _t_14 () Bool (fp.leq _t_12 _t_13))
+(define-fun _t_15 () Bool (fp.leq _t_13 _t_10))
+(define-fun _t_16 () Bool (and _t_14 _t_15))
+(assert _t_16)
+(define-fun _t_17 () (_ FloatingPoint 8 24) x1)
+(define-fun _t_18 () Bool (fp.leq _t_12 _t_17))
+(define-fun _t_19 () Bool (fp.leq _t_17 _t_10))
+(define-fun _t_20 () Bool (and _t_18 _t_19))
+(assert _t_20)
+(define-fun _t_21 () (_ FloatingPoint 8 24) x2)
+(define-fun _t_22 () Bool (fp.leq _t_12 _t_21))
+(define-fun _t_23 () Bool (fp.leq _t_21 _t_10))
+(define-fun _t_24 () Bool (and _t_22 _t_23))
+(assert _t_24)
+(define-fun _t_25 () (_ FloatingPoint 8 24) x3)
+(define-fun _t_26 () Bool (fp.leq _t_12 _t_25))
+(define-fun _t_27 () Bool (fp.leq _t_25 _t_10))
+(define-fun _t_28 () Bool (and _t_26 _t_27))
+(assert _t_28)
+(define-fun _t_29 () (_ FloatingPoint 8 24) x4)
+(define-fun _t_30 () Bool (fp.leq _t_12 _t_29))
+(define-fun _t_31 () Bool (fp.leq _t_29 _t_10))
+(define-fun _t_32 () Bool (and _t_30 _t_31))
+(assert _t_32)
+(define-fun _t_33 () (_ FloatingPoint 8 24) x5)
+(define-fun _t_34 () Bool (fp.leq _t_12 _t_33))
+(define-fun _t_35 () Bool (fp.leq _t_33 _t_10))
+(define-fun _t_36 () Bool (and _t_34 _t_35))
+(assert _t_36)
+(define-fun _t_37 () (_ FloatingPoint 8 24) x6)
+(define-fun _t_38 () Bool (fp.leq _t_12 _t_37))
+(define-fun _t_39 () Bool (fp.leq _t_37 _t_10))
+(define-fun _t_40 () Bool (and _t_38 _t_39))
+(assert _t_40)
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_42 () (_ FloatingPoint 8 24) (fp #b0 #b00000000 #b00000000000000000000000))
+(define-fun _t_45 () (_ FloatingPoint 8 24) (fp #b1 #b01111011 #b11100011010100111111100))
+(define-fun _t_48 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01011000100100110111001))
+(define-fun _t_49 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_48))
+(define-fun _t_50 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_49))
+(define-fun _t_53 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b10101010011111101111100))
+(define-fun _t_54 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_53))
+(define-fun _t_55 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_50 _t_54))
+(define-fun _t_57 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01011101101100100010110))
+(define-fun _t_58 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_57))
+(define-fun _t_59 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_55 _t_58))
+(define-fun _t_61 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01111010010111100011011))
+(define-fun _t_62 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_61))
+(define-fun _t_63 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_59 _t_62))
+(define-fun _t_65 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11000001000001100010001))
+(define-fun _t_66 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_65))
+(define-fun _t_67 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_63 _t_66))
+(define-fun _t_69 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b00001010001111010111000))
+(define-fun _t_70 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_69))
+(define-fun _t_71 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_67 _t_70))
+(define-fun _t_74 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b00001000001100010010011))
+(define-fun _t_75 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_74))
+(define-fun _t_76 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_71 _t_75))
+(define-fun _t_77 () Bool (fp.leq _t_45 _t_76))
+(assert _t_77)
+(define-fun _t_79 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b11001111110111110011101))
+(define-fun _t_81 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01111010010111100011011))
+(define-fun _t_82 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_81))
+(define-fun _t_83 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_82))
+(define-fun _t_86 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11100001010001111010110))
+(define-fun _t_87 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_86))
+(define-fun _t_88 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_83 _t_87))
+(define-fun _t_90 () (_ FloatingPoint 8 24) (fp #b0 #b01110111 #b01000111101011100001001))
+(define-fun _t_91 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_90))
+(define-fun _t_92 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_88 _t_91))
+(define-fun _t_95 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01010111100011010101000))
+(define-fun _t_96 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_95))
+(define-fun _t_97 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_92 _t_96))
+(define-fun _t_100 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10000101000111101011100))
+(define-fun _t_101 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_100))
+(define-fun _t_102 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_97 _t_101))
+(define-fun _t_104 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01110110110010001011001))
+(define-fun _t_105 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_104))
+(define-fun _t_106 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_102 _t_105))
+(define-fun _t_108 () (_ FloatingPoint 8 24) (fp #b0 #b01111010 #b11010010111100011010101))
+(define-fun _t_109 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_108))
+(define-fun _t_110 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_106 _t_109))
+(define-fun _t_111 () Bool (fp.leq _t_79 _t_110))
+(assert _t_111)
+(define-fun _t_112 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01011000100100110111001))
+(define-fun _t_115 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11001101110100101111001))
+(define-fun _t_117 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b10110001001001101110101))
+(define-fun _t_118 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_118))
+(define-fun _t_121 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11111101111100111011011))
+(define-fun _t_122 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_121))
+(define-fun _t_123 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_119 _t_122))
+(define-fun _t_126 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b00100010110100001110010))
+(define-fun _t_127 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_126))
+(define-fun _t_128 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_123 _t_127))
+(define-fun _t_131 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b10100100110111010011000))
+(define-fun _t_132 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_131))
+(define-fun _t_133 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_128 _t_132))
+(define-fun _t_135 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10101100000010000011001))
+(define-fun _t_136 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_135))
+(define-fun _t_137 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_133 _t_136))
+(define-fun _t_140 () (_ FloatingPoint 8 24) (fp #b1 #b01111011 #b01001111110111110011101))
+(define-fun _t_141 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_140))
+(define-fun _t_142 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_137 _t_141))
+(define-fun _t_143 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_112))
+(define-fun _t_144 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_142 _t_143))
+(define-fun _t_145 () Bool (fp.leq _t_115 _t_144))
+(assert _t_145)
+(define-fun _t_147 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10110101001111110111110))
+(define-fun _t_149 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11100001110010101100000))
+(define-fun _t_150 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_149))
+(define-fun _t_151 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_150))
+(define-fun _t_154 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10111110011101101100011))
+(define-fun _t_155 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_154))
+(define-fun _t_156 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_151 _t_155))
+(define-fun _t_158 () (_ FloatingPoint 8 24) (fp #b0 #b01111011 #b01000011100101011000000))
+(define-fun _t_159 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_158))
+(define-fun _t_160 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_156 _t_159))
+(define-fun _t_163 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11010111000010100011111))
+(define-fun _t_164 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_163))
+(define-fun _t_165 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_160 _t_164))
+(define-fun _t_168 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11110110110010001011001))
+(define-fun _t_169 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_168))
+(define-fun _t_170 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_165 _t_169))
+(define-fun _t_172 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00010010111100011010100))
+(define-fun _t_173 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_172))
+(define-fun _t_174 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_170 _t_173))
+(define-fun _t_177 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b10111010010111100011011))
+(define-fun _t_178 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_177))
+(define-fun _t_179 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_174 _t_178))
+(define-fun _t_180 () Bool (fp.leq _t_179 _t_147))
+(assert _t_180)
+(define-fun _t_182 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11110000101000111101100))
+(define-fun _t_184 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01000111101011100001001))
+(define-fun _t_185 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_184))
+(define-fun _t_186 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_185))
+(define-fun _t_188 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01010010111100011010100))
+(define-fun _t_189 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_188))
+(define-fun _t_190 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_186 _t_189))
+(define-fun _t_192 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00111011111001110110110))
+(define-fun _t_193 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_192))
+(define-fun _t_194 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_190 _t_193))
+(define-fun _t_197 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b01111010111000010100100))
+(define-fun _t_198 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_197))
+(define-fun _t_199 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_194 _t_198))
+(define-fun _t_202 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b11010111000010100011110))
+(define-fun _t_203 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_202))
+(define-fun _t_204 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_199 _t_203))
+(define-fun _t_207 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00100000010000011000100))
+(define-fun _t_208 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_207))
+(define-fun _t_209 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_204 _t_208))
+(define-fun _t_212 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11100000010000011000100))
+(define-fun _t_213 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_212))
+(define-fun _t_214 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_209 _t_213))
+(define-fun _t_215 () Bool (fp.leq _t_214 _t_182))
+(assert _t_215)
+(define-fun _t_217 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00000000100000110001001))
+(define-fun _t_219 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00111010010111100011011))
+(define-fun _t_220 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_219))
+(define-fun _t_221 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_220))
+(define-fun _t_222 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_212))
+(define-fun _t_223 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_221 _t_222))
+(define-fun _t_225 () (_ FloatingPoint 8 24) (fp #b0 #b01111011 #b11011111001110110110001))
+(define-fun _t_226 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_225))
+(define-fun _t_227 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_223 _t_226))
+(define-fun _t_229 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11000010100011110101110))
+(define-fun _t_230 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_229))
+(define-fun _t_231 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_227 _t_230))
+(define-fun _t_233 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01101010011111101111100))
+(define-fun _t_234 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_233))
+(define-fun _t_235 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_231 _t_234))
+(define-fun _t_237 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01101110100101111000110))
+(define-fun _t_238 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_237))
+(define-fun _t_239 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_235 _t_238))
+(define-fun _t_242 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00011110101110000101001))
+(define-fun _t_243 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_242))
+(define-fun _t_244 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_239 _t_243))
+(define-fun _t_245 () Bool (fp.leq _t_244 _t_217))
+(assert _t_245)
+(define-fun _t_248 () (_ FloatingPoint 8 24) (fp #b1 #b01111010 #b01000111101011100001001))
+(define-fun _t_251 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b01011011001000101101000))
+(define-fun _t_252 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_251))
+(define-fun _t_253 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_252))
+(define-fun _t_256 () (_ FloatingPoint 8 24) (fp #b1 #b01111011 #b01010011111101111100111))
+(define-fun _t_257 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_256))
+(define-fun _t_258 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_253 _t_257))
+(define-fun _t_259 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_219))
+(define-fun _t_260 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_258 _t_259))
+(define-fun _t_262 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b11000001100010010011100))
+(define-fun _t_263 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_262))
+(define-fun _t_264 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_260 _t_263))
+(define-fun _t_267 () (_ FloatingPoint 8 24) (fp #b1 #b01111001 #b10111010010111100011010))
+(define-fun _t_268 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_267))
+(define-fun _t_269 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_264 _t_268))
+(define-fun _t_271 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00010001011010000111001))
+(define-fun _t_272 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_271))
+(define-fun _t_273 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_269 _t_272))
+(define-fun _t_275 () (_ FloatingPoint 8 24) (fp #b1 #b01111010 #b11010010111100011010101))
+(define-fun _t_276 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_275))
+(define-fun _t_277 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_273 _t_276))
+(define-fun _t_278 () Bool (fp.leq _t_248 _t_277))
+(assert _t_278)
+(define-fun _t_281 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11011001000101101000011))
+(define-fun _t_283 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11100101011000000100001))
+(define-fun _t_284 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_283))
+(define-fun _t_285 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_284))
+(define-fun _t_287 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01101110100101111000110))
+(define-fun _t_288 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_287))
+(define-fun _t_289 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_285 _t_288))
+(define-fun _t_292 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b10100101011000000100001))
+(define-fun _t_293 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_292))
+(define-fun _t_294 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_289 _t_293))
+(define-fun _t_297 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11001100010010011011100))
+(define-fun _t_298 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_297))
+(define-fun _t_299 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_294 _t_298))
+(define-fun _t_302 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00001011010000111001011))
+(define-fun _t_303 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_302))
+(define-fun _t_304 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_299 _t_303))
+(define-fun _t_306 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10101101100100010110100))
+(define-fun _t_307 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_306))
+(define-fun _t_308 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_304 _t_307))
+(define-fun _t_310 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11001000001100010010011))
+(define-fun _t_311 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_310))
+(define-fun _t_312 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_308 _t_311))
+(define-fun _t_313 () Bool (fp.leq _t_281 _t_312))
+(assert _t_313)
+(define-fun _t_316 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b01110110110010001011001))
+(define-fun _t_319 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00110011101101100100011))
+(define-fun _t_320 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_319))
+(define-fun _t_321 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_320))
+(define-fun _t_323 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01110001101010011111110))
+(define-fun _t_324 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_323))
+(define-fun _t_325 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_321 _t_324))
+(define-fun _t_327 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b01110111110011101101100))
+(define-fun _t_328 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_327))
+(define-fun _t_329 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_325 _t_328))
+(define-fun _t_332 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b01100000010000011000100))
+(define-fun _t_333 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_332))
+(define-fun _t_334 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_329 _t_333))
+(define-fun _t_336 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b01111011111001110110110))
+(define-fun _t_337 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_336))
+(define-fun _t_338 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_334 _t_337))
+(define-fun _t_340 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11101111000110101010000))
+(define-fun _t_341 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_340))
+(define-fun _t_342 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_338 _t_341))
+(define-fun _t_345 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b01000010100011110101101))
+(define-fun _t_346 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_345))
+(define-fun _t_347 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_342 _t_346))
+(define-fun _t_348 () Bool (fp.leq _t_316 _t_347))
+(assert _t_348)
+(define-fun _t_349 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b11010111000010100011111))
+(define-fun _t_350 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11001100010010011011100))
+(define-fun _t_353 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11011101001011110001100))
+(define-fun _t_356 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10001001001101110100110))
+(define-fun _t_357 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_356))
+(define-fun _t_358 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_357))
+(define-fun _t_359 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_349))
+(define-fun _t_360 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_358 _t_359))
+(define-fun _t_362 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10111110111110011101110))
+(define-fun _t_363 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_362))
+(define-fun _t_364 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_360 _t_363))
+(define-fun _t_366 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00000101101000011100100))
+(define-fun _t_367 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_366))
+(define-fun _t_368 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_364 _t_367))
+(define-fun _t_369 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_350))
+(define-fun _t_370 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_368 _t_369))
+(define-fun _t_373 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11010001111010111000011))
+(define-fun _t_374 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_373))
+(define-fun _t_375 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_370 _t_374))
+(define-fun _t_377 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b00000110001001001101111))
+(define-fun _t_378 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_377))
+(define-fun _t_379 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_375 _t_378))
+(define-fun _t_380 () Bool (fp.leq _t_353 _t_379))
+(assert _t_380)
+(define-fun _t_382 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10101100100010110100001))
+(define-fun _t_384 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01001110010101100000001))
+(define-fun _t_385 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_384))
+(define-fun _t_386 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_385))
+(define-fun _t_388 () (_ FloatingPoint 8 24) (fp #b0 #b01111010 #b00111111011111001110111))
+(define-fun _t_389 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_388))
+(define-fun _t_390 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_386 _t_389))
+(define-fun _t_393 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01110010001011010000110))
+(define-fun _t_394 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_393))
+(define-fun _t_395 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_390 _t_394))
+(define-fun _t_398 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00101111100111011011001))
+(define-fun _t_399 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_398))
+(define-fun _t_400 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_395 _t_399))
+(define-fun _t_402 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b10000001000001100010010))
+(define-fun _t_403 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_402))
+(define-fun _t_404 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_400 _t_403))
+(define-fun _t_407 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11110001101010011111101))
+(define-fun _t_408 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_407))
+(define-fun _t_409 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_404 _t_408))
+(define-fun _t_411 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00010110100001110010110))
+(define-fun _t_412 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_411))
+(define-fun _t_413 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_409 _t_412))
+(define-fun _t_414 () Bool (fp.leq _t_413 _t_382))
+(assert _t_414)
+(define-fun _t_417 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10001111010111000010011))
+(define-fun _t_420 () (_ FloatingPoint 8 24) (fp #b1 #b01111100 #b11111101111100111011011))
+(define-fun _t_421 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_420))
+(define-fun _t_422 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_42 _t_421))
+(define-fun _t_425 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b10001001101110100101110))
+(define-fun _t_426 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_425))
+(define-fun _t_427 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_422 _t_426))
+(define-fun _t_430 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b00111001010110000001000))
+(define-fun _t_431 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_430))
+(define-fun _t_432 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_427 _t_431))
+(define-fun _t_435 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00101010011111101111100))
+(define-fun _t_436 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_25 _t_435))
+(define-fun _t_437 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_432 _t_436))
+(define-fun _t_440 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b11111101111100111011010))
+(define-fun _t_441 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_29 _t_440))
+(define-fun _t_442 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_437 _t_441))
+(define-fun _t_444 () (_ FloatingPoint 8 24) (fp #b0 #b01111010 #b11100011010100111111011))
+(define-fun _t_445 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_33 _t_444))
+(define-fun _t_446 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_442 _t_445))
+(define-fun _t_448 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b10010110000001000001100))
+(define-fun _t_449 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_37 _t_448))
+(define-fun _t_450 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_446 _t_449))
+(define-fun _t_451 () Bool (fp.leq _t_417 _t_450))
+(assert _t_451)
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FP/water_pid_true-unreach-call_true-termination.c_0.smt2 b/UnitTests/sat/QF_FP/water_pid_true-unreach-call_true-termination.c_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..82b104d762e006c1c064cc4f8272ecb70a689a30
--- /dev/null
+++ b/UnitTests/sat/QF_FP/water_pid_true-unreach-call_true-termination.c_0.smt2
@@ -0,0 +1,48 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status sat)
+(declare-fun v_currentRoundingMode_9_const_205912918 () RoundingMode)
+(declare-fun v_main_~sumej~0_1_const_353058119 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~T~0_1_const_46047203 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~taui~0_1_const_950097810 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~ei~0_1_const_-839752131 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~taud~0_1_const_946839829 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~epi~0_2_const_974118806 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~K~0_1_const_37702522 () (_ FloatingPoint 11 53))
+(declare-fun v_~ui~0_7_const_151930791 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~sumej~0_2_const_353058112 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~yc~0_1_const_330172059 () (_ FloatingPoint 11 53))
+(declare-fun v_main_~yi~0_1_const_269718913 () (_ FloatingPoint 11 53))
+(declare-fun |v_main_#t~ret2_3_const_2101045985| () (_ FloatingPoint 11 53))
+(declare-fun v_main_~epi~0_1_const_974118805 () (_ FloatingPoint 11 53))
+(assert (and (= v_main_~sumej~0_1_const_353058119 (fp.add v_currentRoundingMode_9_const_205912918 v_main_~sumej~0_2_const_353058112 v_main_~ei~0_1_const_-839752131)) (= v_main_~ei~0_1_const_-839752131 (fp.sub v_currentRoundingMode_9_const_205912918 v_main_~yc~0_1_const_330172059 v_main_~yi~0_1_const_269718913)) (= v_main_~yi~0_1_const_269718913 |v_main_#t~ret2_3_const_2101045985|) (= v_main_~epi~0_1_const_974118805 v_main_~ei~0_1_const_-839752131) (= v_~ui~0_7_const_151930791 (fp.mul v_currentRoundingMode_9_const_205912918 v_main_~K~0_1_const_37702522 (fp.add v_currentRoundingMode_9_const_205912918 (fp.add v_currentRoundingMode_9_const_205912918 v_main_~ei~0_1_const_-839752131 (fp.div v_currentRoundingMode_9_const_205912918 (fp.mul v_currentRoundingMode_9_const_205912918 v_main_~sumej~0_1_const_353058119 v_main_~T~0_1_const_46047203) v_main_~taui~0_1_const_950097810)) (fp.mul v_currentRoundingMode_9_const_205912918 (fp.div v_currentRoundingMode_9_const_205912918 v_main_~taud~0_1_const_946839829 v_main_~T~0_1_const_46047203) (fp.sub v_currentRoundingMode_9_const_205912918 v_main_~ei~0_1_const_-839752131 v_main_~epi~0_2_const_974118806)))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FPLRA/propLnExp1.smt2 b/UnitTests/sat/QF_FPLRA/propLnExp1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d1a18eec4816d61affc15a31b496f3c5d803c74a
--- /dev/null
+++ b/UnitTests/sat/QF_FPLRA/propLnExp1.smt2
@@ -0,0 +1,119 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FPLRA)
+(set-info :source |
+Generated by: Matthias Güdemann
+Generated on: 2019-03-10
+Generator: SBV
+Application: Numerical Approximation of Elementary Functions
+Target Solver: z3
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+; --- uninterpreted sorts ---
+; --- literal constants ---
+(define-fun s_2 () Bool false)
+(define-fun s_1 () Bool true)
+(define-fun s1 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7378697629483821.0 73786976294838206464.0)))
+(define-fun s3 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 10.0 1.0)))
+(define-fun s7 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1.0 1.0)))
+(define-fun s9 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6.0 1.0)))
+(define-fun s10 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1725329017245637.0 2251799813685248.0)))
+(define-fun s14 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6743802672015265.0 1125899906842624.0)))
+(define-fun s15 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 8479827738375907.0 2251799813685248.0)))
+(define-fun s19 () (_ FloatingPoint 11 53) (_ +zero 11 53))
+(define-fun s26 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 2.0 1.0)))
+(define-fun s33 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 24.0 1.0)))
+(define-fun s37 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 120.0 1.0)))
+(define-fun s41 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 720.0 1.0)))
+(define-fun s45 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 5040.0 1.0)))
+(define-fun s49 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 40320.0 1.0)))
+(define-fun s53 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 362880.0 1.0)))
+(define-fun s90 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7737125245533627.0 77371252455336267181195264.0)))
+; --- skolem constants ---
+(declare-fun s0 () (_ FloatingPoint 11 53))
+; --- constant tables ---
+; --- skolemized tables ---
+; --- arrays ---
+; --- uninterpreted constants ---
+; --- user given axioms ---
+; --- formula ---
+(define-fun s2 () Bool (fp.gt s0 s1))
+(define-fun s4 () Bool (fp.lt s0 s3))
+(define-fun s5 () Bool (and s2 s4))
+(define-fun s6 () Bool (not s5))
+(define-fun s8 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s7))
+(define-fun s11 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s8 s10))
+(define-fun s12 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s9 s11))
+(define-fun s13 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s8 s12))
+(define-fun s16 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s8 s15))
+(define-fun s17 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s14 s16))
+(define-fun s18 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s13 s17))
+(define-fun s20 () Bool (fp.lt s18 s19))
+(define-fun s21 () (_ FloatingPoint 11 53) (fp.neg s18))
+(define-fun s22 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s7 s21))
+(define-fun s23 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s22 s7))
+(define-fun s24 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s7 s23))
+(define-fun s25 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s22))
+(define-fun s27 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s25 s26))
+(define-fun s28 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s24 s27))
+(define-fun s29 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s25))
+(define-fun s30 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s29 s9))
+(define-fun s31 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s28 s30))
+(define-fun s32 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s29))
+(define-fun s34 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s32 s33))
+(define-fun s35 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s31 s34))
+(define-fun s36 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s32))
+(define-fun s38 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s36 s37))
+(define-fun s39 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s35 s38))
+(define-fun s40 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s36))
+(define-fun s42 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s40 s41))
+(define-fun s43 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s39 s42))
+(define-fun s44 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s40))
+(define-fun s46 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s44 s45))
+(define-fun s47 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s43 s46))
+(define-fun s48 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s44))
+(define-fun s50 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s48 s49))
+(define-fun s51 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s47 s50))
+(define-fun s52 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s21 s48))
+(define-fun s54 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s52 s53))
+(define-fun s55 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s51 s54))
+(define-fun s56 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s7 s55))
+(define-fun s57 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s7 s18))
+(define-fun s58 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s57 s7))
+(define-fun s59 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s7 s58))
+(define-fun s60 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s57))
+(define-fun s61 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s60 s26))
+(define-fun s62 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s59 s61))
+(define-fun s63 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s60))
+(define-fun s64 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s63 s9))
+(define-fun s65 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s62 s64))
+(define-fun s66 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s63))
+(define-fun s67 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s66 s33))
+(define-fun s68 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s65 s67))
+(define-fun s69 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s66))
+(define-fun s70 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s69 s37))
+(define-fun s71 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s68 s70))
+(define-fun s72 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s69))
+(define-fun s73 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s72 s41))
+(define-fun s74 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s71 s73))
+(define-fun s75 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s72))
+(define-fun s76 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s75 s45))
+(define-fun s77 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s74 s76))
+(define-fun s78 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s75))
+(define-fun s79 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s78 s49))
+(define-fun s80 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s77 s79))
+(define-fun s81 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s18 s78))
+(define-fun s82 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s81 s53))
+(define-fun s83 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s80 s82))
+(define-fun s84 () (_ FloatingPoint 11 53) (ite s20 s56 s83))
+(define-fun s85 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s84))
+(define-fun s86 () Bool (fp.lt s85 s19))
+(define-fun s87 () (_ FloatingPoint 11 53) (fp.neg s85))
+(define-fun s88 () (_ FloatingPoint 11 53) (ite s86 s87 s85))
+(define-fun s89 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s88 s0))
+(define-fun s91 () Bool (fp.leq s89 s90))
+(define-fun s92 () Bool (or s6 s91))
+(assert (not s92))
+(check-sat)
+(exit)
diff --git a/UnitTests/sat/QF_FPLRA/propLnExp2.smt2 b/UnitTests/sat/QF_FPLRA/propLnExp2.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..73ff2d7f03455407c100713e9a58de307862e08c
--- /dev/null
+++ b/UnitTests/sat/QF_FPLRA/propLnExp2.smt2
@@ -0,0 +1,118 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FPLRA)
+(set-info :source |
+Generated by: Matthias Güdemann
+Generated on: 2019-03-10
+Generator: SBV
+Application: Numerical Approximation of Elementary Functions
+Target Solver: z3
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+; --- uninterpreted sorts ---
+; --- literal constants ---
+(define-fun s_2 () Bool false)
+(define-fun s_1 () Bool true)
+(define-fun s1 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7378697629483821.0 73786976294838206464.0)))
+(define-fun s3 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1.0 1.0)))
+(define-fun s8 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6.0 1.0)))
+(define-fun s9 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1725329017245637.0 2251799813685248.0)))
+(define-fun s13 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6743802672015265.0 1125899906842624.0)))
+(define-fun s14 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 8479827738375907.0 2251799813685248.0)))
+(define-fun s18 () (_ FloatingPoint 11 53) (_ +zero 11 53))
+(define-fun s25 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 2.0 1.0)))
+(define-fun s32 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 24.0 1.0)))
+(define-fun s36 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 120.0 1.0)))
+(define-fun s40 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 720.0 1.0)))
+(define-fun s44 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 5040.0 1.0)))
+(define-fun s48 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 40320.0 1.0)))
+(define-fun s52 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 362880.0 1.0)))
+(define-fun s89 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7737125245533627.0 77371252455336267181195264.0)))
+; --- skolem constants ---
+(declare-fun s0 () (_ FloatingPoint 11 53))
+; --- constant tables ---
+; --- skolemized tables ---
+; --- arrays ---
+; --- uninterpreted constants ---
+; --- user given axioms ---
+; --- formula ---
+(define-fun s2 () Bool (fp.gt s0 s1))
+(define-fun s4 () Bool (fp.lt s0 s3))
+(define-fun s5 () Bool (and s2 s4))
+(define-fun s6 () Bool (not s5))
+(define-fun s7 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s3))
+(define-fun s10 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s7 s9))
+(define-fun s11 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s8 s10))
+(define-fun s12 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s7 s11))
+(define-fun s15 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s7 s14))
+(define-fun s16 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s13 s15))
+(define-fun s17 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s12 s16))
+(define-fun s19 () Bool (fp.lt s17 s18))
+(define-fun s20 () (_ FloatingPoint 11 53) (fp.neg s17))
+(define-fun s21 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s3 s20))
+(define-fun s22 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s21 s3))
+(define-fun s23 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s3 s22))
+(define-fun s24 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s21))
+(define-fun s26 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s24 s25))
+(define-fun s27 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s23 s26))
+(define-fun s28 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s24))
+(define-fun s29 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s28 s8))
+(define-fun s30 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s27 s29))
+(define-fun s31 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s28))
+(define-fun s33 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s31 s32))
+(define-fun s34 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s30 s33))
+(define-fun s35 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s31))
+(define-fun s37 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s35 s36))
+(define-fun s38 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s34 s37))
+(define-fun s39 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s35))
+(define-fun s41 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s39 s40))
+(define-fun s42 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s38 s41))
+(define-fun s43 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s39))
+(define-fun s45 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s43 s44))
+(define-fun s46 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s42 s45))
+(define-fun s47 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s43))
+(define-fun s49 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s47 s48))
+(define-fun s50 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s46 s49))
+(define-fun s51 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s20 s47))
+(define-fun s53 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s51 s52))
+(define-fun s54 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s50 s53))
+(define-fun s55 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s3 s54))
+(define-fun s56 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s3 s17))
+(define-fun s57 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s56 s3))
+(define-fun s58 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s3 s57))
+(define-fun s59 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s56))
+(define-fun s60 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s59 s25))
+(define-fun s61 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s58 s60))
+(define-fun s62 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s59))
+(define-fun s63 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s62 s8))
+(define-fun s64 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s61 s63))
+(define-fun s65 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s62))
+(define-fun s66 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s65 s32))
+(define-fun s67 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s64 s66))
+(define-fun s68 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s65))
+(define-fun s69 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s68 s36))
+(define-fun s70 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s67 s69))
+(define-fun s71 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s68))
+(define-fun s72 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s71 s40))
+(define-fun s73 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s70 s72))
+(define-fun s74 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s71))
+(define-fun s75 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s74 s44))
+(define-fun s76 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s73 s75))
+(define-fun s77 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s74))
+(define-fun s78 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s77 s48))
+(define-fun s79 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s76 s78))
+(define-fun s80 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s17 s77))
+(define-fun s81 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s80 s52))
+(define-fun s82 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s79 s81))
+(define-fun s83 () (_ FloatingPoint 11 53) (ite s19 s55 s82))
+(define-fun s84 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s83))
+(define-fun s85 () Bool (fp.lt s84 s18))
+(define-fun s86 () (_ FloatingPoint 11 53) (fp.neg s84))
+(define-fun s87 () (_ FloatingPoint 11 53) (ite s85 s86 s84))
+(define-fun s88 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s87 s0))
+(define-fun s90 () Bool (fp.leq s88 s89))
+(define-fun s91 () Bool (or s6 s90))
+(assert (not s91))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/ALL/acos_0_unsat.smt2 b/UnitTests/unsat/ALL/acos_0_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7e5cd0d85bc632143caa91e824d9e89025c21dfb
--- /dev/null
+++ b/UnitTests/unsat/ALL/acos_0_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 0.0) (= (colibri_acos X) (/ pi 2.0))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/acos_1_unsat.smt2 b/UnitTests/unsat/ALL/acos_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c39ce21eacd47a88f044a17011c6e1fe4f90e9a5
--- /dev/null
+++ b/UnitTests/unsat/ALL/acos_1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 1.0) (= (colibri_acos X) 0.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/acos_m1_unsat.smt2 b/UnitTests/unsat/ALL/acos_m1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3e5c4d2dfd900c8967a5b4c2f01c84b1058b345c
--- /dev/null
+++ b/UnitTests/unsat/ALL/acos_m1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X (- 1.0)) (= (colibri_acos X) pi)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/asinN_m1_unsat.smt2 b/UnitTests/unsat/ALL/asinN_m1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a10c8e78483e8b277efb7b08a2dc78c73eb550ab
--- /dev/null
+++ b/UnitTests/unsat/ALL/asinN_m1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 0.0))
+(assert (and (distinct X (- 1.0)) (= (colibri_asin X) (/ pi 2.0))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/asinP_1_unsat.smt2 b/UnitTests/unsat/ALL/asinP_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..dbd75347da1a1dbabde0789375887ac794df286f
--- /dev/null
+++ b/UnitTests/unsat/ALL/asinP_1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X 1.0))
+(assert (and (distinct X 1.0) (= (colibri_asin X) (/ pi 2.0))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/asinZ_unsat.smt2 b/UnitTests/unsat/ALL/asinZ_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a04ed854a884cf78e5d294f58c55699426efb796
--- /dev/null
+++ b/UnitTests/unsat/ALL/asinZ_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 0.0) (= (colibri_asin X) 0.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/atan_0_unsat.smt2 b/UnitTests/unsat/ALL/atan_0_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..627f26880f0e8d89fed1c82d7bcc5f1c34de8243
--- /dev/null
+++ b/UnitTests/unsat/ALL/atan_0_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- (/ pi 2.0)) X (/ pi 2.0)))
+(assert (and (distinct X 0.0) (= (colibri_atan X) 0.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/atan_inf_unsat.smt2 b/UnitTests/unsat/ALL/atan_inf_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7b70d6185df1e1bd53a8c3a7fb247c999d2e0cb5
--- /dev/null
+++ b/UnitTests/unsat/ALL/atan_inf_unsat.smt2
@@ -0,0 +1,9 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (= (colibri_atan X) (/ pi 2.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/atan_minf_unsat.smt2 b/UnitTests/unsat/ALL/atan_minf_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..049278ecf87aaea2f33f8285bed148f9c924aa65
--- /dev/null
+++ b/UnitTests/unsat/ALL/atan_minf_unsat.smt2
@@ -0,0 +1,9 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (= (colibri_atan X) (- (/ pi 2.0))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/cos_eq_sin_p_pid2_unsat.smt2 b/UnitTests/unsat/ALL/cos_eq_sin_p_pid2_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5c810950678f1113ce01f4c9a0d03e3d16a9c7fe
--- /dev/null
+++ b/UnitTests/unsat/ALL/cos_eq_sin_p_pid2_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin+pid2 ((X Real)) Real (sin (+ (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= (colibri_abs_real (- (cos X) (sin+pid2 X))) 0.01)))
+(check-sat)
+
diff --git a/UnitTests/unsat/ALL/cos_eq_sin_pid2_m_X_unsat.smt2 b/UnitTests/unsat/ALL/cos_eq_sin_pid2_m_X_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..32c64cddb237c86c670d0027fbe4440b486b9989
--- /dev/null
+++ b/UnitTests/unsat/ALL/cos_eq_sin_pid2_m_X_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin_pid2-X ((X Real)) Real (sin (- (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= (colibri_abs_real (- (cos X) (sin_pid2-X X))) 0.01)))
+(check-sat)
+
diff --git a/UnitTests/unsat/ALL/cos_pi_unsat.smt2 b/UnitTests/unsat/ALL/cos_pi_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7cb245f878372e1646c67aa091f390ed77bb6215
--- /dev/null
+++ b/UnitTests/unsat/ALL/cos_pi_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (and (distinct (- (/ pi 2.0)) X (/ pi 2.0)) (= (colibri_cos X) 0.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/diff_sqrt_real_double_unsat.smt2 b/UnitTests/unsat/ALL/diff_sqrt_real_double_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c693b2a2e5b14deacfb5bfde1c2436379b02e03f
--- /dev/null
+++ b/UnitTests/unsat/ALL/diff_sqrt_real_double_unsat.smt2
@@ -0,0 +1,34 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status unsat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float64)
+
+(define-fun fp.isFinite ((x Float64)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+(define-fun diff () Real
+  (- (colibri_sqrt (fp.to_real x))
+     (fp.to_real (fp.sqrt RNE x))))
+
+(assert (fp.isFinite x))
+(assert (<= 0.0 (fp.to_real x) 2.0))
+;(assert (>= diff 0.0)) ; impossible ?
+
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (ite (>= diff 0.0)
+	  diff
+	  (- diff))
+     0.0003)))) ; UNSAT: less than 5s, the time grows very fast if more accurate
+;     (/ 1.0 9007199254740992.0))))) ; SAT: 2e-53, ulp for 2.0 in Float64
+
+(check-sat)
+
+(get-value (x (fp.to_real x) diff))
diff --git a/UnitTests/unsat/ALL/div_real_rel_neg.smt2 b/UnitTests/unsat/ALL/div_real_rel_neg.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..397b0177dd9a0fc2eb4cf8becf4aad520bbd4de7
--- /dev/null
+++ b/UnitTests/unsat/ALL/div_real_rel_neg.smt2
@@ -0,0 +1,21 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(assert (= X C))
+(assert (= Y A))
+(assert (= Z B))
+(assert (ite (< Y X)
+	     (<= Y 0.0)
+	     (and (< Y 0.0) (<= Y X))))
+(assert (<= X 0.0))
+(assert (= (/ X Y) Z))
+; X = Y * Z
+(assert (not (<= 0.0 Z 1.0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/ALL/div_real_rel_pos.smt2 b/UnitTests/unsat/ALL/div_real_rel_pos.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2d73766685976cdeeccb6d32070a570796f9f6b6
--- /dev/null
+++ b/UnitTests/unsat/ALL/div_real_rel_pos.smt2
@@ -0,0 +1,21 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(assert (= X C))
+(assert (= Y A))
+(assert (= Z B))
+(assert (ite (> Y X)
+	     (>= Y 0.0)
+	     (and (> Y 0.0) (>= Y X))))
+(assert (>= X 0.0))
+(assert (= (/ X Y) Z))
+; X = Y * Z
+(assert (not (<= 0.0 Z 1.0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/ALL/heron_sqrt_unsat.smt2 b/UnitTests/unsat/ALL/heron_sqrt_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cb94935bc5a81f79709fdade0b188b19b26aaa4c
--- /dev/null
+++ b/UnitTests/unsat/ALL/heron_sqrt_unsat.smt2
@@ -0,0 +1,43 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status unsat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float32)
+
+(define-fun fp.isFinite ((x Float32)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+
+;; Assume
+(assert (fp.isFinite x))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp #b0 #b01111110 #b01100110011001100110011) (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000))))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)) (fp #b0 #b01111111 #b11001100110011001100110)))
+
+;; Goal def'vc
+;; File "heron.ads", line 11, characters 0-0
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (let ((diff (+ (colibri_sqrt (fp.to_real x))
+		    (- (fp.to_real (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)))))))
+       (ite (>= diff 0.0)
+	    diff
+	    (- diff)))
+;     0.1))))
+     (+ (/ 1.0 4.0) (/ 3.0 8388608.0))))))
+
+(check-sat)
+
diff --git a/UnitTests/unsat/ALL/interlog_unsat.smt2 b/UnitTests/unsat/ALL/interlog_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..23e2db684ba6f0b28f7032e1dc193f66edd44a7a
--- /dev/null
+++ b/UnitTests/unsat/ALL/interlog_unsat.smt2
@@ -0,0 +1,30 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(declare-fun T () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun SZ () Real (colibri_sin Z))
+(define-fun CZ () Real (colibri_cos Z))
+(define-fun ST () Real (colibri_sin T))
+(define-fun CT () Real (colibri_cos T))
+
+(assert (<= 0.0 X 10000.0))
+(assert (<= 0.0 Y 10000.0))
+(assert (<= 0.0 Z 2.0))
+(assert (<= 0.0 T 2.0))
+
+(assert (= 4.0 (+ (* X Y) (- T (* 2.0 Z)))))
+
+(assert (= 0.0 (+ (* X SZ) (* Y CT))))
+
+(assert (let ((CZ2 (* CZ CZ))
+              (ST2 (* ST ST)))
+        (= ST2 (+ (- X Y) CZ2))))
+
+(assert (= (* X Y Z) (* 2.0 T)))
+
+(check-sat)
diff --git a/UnitTests/unsat/ALL/mod_for_int_unsat.smt2 b/UnitTests/unsat/ALL/mod_for_int_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..96a4742e4f5b2148819a955223fe5fe6f1772a7c
--- /dev/null
+++ b/UnitTests/unsat/ALL/mod_for_int_unsat.smt2
@@ -0,0 +1,10 @@
+(set-logic ALL)
+(set-info :status unsat)
+(declare-const x Int)
+(declare-const y Int)
+
+(assert (not (= y 0)))
+
+;unsat ok
+(assert (not (= (mod x y) (mod x (abs y)))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/mult_real_rel_neg.smt2 b/UnitTests/unsat/ALL/mult_real_rel_neg.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..17bdc33e8772fdd399c497038c259d3dcd2a46f8
--- /dev/null
+++ b/UnitTests/unsat/ALL/mult_real_rel_neg.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(assert (ite (< A C)
+	     (<= A 0.0)
+	     (and (< A 0.0) (<= A C))))
+(assert (<= C 0.0))
+(assert (= (* A B) C))
+(assert (not (<= 0.0 B 1.0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/ALL/mult_real_rel_pos.smt2 b/UnitTests/unsat/ALL/mult_real_rel_pos.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4f6c49567c044619bf3836539f000d62e90e0a56
--- /dev/null
+++ b/UnitTests/unsat/ALL/mult_real_rel_pos.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(assert (ite (> A C)
+	     (>= A 0.0)
+	     (and (> A 0.0) (>= A C))))
+(assert (>= C 0.0))
+(assert (= (* A B) C))
+(assert (not (<= 0.0 B 1.0)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/ALL/sin2_cos2_unsat.smt2 b/UnitTests/unsat/ALL/sin2_cos2_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..dba31cb99799566554cb3e92d6013168dae5ce59
--- /dev/null
+++ b/UnitTests/unsat/ALL/sin2_cos2_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin2 ((X Real)) Real (* (colibri_sin X) (colibri_sin X)))
+(define-fun cos2 ((X Real)) Real (* (colibri_cos X) (colibri_cos X)))
+(define-fun sin2+cos2 ((X Real)) Real (+ (sin2 X) (cos2 X)))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= 0.99 (sin2+cos2 X) 1.01)))
+(check-sat)
+
diff --git a/UnitTests/unsat/ALL/sin_eq_cos_unsat.smt2 b/UnitTests/unsat/ALL/sin_eq_cos_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4002d88c78c8f2c1a415932b5dd1eacb2c39db73
--- /dev/null
+++ b/UnitTests/unsat/ALL/sin_eq_cos_unsat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X pi))
+(assert (and (distinct X (/ pi 4.0) (- (* 3.0 (/ pi 4.0))))
+	     (= (colibri_sin X) (colibri_cos X))))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/sin_pi_unsat.smt2 b/UnitTests/unsat/ALL/sin_pi_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2551f08dc14a318c2c28b6cc4f4a36a0adbb9303
--- /dev/null
+++ b/UnitTests/unsat/ALL/sin_pi_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (and (distinct X 0.0 pi (- pi)) (= (colibri_sin X) 0.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/tanN_eq_1_unsat.smt2 b/UnitTests/unsat/ALL/tanN_eq_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d9526ca18819682d2d9abaa630d588eba1a62429
--- /dev/null
+++ b/UnitTests/unsat/ALL/tanN_eq_1_unsat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid2 () Real (/ colibri_pi 2.0))
+(define-fun optpid4 () Real (- (* 3 (/ pi 4.0))))
+
+(assert (< (- pid2) X 0.0))
+(assert (and (distinct X optpid4) (= (colibri_tan X) 1.0)))
+(check-sat)
diff --git a/UnitTests/unsat/ALL/tanP_eq_1_unsat.smt2 b/UnitTests/unsat/ALL/tanP_eq_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..82e8c779a04af04fd0d2b19ac8b94809173394c3
--- /dev/null
+++ b/UnitTests/unsat/ALL/tanP_eq_1_unsat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid2 () Real (/ colibri_pi 2.0))
+(define-fun pid4 () Real (/ pi 4.0))
+
+(assert (< 0.0 X pid2))
+(assert (and (distinct X pid4) (= (colibri_tan X) 1.0)))
+(check-sat)
diff --git a/UnitTests/unsat/QF_ABVFP/query.29.smt2 b/UnitTests/unsat/QF_ABVFP/query.29.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1ab7bb63502d283899d3df5ccaf509f9262f8b65
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.29.smt2
@@ -0,0 +1,231 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+Corresponding query: An equisatisfiable query (arrays replaced with bitvectors) is available at QF_BVFP/20170428-Liew-KLEE/imperial_synthetic_sqrt_klee.x86_64/query.29.smt2
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun x0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(assert
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19))))))
+(assert
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.lt ?x19 ?x22)))))))
+(assert
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.gt ?x19 ((_ to_fp 8 24) (_ bv1120403456 32))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x34 ?x19)) ?x38))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x50 ?x19)) ?x38))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x64 ?x19)) ?x38))))))))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (let (($x69 (fp.gt ?x64 ?x19)))
+ (let ((?x75 (ite $x69 ?x61 ?x63)))
+ (let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+ (let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+ (let ((?x78 (fp.mul roundNearestTiesToEven ?x77 ?x77)))
+ (not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x78 ?x19)) ?x38)))))))))))))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ((_ to_fp 8 24) (_ bv0 32))) ?x32)))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (let (($x69 (fp.gt ?x64 ?x19)))
+ (let ((?x75 (ite $x69 ?x61 ?x63)))
+ (let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+ (let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+ (let ((?x78 (fp.mul roundNearestTiesToEven ?x77 ?x77)))
+ (let (($x83 (fp.gt ?x78 ?x19)))
+ (let ((?x88 ((_ to_fp 8 24) (ite $x83 fresh_to_ieee_bv_!3 (ite $x69 fresh_to_ieee_bv_!2 ?x59)))))
+ (let ((?x91 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x88 (ite $x83 ?x75 ?x77)) ?x32)))
+ (let ((?x92 (fp.mul roundNearestTiesToEven ?x91 ?x91)))
+ (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x92 ?x19)) ?x38))))))))))))))))))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (= ?x33 ((_ to_fp 8 24) fresh_to_ieee_bv_!0)))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (= ?x49 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (= ?x63 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))))))))))
+(assert
+ (let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+ (let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+ (let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+ (let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+ (let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+ (let (($x41 (fp.gt ?x34 ?x19)))
+ (let ((?x47 (ite $x41 ?x22 ?x33)))
+ (let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+ (let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+ (let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+ (let (($x55 (fp.gt ?x50 ?x19)))
+ (let ((?x61 (ite $x55 ?x47 ?x49)))
+ (let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+ (let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+ (let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+ (let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+ (let (($x69 (fp.gt ?x64 ?x19)))
+ (let ((?x75 (ite $x69 ?x61 ?x63)))
+ (let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+ (let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+ (= ?x77 ((_ to_fp 8 24) fresh_to_ieee_bv_!3)))))))))))))))))))))))))
+(assert
+ (let ((?x38 ((_ to_fp 8 24) (_ bv869711765 32))))
+(let ((?x32 ((_ to_fp 8 24) (_ bv1056964608 32))))
+(let ((?x22 ((_ to_fp 8 24) (_ bv0 32))))
+(let ((?x15 (concat (select x0 (_ bv2 32)) (concat (select x0 (_ bv1 32)) (select x0 (_ bv0 32))))))
+(let ((?x18 (concat (select x0 (_ bv3 32)) ?x15)))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x33 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x19 ?x22) ?x32)))
+(let ((?x34 (fp.mul roundNearestTiesToEven ?x33 ?x33)))
+(let (($x41 (fp.gt ?x34 ?x19)))
+(let ((?x47 (ite $x41 ?x22 ?x33)))
+(let ((?x48 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x41 fresh_to_ieee_bv_!0 ?x18)) ?x47)))
+(let ((?x49 (fp.mul roundNearestTiesToEven ?x48 ?x32)))
+(let ((?x50 (fp.mul roundNearestTiesToEven ?x49 ?x49)))
+(let (($x55 (fp.gt ?x50 ?x19)))
+(let ((?x61 (ite $x55 ?x47 ?x49)))
+(let ((?x45 (ite $x41 fresh_to_ieee_bv_!0 ?x18)))
+(let ((?x59 (ite $x55 fresh_to_ieee_bv_!1 ?x45)))
+(let ((?x63 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ((_ to_fp 8 24) ?x59) ?x61) ?x32)))
+(let ((?x64 (fp.mul roundNearestTiesToEven ?x63 ?x63)))
+(let (($x69 (fp.gt ?x64 ?x19)))
+(let ((?x75 (ite $x69 ?x61 ?x63)))
+(let ((?x76 (fp.add roundNearestTiesToEven ((_ to_fp 8 24) (ite $x69 fresh_to_ieee_bv_!2 ?x59)) ?x75)))
+(let ((?x77 (fp.mul roundNearestTiesToEven ?x76 ?x32)))
+(let ((?x78 (fp.mul roundNearestTiesToEven ?x77 ?x77)))
+(let (($x83 (fp.gt ?x78 ?x19)))
+(let ((?x88 ((_ to_fp 8 24) (ite $x83 fresh_to_ieee_bv_!3 (ite $x69 fresh_to_ieee_bv_!2 ?x59)))))
+(let ((?x91 (fp.mul roundNearestTiesToEven (fp.add roundNearestTiesToEven ?x88 (ite $x83 ?x75 ?x77)) ?x32)))
+(let ((?x92 (fp.mul roundNearestTiesToEven ?x91 ?x91)))
+(not (fp.lt (fp.abs (fp.sub roundNearestTiesToEven ?x19 ?x92)) ?x38)))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.35.smt2 b/UnitTests/unsat/QF_ABVFP/query.35.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..47817f2e60ec1ab22854cdff89428348d4a2916a
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.35.smt2
@@ -0,0 +1,287 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun sym0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(declare-fun const_arr11 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (not (fp.isNaN ?x33)))))))
+(assert
+ (let ((?x42 (select sym0 (_ bv14 32))))
+ (let ((?x45 (select sym0 (_ bv15 32))))
+ (let ((?x46 (concat ?x45 (concat ?x42 (concat (select sym0 (_ bv13 32)) (select sym0 (_ bv12 32)))))))
+ (not (fp.isNaN ((_ to_fp 8 24) ?x46)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!0))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!3))))))))))))
+(assert
+ (let ((?x56 ((_ extract 31 24) fresh_to_ieee_bv_!0)))
+(let ((?x14 (select sym0 (_ bv6 32))))
+(let ((?x17 (select sym0 (_ bv7 32))))
+(let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x28 (select sym0 (_ bv10 32))))
+(let ((?x31 (select sym0 (_ bv11 32))))
+(let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+(let ((?x33 ((_ to_fp 8 24) ?x32)))
+(let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+(let ((?x71 (ite (fp.lt ?x52 ?x19) (_ bv0 32) (_ bv1 32))))
+(let ((?x75 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x71)))))
+(let ((?x45 (select sym0 (_ bv15 32))))
+(let ((?x42 (select sym0 (_ bv14 32))))
+(let ((?x39 (select sym0 (_ bv13 32))))
+(let ((?x37 (select sym0 (_ bv12 32))))
+(let ((?x25 (select sym0 (_ bv9 32))))
+(let ((?x23 (select sym0 (_ bv8 32))))
+(let ((?x11 (select sym0 (_ bv5 32))))
+(let ((?x9 (select sym0 (_ bv4 32))))
+(let ((?x113 ((_ extract 23 16) fresh_to_ieee_bv_!1)))
+(let ((?x118 ((_ extract 15 8) fresh_to_ieee_bv_!2)))
+(let ((?x122 ((_ extract 7 0) fresh_to_ieee_bv_!3)))
+(let ((?x127 (store (store (store (store const_arr11 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x131 (store (store (store (store ?x127 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x135 (store (store (store (store ?x131 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x139 (store (store (store (store ?x135 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x143 (store (store (store (store ?x139 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x147 (store (store (store (store ?x143 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x151 (store (store (store (store ?x147 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+(let ((?x155 (store (store (store (store ?x151 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+(let ((?x159 (store (store (store (store ?x155 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv0 8)) (_ bv35 32) (_ bv0 8))))
+(let ((?x163 (store (store (store (store ?x159 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv0 8))))
+(let ((?x167 (store (store (store (store ?x163 (_ bv0 32) ?x122) (_ bv1 32) ?x118) (_ bv2 32) ?x113) (_ bv3 32) ?x56)))
+(let ((?x171 (store (store (store (store ?x167 (_ bv4 32) ?x9) (_ bv5 32) ?x11) (_ bv6 32) ?x14) (_ bv7 32) ?x17)))
+(let ((?x175 (store (store (store (store ?x171 (_ bv8 32) ?x23) (_ bv9 32) ?x25) (_ bv10 32) ?x28) (_ bv11 32) ?x31)))
+(let ((?x179 (store (store (store (store ?x175 (_ bv12 32) (_ bv154 8)) (_ bv13 32) (_ bv153 8)) (_ bv14 32) (_ bv153 8)) (_ bv15 32) (_ bv62 8))))
+(let ((?x183 (store (store (store (store ?x179 (_ bv16 32) (_ bv205 8)) (_ bv17 32) (_ bv204 8)) (_ bv18 32) (_ bv76 8)) (_ bv19 32) (_ bv62 8))))
+(let ((?x187 (store (store (store (store ?x183 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv128 8)) (_ bv23 32) (_ bv63 8))))
+(let ((?x191 (store (store (store (store ?x187 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv64 8)) (_ bv27 32) (_ bv64 8))))
+(let ((?x195 (store (store (store (store ?x191 (_ bv28 32) ?x37) (_ bv29 32) ?x39) (_ bv30 32) ?x42) (_ bv31 32) ?x45)))
+(let ((?x199 (store (store (store (store ?x195 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv128 8)) (_ bv35 32) (_ bv63 8))))
+(let ((?x203 (store (store (store (store ?x199 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv65 8))))
+(let ((?x210 (concat (select ?x203 (bvadd (_ bv2 32) ?x75)) (concat (select ?x203 (bvadd (_ bv1 32) ?x75)) (select ?x203 ?x75)))))
+(let ((?x216 (ite (fp.lt ?x19 ((_ to_fp 8 24) (concat (select ?x203 (bvadd (_ bv3 32) ?x75)) ?x210))) (_ bv1 32) ?x71)))
+(let ((?x223 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216)))))))
+(let ((?x226 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x223)))
+(let ((?x229 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x226)))
+(let ((?x232 (ite (fp.lt ?x33 ((_ to_fp 8 24) ?x229)) (_ bv2 32) ?x216)))
+(let ((?x239 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232)))))))
+(let ((?x242 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x239)))
+(let ((?x245 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x242)))
+(let ((?x248 (ite (fp.lt ((_ to_fp 8 24) (_ bv1050253722 32)) ((_ to_fp 8 24) ?x245)) (_ bv3 32) ?x232)))
+(let ((?x255 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248)))))))
+(let ((?x258 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x255)))
+(let ((?x261 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x258)))
+(let ((?x264 (ite (fp.lt ((_ to_fp 8 24) (_ bv1045220557 32)) ((_ to_fp 8 24) ?x261)) (_ bv4 32) ?x248)))
+(let ((?x271 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264)))))))
+(let ((?x274 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x271)))
+(let ((?x277 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x274)))
+(let ((?x280 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x277)) (_ bv5 32) ?x264)))
+(let ((?x287 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280)))))))
+(let ((?x290 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x287)))
+(let ((?x293 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x290)))
+(let ((?x296 (ite (fp.lt ((_ to_fp 8 24) (_ bv1077936128 32)) ((_ to_fp 8 24) ?x293)) (_ bv6 32) ?x280)))
+(let ((?x303 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296)))))))
+(let ((?x306 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x303)))
+(let ((?x309 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x306)))
+(let (($x311 (fp.lt ((_ to_fp 8 24) (concat ?x45 (concat ?x42 (concat ?x39 ?x37)))) ((_ to_fp 8 24) ?x309))))
+(let ((?x312 (ite $x311 (_ bv7 32) ?x296)))
+(let ((?x319 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312)))))))
+(let ((?x322 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x319)))
+(let ((?x325 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x322)))
+(let ((?x328 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x325)) (_ bv8 32) ?x312)))
+(let ((?x335 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328)))))))
+(let ((?x338 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x335)))
+(let ((?x341 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x338)))
+(let ((?x346 (bvmul (_ bv4 64) ((_ sign_extend 32) (ite (fp.lt ((_ to_fp 8 24) (_ bv1090519040 32)) ((_ to_fp 8 24) ?x341)) (_ bv9 32) ?x328)))))
+(let ((?x347 ((_ extract 31 0) ?x346)))
+(let ((?x348 (bvadd (_ bv3 32) ?x347)))
+(let ((?x349 (bvadd (_ bv2 32) ?x347)))
+(let ((?x350 (bvadd (_ bv1 32) ?x347)))
+(let ((?x357 (store (store (store ?x203 (_ bv0 32) (select ?x203 ?x347)) (_ bv1 32) (select ?x203 ?x350)) (_ bv2 32) (select ?x203 ?x349))))
+(let ((?x360 (store (store (store ?x357 (_ bv3 32) (select ?x203 ?x348)) ?x347 ?x122) ?x350 ?x118)))
+(let ((?x362 (store (store ?x360 ?x349 ?x113) ?x348 ?x56)))
+(let ((?x363 (select ?x362 (_ bv7 32))))
+(let ((?x424 (concat (select ?x362 (_ bv10 32)) (concat (select ?x362 (_ bv9 32)) (select ?x362 (_ bv8 32))))))
+(let ((?x431 (select ?x362 (_ bv6 32))))
+(let ((?x433 (concat ?x363 (concat ?x431 (concat (select ?x362 (_ bv5 32)) (select ?x362 (_ bv4 32)))))))
+(let ((?x436 (ite (fp.lt ((_ to_fp 8 24) ?x433) ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424))) (_ bv1 32) (_ bv2 32))))
+(let ((?x443 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436)))))))
+(let ((?x446 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x443)))
+(let ((?x449 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x446)))
+(let ((?x452 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424)) ((_ to_fp 8 24) ?x449)) (_ bv2 32) ?x436)))
+(let ((?x459 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452)))))))
+(let ((?x462 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x459)))
+(let ((?x465 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x462)))
+(let ((?x416 (concat (select ?x362 (_ bv14 32)) (concat (select ?x362 (_ bv13 32)) (select ?x362 (_ bv12 32))))))
+(let ((?x468 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv15 32)) ?x416)) ((_ to_fp 8 24) ?x465)) (_ bv3 32) ?x452)))
+(let ((?x475 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468)))))))
+(let ((?x478 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x475)))
+(let ((?x481 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x478)))
+(let ((?x408 (concat (select ?x362 (_ bv18 32)) (concat (select ?x362 (_ bv17 32)) (select ?x362 (_ bv16 32))))))
+(let ((?x484 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv19 32)) ?x408)) ((_ to_fp 8 24) ?x481)) (_ bv4 32) ?x468)))
+(let ((?x491 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484)))))))
+(let ((?x494 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x491)))
+(let ((?x497 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x494)))
+(let ((?x400 (concat (select ?x362 (_ bv22 32)) (concat (select ?x362 (_ bv21 32)) (select ?x362 (_ bv20 32))))))
+(let ((?x500 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv23 32)) ?x400)) ((_ to_fp 8 24) ?x497)) (_ bv5 32) ?x484)))
+(let ((?x507 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500)))))))
+(let ((?x510 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x507)))
+(let ((?x513 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x510)))
+(let ((?x392 (concat (select ?x362 (_ bv26 32)) (concat (select ?x362 (_ bv25 32)) (select ?x362 (_ bv24 32))))))
+(let ((?x516 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv27 32)) ?x392)) ((_ to_fp 8 24) ?x513)) (_ bv6 32) ?x500)))
+(let ((?x523 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516)))))))
+(let ((?x526 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x523)))
+(let ((?x529 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x526)))
+(let ((?x384 (concat (select ?x362 (_ bv30 32)) (concat (select ?x362 (_ bv29 32)) (select ?x362 (_ bv28 32))))))
+(let ((?x532 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv31 32)) ?x384)) ((_ to_fp 8 24) ?x529)) (_ bv7 32) ?x516)))
+(let ((?x539 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532)))))))
+(let ((?x542 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x539)))
+(let ((?x545 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x542)))
+(let ((?x376 (concat (select ?x362 (_ bv34 32)) (concat (select ?x362 (_ bv33 32)) (select ?x362 (_ bv32 32))))))
+(let ((?x548 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv35 32)) ?x376)) ((_ to_fp 8 24) ?x545)) (_ bv8 32) ?x532)))
+(let ((?x555 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548)))))))
+(let ((?x558 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x555)))
+(let ((?x561 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x558)))
+(let ((?x368 (concat (select ?x362 (_ bv38 32)) (concat (select ?x362 (_ bv37 32)) (select ?x362 (_ bv36 32))))))
+(let ((?x564 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv39 32)) ?x368)) ((_ to_fp 8 24) ?x561)) (_ bv9 32) ?x548)))
+(let ((?x567 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x564)))))
+(let ((?x568 (bvadd (_ bv3 32) ?x567)))
+(let ((?x569 (bvadd (_ bv2 32) ?x567)))
+(let ((?x429 (select ?x362 (_ bv5 32))))
+(let ((?x570 (bvadd (_ bv1 32) ?x567)))
+(let ((?x428 (select ?x362 (_ bv4 32))))
+(let ((?x577 (store (store (store ?x362 (_ bv4 32) (select ?x362 ?x567)) (_ bv5 32) (select ?x362 ?x570)) (_ bv6 32) (select ?x362 ?x569))))
+(let ((?x580 (store (store (store ?x577 (_ bv7 32) (select ?x362 ?x568)) ?x567 ?x428) ?x570 ?x429)))
+(let ((?x582 (store (store ?x580 ?x569 ?x431) ?x568 ?x363)))
+(let ((?x583 (select ?x582 (_ bv11 32))))
+(let ((?x636 (concat (select ?x582 (_ bv14 32)) (concat (select ?x582 (_ bv13 32)) (select ?x582 (_ bv12 32))))))
+(let ((?x643 (select ?x582 (_ bv10 32))))
+(let ((?x645 (concat ?x583 (concat ?x643 (concat (select ?x582 (_ bv9 32)) (select ?x582 (_ bv8 32)))))))
+(let ((?x648 (ite (fp.lt ((_ to_fp 8 24) ?x645) ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636))) (_ bv2 32) (_ bv3 32))))
+(let ((?x655 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648)))))))
+(let ((?x658 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x655)))
+(let ((?x661 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x658)))
+(let ((?x664 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636)) ((_ to_fp 8 24) ?x661)) (_ bv3 32) ?x648)))
+(let ((?x671 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664)))))))
+(let ((?x674 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x671)))
+(let ((?x677 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x674)))
+(let ((?x628 (concat (select ?x582 (_ bv18 32)) (concat (select ?x582 (_ bv17 32)) (select ?x582 (_ bv16 32))))))
+(let ((?x680 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv19 32)) ?x628)) ((_ to_fp 8 24) ?x677)) (_ bv4 32) ?x664)))
+(let ((?x687 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680)))))))
+(let ((?x690 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x687)))
+(let ((?x693 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x690)))
+(let ((?x620 (concat (select ?x582 (_ bv22 32)) (concat (select ?x582 (_ bv21 32)) (select ?x582 (_ bv20 32))))))
+(let ((?x696 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv23 32)) ?x620)) ((_ to_fp 8 24) ?x693)) (_ bv5 32) ?x680)))
+(let ((?x703 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696)))))))
+(let ((?x706 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x703)))
+(let ((?x709 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x706)))
+(let ((?x612 (concat (select ?x582 (_ bv26 32)) (concat (select ?x582 (_ bv25 32)) (select ?x582 (_ bv24 32))))))
+(let ((?x712 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv27 32)) ?x612)) ((_ to_fp 8 24) ?x709)) (_ bv6 32) ?x696)))
+(let ((?x719 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712)))))))
+(let ((?x722 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x719)))
+(let ((?x725 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x722)))
+(let ((?x604 (concat (select ?x582 (_ bv30 32)) (concat (select ?x582 (_ bv29 32)) (select ?x582 (_ bv28 32))))))
+(let ((?x728 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv31 32)) ?x604)) ((_ to_fp 8 24) ?x725)) (_ bv7 32) ?x712)))
+(let ((?x735 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728)))))))
+(let ((?x738 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x735)))
+(let ((?x741 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x738)))
+(let ((?x596 (concat (select ?x582 (_ bv34 32)) (concat (select ?x582 (_ bv33 32)) (select ?x582 (_ bv32 32))))))
+(let ((?x744 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv35 32)) ?x596)) ((_ to_fp 8 24) ?x741)) (_ bv8 32) ?x728)))
+(let ((?x751 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744)))))))
+(let ((?x754 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x751)))
+(let ((?x757 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x754)))
+(let ((?x588 (concat (select ?x582 (_ bv38 32)) (concat (select ?x582 (_ bv37 32)) (select ?x582 (_ bv36 32))))))
+(let ((?x760 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv39 32)) ?x588)) ((_ to_fp 8 24) ?x757)) (_ bv9 32) ?x744)))
+(let ((?x763 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x760)))))
+(let ((?x764 (bvadd (_ bv3 32) ?x763)))
+(let ((?x765 (bvadd (_ bv2 32) ?x763)))
+(let ((?x641 (select ?x582 (_ bv9 32))))
+(let ((?x766 (bvadd (_ bv1 32) ?x763)))
+(let ((?x640 (select ?x582 (_ bv8 32))))
+(let ((?x773 (store (store (store ?x582 (_ bv8 32) (select ?x582 ?x763)) (_ bv9 32) (select ?x582 ?x766)) (_ bv10 32) (select ?x582 ?x765))))
+(let ((?x776 (store (store (store ?x773 (_ bv11 32) (select ?x582 ?x764)) ?x763 ?x640) ?x766 ?x641)))
+(let ((?x778 (store (store ?x776 ?x765 ?x643) ?x764 ?x583)))
+(let ((?x799 (concat (select ?x778 (_ bv18 32)) (concat (select ?x778 (_ bv17 32)) (select ?x778 (_ bv16 32))))))
+(let ((?x807 (concat (select ?x778 (_ bv14 32)) (concat (select ?x778 (_ bv13 32)) (select ?x778 (_ bv12 32))))))
+(let (($x811 (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv15 32)) ?x807)) ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x799)))))
+(let ((?x812 (ite $x811 (_ bv3 32) (_ bv4 32))))
+(let ((?x819 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x812))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x812)))))))
+(let ((?x822 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x812))))) ?x819)))
+(let ((?x825 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x812))))) ?x822)))
+(let ((?x828 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x799)) ((_ to_fp 8 24) ?x825)) (_ bv4 32) ?x812)))
+(let ((?x835 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x828))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x828)))))))
+(let ((?x838 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x828))))) ?x835)))
+(let ((?x841 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x828))))) ?x838)))
+(let ((?x791 (concat (select ?x778 (_ bv22 32)) (concat (select ?x778 (_ bv21 32)) (select ?x778 (_ bv20 32))))))
+(let ((?x844 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv23 32)) ?x791)) ((_ to_fp 8 24) ?x841)) (_ bv5 32) ?x828)))
+(let ((?x851 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x844))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x844)))))))
+(let ((?x854 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x844))))) ?x851)))
+(let ((?x857 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x844))))) ?x854)))
+(let ((?x783 (concat (select ?x778 (_ bv26 32)) (concat (select ?x778 (_ bv25 32)) (select ?x778 (_ bv24 32))))))
+(let ((?x860 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv27 32)) ?x783)) ((_ to_fp 8 24) ?x857)) (_ bv6 32) ?x844)))
+(not (bvult (bvmul (_ bv4 64) ((_ sign_extend 32) ?x860)) (_ bv37 64))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.40.smt2 b/UnitTests/unsat/QF_ABVFP/query.40.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8e618d07d51453aa95ab6e86b6c148e52e195baf
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.40.smt2
@@ -0,0 +1,320 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun sym0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(declare-fun const_arr11 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (not (fp.isNaN ?x33)))))))
+(assert
+ (let ((?x42 (select sym0 (_ bv14 32))))
+ (let ((?x45 (select sym0 (_ bv15 32))))
+ (let ((?x46 (concat ?x45 (concat ?x42 (concat (select sym0 (_ bv13 32)) (select sym0 (_ bv12 32)))))))
+ (not (fp.isNaN ((_ to_fp 8 24) ?x46)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!0))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x52 ((_ to_fp 8 24) fresh_to_ieee_bv_!3))))))))))))
+(assert
+ (let ((?x56 ((_ extract 31 24) fresh_to_ieee_bv_!0)))
+(let ((?x14 (select sym0 (_ bv6 32))))
+(let ((?x17 (select sym0 (_ bv7 32))))
+(let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x28 (select sym0 (_ bv10 32))))
+(let ((?x31 (select sym0 (_ bv11 32))))
+(let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+(let ((?x33 ((_ to_fp 8 24) ?x32)))
+(let ((?x52 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+(let ((?x71 (ite (fp.lt ?x52 ?x19) (_ bv0 32) (_ bv1 32))))
+(let ((?x75 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x71)))))
+(let ((?x45 (select sym0 (_ bv15 32))))
+(let ((?x42 (select sym0 (_ bv14 32))))
+(let ((?x39 (select sym0 (_ bv13 32))))
+(let ((?x37 (select sym0 (_ bv12 32))))
+(let ((?x25 (select sym0 (_ bv9 32))))
+(let ((?x23 (select sym0 (_ bv8 32))))
+(let ((?x11 (select sym0 (_ bv5 32))))
+(let ((?x9 (select sym0 (_ bv4 32))))
+(let ((?x113 ((_ extract 23 16) fresh_to_ieee_bv_!1)))
+(let ((?x118 ((_ extract 15 8) fresh_to_ieee_bv_!2)))
+(let ((?x122 ((_ extract 7 0) fresh_to_ieee_bv_!3)))
+(let ((?x127 (store (store (store (store const_arr11 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x131 (store (store (store (store ?x127 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x135 (store (store (store (store ?x131 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x139 (store (store (store (store ?x135 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x143 (store (store (store (store ?x139 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x147 (store (store (store (store ?x143 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x151 (store (store (store (store ?x147 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+(let ((?x155 (store (store (store (store ?x151 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+(let ((?x159 (store (store (store (store ?x155 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv0 8)) (_ bv35 32) (_ bv0 8))))
+(let ((?x163 (store (store (store (store ?x159 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv0 8))))
+(let ((?x167 (store (store (store (store ?x163 (_ bv0 32) ?x122) (_ bv1 32) ?x118) (_ bv2 32) ?x113) (_ bv3 32) ?x56)))
+(let ((?x171 (store (store (store (store ?x167 (_ bv4 32) ?x9) (_ bv5 32) ?x11) (_ bv6 32) ?x14) (_ bv7 32) ?x17)))
+(let ((?x175 (store (store (store (store ?x171 (_ bv8 32) ?x23) (_ bv9 32) ?x25) (_ bv10 32) ?x28) (_ bv11 32) ?x31)))
+(let ((?x179 (store (store (store (store ?x175 (_ bv12 32) (_ bv154 8)) (_ bv13 32) (_ bv153 8)) (_ bv14 32) (_ bv153 8)) (_ bv15 32) (_ bv62 8))))
+(let ((?x183 (store (store (store (store ?x179 (_ bv16 32) (_ bv205 8)) (_ bv17 32) (_ bv204 8)) (_ bv18 32) (_ bv76 8)) (_ bv19 32) (_ bv62 8))))
+(let ((?x187 (store (store (store (store ?x183 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv128 8)) (_ bv23 32) (_ bv63 8))))
+(let ((?x191 (store (store (store (store ?x187 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv64 8)) (_ bv27 32) (_ bv64 8))))
+(let ((?x195 (store (store (store (store ?x191 (_ bv28 32) ?x37) (_ bv29 32) ?x39) (_ bv30 32) ?x42) (_ bv31 32) ?x45)))
+(let ((?x199 (store (store (store (store ?x195 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv128 8)) (_ bv35 32) (_ bv63 8))))
+(let ((?x203 (store (store (store (store ?x199 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv65 8))))
+(let ((?x210 (concat (select ?x203 (bvadd (_ bv2 32) ?x75)) (concat (select ?x203 (bvadd (_ bv1 32) ?x75)) (select ?x203 ?x75)))))
+(let ((?x216 (ite (fp.lt ?x19 ((_ to_fp 8 24) (concat (select ?x203 (bvadd (_ bv3 32) ?x75)) ?x210))) (_ bv1 32) ?x71)))
+(let ((?x223 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216)))))))
+(let ((?x226 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x223)))
+(let ((?x229 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x226)))
+(let ((?x232 (ite (fp.lt ?x33 ((_ to_fp 8 24) ?x229)) (_ bv2 32) ?x216)))
+(let ((?x239 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232)))))))
+(let ((?x242 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x239)))
+(let ((?x245 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x242)))
+(let ((?x248 (ite (fp.lt ((_ to_fp 8 24) (_ bv1050253722 32)) ((_ to_fp 8 24) ?x245)) (_ bv3 32) ?x232)))
+(let ((?x255 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248)))))))
+(let ((?x258 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x255)))
+(let ((?x261 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x258)))
+(let ((?x264 (ite (fp.lt ((_ to_fp 8 24) (_ bv1045220557 32)) ((_ to_fp 8 24) ?x261)) (_ bv4 32) ?x248)))
+(let ((?x271 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264)))))))
+(let ((?x274 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x271)))
+(let ((?x277 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x274)))
+(let ((?x280 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x277)) (_ bv5 32) ?x264)))
+(let ((?x287 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280)))))))
+(let ((?x290 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x287)))
+(let ((?x293 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x290)))
+(let ((?x296 (ite (fp.lt ((_ to_fp 8 24) (_ bv1077936128 32)) ((_ to_fp 8 24) ?x293)) (_ bv6 32) ?x280)))
+(let ((?x303 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296)))))))
+(let ((?x306 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x303)))
+(let ((?x309 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x306)))
+(let (($x311 (fp.lt ((_ to_fp 8 24) (concat ?x45 (concat ?x42 (concat ?x39 ?x37)))) ((_ to_fp 8 24) ?x309))))
+(let ((?x312 (ite $x311 (_ bv7 32) ?x296)))
+(let ((?x319 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312)))))))
+(let ((?x322 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x319)))
+(let ((?x325 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x322)))
+(let ((?x328 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x325)) (_ bv8 32) ?x312)))
+(let ((?x335 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328)))))))
+(let ((?x338 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x335)))
+(let ((?x341 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x338)))
+(let ((?x346 (bvmul (_ bv4 64) ((_ sign_extend 32) (ite (fp.lt ((_ to_fp 8 24) (_ bv1090519040 32)) ((_ to_fp 8 24) ?x341)) (_ bv9 32) ?x328)))))
+(let ((?x347 ((_ extract 31 0) ?x346)))
+(let ((?x348 (bvadd (_ bv3 32) ?x347)))
+(let ((?x349 (bvadd (_ bv2 32) ?x347)))
+(let ((?x350 (bvadd (_ bv1 32) ?x347)))
+(let ((?x357 (store (store (store ?x203 (_ bv0 32) (select ?x203 ?x347)) (_ bv1 32) (select ?x203 ?x350)) (_ bv2 32) (select ?x203 ?x349))))
+(let ((?x360 (store (store (store ?x357 (_ bv3 32) (select ?x203 ?x348)) ?x347 ?x122) ?x350 ?x118)))
+(let ((?x362 (store (store ?x360 ?x349 ?x113) ?x348 ?x56)))
+(let ((?x363 (select ?x362 (_ bv7 32))))
+(let ((?x424 (concat (select ?x362 (_ bv10 32)) (concat (select ?x362 (_ bv9 32)) (select ?x362 (_ bv8 32))))))
+(let ((?x431 (select ?x362 (_ bv6 32))))
+(let ((?x433 (concat ?x363 (concat ?x431 (concat (select ?x362 (_ bv5 32)) (select ?x362 (_ bv4 32)))))))
+(let ((?x436 (ite (fp.lt ((_ to_fp 8 24) ?x433) ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424))) (_ bv1 32) (_ bv2 32))))
+(let ((?x443 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436)))))))
+(let ((?x446 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x443)))
+(let ((?x449 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x446)))
+(let ((?x452 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424)) ((_ to_fp 8 24) ?x449)) (_ bv2 32) ?x436)))
+(let ((?x459 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452)))))))
+(let ((?x462 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x459)))
+(let ((?x465 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x462)))
+(let ((?x416 (concat (select ?x362 (_ bv14 32)) (concat (select ?x362 (_ bv13 32)) (select ?x362 (_ bv12 32))))))
+(let ((?x468 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv15 32)) ?x416)) ((_ to_fp 8 24) ?x465)) (_ bv3 32) ?x452)))
+(let ((?x475 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468)))))))
+(let ((?x478 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x475)))
+(let ((?x481 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x478)))
+(let ((?x408 (concat (select ?x362 (_ bv18 32)) (concat (select ?x362 (_ bv17 32)) (select ?x362 (_ bv16 32))))))
+(let ((?x484 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv19 32)) ?x408)) ((_ to_fp 8 24) ?x481)) (_ bv4 32) ?x468)))
+(let ((?x491 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484)))))))
+(let ((?x494 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x491)))
+(let ((?x497 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x494)))
+(let ((?x400 (concat (select ?x362 (_ bv22 32)) (concat (select ?x362 (_ bv21 32)) (select ?x362 (_ bv20 32))))))
+(let ((?x500 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv23 32)) ?x400)) ((_ to_fp 8 24) ?x497)) (_ bv5 32) ?x484)))
+(let ((?x507 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500)))))))
+(let ((?x510 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x507)))
+(let ((?x513 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x510)))
+(let ((?x392 (concat (select ?x362 (_ bv26 32)) (concat (select ?x362 (_ bv25 32)) (select ?x362 (_ bv24 32))))))
+(let ((?x516 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv27 32)) ?x392)) ((_ to_fp 8 24) ?x513)) (_ bv6 32) ?x500)))
+(let ((?x523 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516)))))))
+(let ((?x526 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x523)))
+(let ((?x529 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x526)))
+(let ((?x384 (concat (select ?x362 (_ bv30 32)) (concat (select ?x362 (_ bv29 32)) (select ?x362 (_ bv28 32))))))
+(let ((?x532 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv31 32)) ?x384)) ((_ to_fp 8 24) ?x529)) (_ bv7 32) ?x516)))
+(let ((?x539 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532)))))))
+(let ((?x542 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x539)))
+(let ((?x545 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x542)))
+(let ((?x376 (concat (select ?x362 (_ bv34 32)) (concat (select ?x362 (_ bv33 32)) (select ?x362 (_ bv32 32))))))
+(let ((?x548 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv35 32)) ?x376)) ((_ to_fp 8 24) ?x545)) (_ bv8 32) ?x532)))
+(let ((?x555 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548)))))))
+(let ((?x558 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x555)))
+(let ((?x561 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x558)))
+(let ((?x368 (concat (select ?x362 (_ bv38 32)) (concat (select ?x362 (_ bv37 32)) (select ?x362 (_ bv36 32))))))
+(let ((?x564 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv39 32)) ?x368)) ((_ to_fp 8 24) ?x561)) (_ bv9 32) ?x548)))
+(let ((?x567 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x564)))))
+(let ((?x568 (bvadd (_ bv3 32) ?x567)))
+(let ((?x569 (bvadd (_ bv2 32) ?x567)))
+(let ((?x429 (select ?x362 (_ bv5 32))))
+(let ((?x570 (bvadd (_ bv1 32) ?x567)))
+(let ((?x428 (select ?x362 (_ bv4 32))))
+(let ((?x577 (store (store (store ?x362 (_ bv4 32) (select ?x362 ?x567)) (_ bv5 32) (select ?x362 ?x570)) (_ bv6 32) (select ?x362 ?x569))))
+(let ((?x580 (store (store (store ?x577 (_ bv7 32) (select ?x362 ?x568)) ?x567 ?x428) ?x570 ?x429)))
+(let ((?x582 (store (store ?x580 ?x569 ?x431) ?x568 ?x363)))
+(let ((?x583 (select ?x582 (_ bv11 32))))
+(let ((?x636 (concat (select ?x582 (_ bv14 32)) (concat (select ?x582 (_ bv13 32)) (select ?x582 (_ bv12 32))))))
+(let ((?x643 (select ?x582 (_ bv10 32))))
+(let ((?x645 (concat ?x583 (concat ?x643 (concat (select ?x582 (_ bv9 32)) (select ?x582 (_ bv8 32)))))))
+(let ((?x648 (ite (fp.lt ((_ to_fp 8 24) ?x645) ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636))) (_ bv2 32) (_ bv3 32))))
+(let ((?x655 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648)))))))
+(let ((?x658 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x655)))
+(let ((?x661 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x658)))
+(let ((?x664 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636)) ((_ to_fp 8 24) ?x661)) (_ bv3 32) ?x648)))
+(let ((?x671 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664)))))))
+(let ((?x674 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x671)))
+(let ((?x677 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x674)))
+(let ((?x628 (concat (select ?x582 (_ bv18 32)) (concat (select ?x582 (_ bv17 32)) (select ?x582 (_ bv16 32))))))
+(let ((?x680 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv19 32)) ?x628)) ((_ to_fp 8 24) ?x677)) (_ bv4 32) ?x664)))
+(let ((?x687 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680)))))))
+(let ((?x690 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x687)))
+(let ((?x693 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x690)))
+(let ((?x620 (concat (select ?x582 (_ bv22 32)) (concat (select ?x582 (_ bv21 32)) (select ?x582 (_ bv20 32))))))
+(let ((?x696 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv23 32)) ?x620)) ((_ to_fp 8 24) ?x693)) (_ bv5 32) ?x680)))
+(let ((?x703 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696)))))))
+(let ((?x706 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x703)))
+(let ((?x709 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x706)))
+(let ((?x612 (concat (select ?x582 (_ bv26 32)) (concat (select ?x582 (_ bv25 32)) (select ?x582 (_ bv24 32))))))
+(let ((?x712 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv27 32)) ?x612)) ((_ to_fp 8 24) ?x709)) (_ bv6 32) ?x696)))
+(let ((?x719 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712)))))))
+(let ((?x722 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x719)))
+(let ((?x725 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x722)))
+(let ((?x604 (concat (select ?x582 (_ bv30 32)) (concat (select ?x582 (_ bv29 32)) (select ?x582 (_ bv28 32))))))
+(let ((?x728 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv31 32)) ?x604)) ((_ to_fp 8 24) ?x725)) (_ bv7 32) ?x712)))
+(let ((?x735 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728)))))))
+(let ((?x738 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x735)))
+(let ((?x741 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x738)))
+(let ((?x596 (concat (select ?x582 (_ bv34 32)) (concat (select ?x582 (_ bv33 32)) (select ?x582 (_ bv32 32))))))
+(let ((?x744 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv35 32)) ?x596)) ((_ to_fp 8 24) ?x741)) (_ bv8 32) ?x728)))
+(let ((?x751 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744)))))))
+(let ((?x754 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x751)))
+(let ((?x757 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x754)))
+(let ((?x588 (concat (select ?x582 (_ bv38 32)) (concat (select ?x582 (_ bv37 32)) (select ?x582 (_ bv36 32))))))
+(let ((?x760 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv39 32)) ?x588)) ((_ to_fp 8 24) ?x757)) (_ bv9 32) ?x744)))
+(let ((?x763 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x760)))))
+(let ((?x764 (bvadd (_ bv3 32) ?x763)))
+(let ((?x765 (bvadd (_ bv2 32) ?x763)))
+(let ((?x641 (select ?x582 (_ bv9 32))))
+(let ((?x766 (bvadd (_ bv1 32) ?x763)))
+(let ((?x640 (select ?x582 (_ bv8 32))))
+(let ((?x773 (store (store (store ?x582 (_ bv8 32) (select ?x582 ?x763)) (_ bv9 32) (select ?x582 ?x766)) (_ bv10 32) (select ?x582 ?x765))))
+(let ((?x776 (store (store (store ?x773 (_ bv11 32) (select ?x582 ?x764)) ?x763 ?x640) ?x766 ?x641)))
+(let ((?x778 (store (store ?x776 ?x765 ?x643) ?x764 ?x583)))
+(let ((?x779 (select ?x778 (_ bv15 32))))
+(let ((?x824 (concat (select ?x778 (_ bv18 32)) (concat (select ?x778 (_ bv17 32)) (select ?x778 (_ bv16 32))))))
+(let ((?x831 (select ?x778 (_ bv14 32))))
+(let ((?x833 (concat ?x779 (concat ?x831 (concat (select ?x778 (_ bv13 32)) (select ?x778 (_ bv12 32)))))))
+(let ((?x836 (ite (fp.lt ((_ to_fp 8 24) ?x833) ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824))) (_ bv3 32) (_ bv4 32))))
+(let ((?x843 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836)))))))
+(let ((?x846 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x843)))
+(let ((?x849 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x846)))
+(let ((?x852 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824)) ((_ to_fp 8 24) ?x849)) (_ bv4 32) ?x836)))
+(let ((?x859 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852)))))))
+(let ((?x862 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x859)))
+(let ((?x865 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x862)))
+(let ((?x816 (concat (select ?x778 (_ bv22 32)) (concat (select ?x778 (_ bv21 32)) (select ?x778 (_ bv20 32))))))
+(let ((?x868 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv23 32)) ?x816)) ((_ to_fp 8 24) ?x865)) (_ bv5 32) ?x852)))
+(let ((?x875 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868)))))))
+(let ((?x878 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x875)))
+(let ((?x881 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x878)))
+(let ((?x808 (concat (select ?x778 (_ bv26 32)) (concat (select ?x778 (_ bv25 32)) (select ?x778 (_ bv24 32))))))
+(let ((?x884 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv27 32)) ?x808)) ((_ to_fp 8 24) ?x881)) (_ bv6 32) ?x868)))
+(let ((?x891 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884)))))))
+(let ((?x894 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x891)))
+(let ((?x897 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x894)))
+(let ((?x800 (concat (select ?x778 (_ bv30 32)) (concat (select ?x778 (_ bv29 32)) (select ?x778 (_ bv28 32))))))
+(let ((?x900 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv31 32)) ?x800)) ((_ to_fp 8 24) ?x897)) (_ bv7 32) ?x884)))
+(let ((?x907 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900)))))))
+(let ((?x910 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x907)))
+(let ((?x913 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x910)))
+(let ((?x792 (concat (select ?x778 (_ bv34 32)) (concat (select ?x778 (_ bv33 32)) (select ?x778 (_ bv32 32))))))
+(let ((?x916 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv35 32)) ?x792)) ((_ to_fp 8 24) ?x913)) (_ bv8 32) ?x900)))
+(let ((?x923 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916)))))))
+(let ((?x926 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x923)))
+(let ((?x929 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x926)))
+(let ((?x784 (concat (select ?x778 (_ bv38 32)) (concat (select ?x778 (_ bv37 32)) (select ?x778 (_ bv36 32))))))
+(let ((?x932 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv39 32)) ?x784)) ((_ to_fp 8 24) ?x929)) (_ bv9 32) ?x916)))
+(let ((?x935 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x932)))))
+(let ((?x936 (bvadd (_ bv3 32) ?x935)))
+(let ((?x937 (bvadd (_ bv2 32) ?x935)))
+(let ((?x829 (select ?x778 (_ bv13 32))))
+(let ((?x938 (bvadd (_ bv1 32) ?x935)))
+(let ((?x828 (select ?x778 (_ bv12 32))))
+(let ((?x945 (store (store (store ?x778 (_ bv12 32) (select ?x778 ?x935)) (_ bv13 32) (select ?x778 ?x938)) (_ bv14 32) (select ?x778 ?x937))))
+(let ((?x948 (store (store (store ?x945 (_ bv15 32) (select ?x778 ?x936)) ?x935 ?x828) ?x938 ?x829)))
+(let ((?x950 (store (store ?x948 ?x937 ?x831) ?x936 ?x779)))
+(let ((?x955 (concat (select ?x950 (_ bv22 32)) (concat (select ?x950 (_ bv21 32)) (select ?x950 (_ bv20 32))))))
+(let ((?x963 (concat (select ?x950 (_ bv18 32)) (concat (select ?x950 (_ bv17 32)) (select ?x950 (_ bv16 32))))))
+(let (($x967 (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv19 32)) ?x963)) ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x955)))))
+(let ((?x968 (ite $x967 (_ bv4 32) (_ bv5 32))))
+(let ((?x975 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x968))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x968)))))))
+(let ((?x978 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x968))))) ?x975)))
+(let ((?x981 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x968))))) ?x978)))
+(let ((?x984 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x955)) ((_ to_fp 8 24) ?x981)) (_ bv5 32) ?x968)))
+(not (bvult (bvmul (_ bv4 64) ((_ sign_extend 32) ?x984)) (_ bv37 64)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.49.smt2 b/UnitTests/unsat/QF_ABVFP/query.49.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4bc4a0f07adfe96d51ad463c8c2ed75b3c31c53a
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.49.smt2
@@ -0,0 +1,373 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun sym0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(declare-fun const_arr11 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (not (fp.isNaN ?x33)))))))
+(assert
+ (let ((?x42 (select sym0 (_ bv14 32))))
+ (let ((?x45 (select sym0 (_ bv15 32))))
+ (let ((?x46 (concat ?x45 (concat ?x42 (concat (select sym0 (_ bv13 32)) (select sym0 (_ bv12 32)))))))
+ (not (fp.isNaN ((_ to_fp 8 24) ?x46)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x53 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x53 ((_ to_fp 8 24) fresh_to_ieee_bv_!0))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x53 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x53 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x53 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x53 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x53 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x53 ((_ to_fp 8 24) fresh_to_ieee_bv_!3))))))))))))
+(assert
+ (let ((?x57 ((_ extract 31 24) fresh_to_ieee_bv_!0)))
+(let ((?x14 (select sym0 (_ bv6 32))))
+(let ((?x17 (select sym0 (_ bv7 32))))
+(let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x28 (select sym0 (_ bv10 32))))
+(let ((?x31 (select sym0 (_ bv11 32))))
+(let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+(let ((?x33 ((_ to_fp 8 24) ?x32)))
+(let ((?x53 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+(let ((?x72 (ite (fp.lt ?x53 ?x19) (_ bv0 32) (_ bv1 32))))
+(let ((?x76 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x72)))))
+(let ((?x45 (select sym0 (_ bv15 32))))
+(let ((?x42 (select sym0 (_ bv14 32))))
+(let ((?x39 (select sym0 (_ bv13 32))))
+(let ((?x37 (select sym0 (_ bv12 32))))
+(let ((?x25 (select sym0 (_ bv9 32))))
+(let ((?x23 (select sym0 (_ bv8 32))))
+(let ((?x11 (select sym0 (_ bv5 32))))
+(let ((?x9 (select sym0 (_ bv4 32))))
+(let ((?x113 ((_ extract 23 16) fresh_to_ieee_bv_!1)))
+(let ((?x118 ((_ extract 15 8) fresh_to_ieee_bv_!2)))
+(let ((?x122 ((_ extract 7 0) fresh_to_ieee_bv_!3)))
+(let ((?x127 (store (store (store (store const_arr11 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x131 (store (store (store (store ?x127 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x135 (store (store (store (store ?x131 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x139 (store (store (store (store ?x135 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x143 (store (store (store (store ?x139 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x147 (store (store (store (store ?x143 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x151 (store (store (store (store ?x147 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+(let ((?x155 (store (store (store (store ?x151 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+(let ((?x159 (store (store (store (store ?x155 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv0 8)) (_ bv35 32) (_ bv0 8))))
+(let ((?x163 (store (store (store (store ?x159 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv0 8))))
+(let ((?x167 (store (store (store (store ?x163 (_ bv0 32) ?x122) (_ bv1 32) ?x118) (_ bv2 32) ?x113) (_ bv3 32) ?x57)))
+(let ((?x171 (store (store (store (store ?x167 (_ bv4 32) ?x9) (_ bv5 32) ?x11) (_ bv6 32) ?x14) (_ bv7 32) ?x17)))
+(let ((?x175 (store (store (store (store ?x171 (_ bv8 32) ?x23) (_ bv9 32) ?x25) (_ bv10 32) ?x28) (_ bv11 32) ?x31)))
+(let ((?x179 (store (store (store (store ?x175 (_ bv12 32) (_ bv154 8)) (_ bv13 32) (_ bv153 8)) (_ bv14 32) (_ bv153 8)) (_ bv15 32) (_ bv62 8))))
+(let ((?x183 (store (store (store (store ?x179 (_ bv16 32) (_ bv205 8)) (_ bv17 32) (_ bv204 8)) (_ bv18 32) (_ bv76 8)) (_ bv19 32) (_ bv62 8))))
+(let ((?x187 (store (store (store (store ?x183 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv128 8)) (_ bv23 32) (_ bv63 8))))
+(let ((?x191 (store (store (store (store ?x187 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv64 8)) (_ bv27 32) (_ bv64 8))))
+(let ((?x195 (store (store (store (store ?x191 (_ bv28 32) ?x37) (_ bv29 32) ?x39) (_ bv30 32) ?x42) (_ bv31 32) ?x45)))
+(let ((?x199 (store (store (store (store ?x195 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv128 8)) (_ bv35 32) (_ bv63 8))))
+(let ((?x203 (store (store (store (store ?x199 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv65 8))))
+(let ((?x210 (concat (select ?x203 (bvadd (_ bv2 32) ?x76)) (concat (select ?x203 (bvadd (_ bv1 32) ?x76)) (select ?x203 ?x76)))))
+(let ((?x216 (ite (fp.lt ?x19 ((_ to_fp 8 24) (concat (select ?x203 (bvadd (_ bv3 32) ?x76)) ?x210))) (_ bv1 32) ?x72)))
+(let ((?x223 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216)))))))
+(let ((?x226 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x223)))
+(let ((?x229 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x226)))
+(let ((?x232 (ite (fp.lt ?x33 ((_ to_fp 8 24) ?x229)) (_ bv2 32) ?x216)))
+(let ((?x239 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232)))))))
+(let ((?x242 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x239)))
+(let ((?x245 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x242)))
+(let ((?x248 (ite (fp.lt ((_ to_fp 8 24) (_ bv1050253722 32)) ((_ to_fp 8 24) ?x245)) (_ bv3 32) ?x232)))
+(let ((?x255 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248)))))))
+(let ((?x258 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x255)))
+(let ((?x261 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x258)))
+(let ((?x264 (ite (fp.lt ((_ to_fp 8 24) (_ bv1045220557 32)) ((_ to_fp 8 24) ?x261)) (_ bv4 32) ?x248)))
+(let ((?x271 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264)))))))
+(let ((?x274 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x271)))
+(let ((?x277 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x274)))
+(let ((?x280 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x277)) (_ bv5 32) ?x264)))
+(let ((?x287 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280)))))))
+(let ((?x290 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x287)))
+(let ((?x293 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x290)))
+(let ((?x296 (ite (fp.lt ((_ to_fp 8 24) (_ bv1077936128 32)) ((_ to_fp 8 24) ?x293)) (_ bv6 32) ?x280)))
+(let ((?x303 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296)))))))
+(let ((?x306 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x303)))
+(let ((?x309 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x306)))
+(let (($x311 (fp.lt ((_ to_fp 8 24) (concat ?x45 (concat ?x42 (concat ?x39 ?x37)))) ((_ to_fp 8 24) ?x309))))
+(let ((?x312 (ite $x311 (_ bv7 32) ?x296)))
+(let ((?x319 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312)))))))
+(let ((?x322 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x319)))
+(let ((?x325 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x322)))
+(let ((?x328 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x325)) (_ bv8 32) ?x312)))
+(let ((?x335 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328)))))))
+(let ((?x338 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x335)))
+(let ((?x341 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x338)))
+(let ((?x346 (bvmul (_ bv4 64) ((_ sign_extend 32) (ite (fp.lt ((_ to_fp 8 24) (_ bv1090519040 32)) ((_ to_fp 8 24) ?x341)) (_ bv9 32) ?x328)))))
+(let ((?x347 ((_ extract 31 0) ?x346)))
+(let ((?x348 (bvadd (_ bv3 32) ?x347)))
+(let ((?x349 (bvadd (_ bv2 32) ?x347)))
+(let ((?x350 (bvadd (_ bv1 32) ?x347)))
+(let ((?x357 (store (store (store ?x203 (_ bv0 32) (select ?x203 ?x347)) (_ bv1 32) (select ?x203 ?x350)) (_ bv2 32) (select ?x203 ?x349))))
+(let ((?x360 (store (store (store ?x357 (_ bv3 32) (select ?x203 ?x348)) ?x347 ?x122) ?x350 ?x118)))
+(let ((?x362 (store (store ?x360 ?x349 ?x113) ?x348 ?x57)))
+(let ((?x363 (select ?x362 (_ bv7 32))))
+(let ((?x424 (concat (select ?x362 (_ bv10 32)) (concat (select ?x362 (_ bv9 32)) (select ?x362 (_ bv8 32))))))
+(let ((?x431 (select ?x362 (_ bv6 32))))
+(let ((?x433 (concat ?x363 (concat ?x431 (concat (select ?x362 (_ bv5 32)) (select ?x362 (_ bv4 32)))))))
+(let ((?x436 (ite (fp.lt ((_ to_fp 8 24) ?x433) ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424))) (_ bv1 32) (_ bv2 32))))
+(let ((?x443 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436)))))))
+(let ((?x446 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x443)))
+(let ((?x449 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x446)))
+(let ((?x452 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424)) ((_ to_fp 8 24) ?x449)) (_ bv2 32) ?x436)))
+(let ((?x459 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452)))))))
+(let ((?x462 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x459)))
+(let ((?x465 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x462)))
+(let ((?x416 (concat (select ?x362 (_ bv14 32)) (concat (select ?x362 (_ bv13 32)) (select ?x362 (_ bv12 32))))))
+(let ((?x468 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv15 32)) ?x416)) ((_ to_fp 8 24) ?x465)) (_ bv3 32) ?x452)))
+(let ((?x475 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468)))))))
+(let ((?x478 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x475)))
+(let ((?x481 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x478)))
+(let ((?x408 (concat (select ?x362 (_ bv18 32)) (concat (select ?x362 (_ bv17 32)) (select ?x362 (_ bv16 32))))))
+(let ((?x484 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv19 32)) ?x408)) ((_ to_fp 8 24) ?x481)) (_ bv4 32) ?x468)))
+(let ((?x491 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484)))))))
+(let ((?x494 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x491)))
+(let ((?x497 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x494)))
+(let ((?x400 (concat (select ?x362 (_ bv22 32)) (concat (select ?x362 (_ bv21 32)) (select ?x362 (_ bv20 32))))))
+(let ((?x500 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv23 32)) ?x400)) ((_ to_fp 8 24) ?x497)) (_ bv5 32) ?x484)))
+(let ((?x507 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500)))))))
+(let ((?x510 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x507)))
+(let ((?x513 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x510)))
+(let ((?x392 (concat (select ?x362 (_ bv26 32)) (concat (select ?x362 (_ bv25 32)) (select ?x362 (_ bv24 32))))))
+(let ((?x516 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv27 32)) ?x392)) ((_ to_fp 8 24) ?x513)) (_ bv6 32) ?x500)))
+(let ((?x523 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516)))))))
+(let ((?x526 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x523)))
+(let ((?x529 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x526)))
+(let ((?x384 (concat (select ?x362 (_ bv30 32)) (concat (select ?x362 (_ bv29 32)) (select ?x362 (_ bv28 32))))))
+(let ((?x532 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv31 32)) ?x384)) ((_ to_fp 8 24) ?x529)) (_ bv7 32) ?x516)))
+(let ((?x539 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532)))))))
+(let ((?x542 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x539)))
+(let ((?x545 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x542)))
+(let ((?x376 (concat (select ?x362 (_ bv34 32)) (concat (select ?x362 (_ bv33 32)) (select ?x362 (_ bv32 32))))))
+(let ((?x548 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv35 32)) ?x376)) ((_ to_fp 8 24) ?x545)) (_ bv8 32) ?x532)))
+(let ((?x555 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548)))))))
+(let ((?x558 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x555)))
+(let ((?x561 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x558)))
+(let ((?x368 (concat (select ?x362 (_ bv38 32)) (concat (select ?x362 (_ bv37 32)) (select ?x362 (_ bv36 32))))))
+(let ((?x564 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv39 32)) ?x368)) ((_ to_fp 8 24) ?x561)) (_ bv9 32) ?x548)))
+(let ((?x567 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x564)))))
+(let ((?x568 (bvadd (_ bv3 32) ?x567)))
+(let ((?x569 (bvadd (_ bv2 32) ?x567)))
+(let ((?x429 (select ?x362 (_ bv5 32))))
+(let ((?x570 (bvadd (_ bv1 32) ?x567)))
+(let ((?x428 (select ?x362 (_ bv4 32))))
+(let ((?x577 (store (store (store ?x362 (_ bv4 32) (select ?x362 ?x567)) (_ bv5 32) (select ?x362 ?x570)) (_ bv6 32) (select ?x362 ?x569))))
+(let ((?x580 (store (store (store ?x577 (_ bv7 32) (select ?x362 ?x568)) ?x567 ?x428) ?x570 ?x429)))
+(let ((?x582 (store (store ?x580 ?x569 ?x431) ?x568 ?x363)))
+(let ((?x583 (select ?x582 (_ bv11 32))))
+(let ((?x636 (concat (select ?x582 (_ bv14 32)) (concat (select ?x582 (_ bv13 32)) (select ?x582 (_ bv12 32))))))
+(let ((?x643 (select ?x582 (_ bv10 32))))
+(let ((?x645 (concat ?x583 (concat ?x643 (concat (select ?x582 (_ bv9 32)) (select ?x582 (_ bv8 32)))))))
+(let ((?x648 (ite (fp.lt ((_ to_fp 8 24) ?x645) ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636))) (_ bv2 32) (_ bv3 32))))
+(let ((?x655 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648)))))))
+(let ((?x658 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x655)))
+(let ((?x661 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x658)))
+(let ((?x664 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636)) ((_ to_fp 8 24) ?x661)) (_ bv3 32) ?x648)))
+(let ((?x671 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664)))))))
+(let ((?x674 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x671)))
+(let ((?x677 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x674)))
+(let ((?x628 (concat (select ?x582 (_ bv18 32)) (concat (select ?x582 (_ bv17 32)) (select ?x582 (_ bv16 32))))))
+(let ((?x680 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv19 32)) ?x628)) ((_ to_fp 8 24) ?x677)) (_ bv4 32) ?x664)))
+(let ((?x687 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680)))))))
+(let ((?x690 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x687)))
+(let ((?x693 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x690)))
+(let ((?x620 (concat (select ?x582 (_ bv22 32)) (concat (select ?x582 (_ bv21 32)) (select ?x582 (_ bv20 32))))))
+(let ((?x696 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv23 32)) ?x620)) ((_ to_fp 8 24) ?x693)) (_ bv5 32) ?x680)))
+(let ((?x703 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696)))))))
+(let ((?x706 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x703)))
+(let ((?x709 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x706)))
+(let ((?x612 (concat (select ?x582 (_ bv26 32)) (concat (select ?x582 (_ bv25 32)) (select ?x582 (_ bv24 32))))))
+(let ((?x712 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv27 32)) ?x612)) ((_ to_fp 8 24) ?x709)) (_ bv6 32) ?x696)))
+(let ((?x719 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712)))))))
+(let ((?x722 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x719)))
+(let ((?x725 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x722)))
+(let ((?x604 (concat (select ?x582 (_ bv30 32)) (concat (select ?x582 (_ bv29 32)) (select ?x582 (_ bv28 32))))))
+(let ((?x728 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv31 32)) ?x604)) ((_ to_fp 8 24) ?x725)) (_ bv7 32) ?x712)))
+(let ((?x735 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728)))))))
+(let ((?x738 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x735)))
+(let ((?x741 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x738)))
+(let ((?x596 (concat (select ?x582 (_ bv34 32)) (concat (select ?x582 (_ bv33 32)) (select ?x582 (_ bv32 32))))))
+(let ((?x744 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv35 32)) ?x596)) ((_ to_fp 8 24) ?x741)) (_ bv8 32) ?x728)))
+(let ((?x751 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744)))))))
+(let ((?x754 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x751)))
+(let ((?x757 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x754)))
+(let ((?x588 (concat (select ?x582 (_ bv38 32)) (concat (select ?x582 (_ bv37 32)) (select ?x582 (_ bv36 32))))))
+(let ((?x760 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv39 32)) ?x588)) ((_ to_fp 8 24) ?x757)) (_ bv9 32) ?x744)))
+(let ((?x763 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x760)))))
+(let ((?x764 (bvadd (_ bv3 32) ?x763)))
+(let ((?x765 (bvadd (_ bv2 32) ?x763)))
+(let ((?x641 (select ?x582 (_ bv9 32))))
+(let ((?x766 (bvadd (_ bv1 32) ?x763)))
+(let ((?x640 (select ?x582 (_ bv8 32))))
+(let ((?x773 (store (store (store ?x582 (_ bv8 32) (select ?x582 ?x763)) (_ bv9 32) (select ?x582 ?x766)) (_ bv10 32) (select ?x582 ?x765))))
+(let ((?x776 (store (store (store ?x773 (_ bv11 32) (select ?x582 ?x764)) ?x763 ?x640) ?x766 ?x641)))
+(let ((?x778 (store (store ?x776 ?x765 ?x643) ?x764 ?x583)))
+(let ((?x779 (select ?x778 (_ bv15 32))))
+(let ((?x824 (concat (select ?x778 (_ bv18 32)) (concat (select ?x778 (_ bv17 32)) (select ?x778 (_ bv16 32))))))
+(let ((?x831 (select ?x778 (_ bv14 32))))
+(let ((?x833 (concat ?x779 (concat ?x831 (concat (select ?x778 (_ bv13 32)) (select ?x778 (_ bv12 32)))))))
+(let ((?x836 (ite (fp.lt ((_ to_fp 8 24) ?x833) ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824))) (_ bv3 32) (_ bv4 32))))
+(let ((?x843 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836)))))))
+(let ((?x846 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x843)))
+(let ((?x849 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x846)))
+(let ((?x852 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824)) ((_ to_fp 8 24) ?x849)) (_ bv4 32) ?x836)))
+(let ((?x859 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852)))))))
+(let ((?x862 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x859)))
+(let ((?x865 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x862)))
+(let ((?x816 (concat (select ?x778 (_ bv22 32)) (concat (select ?x778 (_ bv21 32)) (select ?x778 (_ bv20 32))))))
+(let ((?x868 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv23 32)) ?x816)) ((_ to_fp 8 24) ?x865)) (_ bv5 32) ?x852)))
+(let ((?x875 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868)))))))
+(let ((?x878 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x875)))
+(let ((?x881 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x878)))
+(let ((?x808 (concat (select ?x778 (_ bv26 32)) (concat (select ?x778 (_ bv25 32)) (select ?x778 (_ bv24 32))))))
+(let ((?x884 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv27 32)) ?x808)) ((_ to_fp 8 24) ?x881)) (_ bv6 32) ?x868)))
+(let ((?x891 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884)))))))
+(let ((?x894 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x891)))
+(let ((?x897 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x894)))
+(let ((?x800 (concat (select ?x778 (_ bv30 32)) (concat (select ?x778 (_ bv29 32)) (select ?x778 (_ bv28 32))))))
+(let ((?x900 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv31 32)) ?x800)) ((_ to_fp 8 24) ?x897)) (_ bv7 32) ?x884)))
+(let ((?x907 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900)))))))
+(let ((?x910 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x907)))
+(let ((?x913 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x910)))
+(let ((?x792 (concat (select ?x778 (_ bv34 32)) (concat (select ?x778 (_ bv33 32)) (select ?x778 (_ bv32 32))))))
+(let ((?x916 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv35 32)) ?x792)) ((_ to_fp 8 24) ?x913)) (_ bv8 32) ?x900)))
+(let ((?x923 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916)))))))
+(let ((?x926 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x923)))
+(let ((?x929 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x926)))
+(let ((?x784 (concat (select ?x778 (_ bv38 32)) (concat (select ?x778 (_ bv37 32)) (select ?x778 (_ bv36 32))))))
+(let ((?x932 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv39 32)) ?x784)) ((_ to_fp 8 24) ?x929)) (_ bv9 32) ?x916)))
+(let ((?x935 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x932)))))
+(let ((?x936 (bvadd (_ bv3 32) ?x935)))
+(let ((?x937 (bvadd (_ bv2 32) ?x935)))
+(let ((?x829 (select ?x778 (_ bv13 32))))
+(let ((?x938 (bvadd (_ bv1 32) ?x935)))
+(let ((?x828 (select ?x778 (_ bv12 32))))
+(let ((?x945 (store (store (store ?x778 (_ bv12 32) (select ?x778 ?x935)) (_ bv13 32) (select ?x778 ?x938)) (_ bv14 32) (select ?x778 ?x937))))
+(let ((?x948 (store (store (store ?x945 (_ bv15 32) (select ?x778 ?x936)) ?x935 ?x828) ?x938 ?x829)))
+(let ((?x950 (store (store ?x948 ?x937 ?x831) ?x936 ?x779)))
+(let ((?x951 (select ?x950 (_ bv19 32))))
+(let ((?x988 (concat (select ?x950 (_ bv22 32)) (concat (select ?x950 (_ bv21 32)) (select ?x950 (_ bv20 32))))))
+(let ((?x995 (select ?x950 (_ bv18 32))))
+(let ((?x997 (concat ?x951 (concat ?x995 (concat (select ?x950 (_ bv17 32)) (select ?x950 (_ bv16 32)))))))
+(let ((?x1000 (ite (fp.lt ((_ to_fp 8 24) ?x997) ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x988))) (_ bv4 32) (_ bv5 32))))
+(let ((?x1007 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000)))))))
+(let ((?x1010 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) ?x1007)))
+(let ((?x1013 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) ?x1010)))
+(let ((?x1016 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x988)) ((_ to_fp 8 24) ?x1013)) (_ bv5 32) ?x1000)))
+(let ((?x1023 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016)))))))
+(let ((?x1026 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) ?x1023)))
+(let ((?x1029 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) ?x1026)))
+(let ((?x980 (concat (select ?x950 (_ bv26 32)) (concat (select ?x950 (_ bv25 32)) (select ?x950 (_ bv24 32))))))
+(let ((?x1032 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv27 32)) ?x980)) ((_ to_fp 8 24) ?x1029)) (_ bv6 32) ?x1016)))
+(let ((?x1039 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032)))))))
+(let ((?x1042 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) ?x1039)))
+(let ((?x1045 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) ?x1042)))
+(let ((?x972 (concat (select ?x950 (_ bv30 32)) (concat (select ?x950 (_ bv29 32)) (select ?x950 (_ bv28 32))))))
+(let ((?x1048 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv31 32)) ?x972)) ((_ to_fp 8 24) ?x1045)) (_ bv7 32) ?x1032)))
+(let ((?x1055 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048)))))))
+(let ((?x1058 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) ?x1055)))
+(let ((?x1061 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) ?x1058)))
+(let ((?x964 (concat (select ?x950 (_ bv34 32)) (concat (select ?x950 (_ bv33 32)) (select ?x950 (_ bv32 32))))))
+(let ((?x1064 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv35 32)) ?x964)) ((_ to_fp 8 24) ?x1061)) (_ bv8 32) ?x1048)))
+(let ((?x1071 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064)))))))
+(let ((?x1074 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) ?x1071)))
+(let ((?x1077 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) ?x1074)))
+(let ((?x956 (concat (select ?x950 (_ bv38 32)) (concat (select ?x950 (_ bv37 32)) (select ?x950 (_ bv36 32))))))
+(let ((?x1080 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv39 32)) ?x956)) ((_ to_fp 8 24) ?x1077)) (_ bv9 32) ?x1064)))
+(let ((?x1083 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1080)))))
+(let ((?x1084 (bvadd (_ bv3 32) ?x1083)))
+(let ((?x1085 (bvadd (_ bv2 32) ?x1083)))
+(let ((?x993 (select ?x950 (_ bv17 32))))
+(let ((?x1086 (bvadd (_ bv1 32) ?x1083)))
+(let ((?x992 (select ?x950 (_ bv16 32))))
+(let ((?x1093 (store (store (store ?x950 (_ bv16 32) (select ?x950 ?x1083)) (_ bv17 32) (select ?x950 ?x1086)) (_ bv18 32) (select ?x950 ?x1085))))
+(let ((?x1096 (store (store (store ?x1093 (_ bv19 32) (select ?x950 ?x1084)) ?x1083 ?x992) ?x1086 ?x993)))
+(let ((?x1098 (store (store ?x1096 ?x1085 ?x995) ?x1084 ?x951)))
+(let ((?x1127 (concat (select ?x1098 (_ bv26 32)) (concat (select ?x1098 (_ bv25 32)) (select ?x1098 (_ bv24 32))))))
+(let ((?x1135 (concat (select ?x1098 (_ bv22 32)) (concat (select ?x1098 (_ bv21 32)) (select ?x1098 (_ bv20 32))))))
+(let (($x1139 (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv23 32)) ?x1135)) ((_ to_fp 8 24) (concat (select ?x1098 (_ bv27 32)) ?x1127)))))
+(let ((?x1140 (ite $x1139 (_ bv5 32) (_ bv6 32))))
+(let ((?x1147 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140)))))))
+(let ((?x1150 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) ?x1147)))
+(let ((?x1153 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) ?x1150)))
+(let ((?x1156 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv27 32)) ?x1127)) ((_ to_fp 8 24) ?x1153)) (_ bv6 32) ?x1140)))
+(let ((?x1163 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156)))))))
+(let ((?x1166 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) ?x1163)))
+(let ((?x1169 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) ?x1166)))
+(let ((?x1119 (concat (select ?x1098 (_ bv30 32)) (concat (select ?x1098 (_ bv29 32)) (select ?x1098 (_ bv28 32))))))
+(let ((?x1172 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv31 32)) ?x1119)) ((_ to_fp 8 24) ?x1169)) (_ bv7 32) ?x1156)))
+(let ((?x1179 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172)))))))
+(let ((?x1182 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) ?x1179)))
+(let ((?x1185 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) ?x1182)))
+(let ((?x1111 (concat (select ?x1098 (_ bv34 32)) (concat (select ?x1098 (_ bv33 32)) (select ?x1098 (_ bv32 32))))))
+(let ((?x1188 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv35 32)) ?x1111)) ((_ to_fp 8 24) ?x1185)) (_ bv8 32) ?x1172)))
+(let ((?x1195 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188)))))))
+(let ((?x1198 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) ?x1195)))
+(let ((?x1201 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) ?x1198)))
+(let ((?x1103 (concat (select ?x1098 (_ bv38 32)) (concat (select ?x1098 (_ bv37 32)) (select ?x1098 (_ bv36 32))))))
+(let ((?x1204 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv39 32)) ?x1103)) ((_ to_fp 8 24) ?x1201)) (_ bv9 32) ?x1188)))
+(not (bvult (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1204)) (_ bv37 64))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.58.smt2 b/UnitTests/unsat/QF_ABVFP/query.58.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..79ca8f37dafb4b56773726f9e149714da4e5e2c1
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.58.smt2
@@ -0,0 +1,442 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun sym0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun fresh_to_ieee_bv_!0 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!1 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!2 () (_ BitVec 32))
+(declare-fun fresh_to_ieee_bv_!3 () (_ BitVec 32))
+(declare-fun const_arr11 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (not (fp.isNaN ?x19)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (not (fp.isNaN ?x33)))))))
+(assert
+ (let ((?x42 (select sym0 (_ bv14 32))))
+ (let ((?x45 (select sym0 (_ bv15 32))))
+ (let ((?x46 (concat ?x45 (concat ?x42 (concat (select sym0 (_ bv13 32)) (select sym0 (_ bv12 32)))))))
+ (not (fp.isNaN ((_ to_fp 8 24) ?x46)))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x56 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x56 ((_ to_fp 8 24) fresh_to_ieee_bv_!0))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x56 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x56 ((_ to_fp 8 24) fresh_to_ieee_bv_!1))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x56 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x56 ((_ to_fp 8 24) fresh_to_ieee_bv_!2))))))))))))
+(assert
+ (let ((?x28 (select sym0 (_ bv10 32))))
+ (let ((?x31 (select sym0 (_ bv11 32))))
+ (let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+ (let ((?x33 ((_ to_fp 8 24) ?x32)))
+ (let ((?x14 (select sym0 (_ bv6 32))))
+ (let ((?x17 (select sym0 (_ bv7 32))))
+ (let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+ (let ((?x19 ((_ to_fp 8 24) ?x18)))
+ (let ((?x56 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+ (= ?x56 ((_ to_fp 8 24) fresh_to_ieee_bv_!3))))))))))))
+(assert
+ (let ((?x60 ((_ extract 31 24) fresh_to_ieee_bv_!0)))
+(let ((?x14 (select sym0 (_ bv6 32))))
+(let ((?x17 (select sym0 (_ bv7 32))))
+(let ((?x18 (concat ?x17 (concat ?x14 (concat (select sym0 (_ bv5 32)) (select sym0 (_ bv4 32)))))))
+(let ((?x19 ((_ to_fp 8 24) ?x18)))
+(let ((?x28 (select sym0 (_ bv10 32))))
+(let ((?x31 (select sym0 (_ bv11 32))))
+(let ((?x32 (concat ?x31 (concat ?x28 (concat (select sym0 (_ bv9 32)) (select sym0 (_ bv8 32)))))))
+(let ((?x33 ((_ to_fp 8 24) ?x32)))
+(let ((?x56 (fp.add roundNearestTiesToEven ?x19 ?x33)))
+(let ((?x75 (ite (fp.lt ?x56 ?x19) (_ bv0 32) (_ bv1 32))))
+(let ((?x79 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x75)))))
+(let ((?x45 (select sym0 (_ bv15 32))))
+(let ((?x42 (select sym0 (_ bv14 32))))
+(let ((?x39 (select sym0 (_ bv13 32))))
+(let ((?x37 (select sym0 (_ bv12 32))))
+(let ((?x25 (select sym0 (_ bv9 32))))
+(let ((?x23 (select sym0 (_ bv8 32))))
+(let ((?x11 (select sym0 (_ bv5 32))))
+(let ((?x9 (select sym0 (_ bv4 32))))
+(let ((?x113 ((_ extract 23 16) fresh_to_ieee_bv_!1)))
+(let ((?x118 ((_ extract 15 8) fresh_to_ieee_bv_!2)))
+(let ((?x122 ((_ extract 7 0) fresh_to_ieee_bv_!3)))
+(let ((?x127 (store (store (store (store const_arr11 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x131 (store (store (store (store ?x127 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x135 (store (store (store (store ?x131 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x139 (store (store (store (store ?x135 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x143 (store (store (store (store ?x139 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x147 (store (store (store (store ?x143 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x151 (store (store (store (store ?x147 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+(let ((?x155 (store (store (store (store ?x151 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+(let ((?x159 (store (store (store (store ?x155 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv0 8)) (_ bv35 32) (_ bv0 8))))
+(let ((?x163 (store (store (store (store ?x159 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv0 8))))
+(let ((?x167 (store (store (store (store ?x163 (_ bv0 32) ?x122) (_ bv1 32) ?x118) (_ bv2 32) ?x113) (_ bv3 32) ?x60)))
+(let ((?x171 (store (store (store (store ?x167 (_ bv4 32) ?x9) (_ bv5 32) ?x11) (_ bv6 32) ?x14) (_ bv7 32) ?x17)))
+(let ((?x175 (store (store (store (store ?x171 (_ bv8 32) ?x23) (_ bv9 32) ?x25) (_ bv10 32) ?x28) (_ bv11 32) ?x31)))
+(let ((?x179 (store (store (store (store ?x175 (_ bv12 32) (_ bv154 8)) (_ bv13 32) (_ bv153 8)) (_ bv14 32) (_ bv153 8)) (_ bv15 32) (_ bv62 8))))
+(let ((?x183 (store (store (store (store ?x179 (_ bv16 32) (_ bv205 8)) (_ bv17 32) (_ bv204 8)) (_ bv18 32) (_ bv76 8)) (_ bv19 32) (_ bv62 8))))
+(let ((?x187 (store (store (store (store ?x183 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv128 8)) (_ bv23 32) (_ bv63 8))))
+(let ((?x191 (store (store (store (store ?x187 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv64 8)) (_ bv27 32) (_ bv64 8))))
+(let ((?x195 (store (store (store (store ?x191 (_ bv28 32) ?x37) (_ bv29 32) ?x39) (_ bv30 32) ?x42) (_ bv31 32) ?x45)))
+(let ((?x199 (store (store (store (store ?x195 (_ bv32 32) (_ bv0 8)) (_ bv33 32) (_ bv0 8)) (_ bv34 32) (_ bv128 8)) (_ bv35 32) (_ bv63 8))))
+(let ((?x203 (store (store (store (store ?x199 (_ bv36 32) (_ bv0 8)) (_ bv37 32) (_ bv0 8)) (_ bv38 32) (_ bv0 8)) (_ bv39 32) (_ bv65 8))))
+(let ((?x210 (concat (select ?x203 (bvadd (_ bv2 32) ?x79)) (concat (select ?x203 (bvadd (_ bv1 32) ?x79)) (select ?x203 ?x79)))))
+(let ((?x216 (ite (fp.lt ?x19 ((_ to_fp 8 24) (concat (select ?x203 (bvadd (_ bv3 32) ?x79)) ?x210))) (_ bv1 32) ?x75)))
+(let ((?x223 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216)))))))
+(let ((?x226 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x223)))
+(let ((?x229 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x216))))) ?x226)))
+(let ((?x232 (ite (fp.lt ?x33 ((_ to_fp 8 24) ?x229)) (_ bv2 32) ?x216)))
+(let ((?x239 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232)))))))
+(let ((?x242 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x239)))
+(let ((?x245 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x232))))) ?x242)))
+(let ((?x248 (ite (fp.lt ((_ to_fp 8 24) (_ bv1050253722 32)) ((_ to_fp 8 24) ?x245)) (_ bv3 32) ?x232)))
+(let ((?x255 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248)))))))
+(let ((?x258 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x255)))
+(let ((?x261 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x248))))) ?x258)))
+(let ((?x264 (ite (fp.lt ((_ to_fp 8 24) (_ bv1045220557 32)) ((_ to_fp 8 24) ?x261)) (_ bv4 32) ?x248)))
+(let ((?x271 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264)))))))
+(let ((?x274 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x271)))
+(let ((?x277 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x274)))
+(let ((?x280 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x277)) (_ bv5 32) ?x264)))
+(let ((?x287 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280)))))))
+(let ((?x290 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x287)))
+(let ((?x293 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x280))))) ?x290)))
+(let ((?x296 (ite (fp.lt ((_ to_fp 8 24) (_ bv1077936128 32)) ((_ to_fp 8 24) ?x293)) (_ bv6 32) ?x280)))
+(let ((?x303 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296)))))))
+(let ((?x306 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x303)))
+(let ((?x309 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x296))))) ?x306)))
+(let (($x311 (fp.lt ((_ to_fp 8 24) (concat ?x45 (concat ?x42 (concat ?x39 ?x37)))) ((_ to_fp 8 24) ?x309))))
+(let ((?x312 (ite $x311 (_ bv7 32) ?x296)))
+(let ((?x319 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312)))))))
+(let ((?x322 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x319)))
+(let ((?x325 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x312))))) ?x322)))
+(let ((?x328 (ite (fp.lt ((_ to_fp 8 24) (_ bv1065353216 32)) ((_ to_fp 8 24) ?x325)) (_ bv8 32) ?x312)))
+(let ((?x335 (concat (select ?x203 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) (select ?x203 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328)))))))
+(let ((?x338 (concat (select ?x203 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x335)))
+(let ((?x341 (concat (select ?x203 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x328))))) ?x338)))
+(let ((?x346 (bvmul (_ bv4 64) ((_ sign_extend 32) (ite (fp.lt ((_ to_fp 8 24) (_ bv1090519040 32)) ((_ to_fp 8 24) ?x341)) (_ bv9 32) ?x328)))))
+(let ((?x347 ((_ extract 31 0) ?x346)))
+(let ((?x348 (bvadd (_ bv3 32) ?x347)))
+(let ((?x349 (bvadd (_ bv2 32) ?x347)))
+(let ((?x350 (bvadd (_ bv1 32) ?x347)))
+(let ((?x357 (store (store (store ?x203 (_ bv0 32) (select ?x203 ?x347)) (_ bv1 32) (select ?x203 ?x350)) (_ bv2 32) (select ?x203 ?x349))))
+(let ((?x360 (store (store (store ?x357 (_ bv3 32) (select ?x203 ?x348)) ?x347 ?x122) ?x350 ?x118)))
+(let ((?x362 (store (store ?x360 ?x349 ?x113) ?x348 ?x60)))
+(let ((?x363 (select ?x362 (_ bv7 32))))
+(let ((?x424 (concat (select ?x362 (_ bv10 32)) (concat (select ?x362 (_ bv9 32)) (select ?x362 (_ bv8 32))))))
+(let ((?x431 (select ?x362 (_ bv6 32))))
+(let ((?x433 (concat ?x363 (concat ?x431 (concat (select ?x362 (_ bv5 32)) (select ?x362 (_ bv4 32)))))))
+(let ((?x436 (ite (fp.lt ((_ to_fp 8 24) ?x433) ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424))) (_ bv1 32) (_ bv2 32))))
+(let ((?x443 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436)))))))
+(let ((?x446 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x443)))
+(let ((?x449 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x436))))) ?x446)))
+(let ((?x452 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv11 32)) ?x424)) ((_ to_fp 8 24) ?x449)) (_ bv2 32) ?x436)))
+(let ((?x459 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452)))))))
+(let ((?x462 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x459)))
+(let ((?x465 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x452))))) ?x462)))
+(let ((?x416 (concat (select ?x362 (_ bv14 32)) (concat (select ?x362 (_ bv13 32)) (select ?x362 (_ bv12 32))))))
+(let ((?x468 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv15 32)) ?x416)) ((_ to_fp 8 24) ?x465)) (_ bv3 32) ?x452)))
+(let ((?x475 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468)))))))
+(let ((?x478 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x475)))
+(let ((?x481 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x468))))) ?x478)))
+(let ((?x408 (concat (select ?x362 (_ bv18 32)) (concat (select ?x362 (_ bv17 32)) (select ?x362 (_ bv16 32))))))
+(let ((?x484 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv19 32)) ?x408)) ((_ to_fp 8 24) ?x481)) (_ bv4 32) ?x468)))
+(let ((?x491 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484)))))))
+(let ((?x494 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x491)))
+(let ((?x497 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x484))))) ?x494)))
+(let ((?x400 (concat (select ?x362 (_ bv22 32)) (concat (select ?x362 (_ bv21 32)) (select ?x362 (_ bv20 32))))))
+(let ((?x500 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv23 32)) ?x400)) ((_ to_fp 8 24) ?x497)) (_ bv5 32) ?x484)))
+(let ((?x507 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500)))))))
+(let ((?x510 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x507)))
+(let ((?x513 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x500))))) ?x510)))
+(let ((?x392 (concat (select ?x362 (_ bv26 32)) (concat (select ?x362 (_ bv25 32)) (select ?x362 (_ bv24 32))))))
+(let ((?x516 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv27 32)) ?x392)) ((_ to_fp 8 24) ?x513)) (_ bv6 32) ?x500)))
+(let ((?x523 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516)))))))
+(let ((?x526 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x523)))
+(let ((?x529 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x516))))) ?x526)))
+(let ((?x384 (concat (select ?x362 (_ bv30 32)) (concat (select ?x362 (_ bv29 32)) (select ?x362 (_ bv28 32))))))
+(let ((?x532 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv31 32)) ?x384)) ((_ to_fp 8 24) ?x529)) (_ bv7 32) ?x516)))
+(let ((?x539 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532)))))))
+(let ((?x542 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x539)))
+(let ((?x545 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x532))))) ?x542)))
+(let ((?x376 (concat (select ?x362 (_ bv34 32)) (concat (select ?x362 (_ bv33 32)) (select ?x362 (_ bv32 32))))))
+(let ((?x548 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv35 32)) ?x376)) ((_ to_fp 8 24) ?x545)) (_ bv8 32) ?x532)))
+(let ((?x555 (concat (select ?x362 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) (select ?x362 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548)))))))
+(let ((?x558 (concat (select ?x362 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x555)))
+(let ((?x561 (concat (select ?x362 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x548))))) ?x558)))
+(let ((?x368 (concat (select ?x362 (_ bv38 32)) (concat (select ?x362 (_ bv37 32)) (select ?x362 (_ bv36 32))))))
+(let ((?x564 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x362 (_ bv39 32)) ?x368)) ((_ to_fp 8 24) ?x561)) (_ bv9 32) ?x548)))
+(let ((?x567 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x564)))))
+(let ((?x568 (bvadd (_ bv3 32) ?x567)))
+(let ((?x569 (bvadd (_ bv2 32) ?x567)))
+(let ((?x429 (select ?x362 (_ bv5 32))))
+(let ((?x570 (bvadd (_ bv1 32) ?x567)))
+(let ((?x428 (select ?x362 (_ bv4 32))))
+(let ((?x577 (store (store (store ?x362 (_ bv4 32) (select ?x362 ?x567)) (_ bv5 32) (select ?x362 ?x570)) (_ bv6 32) (select ?x362 ?x569))))
+(let ((?x580 (store (store (store ?x577 (_ bv7 32) (select ?x362 ?x568)) ?x567 ?x428) ?x570 ?x429)))
+(let ((?x582 (store (store ?x580 ?x569 ?x431) ?x568 ?x363)))
+(let ((?x583 (select ?x582 (_ bv11 32))))
+(let ((?x636 (concat (select ?x582 (_ bv14 32)) (concat (select ?x582 (_ bv13 32)) (select ?x582 (_ bv12 32))))))
+(let ((?x643 (select ?x582 (_ bv10 32))))
+(let ((?x645 (concat ?x583 (concat ?x643 (concat (select ?x582 (_ bv9 32)) (select ?x582 (_ bv8 32)))))))
+(let ((?x648 (ite (fp.lt ((_ to_fp 8 24) ?x645) ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636))) (_ bv2 32) (_ bv3 32))))
+(let ((?x655 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648)))))))
+(let ((?x658 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x655)))
+(let ((?x661 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x648))))) ?x658)))
+(let ((?x664 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv15 32)) ?x636)) ((_ to_fp 8 24) ?x661)) (_ bv3 32) ?x648)))
+(let ((?x671 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664)))))))
+(let ((?x674 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x671)))
+(let ((?x677 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x664))))) ?x674)))
+(let ((?x628 (concat (select ?x582 (_ bv18 32)) (concat (select ?x582 (_ bv17 32)) (select ?x582 (_ bv16 32))))))
+(let ((?x680 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv19 32)) ?x628)) ((_ to_fp 8 24) ?x677)) (_ bv4 32) ?x664)))
+(let ((?x687 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680)))))))
+(let ((?x690 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x687)))
+(let ((?x693 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x680))))) ?x690)))
+(let ((?x620 (concat (select ?x582 (_ bv22 32)) (concat (select ?x582 (_ bv21 32)) (select ?x582 (_ bv20 32))))))
+(let ((?x696 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv23 32)) ?x620)) ((_ to_fp 8 24) ?x693)) (_ bv5 32) ?x680)))
+(let ((?x703 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696)))))))
+(let ((?x706 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x703)))
+(let ((?x709 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x696))))) ?x706)))
+(let ((?x612 (concat (select ?x582 (_ bv26 32)) (concat (select ?x582 (_ bv25 32)) (select ?x582 (_ bv24 32))))))
+(let ((?x712 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv27 32)) ?x612)) ((_ to_fp 8 24) ?x709)) (_ bv6 32) ?x696)))
+(let ((?x719 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712)))))))
+(let ((?x722 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x719)))
+(let ((?x725 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x712))))) ?x722)))
+(let ((?x604 (concat (select ?x582 (_ bv30 32)) (concat (select ?x582 (_ bv29 32)) (select ?x582 (_ bv28 32))))))
+(let ((?x728 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv31 32)) ?x604)) ((_ to_fp 8 24) ?x725)) (_ bv7 32) ?x712)))
+(let ((?x735 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728)))))))
+(let ((?x738 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x735)))
+(let ((?x741 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x728))))) ?x738)))
+(let ((?x596 (concat (select ?x582 (_ bv34 32)) (concat (select ?x582 (_ bv33 32)) (select ?x582 (_ bv32 32))))))
+(let ((?x744 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv35 32)) ?x596)) ((_ to_fp 8 24) ?x741)) (_ bv8 32) ?x728)))
+(let ((?x751 (concat (select ?x582 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) (select ?x582 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744)))))))
+(let ((?x754 (concat (select ?x582 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x751)))
+(let ((?x757 (concat (select ?x582 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x744))))) ?x754)))
+(let ((?x588 (concat (select ?x582 (_ bv38 32)) (concat (select ?x582 (_ bv37 32)) (select ?x582 (_ bv36 32))))))
+(let ((?x760 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x582 (_ bv39 32)) ?x588)) ((_ to_fp 8 24) ?x757)) (_ bv9 32) ?x744)))
+(let ((?x763 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x760)))))
+(let ((?x764 (bvadd (_ bv3 32) ?x763)))
+(let ((?x765 (bvadd (_ bv2 32) ?x763)))
+(let ((?x641 (select ?x582 (_ bv9 32))))
+(let ((?x766 (bvadd (_ bv1 32) ?x763)))
+(let ((?x640 (select ?x582 (_ bv8 32))))
+(let ((?x773 (store (store (store ?x582 (_ bv8 32) (select ?x582 ?x763)) (_ bv9 32) (select ?x582 ?x766)) (_ bv10 32) (select ?x582 ?x765))))
+(let ((?x776 (store (store (store ?x773 (_ bv11 32) (select ?x582 ?x764)) ?x763 ?x640) ?x766 ?x641)))
+(let ((?x778 (store (store ?x776 ?x765 ?x643) ?x764 ?x583)))
+(let ((?x779 (select ?x778 (_ bv15 32))))
+(let ((?x824 (concat (select ?x778 (_ bv18 32)) (concat (select ?x778 (_ bv17 32)) (select ?x778 (_ bv16 32))))))
+(let ((?x831 (select ?x778 (_ bv14 32))))
+(let ((?x833 (concat ?x779 (concat ?x831 (concat (select ?x778 (_ bv13 32)) (select ?x778 (_ bv12 32)))))))
+(let ((?x836 (ite (fp.lt ((_ to_fp 8 24) ?x833) ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824))) (_ bv3 32) (_ bv4 32))))
+(let ((?x843 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836)))))))
+(let ((?x846 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x843)))
+(let ((?x849 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x836))))) ?x846)))
+(let ((?x852 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv19 32)) ?x824)) ((_ to_fp 8 24) ?x849)) (_ bv4 32) ?x836)))
+(let ((?x859 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852)))))))
+(let ((?x862 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x859)))
+(let ((?x865 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x852))))) ?x862)))
+(let ((?x816 (concat (select ?x778 (_ bv22 32)) (concat (select ?x778 (_ bv21 32)) (select ?x778 (_ bv20 32))))))
+(let ((?x868 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv23 32)) ?x816)) ((_ to_fp 8 24) ?x865)) (_ bv5 32) ?x852)))
+(let ((?x875 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868)))))))
+(let ((?x878 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x875)))
+(let ((?x881 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x868))))) ?x878)))
+(let ((?x808 (concat (select ?x778 (_ bv26 32)) (concat (select ?x778 (_ bv25 32)) (select ?x778 (_ bv24 32))))))
+(let ((?x884 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv27 32)) ?x808)) ((_ to_fp 8 24) ?x881)) (_ bv6 32) ?x868)))
+(let ((?x891 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884)))))))
+(let ((?x894 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x891)))
+(let ((?x897 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x884))))) ?x894)))
+(let ((?x800 (concat (select ?x778 (_ bv30 32)) (concat (select ?x778 (_ bv29 32)) (select ?x778 (_ bv28 32))))))
+(let ((?x900 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv31 32)) ?x800)) ((_ to_fp 8 24) ?x897)) (_ bv7 32) ?x884)))
+(let ((?x907 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900)))))))
+(let ((?x910 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x907)))
+(let ((?x913 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x900))))) ?x910)))
+(let ((?x792 (concat (select ?x778 (_ bv34 32)) (concat (select ?x778 (_ bv33 32)) (select ?x778 (_ bv32 32))))))
+(let ((?x916 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv35 32)) ?x792)) ((_ to_fp 8 24) ?x913)) (_ bv8 32) ?x900)))
+(let ((?x923 (concat (select ?x778 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) (select ?x778 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916)))))))
+(let ((?x926 (concat (select ?x778 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x923)))
+(let ((?x929 (concat (select ?x778 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x916))))) ?x926)))
+(let ((?x784 (concat (select ?x778 (_ bv38 32)) (concat (select ?x778 (_ bv37 32)) (select ?x778 (_ bv36 32))))))
+(let ((?x932 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x778 (_ bv39 32)) ?x784)) ((_ to_fp 8 24) ?x929)) (_ bv9 32) ?x916)))
+(let ((?x935 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x932)))))
+(let ((?x936 (bvadd (_ bv3 32) ?x935)))
+(let ((?x937 (bvadd (_ bv2 32) ?x935)))
+(let ((?x829 (select ?x778 (_ bv13 32))))
+(let ((?x938 (bvadd (_ bv1 32) ?x935)))
+(let ((?x828 (select ?x778 (_ bv12 32))))
+(let ((?x945 (store (store (store ?x778 (_ bv12 32) (select ?x778 ?x935)) (_ bv13 32) (select ?x778 ?x938)) (_ bv14 32) (select ?x778 ?x937))))
+(let ((?x948 (store (store (store ?x945 (_ bv15 32) (select ?x778 ?x936)) ?x935 ?x828) ?x938 ?x829)))
+(let ((?x950 (store (store ?x948 ?x937 ?x831) ?x936 ?x779)))
+(let ((?x951 (select ?x950 (_ bv19 32))))
+(let ((?x988 (concat (select ?x950 (_ bv22 32)) (concat (select ?x950 (_ bv21 32)) (select ?x950 (_ bv20 32))))))
+(let ((?x995 (select ?x950 (_ bv18 32))))
+(let ((?x997 (concat ?x951 (concat ?x995 (concat (select ?x950 (_ bv17 32)) (select ?x950 (_ bv16 32)))))))
+(let ((?x1000 (ite (fp.lt ((_ to_fp 8 24) ?x997) ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x988))) (_ bv4 32) (_ bv5 32))))
+(let ((?x1007 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000)))))))
+(let ((?x1010 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) ?x1007)))
+(let ((?x1013 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1000))))) ?x1010)))
+(let ((?x1016 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv23 32)) ?x988)) ((_ to_fp 8 24) ?x1013)) (_ bv5 32) ?x1000)))
+(let ((?x1023 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016)))))))
+(let ((?x1026 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) ?x1023)))
+(let ((?x1029 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1016))))) ?x1026)))
+(let ((?x980 (concat (select ?x950 (_ bv26 32)) (concat (select ?x950 (_ bv25 32)) (select ?x950 (_ bv24 32))))))
+(let ((?x1032 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv27 32)) ?x980)) ((_ to_fp 8 24) ?x1029)) (_ bv6 32) ?x1016)))
+(let ((?x1039 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032)))))))
+(let ((?x1042 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) ?x1039)))
+(let ((?x1045 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1032))))) ?x1042)))
+(let ((?x972 (concat (select ?x950 (_ bv30 32)) (concat (select ?x950 (_ bv29 32)) (select ?x950 (_ bv28 32))))))
+(let ((?x1048 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv31 32)) ?x972)) ((_ to_fp 8 24) ?x1045)) (_ bv7 32) ?x1032)))
+(let ((?x1055 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048)))))))
+(let ((?x1058 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) ?x1055)))
+(let ((?x1061 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1048))))) ?x1058)))
+(let ((?x964 (concat (select ?x950 (_ bv34 32)) (concat (select ?x950 (_ bv33 32)) (select ?x950 (_ bv32 32))))))
+(let ((?x1064 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv35 32)) ?x964)) ((_ to_fp 8 24) ?x1061)) (_ bv8 32) ?x1048)))
+(let ((?x1071 (concat (select ?x950 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) (select ?x950 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064)))))))
+(let ((?x1074 (concat (select ?x950 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) ?x1071)))
+(let ((?x1077 (concat (select ?x950 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1064))))) ?x1074)))
+(let ((?x956 (concat (select ?x950 (_ bv38 32)) (concat (select ?x950 (_ bv37 32)) (select ?x950 (_ bv36 32))))))
+(let ((?x1080 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x950 (_ bv39 32)) ?x956)) ((_ to_fp 8 24) ?x1077)) (_ bv9 32) ?x1064)))
+(let ((?x1083 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1080)))))
+(let ((?x1084 (bvadd (_ bv3 32) ?x1083)))
+(let ((?x1085 (bvadd (_ bv2 32) ?x1083)))
+(let ((?x993 (select ?x950 (_ bv17 32))))
+(let ((?x1086 (bvadd (_ bv1 32) ?x1083)))
+(let ((?x992 (select ?x950 (_ bv16 32))))
+(let ((?x1093 (store (store (store ?x950 (_ bv16 32) (select ?x950 ?x1083)) (_ bv17 32) (select ?x950 ?x1086)) (_ bv18 32) (select ?x950 ?x1085))))
+(let ((?x1096 (store (store (store ?x1093 (_ bv19 32) (select ?x950 ?x1084)) ?x1083 ?x992) ?x1086 ?x993)))
+(let ((?x1098 (store (store ?x1096 ?x1085 ?x995) ?x1084 ?x951)))
+(let ((?x1099 (select ?x1098 (_ bv23 32))))
+(let ((?x1128 (concat (select ?x1098 (_ bv26 32)) (concat (select ?x1098 (_ bv25 32)) (select ?x1098 (_ bv24 32))))))
+(let ((?x1135 (select ?x1098 (_ bv22 32))))
+(let ((?x1137 (concat ?x1099 (concat ?x1135 (concat (select ?x1098 (_ bv21 32)) (select ?x1098 (_ bv20 32)))))))
+(let ((?x1140 (ite (fp.lt ((_ to_fp 8 24) ?x1137) ((_ to_fp 8 24) (concat (select ?x1098 (_ bv27 32)) ?x1128))) (_ bv5 32) (_ bv6 32))))
+(let ((?x1147 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140)))))))
+(let ((?x1150 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) ?x1147)))
+(let ((?x1153 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1140))))) ?x1150)))
+(let ((?x1156 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv27 32)) ?x1128)) ((_ to_fp 8 24) ?x1153)) (_ bv6 32) ?x1140)))
+(let ((?x1163 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156)))))))
+(let ((?x1166 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) ?x1163)))
+(let ((?x1169 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1156))))) ?x1166)))
+(let ((?x1120 (concat (select ?x1098 (_ bv30 32)) (concat (select ?x1098 (_ bv29 32)) (select ?x1098 (_ bv28 32))))))
+(let ((?x1172 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv31 32)) ?x1120)) ((_ to_fp 8 24) ?x1169)) (_ bv7 32) ?x1156)))
+(let ((?x1179 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172)))))))
+(let ((?x1182 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) ?x1179)))
+(let ((?x1185 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1172))))) ?x1182)))
+(let ((?x1112 (concat (select ?x1098 (_ bv34 32)) (concat (select ?x1098 (_ bv33 32)) (select ?x1098 (_ bv32 32))))))
+(let ((?x1188 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv35 32)) ?x1112)) ((_ to_fp 8 24) ?x1185)) (_ bv8 32) ?x1172)))
+(let ((?x1195 (concat (select ?x1098 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) (select ?x1098 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188)))))))
+(let ((?x1198 (concat (select ?x1098 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) ?x1195)))
+(let ((?x1201 (concat (select ?x1098 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1188))))) ?x1198)))
+(let ((?x1104 (concat (select ?x1098 (_ bv38 32)) (concat (select ?x1098 (_ bv37 32)) (select ?x1098 (_ bv36 32))))))
+(let ((?x1204 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1098 (_ bv39 32)) ?x1104)) ((_ to_fp 8 24) ?x1201)) (_ bv9 32) ?x1188)))
+(let ((?x1207 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1204)))))
+(let ((?x1208 (bvadd (_ bv3 32) ?x1207)))
+(let ((?x1209 (bvadd (_ bv2 32) ?x1207)))
+(let ((?x1133 (select ?x1098 (_ bv21 32))))
+(let ((?x1210 (bvadd (_ bv1 32) ?x1207)))
+(let ((?x1132 (select ?x1098 (_ bv20 32))))
+(let ((?x1217 (store (store (store ?x1098 (_ bv20 32) (select ?x1098 ?x1207)) (_ bv21 32) (select ?x1098 ?x1210)) (_ bv22 32) (select ?x1098 ?x1209))))
+(let ((?x1220 (store (store (store ?x1217 (_ bv23 32) (select ?x1098 ?x1208)) ?x1207 ?x1132) ?x1210 ?x1133)))
+(let ((?x1222 (store (store ?x1220 ?x1209 ?x1135) ?x1208 ?x1099)))
+(let ((?x1223 (select ?x1222 (_ bv27 32))))
+(let ((?x1244 (concat (select ?x1222 (_ bv30 32)) (concat (select ?x1222 (_ bv29 32)) (select ?x1222 (_ bv28 32))))))
+(let ((?x1251 (select ?x1222 (_ bv26 32))))
+(let ((?x1253 (concat ?x1223 (concat ?x1251 (concat (select ?x1222 (_ bv25 32)) (select ?x1222 (_ bv24 32)))))))
+(let ((?x1256 (ite (fp.lt ((_ to_fp 8 24) ?x1253) ((_ to_fp 8 24) (concat (select ?x1222 (_ bv31 32)) ?x1244))) (_ bv6 32) (_ bv7 32))))
+(let ((?x1263 (concat (select ?x1222 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1256))))) (select ?x1222 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1256)))))))
+(let ((?x1266 (concat (select ?x1222 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1256))))) ?x1263)))
+(let ((?x1269 (concat (select ?x1222 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1256))))) ?x1266)))
+(let ((?x1272 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1222 (_ bv31 32)) ?x1244)) ((_ to_fp 8 24) ?x1269)) (_ bv7 32) ?x1256)))
+(let ((?x1279 (concat (select ?x1222 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1272))))) (select ?x1222 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1272)))))))
+(let ((?x1282 (concat (select ?x1222 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1272))))) ?x1279)))
+(let ((?x1285 (concat (select ?x1222 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1272))))) ?x1282)))
+(let ((?x1236 (concat (select ?x1222 (_ bv34 32)) (concat (select ?x1222 (_ bv33 32)) (select ?x1222 (_ bv32 32))))))
+(let ((?x1288 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1222 (_ bv35 32)) ?x1236)) ((_ to_fp 8 24) ?x1285)) (_ bv8 32) ?x1272)))
+(let ((?x1295 (concat (select ?x1222 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1288))))) (select ?x1222 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1288)))))))
+(let ((?x1298 (concat (select ?x1222 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1288))))) ?x1295)))
+(let ((?x1301 (concat (select ?x1222 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1288))))) ?x1298)))
+(let ((?x1228 (concat (select ?x1222 (_ bv38 32)) (concat (select ?x1222 (_ bv37 32)) (select ?x1222 (_ bv36 32))))))
+(let ((?x1304 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1222 (_ bv39 32)) ?x1228)) ((_ to_fp 8 24) ?x1301)) (_ bv9 32) ?x1288)))
+(let ((?x1307 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1304)))))
+(let ((?x1308 (bvadd (_ bv3 32) ?x1307)))
+(let ((?x1309 (bvadd (_ bv2 32) ?x1307)))
+(let ((?x1249 (select ?x1222 (_ bv25 32))))
+(let ((?x1310 (bvadd (_ bv1 32) ?x1307)))
+(let ((?x1248 (select ?x1222 (_ bv24 32))))
+(let ((?x1317 (store (store (store ?x1222 (_ bv24 32) (select ?x1222 ?x1307)) (_ bv25 32) (select ?x1222 ?x1310)) (_ bv26 32) (select ?x1222 ?x1309))))
+(let ((?x1320 (store (store (store ?x1317 (_ bv27 32) (select ?x1222 ?x1308)) ?x1307 ?x1248) ?x1310 ?x1249)))
+(let ((?x1322 (store (store ?x1320 ?x1309 ?x1251) ?x1308 ?x1223)))
+(let ((?x1323 (select ?x1322 (_ bv31 32))))
+(let ((?x1336 (concat (select ?x1322 (_ bv34 32)) (concat (select ?x1322 (_ bv33 32)) (select ?x1322 (_ bv32 32))))))
+(let ((?x1343 (select ?x1322 (_ bv30 32))))
+(let ((?x1345 (concat ?x1323 (concat ?x1343 (concat (select ?x1322 (_ bv29 32)) (select ?x1322 (_ bv28 32)))))))
+(let ((?x1348 (ite (fp.lt ((_ to_fp 8 24) ?x1345) ((_ to_fp 8 24) (concat (select ?x1322 (_ bv35 32)) ?x1336))) (_ bv7 32) (_ bv8 32))))
+(let ((?x1355 (concat (select ?x1322 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1348))))) (select ?x1322 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1348)))))))
+(let ((?x1358 (concat (select ?x1322 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1348))))) ?x1355)))
+(let ((?x1361 (concat (select ?x1322 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1348))))) ?x1358)))
+(let ((?x1364 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1322 (_ bv35 32)) ?x1336)) ((_ to_fp 8 24) ?x1361)) (_ bv8 32) ?x1348)))
+(let ((?x1371 (concat (select ?x1322 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1364))))) (select ?x1322 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1364)))))))
+(let ((?x1374 (concat (select ?x1322 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1364))))) ?x1371)))
+(let ((?x1377 (concat (select ?x1322 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1364))))) ?x1374)))
+(let ((?x1328 (concat (select ?x1322 (_ bv38 32)) (concat (select ?x1322 (_ bv37 32)) (select ?x1322 (_ bv36 32))))))
+(let ((?x1380 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1322 (_ bv39 32)) ?x1328)) ((_ to_fp 8 24) ?x1377)) (_ bv9 32) ?x1364)))
+(let ((?x1383 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1380)))))
+(let ((?x1384 (bvadd (_ bv3 32) ?x1383)))
+(let ((?x1385 (bvadd (_ bv2 32) ?x1383)))
+(let ((?x1341 (select ?x1322 (_ bv29 32))))
+(let ((?x1386 (bvadd (_ bv1 32) ?x1383)))
+(let ((?x1340 (select ?x1322 (_ bv28 32))))
+(let ((?x1393 (store (store (store ?x1322 (_ bv28 32) (select ?x1322 ?x1383)) (_ bv29 32) (select ?x1322 ?x1386)) (_ bv30 32) (select ?x1322 ?x1385))))
+(let ((?x1396 (store (store (store ?x1393 (_ bv31 32) (select ?x1322 ?x1384)) ?x1383 ?x1340) ?x1386 ?x1341)))
+(let ((?x1398 (store (store ?x1396 ?x1385 ?x1343) ?x1384 ?x1323)))
+(let ((?x1403 (concat (select ?x1398 (_ bv38 32)) (concat (select ?x1398 (_ bv37 32)) (select ?x1398 (_ bv36 32))))))
+(let ((?x1411 (concat (select ?x1398 (_ bv34 32)) (concat (select ?x1398 (_ bv33 32)) (select ?x1398 (_ bv32 32))))))
+(let (($x1415 (fp.lt ((_ to_fp 8 24) (concat (select ?x1398 (_ bv35 32)) ?x1411)) ((_ to_fp 8 24) (concat (select ?x1398 (_ bv39 32)) ?x1403)))))
+(let ((?x1416 (ite $x1415 (_ bv8 32) (_ bv9 32))))
+(let ((?x1423 (concat (select ?x1398 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1416))))) (select ?x1398 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1416)))))))
+(let ((?x1426 (concat (select ?x1398 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1416))))) ?x1423)))
+(let ((?x1429 (concat (select ?x1398 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1416))))) ?x1426)))
+(let ((?x1432 (ite (fp.lt ((_ to_fp 8 24) (concat (select ?x1398 (_ bv39 32)) ?x1403)) ((_ to_fp 8 24) ?x1429)) (_ bv9 32) ?x1416)))
+(not (bvult (bvmul (_ bv4 64) ((_ sign_extend 32) ?x1432)) (_ bv37 64)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.84.smt2 b/UnitTests/unsat/QF_ABVFP/query.84.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..651fddf565d18c384259dd80d598209da2e69d80
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.84.smt2
@@ -0,0 +1,1362 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun d10 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun d21 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun const_arr12 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun const_arr23 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+ (let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+ (let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+ (let ((?x31 ((_ to_fp 11 53) ?x30)))
+ (fp.geq ?x31 ((_ to_fp 11 53) (_ bv4607182418800017408 64))))))))
+(assert
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+ (let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+ (let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+ (let ((?x31 ((_ to_fp 11 53) ?x30)))
+ (fp.leq ?x31 ((_ to_fp 11 53) (_ bv4611686018427387904 64))))))))
+(assert
+ (let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+ (let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+ (let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+ (let ((?x54 ((_ to_fp 11 53) ?x53)))
+ (fp.gt ?x54 ((_ to_fp 11 53) (_ bv4607182418800017408 64))))))))
+(assert
+ (let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+ (let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+ (let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+ (let ((?x54 ((_ to_fp 11 53) ?x53)))
+ (fp.lt ?x54 ((_ to_fp 11 53) (_ bv4611686018427387904 64))))))))
+(assert
+ (let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+ (let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+ (let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+ (let ((?x65 (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x76 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x53)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x78 (concat (_ bv0 32) (bvsub (_ bv64 32) ?x76))))
+ (let ((?x90 (ite (= ?x78 (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x65)) (ite (= ?x78 (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x65)) (_ bv0 64)))))
+ (let ((?x102 (ite (= ?x78 (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x65)) (ite (= ?x78 (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x65)) ?x90))))
+ (let ((?x114 (ite (= ?x78 (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x65)) (ite (= ?x78 (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x65)) ?x102))))
+ (let ((?x126 (ite (= ?x78 (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x65)) (ite (= ?x78 (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x65)) ?x114))))
+ (let ((?x138 (ite (= ?x78 (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x65)) (ite (= ?x78 (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x65)) ?x126))))
+ (let ((?x149 (ite (= ?x78 (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x65)) (ite (= ?x78 (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x65)) ?x138))))
+ (let ((?x161 (ite (= ?x78 (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x65)) (ite (= ?x78 (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x65)) ?x149))))
+ (let ((?x173 (ite (= ?x78 (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x65)) (ite (= ?x78 (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x65)) ?x161))))
+ (let ((?x185 (ite (= ?x78 (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x65)) (ite (= ?x78 (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x65)) ?x173))))
+ (let ((?x197 (ite (= ?x78 (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x65)) (ite (= ?x78 (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x65)) ?x185))))
+ (let ((?x209 (ite (= ?x78 (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x65)) (ite (= ?x78 (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x65)) ?x197))))
+ (let ((?x221 (ite (= ?x78 (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x65)) (ite (= ?x78 (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x65)) ?x209))))
+ (let ((?x233 (ite (= ?x78 (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x65)) (ite (= ?x78 (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x65)) ?x221))))
+ (let ((?x245 (ite (= ?x78 (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x65)) (ite (= ?x78 (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x65)) ?x233))))
+ (let ((?x257 (ite (= ?x78 (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x65)) (ite (= ?x78 (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x65)) ?x245))))
+ (let ((?x268 (ite (= ?x78 (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x65)) (ite (= ?x78 (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x65)) ?x257))))
+ (let ((?x280 (ite (= ?x78 (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x65)) (ite (= ?x78 (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x65)) ?x268))))
+ (let ((?x292 (ite (= ?x78 (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x65)) (ite (= ?x78 (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x65)) ?x280))))
+ (let ((?x304 (ite (= ?x78 (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x65)) (ite (= ?x78 (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x65)) ?x292))))
+ (let ((?x316 (ite (= ?x78 (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x65)) (ite (= ?x78 (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x65)) ?x304))))
+ (let ((?x328 (ite (= ?x78 (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x65)) (ite (= ?x78 (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x65)) ?x316))))
+ (let ((?x340 (ite (= ?x78 (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x65)) (ite (= ?x78 (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x65)) ?x328))))
+ (let ((?x352 (ite (= ?x78 (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x65)) (ite (= ?x78 (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x65)) ?x340))))
+ (let ((?x364 (ite (= ?x78 (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x65)) (ite (= ?x78 (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x65)) ?x352))))
+ (let ((?x376 (ite (= ?x78 (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x65)) (ite (= ?x78 (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x65)) ?x364))))
+ (let ((?x388 (ite (= ?x78 (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x65)) (ite (= ?x78 (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x65)) ?x376))))
+ (let ((?x399 (ite (= ?x78 (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x65)) (ite (= ?x78 (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x65)) ?x388))))
+ (let ((?x411 (ite (= ?x78 (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x65)) (ite (= ?x78 (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x65)) ?x399))))
+ (let ((?x423 (ite (= ?x78 (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x65)) (ite (= ?x78 (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x65)) ?x411))))
+ (let ((?x435 (ite (= ?x78 (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x65)) (ite (= ?x78 (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x65)) ?x423))))
+ (let ((?x447 (ite (= ?x78 (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x65)) (ite (= ?x78 (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x65)) ?x435))))
+ (let ((?x455 (ite (= ?x78 (_ bv0 64)) ?x65 (ite (= ?x78 (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x65)) ?x447))))
+ (let ((?x458 (ite (bvult ?x78 (_ bv64 64)) ?x455 (_ bv0 64))))
+ (let ((?x460 (bvand ?x458 (_ bv4294967295 64))))
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+ (let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+ (let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+ (let ((?x463 (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x469 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x30)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x756 (concat (_ bv0 32) ?x469)))
+ (let ((?x764 (ite (= ?x756 (_ bv62 64)) (concat ((_ extract 1 0) ?x463) (_ bv0 62)) (ite (= ?x756 (_ bv63 64)) (concat ((_ extract 0 0) ?x463) (_ bv0 63)) (_ bv0 64)))))
+ (let ((?x772 (ite (= ?x756 (_ bv60 64)) (concat ((_ extract 3 0) ?x463) (_ bv0 60)) (ite (= ?x756 (_ bv61 64)) (concat ((_ extract 2 0) ?x463) (_ bv0 61)) ?x764))))
+ (let ((?x780 (ite (= ?x756 (_ bv58 64)) (concat ((_ extract 5 0) ?x463) (_ bv0 58)) (ite (= ?x756 (_ bv59 64)) (concat ((_ extract 4 0) ?x463) (_ bv0 59)) ?x772))))
+ (let ((?x788 (ite (= ?x756 (_ bv56 64)) (concat ((_ extract 7 0) ?x463) (_ bv0 56)) (ite (= ?x756 (_ bv57 64)) (concat ((_ extract 6 0) ?x463) (_ bv0 57)) ?x780))))
+ (let ((?x796 (ite (= ?x756 (_ bv54 64)) (concat ((_ extract 9 0) ?x463) (_ bv0 54)) (ite (= ?x756 (_ bv55 64)) (concat ((_ extract 8 0) ?x463) (_ bv0 55)) ?x788))))
+ (let ((?x804 (ite (= ?x756 (_ bv52 64)) (concat ((_ extract 11 0) ?x463) (_ bv0 52)) (ite (= ?x756 (_ bv53 64)) (concat ((_ extract 10 0) ?x463) (_ bv0 53)) ?x796))))
+ (let ((?x812 (ite (= ?x756 (_ bv50 64)) (concat ((_ extract 13 0) ?x463) (_ bv0 50)) (ite (= ?x756 (_ bv51 64)) (concat ((_ extract 12 0) ?x463) (_ bv0 51)) ?x804))))
+ (let ((?x820 (ite (= ?x756 (_ bv48 64)) (concat ((_ extract 15 0) ?x463) (_ bv0 48)) (ite (= ?x756 (_ bv49 64)) (concat ((_ extract 14 0) ?x463) (_ bv0 49)) ?x812))))
+ (let ((?x828 (ite (= ?x756 (_ bv46 64)) (concat ((_ extract 17 0) ?x463) (_ bv0 46)) (ite (= ?x756 (_ bv47 64)) (concat ((_ extract 16 0) ?x463) (_ bv0 47)) ?x820))))
+ (let ((?x836 (ite (= ?x756 (_ bv44 64)) (concat ((_ extract 19 0) ?x463) (_ bv0 44)) (ite (= ?x756 (_ bv45 64)) (concat ((_ extract 18 0) ?x463) (_ bv0 45)) ?x828))))
+ (let ((?x844 (ite (= ?x756 (_ bv42 64)) (concat ((_ extract 21 0) ?x463) (_ bv0 42)) (ite (= ?x756 (_ bv43 64)) (concat ((_ extract 20 0) ?x463) (_ bv0 43)) ?x836))))
+ (let ((?x852 (ite (= ?x756 (_ bv40 64)) (concat ((_ extract 23 0) ?x463) (_ bv0 40)) (ite (= ?x756 (_ bv41 64)) (concat ((_ extract 22 0) ?x463) (_ bv0 41)) ?x844))))
+ (let ((?x860 (ite (= ?x756 (_ bv38 64)) (concat ((_ extract 25 0) ?x463) (_ bv0 38)) (ite (= ?x756 (_ bv39 64)) (concat ((_ extract 24 0) ?x463) (_ bv0 39)) ?x852))))
+ (let ((?x868 (ite (= ?x756 (_ bv36 64)) (concat ((_ extract 27 0) ?x463) (_ bv0 36)) (ite (= ?x756 (_ bv37 64)) (concat ((_ extract 26 0) ?x463) (_ bv0 37)) ?x860))))
+ (let ((?x876 (ite (= ?x756 (_ bv34 64)) (concat ((_ extract 29 0) ?x463) (_ bv0 34)) (ite (= ?x756 (_ bv35 64)) (concat ((_ extract 28 0) ?x463) (_ bv0 35)) ?x868))))
+ (let ((?x884 (ite (= ?x756 (_ bv32 64)) (concat ((_ extract 31 0) ?x463) (_ bv0 32)) (ite (= ?x756 (_ bv33 64)) (concat ((_ extract 30 0) ?x463) (_ bv0 33)) ?x876))))
+ (let ((?x892 (ite (= ?x756 (_ bv30 64)) (concat ((_ extract 33 0) ?x463) (_ bv0 30)) (ite (= ?x756 (_ bv31 64)) (concat ((_ extract 32 0) ?x463) (_ bv0 31)) ?x884))))
+ (let ((?x900 (ite (= ?x756 (_ bv28 64)) (concat ((_ extract 35 0) ?x463) (_ bv0 28)) (ite (= ?x756 (_ bv29 64)) (concat ((_ extract 34 0) ?x463) (_ bv0 29)) ?x892))))
+ (let ((?x908 (ite (= ?x756 (_ bv26 64)) (concat ((_ extract 37 0) ?x463) (_ bv0 26)) (ite (= ?x756 (_ bv27 64)) (concat ((_ extract 36 0) ?x463) (_ bv0 27)) ?x900))))
+ (let ((?x916 (ite (= ?x756 (_ bv24 64)) (concat ((_ extract 39 0) ?x463) (_ bv0 24)) (ite (= ?x756 (_ bv25 64)) (concat ((_ extract 38 0) ?x463) (_ bv0 25)) ?x908))))
+ (let ((?x924 (ite (= ?x756 (_ bv22 64)) (concat ((_ extract 41 0) ?x463) (_ bv0 22)) (ite (= ?x756 (_ bv23 64)) (concat ((_ extract 40 0) ?x463) (_ bv0 23)) ?x916))))
+ (let ((?x932 (ite (= ?x756 (_ bv20 64)) (concat ((_ extract 43 0) ?x463) (_ bv0 20)) (ite (= ?x756 (_ bv21 64)) (concat ((_ extract 42 0) ?x463) (_ bv0 21)) ?x924))))
+ (let ((?x940 (ite (= ?x756 (_ bv18 64)) (concat ((_ extract 45 0) ?x463) (_ bv0 18)) (ite (= ?x756 (_ bv19 64)) (concat ((_ extract 44 0) ?x463) (_ bv0 19)) ?x932))))
+ (let ((?x948 (ite (= ?x756 (_ bv16 64)) (concat ((_ extract 47 0) ?x463) (_ bv0 16)) (ite (= ?x756 (_ bv17 64)) (concat ((_ extract 46 0) ?x463) (_ bv0 17)) ?x940))))
+ (let ((?x956 (ite (= ?x756 (_ bv14 64)) (concat ((_ extract 49 0) ?x463) (_ bv0 14)) (ite (= ?x756 (_ bv15 64)) (concat ((_ extract 48 0) ?x463) (_ bv0 15)) ?x948))))
+ (let ((?x964 (ite (= ?x756 (_ bv12 64)) (concat ((_ extract 51 0) ?x463) (_ bv0 12)) (ite (= ?x756 (_ bv13 64)) (concat ((_ extract 50 0) ?x463) (_ bv0 13)) ?x956))))
+ (let ((?x972 (ite (= ?x756 (_ bv10 64)) (concat ((_ extract 53 0) ?x463) (_ bv0 10)) (ite (= ?x756 (_ bv11 64)) (concat ((_ extract 52 0) ?x463) (_ bv0 11)) ?x964))))
+ (let ((?x980 (ite (= ?x756 (_ bv8 64)) (concat ((_ extract 55 0) ?x463) (_ bv0 8)) (ite (= ?x756 (_ bv9 64)) (concat ((_ extract 54 0) ?x463) (_ bv0 9)) ?x972))))
+ (let ((?x988 (ite (= ?x756 (_ bv6 64)) (concat ((_ extract 57 0) ?x463) (_ bv0 6)) (ite (= ?x756 (_ bv7 64)) (concat ((_ extract 56 0) ?x463) (_ bv0 7)) ?x980))))
+ (let ((?x996 (ite (= ?x756 (_ bv4 64)) (concat ((_ extract 59 0) ?x463) (_ bv0 4)) (ite (= ?x756 (_ bv5 64)) (concat ((_ extract 58 0) ?x463) (_ bv0 5)) ?x988))))
+ (let ((?x1004 (ite (= ?x756 (_ bv2 64)) (concat ((_ extract 61 0) ?x463) (_ bv0 2)) (ite (= ?x756 (_ bv3 64)) (concat ((_ extract 60 0) ?x463) (_ bv0 3)) ?x996))))
+ (let ((?x1010 (ite (= ?x756 (_ bv0 64)) ?x463 (ite (= ?x756 (_ bv1 64)) (concat ((_ extract 62 0) ?x463) (_ bv0 1)) ?x1004))))
+ (let ((?x1012 (ite (bvult ?x756 (_ bv64 64)) ?x1010 (_ bv0 64))))
+ (let ((?x1013 (bvand ?x1012 (_ bv4294967295 64))))
+ (let ((?x1014 (bvmul ?x1013 ?x460)))
+ (let ((?x1018 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1014)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))))
+ (let ((?x1024 (bvadd (concat (_ bv0 64) ?x1018) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x460)))))
+ (let ((?x1029 ((_ extract 63 0) ?x1024)))
+ (let ((?x1037 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1029) (_ bv0 32)) (bvand ?x1014 (_ bv4294967295 64))))))
+ (let ((?x1050 (ite (= (concat (_ bv0 32) ?x76) (_ bv62 64)) (concat ((_ extract 1 0) ?x65) (_ bv0 62)) (ite (= (concat (_ bv0 32) ?x76) (_ bv63 64)) (concat ((_ extract 0 0) ?x65) (_ bv0 63)) (_ bv0 64)))))
+ (let ((?x1058 (ite (= (concat (_ bv0 32) ?x76) (_ bv60 64)) (concat ((_ extract 3 0) ?x65) (_ bv0 60)) (ite (= (concat (_ bv0 32) ?x76) (_ bv61 64)) (concat ((_ extract 2 0) ?x65) (_ bv0 61)) ?x1050))))
+ (let ((?x1066 (ite (= (concat (_ bv0 32) ?x76) (_ bv58 64)) (concat ((_ extract 5 0) ?x65) (_ bv0 58)) (ite (= (concat (_ bv0 32) ?x76) (_ bv59 64)) (concat ((_ extract 4 0) ?x65) (_ bv0 59)) ?x1058))))
+ (let ((?x1074 (ite (= (concat (_ bv0 32) ?x76) (_ bv56 64)) (concat ((_ extract 7 0) ?x65) (_ bv0 56)) (ite (= (concat (_ bv0 32) ?x76) (_ bv57 64)) (concat ((_ extract 6 0) ?x65) (_ bv0 57)) ?x1066))))
+ (let ((?x1082 (ite (= (concat (_ bv0 32) ?x76) (_ bv54 64)) (concat ((_ extract 9 0) ?x65) (_ bv0 54)) (ite (= (concat (_ bv0 32) ?x76) (_ bv55 64)) (concat ((_ extract 8 0) ?x65) (_ bv0 55)) ?x1074))))
+ (let ((?x1090 (ite (= (concat (_ bv0 32) ?x76) (_ bv52 64)) (concat ((_ extract 11 0) ?x65) (_ bv0 52)) (ite (= (concat (_ bv0 32) ?x76) (_ bv53 64)) (concat ((_ extract 10 0) ?x65) (_ bv0 53)) ?x1082))))
+ (let ((?x1098 (ite (= (concat (_ bv0 32) ?x76) (_ bv50 64)) (concat ((_ extract 13 0) ?x65) (_ bv0 50)) (ite (= (concat (_ bv0 32) ?x76) (_ bv51 64)) (concat ((_ extract 12 0) ?x65) (_ bv0 51)) ?x1090))))
+ (let ((?x1106 (ite (= (concat (_ bv0 32) ?x76) (_ bv48 64)) (concat ((_ extract 15 0) ?x65) (_ bv0 48)) (ite (= (concat (_ bv0 32) ?x76) (_ bv49 64)) (concat ((_ extract 14 0) ?x65) (_ bv0 49)) ?x1098))))
+ (let ((?x1114 (ite (= (concat (_ bv0 32) ?x76) (_ bv46 64)) (concat ((_ extract 17 0) ?x65) (_ bv0 46)) (ite (= (concat (_ bv0 32) ?x76) (_ bv47 64)) (concat ((_ extract 16 0) ?x65) (_ bv0 47)) ?x1106))))
+ (let ((?x1122 (ite (= (concat (_ bv0 32) ?x76) (_ bv44 64)) (concat ((_ extract 19 0) ?x65) (_ bv0 44)) (ite (= (concat (_ bv0 32) ?x76) (_ bv45 64)) (concat ((_ extract 18 0) ?x65) (_ bv0 45)) ?x1114))))
+ (let ((?x1130 (ite (= (concat (_ bv0 32) ?x76) (_ bv42 64)) (concat ((_ extract 21 0) ?x65) (_ bv0 42)) (ite (= (concat (_ bv0 32) ?x76) (_ bv43 64)) (concat ((_ extract 20 0) ?x65) (_ bv0 43)) ?x1122))))
+ (let ((?x1138 (ite (= (concat (_ bv0 32) ?x76) (_ bv40 64)) (concat ((_ extract 23 0) ?x65) (_ bv0 40)) (ite (= (concat (_ bv0 32) ?x76) (_ bv41 64)) (concat ((_ extract 22 0) ?x65) (_ bv0 41)) ?x1130))))
+ (let ((?x1146 (ite (= (concat (_ bv0 32) ?x76) (_ bv38 64)) (concat ((_ extract 25 0) ?x65) (_ bv0 38)) (ite (= (concat (_ bv0 32) ?x76) (_ bv39 64)) (concat ((_ extract 24 0) ?x65) (_ bv0 39)) ?x1138))))
+ (let ((?x1154 (ite (= (concat (_ bv0 32) ?x76) (_ bv36 64)) (concat ((_ extract 27 0) ?x65) (_ bv0 36)) (ite (= (concat (_ bv0 32) ?x76) (_ bv37 64)) (concat ((_ extract 26 0) ?x65) (_ bv0 37)) ?x1146))))
+ (let ((?x1162 (ite (= (concat (_ bv0 32) ?x76) (_ bv34 64)) (concat ((_ extract 29 0) ?x65) (_ bv0 34)) (ite (= (concat (_ bv0 32) ?x76) (_ bv35 64)) (concat ((_ extract 28 0) ?x65) (_ bv0 35)) ?x1154))))
+ (let ((?x1170 (ite (= (concat (_ bv0 32) ?x76) (_ bv32 64)) (concat ((_ extract 31 0) ?x65) (_ bv0 32)) (ite (= (concat (_ bv0 32) ?x76) (_ bv33 64)) (concat ((_ extract 30 0) ?x65) (_ bv0 33)) ?x1162))))
+ (let ((?x1178 (ite (= (concat (_ bv0 32) ?x76) (_ bv30 64)) (concat ((_ extract 33 0) ?x65) (_ bv0 30)) (ite (= (concat (_ bv0 32) ?x76) (_ bv31 64)) (concat ((_ extract 32 0) ?x65) (_ bv0 31)) ?x1170))))
+ (let ((?x1186 (ite (= (concat (_ bv0 32) ?x76) (_ bv28 64)) (concat ((_ extract 35 0) ?x65) (_ bv0 28)) (ite (= (concat (_ bv0 32) ?x76) (_ bv29 64)) (concat ((_ extract 34 0) ?x65) (_ bv0 29)) ?x1178))))
+ (let ((?x1194 (ite (= (concat (_ bv0 32) ?x76) (_ bv26 64)) (concat ((_ extract 37 0) ?x65) (_ bv0 26)) (ite (= (concat (_ bv0 32) ?x76) (_ bv27 64)) (concat ((_ extract 36 0) ?x65) (_ bv0 27)) ?x1186))))
+ (let ((?x1202 (ite (= (concat (_ bv0 32) ?x76) (_ bv24 64)) (concat ((_ extract 39 0) ?x65) (_ bv0 24)) (ite (= (concat (_ bv0 32) ?x76) (_ bv25 64)) (concat ((_ extract 38 0) ?x65) (_ bv0 25)) ?x1194))))
+ (let ((?x1210 (ite (= (concat (_ bv0 32) ?x76) (_ bv22 64)) (concat ((_ extract 41 0) ?x65) (_ bv0 22)) (ite (= (concat (_ bv0 32) ?x76) (_ bv23 64)) (concat ((_ extract 40 0) ?x65) (_ bv0 23)) ?x1202))))
+ (let ((?x1218 (ite (= (concat (_ bv0 32) ?x76) (_ bv20 64)) (concat ((_ extract 43 0) ?x65) (_ bv0 20)) (ite (= (concat (_ bv0 32) ?x76) (_ bv21 64)) (concat ((_ extract 42 0) ?x65) (_ bv0 21)) ?x1210))))
+ (let ((?x1226 (ite (= (concat (_ bv0 32) ?x76) (_ bv18 64)) (concat ((_ extract 45 0) ?x65) (_ bv0 18)) (ite (= (concat (_ bv0 32) ?x76) (_ bv19 64)) (concat ((_ extract 44 0) ?x65) (_ bv0 19)) ?x1218))))
+ (let ((?x1234 (ite (= (concat (_ bv0 32) ?x76) (_ bv16 64)) (concat ((_ extract 47 0) ?x65) (_ bv0 16)) (ite (= (concat (_ bv0 32) ?x76) (_ bv17 64)) (concat ((_ extract 46 0) ?x65) (_ bv0 17)) ?x1226))))
+ (let ((?x1242 (ite (= (concat (_ bv0 32) ?x76) (_ bv14 64)) (concat ((_ extract 49 0) ?x65) (_ bv0 14)) (ite (= (concat (_ bv0 32) ?x76) (_ bv15 64)) (concat ((_ extract 48 0) ?x65) (_ bv0 15)) ?x1234))))
+ (let ((?x1250 (ite (= (concat (_ bv0 32) ?x76) (_ bv12 64)) (concat ((_ extract 51 0) ?x65) (_ bv0 12)) (ite (= (concat (_ bv0 32) ?x76) (_ bv13 64)) (concat ((_ extract 50 0) ?x65) (_ bv0 13)) ?x1242))))
+ (let ((?x1258 (ite (= (concat (_ bv0 32) ?x76) (_ bv10 64)) (concat ((_ extract 53 0) ?x65) (_ bv0 10)) (ite (= (concat (_ bv0 32) ?x76) (_ bv11 64)) (concat ((_ extract 52 0) ?x65) (_ bv0 11)) ?x1250))))
+ (let ((?x1266 (ite (= (concat (_ bv0 32) ?x76) (_ bv8 64)) (concat ((_ extract 55 0) ?x65) (_ bv0 8)) (ite (= (concat (_ bv0 32) ?x76) (_ bv9 64)) (concat ((_ extract 54 0) ?x65) (_ bv0 9)) ?x1258))))
+ (let ((?x1274 (ite (= (concat (_ bv0 32) ?x76) (_ bv6 64)) (concat ((_ extract 57 0) ?x65) (_ bv0 6)) (ite (= (concat (_ bv0 32) ?x76) (_ bv7 64)) (concat ((_ extract 56 0) ?x65) (_ bv0 7)) ?x1266))))
+ (let ((?x1282 (ite (= (concat (_ bv0 32) ?x76) (_ bv4 64)) (concat ((_ extract 59 0) ?x65) (_ bv0 4)) (ite (= (concat (_ bv0 32) ?x76) (_ bv5 64)) (concat ((_ extract 58 0) ?x65) (_ bv0 5)) ?x1274))))
+ (let ((?x1290 (ite (= (concat (_ bv0 32) ?x76) (_ bv2 64)) (concat ((_ extract 61 0) ?x65) (_ bv0 2)) (ite (= (concat (_ bv0 32) ?x76) (_ bv3 64)) (concat ((_ extract 60 0) ?x65) (_ bv0 3)) ?x1282))))
+ (let ((?x1296 (ite (= (concat (_ bv0 32) ?x76) (_ bv0 64)) ?x65 (ite (= (concat (_ bv0 32) ?x76) (_ bv1 64)) (concat ((_ extract 62 0) ?x65) (_ bv0 1)) ?x1290))))
+ (let ((?x1298 (ite (bvult (concat (_ bv0 32) ?x76) (_ bv64 64)) ?x1296 (_ bv0 64))))
+ (let ((?x1299 (bvand ?x1298 (_ bv4294967295 64))))
+ (let ((?x1324 (bvmul ?x1013 ?x1299)))
+ (let ((?x1328 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1324)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))))
+ (let ((?x1332 (bvadd (concat (_ bv0 64) ?x1328) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x1299)))))
+ (let ((?x1337 ((_ extract 63 0) ?x1332)))
+ (let ((?x1345 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1337) (_ bv0 32)) (bvand ?x1324 (_ bv4294967295 64))))))
+ (let ((?x60 (concat (_ bv0 64) (_ bv18446744073709551615 64))))
+ (let ((?x1304 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))
+ (let ((?x1021 (concat (_ bv0 32) ((_ extract 63 32) ?x1012))))
+ (let ((?x1334 (bvmul ?x1021 ?x1304)))
+ (let ((?x1340 (bvadd (ite (bvult ?x60 ?x1332) (bvadd (_ bv4294967296 64) ?x1334) ?x1334) (concat (_ bv0 32) ((_ extract 63 32) ?x1337)))))
+ (let ((?x475 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x463)) (_ bv0 64))))
+ (let ((?x479 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x463)) ?x475)))
+ (let ((?x483 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x463)) ?x479)))
+ (let ((?x487 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x463)) ?x483)))
+ (let ((?x491 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x463)) ?x487)))
+ (let ((?x495 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x463)) ?x491)))
+ (let ((?x499 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x463)) ?x495)))
+ (let ((?x503 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x463)) ?x499)))
+ (let ((?x507 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x463)) ?x503)))
+ (let ((?x511 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x463)) ?x507)))
+ (let ((?x515 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x463)) ?x511)))
+ (let ((?x519 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x463)) ?x515)))
+ (let ((?x523 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x463)) ?x519)))
+ (let ((?x527 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x463)) ?x523)))
+ (let ((?x531 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x463)) ?x527)))
+ (let ((?x535 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x463)) ?x531)))
+ (let ((?x539 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x463)) ?x535)))
+ (let ((?x543 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x463)) ?x539)))
+ (let ((?x547 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x463)) ?x543)))
+ (let ((?x551 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x463)) ?x547)))
+ (let ((?x555 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x463)) ?x551)))
+ (let ((?x559 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x463)) ?x555)))
+ (let ((?x563 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x463)) ?x559)))
+ (let ((?x567 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x463)) ?x563)))
+ (let ((?x571 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x463)) ?x567)))
+ (let ((?x575 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x463)) ?x571)))
+ (let ((?x579 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x463)) ?x575)))
+ (let ((?x583 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x463)) ?x579)))
+ (let ((?x587 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x463)) ?x583)))
+ (let ((?x591 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x463)) ?x587)))
+ (let ((?x595 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x463)) ?x591)))
+ (let ((?x599 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x463)) ?x595)))
+ (let ((?x603 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x463)) ?x599)))
+ (let ((?x607 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x463)) ?x603)))
+ (let ((?x611 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x463)) ?x607)))
+ (let ((?x615 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x463)) ?x611)))
+ (let ((?x619 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x463)) ?x615)))
+ (let ((?x623 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x463)) ?x619)))
+ (let ((?x627 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x463)) ?x623)))
+ (let ((?x631 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x463)) ?x627)))
+ (let ((?x635 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x463)) ?x631)))
+ (let ((?x639 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x463)) ?x635)))
+ (let ((?x643 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x463)) ?x639)))
+ (let ((?x647 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x463)) ?x643)))
+ (let ((?x651 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x463)) ?x647)))
+ (let ((?x655 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x463)) ?x651)))
+ (let ((?x659 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x463)) ?x655)))
+ (let ((?x663 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x463)) ?x659)))
+ (let ((?x667 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x463)) ?x663)))
+ (let ((?x671 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x463)) ?x667)))
+ (let ((?x675 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x463)) ?x671)))
+ (let ((?x679 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x463)) ?x675)))
+ (let ((?x683 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x463)) ?x679)))
+ (let ((?x687 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x463)) ?x683)))
+ (let ((?x691 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x463)) ?x687)))
+ (let ((?x695 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x463)) ?x691)))
+ (let ((?x699 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x463)) ?x695)))
+ (let ((?x703 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x463)) ?x699)))
+ (let ((?x707 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x463)) ?x703)))
+ (let ((?x711 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x463)) ?x707)))
+ (let ((?x715 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x463)) ?x711)))
+ (let ((?x719 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x463)) ?x715)))
+ (let ((?x723 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x463)) ?x719)))
+ (let ((?x727 (ite (bvult (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv64 64)) (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv0 64)) ?x463 ?x723) (_ bv0 64))))
+ (let ((?x728 (bvand ?x727 (_ bv4294967295 64))))
+ (let ((?x1300 (bvmul ?x728 ?x1299)))
+ (let ((?x1310 (bvadd (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1300)) (bvmul ?x728 ?x1304))) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x727)) ?x1299)))))
+ (let ((?x1315 ((_ extract 63 0) ?x1310)))
+ (let ((?x1350 (bvadd (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1315) (_ bv0 32)) (bvand ?x1300 (_ bv4294967295 64)))) (concat (_ bv0 64) (bvadd ?x1340 (ite (bvult ?x60 ?x1345) (_ bv1 64) (_ bv0 64)))))))
+ (let ((?x738 (concat (_ bv0 32) ((_ extract 63 32) ?x727))))
+ (let ((?x1312 (bvmul ?x738 ?x1304)))
+ (let ((?x1318 (bvadd (ite (bvult ?x60 ?x1310) (bvadd (_ bv4294967296 64) ?x1312) ?x1312) (concat (_ bv0 32) ((_ extract 63 32) ?x1315)))))
+ (let ((?x1353 (bvadd ?x1318 (ite (bvult ?x60 ?x1350) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1359 (ite (fp.lt ((_ to_fp 11 53) ?x30) ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1361 ((_ sign_extend 32) ?x1359)))
+ (let ((?x1363 (ite (bvslt (_ bv4294967295 32) ?x1359) ?x1361 (bvsub (_ bv0 64) ?x1361))))
+ (let ((?x1365 ((_ extract 31 0) (bvmul (_ bv8 64) ?x1363))))
+ (let ((?x1425 (store (store (store (store const_arr12 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1429 (store (store (store (store ?x1425 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1433 (store (store (store (store ?x1429 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1437 (store (store (store (store ?x1433 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1441 (store (store (store (store ?x1437 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1445 (store (store (store (store ?x1441 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1449 (store (store (store (store ?x1445 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+ (let ((?x1453 (store (store (store (store ?x1449 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+ (let ((?x1455 (store (store ?x1453 (_ bv0 32) ((_ extract 7 0) ((_ extract 63 0) ?x1345))) (_ bv1 32) ((_ extract 15 8) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1457 (store (store ?x1455 (_ bv2 32) ((_ extract 23 16) ((_ extract 63 0) ?x1345))) (_ bv3 32) ((_ extract 31 24) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1459 (store (store ?x1457 (_ bv4 32) ((_ extract 39 32) ((_ extract 63 0) ?x1345))) (_ bv5 32) ((_ extract 47 40) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1461 (store (store ?x1459 (_ bv6 32) ((_ extract 55 48) ((_ extract 63 0) ?x1345))) (_ bv7 32) ((_ extract 63 56) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1463 (store (store ?x1461 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1350))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1465 (store (store ?x1463 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1350))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1467 (store (store ?x1465 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1350))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1469 (store (store ?x1467 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1350))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1473 (store (store (store (store ?x1469 (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8)) (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8))))
+ (let ((?x1477 (store (store (store (store ?x1473 (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8)) (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8))))
+ (let ((?x1481 (store (store (store (store ?x1477 (_ bv24 32) (_ bv171 8)) (_ bv25 32) (_ bv171 8)) (_ bv26 32) (_ bv171 8)) (_ bv27 32) (_ bv171 8))))
+ (let ((?x1485 (store (store (store (store ?x1481 (_ bv28 32) (_ bv171 8)) (_ bv29 32) (_ bv171 8)) (_ bv30 32) (_ bv171 8)) (_ bv31 32) (_ bv171 8))))
+ (let ((?x1487 (store (store ?x1485 ?x1365 ((_ extract 7 0) ?x1353)) (bvadd (_ bv1 32) ?x1365) ((_ extract 15 8) ?x1353))))
+ (let ((?x1489 (store (store ?x1487 (bvadd (_ bv2 32) ?x1365) ((_ extract 23 16) ?x1353)) (bvadd (_ bv3 32) ?x1365) ((_ extract 31 24) ?x1353))))
+ (let ((?x1491 (store (store ?x1489 (bvadd (_ bv4 32) ?x1365) ((_ extract 39 32) ?x1353)) (bvadd (_ bv5 32) ?x1365) ((_ extract 47 40) ?x1353))))
+ (let ((?x1493 (store (store ?x1491 (bvadd (_ bv6 32) ?x1365) ((_ extract 55 48) ?x1353)) (bvadd (_ bv7 32) ?x1365) ((_ extract 63 56) ?x1353))))
+ (let ((?x1498 (concat (select ?x1493 (_ bv10 32)) (concat (select ?x1493 (_ bv9 32)) (select ?x1493 (_ bv8 32))))))
+ (let ((?x1504 (concat (select ?x1493 (_ bv13 32)) (concat (select ?x1493 (_ bv12 32)) (concat (select ?x1493 (_ bv11 32)) ?x1498)))))
+ (let ((?x1509 (concat (_ bv0 64) (concat (select ?x1493 (_ bv15 32)) (concat (select ?x1493 (_ bv14 32)) ?x1504)))))
+ (let ((?x1512 (bvadd ?x1509 (concat (_ bv0 64) ((_ extract 63 0) ?x1037)))))
+ (let ((?x733 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))
+ (let ((?x1026 (bvmul ?x1021 ?x733)))
+ (let ((?x1032 (bvadd (ite (bvult ?x60 ?x1024) (bvadd (_ bv4294967296 64) ?x1026) ?x1026) (concat (_ bv0 32) ((_ extract 63 32) ?x1029)))))
+ (let ((?x1515 (bvadd (bvadd ?x1032 (ite (bvult ?x60 ?x1037) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1512) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x736 (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) (bvmul ?x728 ?x460))) (bvmul ?x728 ?x733)))))
+ (let ((?x741 (bvadd ?x736 (concat (_ bv0 64) (bvmul ?x738 ?x460)))))
+ (let ((?x747 ((_ extract 63 0) ?x741)))
+ (let ((?x755 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x747) (_ bv0 32)) (bvand (bvmul ?x728 ?x460) (_ bv4294967295 64))))))
+ (let ((?x1517 (bvadd ?x755 (concat (_ bv0 64) ?x1515))))
+ (let ((?x1525 (concat (select ?x1493 (_ bv18 32)) (concat (select ?x1493 (_ bv17 32)) (select ?x1493 (_ bv16 32))))))
+ (let ((?x1531 (concat (select ?x1493 (_ bv21 32)) (concat (select ?x1493 (_ bv20 32)) (concat (select ?x1493 (_ bv19 32)) ?x1525)))))
+ (let ((?x1536 (concat (_ bv0 64) (concat (select ?x1493 (_ bv23 32)) (concat (select ?x1493 (_ bv22 32)) ?x1531)))))
+ (let ((?x1539 (bvadd ?x1536 (concat (_ bv0 64) ((_ extract 63 0) ?x1517)))))
+ (let ((?x744 (bvmul ?x738 ?x733)))
+ (let ((?x750 (bvadd (ite (bvult ?x60 ?x741) (bvadd (_ bv4294967296 64) ?x744) ?x744) (concat (_ bv0 32) ((_ extract 63 32) ?x747)))))
+ (let ((?x1542 (bvadd (bvadd ?x750 (ite (bvult ?x60 ?x1517) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1539) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1546 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv1 64) ?x1363)))))
+ (let ((?x1580 (store (store ?x1493 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1512))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1582 (store (store ?x1580 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1512))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1584 (store (store ?x1582 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1512))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1586 (store (store ?x1584 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1512))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1588 (store (store ?x1586 (_ bv16 32) ((_ extract 7 0) ((_ extract 63 0) ?x1539))) (_ bv17 32) ((_ extract 15 8) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1590 (store (store ?x1588 (_ bv18 32) ((_ extract 23 16) ((_ extract 63 0) ?x1539))) (_ bv19 32) ((_ extract 31 24) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1592 (store (store ?x1590 (_ bv20 32) ((_ extract 39 32) ((_ extract 63 0) ?x1539))) (_ bv21 32) ((_ extract 47 40) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1594 (store (store ?x1592 (_ bv22 32) ((_ extract 55 48) ((_ extract 63 0) ?x1539))) (_ bv23 32) ((_ extract 63 56) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1596 (store (store ?x1594 ?x1546 ((_ extract 7 0) ?x1542)) (bvadd (_ bv1 32) ?x1546) ((_ extract 15 8) ?x1542))))
+ (let ((?x1598 (store (store ?x1596 (bvadd (_ bv2 32) ?x1546) ((_ extract 23 16) ?x1542)) (bvadd (_ bv3 32) ?x1546) ((_ extract 31 24) ?x1542))))
+ (let ((?x1600 (store (store ?x1598 (bvadd (_ bv4 32) ?x1546) ((_ extract 39 32) ?x1542)) (bvadd (_ bv5 32) ?x1546) ((_ extract 47 40) ?x1542))))
+ (let ((?x1602 (store (store ?x1600 (bvadd (_ bv6 32) ?x1546) ((_ extract 55 48) ?x1542)) (bvadd (_ bv7 32) ?x1546) ((_ extract 63 56) ?x1542))))
+ (let ((?x1605 (ite (fp.lt ((_ to_fp 11 53) ?x53) ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1607 ((_ sign_extend 32) ?x1605)))
+ (let ((?x1610 (bvadd (ite (bvslt (_ bv4294967295 32) ?x1605) ?x1607 (bvsub (_ bv0 64) ?x1607)) ?x1363)))
+ (let ((?x1613 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1610)))))
+ (let ((?x1620 (concat (select ?x1602 (bvadd (_ bv2 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv1 32) ?x1613)) (select ?x1602 ?x1613)))))
+ (let ((?x1626 (concat (select ?x1602 (bvadd (_ bv4 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv3 32) ?x1613)) ?x1620))))
+ (let ((?x1632 (concat (select ?x1602 (bvadd (_ bv6 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv5 32) ?x1613)) ?x1626))))
+ (let ((?x1637 (ite (= (_ bv0 64) (concat (select ?x1602 (bvadd (_ bv7 32) ?x1613)) ?x1632)) (_ bv1 64) (_ bv0 64))))
+ (let ((?x1638 (bvsub ?x1610 ?x1637)))
+ (let ((?x1641 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1638)))))
+ (let ((?x1676 (store (store (store (store const_arr23 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1680 (store (store (store (store ?x1676 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1684 (store (store (store (store ?x1680 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1688 (store (store (store (store ?x1684 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1692 (store (store (store (store ?x1688 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1696 (store (store (store (store ?x1692 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1699 (store (store (store ?x1696 (_ bv0 32) (select ?x1602 (_ bv0 32))) (_ bv1 32) (select ?x1602 (_ bv1 32))) (_ bv2 32) (select ?x1602 (_ bv2 32)))))
+ (let ((?x1702 (store (store (store ?x1699 (_ bv3 32) (select ?x1602 (_ bv3 32))) (_ bv4 32) (select ?x1602 (_ bv4 32))) (_ bv5 32) (select ?x1602 (_ bv5 32)))))
+ (let ((?x1705 (store (store (store ?x1702 (_ bv6 32) (select ?x1602 (_ bv6 32))) (_ bv7 32) (select ?x1602 (_ bv7 32))) (_ bv8 32) (select ?x1602 (_ bv8 32)))))
+ (let ((?x1708 (store (store (store ?x1705 (_ bv9 32) (select ?x1602 (_ bv9 32))) (_ bv10 32) (select ?x1602 (_ bv10 32))) (_ bv11 32) (select ?x1602 (_ bv11 32)))))
+ (let ((?x1711 (store (store (store ?x1708 (_ bv12 32) (select ?x1602 (_ bv12 32))) (_ bv13 32) (select ?x1602 (_ bv13 32))) (_ bv14 32) (select ?x1602 (_ bv14 32)))))
+ (let ((?x1714 (store (store (store ?x1711 (_ bv15 32) (select ?x1602 (_ bv15 32))) (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8))))
+ (let ((?x1718 (store (store (store (store ?x1714 (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8)) (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8))))
+ (let ((?x1721 (store (store (store ?x1718 (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8)) ?x1641 (select ?x1602 (_ bv16 32)))))
+ (let ((?x1723 (store (store ?x1721 (bvadd (_ bv1 32) ?x1641) (select ?x1602 (_ bv17 32))) (bvadd (_ bv2 32) ?x1641) (select ?x1602 (_ bv18 32)))))
+ (let ((?x1725 (store (store ?x1723 (bvadd (_ bv3 32) ?x1641) (select ?x1602 (_ bv19 32))) (bvadd (_ bv4 32) ?x1641) (select ?x1602 (_ bv20 32)))))
+ (let ((?x1727 (store (store ?x1725 (bvadd (_ bv5 32) ?x1641) (select ?x1602 (_ bv21 32))) (bvadd (_ bv6 32) ?x1641) (select ?x1602 (_ bv22 32)))))
+ (let ((?x1728 (store ?x1727 (bvadd (_ bv7 32) ?x1641) (select ?x1602 (_ bv23 32)))))
+ (let ((?x1733 (concat (select ?x1728 (_ bv2 32)) (concat (select ?x1728 (_ bv1 32)) (select ?x1728 (_ bv0 32))))))
+ (let ((?x1739 (concat (select ?x1728 (_ bv5 32)) (concat (select ?x1728 (_ bv4 32)) (concat (select ?x1728 (_ bv3 32)) ?x1733)))))
+ (= (_ bv0 64) (concat (select ?x1728 (_ bv7 32)) (concat (select ?x1728 (_ bv6 32)) ?x1739)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(assert
+ (let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+ (let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+ (let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+ (let ((?x65 (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x76 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x53)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x78 (concat (_ bv0 32) (bvsub (_ bv64 32) ?x76))))
+ (let ((?x90 (ite (= ?x78 (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x65)) (ite (= ?x78 (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x65)) (_ bv0 64)))))
+ (let ((?x102 (ite (= ?x78 (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x65)) (ite (= ?x78 (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x65)) ?x90))))
+ (let ((?x114 (ite (= ?x78 (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x65)) (ite (= ?x78 (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x65)) ?x102))))
+ (let ((?x126 (ite (= ?x78 (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x65)) (ite (= ?x78 (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x65)) ?x114))))
+ (let ((?x138 (ite (= ?x78 (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x65)) (ite (= ?x78 (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x65)) ?x126))))
+ (let ((?x149 (ite (= ?x78 (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x65)) (ite (= ?x78 (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x65)) ?x138))))
+ (let ((?x161 (ite (= ?x78 (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x65)) (ite (= ?x78 (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x65)) ?x149))))
+ (let ((?x173 (ite (= ?x78 (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x65)) (ite (= ?x78 (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x65)) ?x161))))
+ (let ((?x185 (ite (= ?x78 (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x65)) (ite (= ?x78 (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x65)) ?x173))))
+ (let ((?x197 (ite (= ?x78 (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x65)) (ite (= ?x78 (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x65)) ?x185))))
+ (let ((?x209 (ite (= ?x78 (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x65)) (ite (= ?x78 (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x65)) ?x197))))
+ (let ((?x221 (ite (= ?x78 (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x65)) (ite (= ?x78 (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x65)) ?x209))))
+ (let ((?x233 (ite (= ?x78 (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x65)) (ite (= ?x78 (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x65)) ?x221))))
+ (let ((?x245 (ite (= ?x78 (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x65)) (ite (= ?x78 (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x65)) ?x233))))
+ (let ((?x257 (ite (= ?x78 (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x65)) (ite (= ?x78 (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x65)) ?x245))))
+ (let ((?x268 (ite (= ?x78 (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x65)) (ite (= ?x78 (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x65)) ?x257))))
+ (let ((?x280 (ite (= ?x78 (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x65)) (ite (= ?x78 (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x65)) ?x268))))
+ (let ((?x292 (ite (= ?x78 (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x65)) (ite (= ?x78 (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x65)) ?x280))))
+ (let ((?x304 (ite (= ?x78 (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x65)) (ite (= ?x78 (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x65)) ?x292))))
+ (let ((?x316 (ite (= ?x78 (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x65)) (ite (= ?x78 (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x65)) ?x304))))
+ (let ((?x328 (ite (= ?x78 (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x65)) (ite (= ?x78 (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x65)) ?x316))))
+ (let ((?x340 (ite (= ?x78 (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x65)) (ite (= ?x78 (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x65)) ?x328))))
+ (let ((?x352 (ite (= ?x78 (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x65)) (ite (= ?x78 (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x65)) ?x340))))
+ (let ((?x364 (ite (= ?x78 (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x65)) (ite (= ?x78 (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x65)) ?x352))))
+ (let ((?x376 (ite (= ?x78 (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x65)) (ite (= ?x78 (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x65)) ?x364))))
+ (let ((?x388 (ite (= ?x78 (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x65)) (ite (= ?x78 (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x65)) ?x376))))
+ (let ((?x399 (ite (= ?x78 (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x65)) (ite (= ?x78 (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x65)) ?x388))))
+ (let ((?x411 (ite (= ?x78 (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x65)) (ite (= ?x78 (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x65)) ?x399))))
+ (let ((?x423 (ite (= ?x78 (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x65)) (ite (= ?x78 (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x65)) ?x411))))
+ (let ((?x435 (ite (= ?x78 (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x65)) (ite (= ?x78 (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x65)) ?x423))))
+ (let ((?x447 (ite (= ?x78 (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x65)) (ite (= ?x78 (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x65)) ?x435))))
+ (let ((?x455 (ite (= ?x78 (_ bv0 64)) ?x65 (ite (= ?x78 (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x65)) ?x447))))
+ (let ((?x458 (ite (bvult ?x78 (_ bv64 64)) ?x455 (_ bv0 64))))
+ (let ((?x460 (bvand ?x458 (_ bv4294967295 64))))
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+ (let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+ (let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+ (let ((?x463 (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x469 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x30)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x756 (concat (_ bv0 32) ?x469)))
+ (let ((?x764 (ite (= ?x756 (_ bv62 64)) (concat ((_ extract 1 0) ?x463) (_ bv0 62)) (ite (= ?x756 (_ bv63 64)) (concat ((_ extract 0 0) ?x463) (_ bv0 63)) (_ bv0 64)))))
+ (let ((?x772 (ite (= ?x756 (_ bv60 64)) (concat ((_ extract 3 0) ?x463) (_ bv0 60)) (ite (= ?x756 (_ bv61 64)) (concat ((_ extract 2 0) ?x463) (_ bv0 61)) ?x764))))
+ (let ((?x780 (ite (= ?x756 (_ bv58 64)) (concat ((_ extract 5 0) ?x463) (_ bv0 58)) (ite (= ?x756 (_ bv59 64)) (concat ((_ extract 4 0) ?x463) (_ bv0 59)) ?x772))))
+ (let ((?x788 (ite (= ?x756 (_ bv56 64)) (concat ((_ extract 7 0) ?x463) (_ bv0 56)) (ite (= ?x756 (_ bv57 64)) (concat ((_ extract 6 0) ?x463) (_ bv0 57)) ?x780))))
+ (let ((?x796 (ite (= ?x756 (_ bv54 64)) (concat ((_ extract 9 0) ?x463) (_ bv0 54)) (ite (= ?x756 (_ bv55 64)) (concat ((_ extract 8 0) ?x463) (_ bv0 55)) ?x788))))
+ (let ((?x804 (ite (= ?x756 (_ bv52 64)) (concat ((_ extract 11 0) ?x463) (_ bv0 52)) (ite (= ?x756 (_ bv53 64)) (concat ((_ extract 10 0) ?x463) (_ bv0 53)) ?x796))))
+ (let ((?x812 (ite (= ?x756 (_ bv50 64)) (concat ((_ extract 13 0) ?x463) (_ bv0 50)) (ite (= ?x756 (_ bv51 64)) (concat ((_ extract 12 0) ?x463) (_ bv0 51)) ?x804))))
+ (let ((?x820 (ite (= ?x756 (_ bv48 64)) (concat ((_ extract 15 0) ?x463) (_ bv0 48)) (ite (= ?x756 (_ bv49 64)) (concat ((_ extract 14 0) ?x463) (_ bv0 49)) ?x812))))
+ (let ((?x828 (ite (= ?x756 (_ bv46 64)) (concat ((_ extract 17 0) ?x463) (_ bv0 46)) (ite (= ?x756 (_ bv47 64)) (concat ((_ extract 16 0) ?x463) (_ bv0 47)) ?x820))))
+ (let ((?x836 (ite (= ?x756 (_ bv44 64)) (concat ((_ extract 19 0) ?x463) (_ bv0 44)) (ite (= ?x756 (_ bv45 64)) (concat ((_ extract 18 0) ?x463) (_ bv0 45)) ?x828))))
+ (let ((?x844 (ite (= ?x756 (_ bv42 64)) (concat ((_ extract 21 0) ?x463) (_ bv0 42)) (ite (= ?x756 (_ bv43 64)) (concat ((_ extract 20 0) ?x463) (_ bv0 43)) ?x836))))
+ (let ((?x852 (ite (= ?x756 (_ bv40 64)) (concat ((_ extract 23 0) ?x463) (_ bv0 40)) (ite (= ?x756 (_ bv41 64)) (concat ((_ extract 22 0) ?x463) (_ bv0 41)) ?x844))))
+ (let ((?x860 (ite (= ?x756 (_ bv38 64)) (concat ((_ extract 25 0) ?x463) (_ bv0 38)) (ite (= ?x756 (_ bv39 64)) (concat ((_ extract 24 0) ?x463) (_ bv0 39)) ?x852))))
+ (let ((?x868 (ite (= ?x756 (_ bv36 64)) (concat ((_ extract 27 0) ?x463) (_ bv0 36)) (ite (= ?x756 (_ bv37 64)) (concat ((_ extract 26 0) ?x463) (_ bv0 37)) ?x860))))
+ (let ((?x876 (ite (= ?x756 (_ bv34 64)) (concat ((_ extract 29 0) ?x463) (_ bv0 34)) (ite (= ?x756 (_ bv35 64)) (concat ((_ extract 28 0) ?x463) (_ bv0 35)) ?x868))))
+ (let ((?x884 (ite (= ?x756 (_ bv32 64)) (concat ((_ extract 31 0) ?x463) (_ bv0 32)) (ite (= ?x756 (_ bv33 64)) (concat ((_ extract 30 0) ?x463) (_ bv0 33)) ?x876))))
+ (let ((?x892 (ite (= ?x756 (_ bv30 64)) (concat ((_ extract 33 0) ?x463) (_ bv0 30)) (ite (= ?x756 (_ bv31 64)) (concat ((_ extract 32 0) ?x463) (_ bv0 31)) ?x884))))
+ (let ((?x900 (ite (= ?x756 (_ bv28 64)) (concat ((_ extract 35 0) ?x463) (_ bv0 28)) (ite (= ?x756 (_ bv29 64)) (concat ((_ extract 34 0) ?x463) (_ bv0 29)) ?x892))))
+ (let ((?x908 (ite (= ?x756 (_ bv26 64)) (concat ((_ extract 37 0) ?x463) (_ bv0 26)) (ite (= ?x756 (_ bv27 64)) (concat ((_ extract 36 0) ?x463) (_ bv0 27)) ?x900))))
+ (let ((?x916 (ite (= ?x756 (_ bv24 64)) (concat ((_ extract 39 0) ?x463) (_ bv0 24)) (ite (= ?x756 (_ bv25 64)) (concat ((_ extract 38 0) ?x463) (_ bv0 25)) ?x908))))
+ (let ((?x924 (ite (= ?x756 (_ bv22 64)) (concat ((_ extract 41 0) ?x463) (_ bv0 22)) (ite (= ?x756 (_ bv23 64)) (concat ((_ extract 40 0) ?x463) (_ bv0 23)) ?x916))))
+ (let ((?x932 (ite (= ?x756 (_ bv20 64)) (concat ((_ extract 43 0) ?x463) (_ bv0 20)) (ite (= ?x756 (_ bv21 64)) (concat ((_ extract 42 0) ?x463) (_ bv0 21)) ?x924))))
+ (let ((?x940 (ite (= ?x756 (_ bv18 64)) (concat ((_ extract 45 0) ?x463) (_ bv0 18)) (ite (= ?x756 (_ bv19 64)) (concat ((_ extract 44 0) ?x463) (_ bv0 19)) ?x932))))
+ (let ((?x948 (ite (= ?x756 (_ bv16 64)) (concat ((_ extract 47 0) ?x463) (_ bv0 16)) (ite (= ?x756 (_ bv17 64)) (concat ((_ extract 46 0) ?x463) (_ bv0 17)) ?x940))))
+ (let ((?x956 (ite (= ?x756 (_ bv14 64)) (concat ((_ extract 49 0) ?x463) (_ bv0 14)) (ite (= ?x756 (_ bv15 64)) (concat ((_ extract 48 0) ?x463) (_ bv0 15)) ?x948))))
+ (let ((?x964 (ite (= ?x756 (_ bv12 64)) (concat ((_ extract 51 0) ?x463) (_ bv0 12)) (ite (= ?x756 (_ bv13 64)) (concat ((_ extract 50 0) ?x463) (_ bv0 13)) ?x956))))
+ (let ((?x972 (ite (= ?x756 (_ bv10 64)) (concat ((_ extract 53 0) ?x463) (_ bv0 10)) (ite (= ?x756 (_ bv11 64)) (concat ((_ extract 52 0) ?x463) (_ bv0 11)) ?x964))))
+ (let ((?x980 (ite (= ?x756 (_ bv8 64)) (concat ((_ extract 55 0) ?x463) (_ bv0 8)) (ite (= ?x756 (_ bv9 64)) (concat ((_ extract 54 0) ?x463) (_ bv0 9)) ?x972))))
+ (let ((?x988 (ite (= ?x756 (_ bv6 64)) (concat ((_ extract 57 0) ?x463) (_ bv0 6)) (ite (= ?x756 (_ bv7 64)) (concat ((_ extract 56 0) ?x463) (_ bv0 7)) ?x980))))
+ (let ((?x996 (ite (= ?x756 (_ bv4 64)) (concat ((_ extract 59 0) ?x463) (_ bv0 4)) (ite (= ?x756 (_ bv5 64)) (concat ((_ extract 58 0) ?x463) (_ bv0 5)) ?x988))))
+ (let ((?x1004 (ite (= ?x756 (_ bv2 64)) (concat ((_ extract 61 0) ?x463) (_ bv0 2)) (ite (= ?x756 (_ bv3 64)) (concat ((_ extract 60 0) ?x463) (_ bv0 3)) ?x996))))
+ (let ((?x1010 (ite (= ?x756 (_ bv0 64)) ?x463 (ite (= ?x756 (_ bv1 64)) (concat ((_ extract 62 0) ?x463) (_ bv0 1)) ?x1004))))
+ (let ((?x1012 (ite (bvult ?x756 (_ bv64 64)) ?x1010 (_ bv0 64))))
+ (let ((?x1013 (bvand ?x1012 (_ bv4294967295 64))))
+ (let ((?x1014 (bvmul ?x1013 ?x460)))
+ (let ((?x1018 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1014)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))))
+ (let ((?x1024 (bvadd (concat (_ bv0 64) ?x1018) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x460)))))
+ (let ((?x1029 ((_ extract 63 0) ?x1024)))
+ (let ((?x1037 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1029) (_ bv0 32)) (bvand ?x1014 (_ bv4294967295 64))))))
+ (let ((?x1050 (ite (= (concat (_ bv0 32) ?x76) (_ bv62 64)) (concat ((_ extract 1 0) ?x65) (_ bv0 62)) (ite (= (concat (_ bv0 32) ?x76) (_ bv63 64)) (concat ((_ extract 0 0) ?x65) (_ bv0 63)) (_ bv0 64)))))
+ (let ((?x1058 (ite (= (concat (_ bv0 32) ?x76) (_ bv60 64)) (concat ((_ extract 3 0) ?x65) (_ bv0 60)) (ite (= (concat (_ bv0 32) ?x76) (_ bv61 64)) (concat ((_ extract 2 0) ?x65) (_ bv0 61)) ?x1050))))
+ (let ((?x1066 (ite (= (concat (_ bv0 32) ?x76) (_ bv58 64)) (concat ((_ extract 5 0) ?x65) (_ bv0 58)) (ite (= (concat (_ bv0 32) ?x76) (_ bv59 64)) (concat ((_ extract 4 0) ?x65) (_ bv0 59)) ?x1058))))
+ (let ((?x1074 (ite (= (concat (_ bv0 32) ?x76) (_ bv56 64)) (concat ((_ extract 7 0) ?x65) (_ bv0 56)) (ite (= (concat (_ bv0 32) ?x76) (_ bv57 64)) (concat ((_ extract 6 0) ?x65) (_ bv0 57)) ?x1066))))
+ (let ((?x1082 (ite (= (concat (_ bv0 32) ?x76) (_ bv54 64)) (concat ((_ extract 9 0) ?x65) (_ bv0 54)) (ite (= (concat (_ bv0 32) ?x76) (_ bv55 64)) (concat ((_ extract 8 0) ?x65) (_ bv0 55)) ?x1074))))
+ (let ((?x1090 (ite (= (concat (_ bv0 32) ?x76) (_ bv52 64)) (concat ((_ extract 11 0) ?x65) (_ bv0 52)) (ite (= (concat (_ bv0 32) ?x76) (_ bv53 64)) (concat ((_ extract 10 0) ?x65) (_ bv0 53)) ?x1082))))
+ (let ((?x1098 (ite (= (concat (_ bv0 32) ?x76) (_ bv50 64)) (concat ((_ extract 13 0) ?x65) (_ bv0 50)) (ite (= (concat (_ bv0 32) ?x76) (_ bv51 64)) (concat ((_ extract 12 0) ?x65) (_ bv0 51)) ?x1090))))
+ (let ((?x1106 (ite (= (concat (_ bv0 32) ?x76) (_ bv48 64)) (concat ((_ extract 15 0) ?x65) (_ bv0 48)) (ite (= (concat (_ bv0 32) ?x76) (_ bv49 64)) (concat ((_ extract 14 0) ?x65) (_ bv0 49)) ?x1098))))
+ (let ((?x1114 (ite (= (concat (_ bv0 32) ?x76) (_ bv46 64)) (concat ((_ extract 17 0) ?x65) (_ bv0 46)) (ite (= (concat (_ bv0 32) ?x76) (_ bv47 64)) (concat ((_ extract 16 0) ?x65) (_ bv0 47)) ?x1106))))
+ (let ((?x1122 (ite (= (concat (_ bv0 32) ?x76) (_ bv44 64)) (concat ((_ extract 19 0) ?x65) (_ bv0 44)) (ite (= (concat (_ bv0 32) ?x76) (_ bv45 64)) (concat ((_ extract 18 0) ?x65) (_ bv0 45)) ?x1114))))
+ (let ((?x1130 (ite (= (concat (_ bv0 32) ?x76) (_ bv42 64)) (concat ((_ extract 21 0) ?x65) (_ bv0 42)) (ite (= (concat (_ bv0 32) ?x76) (_ bv43 64)) (concat ((_ extract 20 0) ?x65) (_ bv0 43)) ?x1122))))
+ (let ((?x1138 (ite (= (concat (_ bv0 32) ?x76) (_ bv40 64)) (concat ((_ extract 23 0) ?x65) (_ bv0 40)) (ite (= (concat (_ bv0 32) ?x76) (_ bv41 64)) (concat ((_ extract 22 0) ?x65) (_ bv0 41)) ?x1130))))
+ (let ((?x1146 (ite (= (concat (_ bv0 32) ?x76) (_ bv38 64)) (concat ((_ extract 25 0) ?x65) (_ bv0 38)) (ite (= (concat (_ bv0 32) ?x76) (_ bv39 64)) (concat ((_ extract 24 0) ?x65) (_ bv0 39)) ?x1138))))
+ (let ((?x1154 (ite (= (concat (_ bv0 32) ?x76) (_ bv36 64)) (concat ((_ extract 27 0) ?x65) (_ bv0 36)) (ite (= (concat (_ bv0 32) ?x76) (_ bv37 64)) (concat ((_ extract 26 0) ?x65) (_ bv0 37)) ?x1146))))
+ (let ((?x1162 (ite (= (concat (_ bv0 32) ?x76) (_ bv34 64)) (concat ((_ extract 29 0) ?x65) (_ bv0 34)) (ite (= (concat (_ bv0 32) ?x76) (_ bv35 64)) (concat ((_ extract 28 0) ?x65) (_ bv0 35)) ?x1154))))
+ (let ((?x1170 (ite (= (concat (_ bv0 32) ?x76) (_ bv32 64)) (concat ((_ extract 31 0) ?x65) (_ bv0 32)) (ite (= (concat (_ bv0 32) ?x76) (_ bv33 64)) (concat ((_ extract 30 0) ?x65) (_ bv0 33)) ?x1162))))
+ (let ((?x1178 (ite (= (concat (_ bv0 32) ?x76) (_ bv30 64)) (concat ((_ extract 33 0) ?x65) (_ bv0 30)) (ite (= (concat (_ bv0 32) ?x76) (_ bv31 64)) (concat ((_ extract 32 0) ?x65) (_ bv0 31)) ?x1170))))
+ (let ((?x1186 (ite (= (concat (_ bv0 32) ?x76) (_ bv28 64)) (concat ((_ extract 35 0) ?x65) (_ bv0 28)) (ite (= (concat (_ bv0 32) ?x76) (_ bv29 64)) (concat ((_ extract 34 0) ?x65) (_ bv0 29)) ?x1178))))
+ (let ((?x1194 (ite (= (concat (_ bv0 32) ?x76) (_ bv26 64)) (concat ((_ extract 37 0) ?x65) (_ bv0 26)) (ite (= (concat (_ bv0 32) ?x76) (_ bv27 64)) (concat ((_ extract 36 0) ?x65) (_ bv0 27)) ?x1186))))
+ (let ((?x1202 (ite (= (concat (_ bv0 32) ?x76) (_ bv24 64)) (concat ((_ extract 39 0) ?x65) (_ bv0 24)) (ite (= (concat (_ bv0 32) ?x76) (_ bv25 64)) (concat ((_ extract 38 0) ?x65) (_ bv0 25)) ?x1194))))
+ (let ((?x1210 (ite (= (concat (_ bv0 32) ?x76) (_ bv22 64)) (concat ((_ extract 41 0) ?x65) (_ bv0 22)) (ite (= (concat (_ bv0 32) ?x76) (_ bv23 64)) (concat ((_ extract 40 0) ?x65) (_ bv0 23)) ?x1202))))
+ (let ((?x1218 (ite (= (concat (_ bv0 32) ?x76) (_ bv20 64)) (concat ((_ extract 43 0) ?x65) (_ bv0 20)) (ite (= (concat (_ bv0 32) ?x76) (_ bv21 64)) (concat ((_ extract 42 0) ?x65) (_ bv0 21)) ?x1210))))
+ (let ((?x1226 (ite (= (concat (_ bv0 32) ?x76) (_ bv18 64)) (concat ((_ extract 45 0) ?x65) (_ bv0 18)) (ite (= (concat (_ bv0 32) ?x76) (_ bv19 64)) (concat ((_ extract 44 0) ?x65) (_ bv0 19)) ?x1218))))
+ (let ((?x1234 (ite (= (concat (_ bv0 32) ?x76) (_ bv16 64)) (concat ((_ extract 47 0) ?x65) (_ bv0 16)) (ite (= (concat (_ bv0 32) ?x76) (_ bv17 64)) (concat ((_ extract 46 0) ?x65) (_ bv0 17)) ?x1226))))
+ (let ((?x1242 (ite (= (concat (_ bv0 32) ?x76) (_ bv14 64)) (concat ((_ extract 49 0) ?x65) (_ bv0 14)) (ite (= (concat (_ bv0 32) ?x76) (_ bv15 64)) (concat ((_ extract 48 0) ?x65) (_ bv0 15)) ?x1234))))
+ (let ((?x1250 (ite (= (concat (_ bv0 32) ?x76) (_ bv12 64)) (concat ((_ extract 51 0) ?x65) (_ bv0 12)) (ite (= (concat (_ bv0 32) ?x76) (_ bv13 64)) (concat ((_ extract 50 0) ?x65) (_ bv0 13)) ?x1242))))
+ (let ((?x1258 (ite (= (concat (_ bv0 32) ?x76) (_ bv10 64)) (concat ((_ extract 53 0) ?x65) (_ bv0 10)) (ite (= (concat (_ bv0 32) ?x76) (_ bv11 64)) (concat ((_ extract 52 0) ?x65) (_ bv0 11)) ?x1250))))
+ (let ((?x1266 (ite (= (concat (_ bv0 32) ?x76) (_ bv8 64)) (concat ((_ extract 55 0) ?x65) (_ bv0 8)) (ite (= (concat (_ bv0 32) ?x76) (_ bv9 64)) (concat ((_ extract 54 0) ?x65) (_ bv0 9)) ?x1258))))
+ (let ((?x1274 (ite (= (concat (_ bv0 32) ?x76) (_ bv6 64)) (concat ((_ extract 57 0) ?x65) (_ bv0 6)) (ite (= (concat (_ bv0 32) ?x76) (_ bv7 64)) (concat ((_ extract 56 0) ?x65) (_ bv0 7)) ?x1266))))
+ (let ((?x1282 (ite (= (concat (_ bv0 32) ?x76) (_ bv4 64)) (concat ((_ extract 59 0) ?x65) (_ bv0 4)) (ite (= (concat (_ bv0 32) ?x76) (_ bv5 64)) (concat ((_ extract 58 0) ?x65) (_ bv0 5)) ?x1274))))
+ (let ((?x1290 (ite (= (concat (_ bv0 32) ?x76) (_ bv2 64)) (concat ((_ extract 61 0) ?x65) (_ bv0 2)) (ite (= (concat (_ bv0 32) ?x76) (_ bv3 64)) (concat ((_ extract 60 0) ?x65) (_ bv0 3)) ?x1282))))
+ (let ((?x1296 (ite (= (concat (_ bv0 32) ?x76) (_ bv0 64)) ?x65 (ite (= (concat (_ bv0 32) ?x76) (_ bv1 64)) (concat ((_ extract 62 0) ?x65) (_ bv0 1)) ?x1290))))
+ (let ((?x1298 (ite (bvult (concat (_ bv0 32) ?x76) (_ bv64 64)) ?x1296 (_ bv0 64))))
+ (let ((?x1299 (bvand ?x1298 (_ bv4294967295 64))))
+ (let ((?x1324 (bvmul ?x1013 ?x1299)))
+ (let ((?x1328 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1324)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))))
+ (let ((?x1332 (bvadd (concat (_ bv0 64) ?x1328) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x1299)))))
+ (let ((?x1337 ((_ extract 63 0) ?x1332)))
+ (let ((?x1345 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1337) (_ bv0 32)) (bvand ?x1324 (_ bv4294967295 64))))))
+ (let ((?x60 (concat (_ bv0 64) (_ bv18446744073709551615 64))))
+ (let ((?x1304 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))
+ (let ((?x1021 (concat (_ bv0 32) ((_ extract 63 32) ?x1012))))
+ (let ((?x1334 (bvmul ?x1021 ?x1304)))
+ (let ((?x1340 (bvadd (ite (bvult ?x60 ?x1332) (bvadd (_ bv4294967296 64) ?x1334) ?x1334) (concat (_ bv0 32) ((_ extract 63 32) ?x1337)))))
+ (let ((?x475 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x463)) (_ bv0 64))))
+ (let ((?x479 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x463)) ?x475)))
+ (let ((?x483 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x463)) ?x479)))
+ (let ((?x487 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x463)) ?x483)))
+ (let ((?x491 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x463)) ?x487)))
+ (let ((?x495 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x463)) ?x491)))
+ (let ((?x499 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x463)) ?x495)))
+ (let ((?x503 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x463)) ?x499)))
+ (let ((?x507 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x463)) ?x503)))
+ (let ((?x511 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x463)) ?x507)))
+ (let ((?x515 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x463)) ?x511)))
+ (let ((?x519 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x463)) ?x515)))
+ (let ((?x523 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x463)) ?x519)))
+ (let ((?x527 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x463)) ?x523)))
+ (let ((?x531 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x463)) ?x527)))
+ (let ((?x535 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x463)) ?x531)))
+ (let ((?x539 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x463)) ?x535)))
+ (let ((?x543 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x463)) ?x539)))
+ (let ((?x547 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x463)) ?x543)))
+ (let ((?x551 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x463)) ?x547)))
+ (let ((?x555 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x463)) ?x551)))
+ (let ((?x559 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x463)) ?x555)))
+ (let ((?x563 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x463)) ?x559)))
+ (let ((?x567 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x463)) ?x563)))
+ (let ((?x571 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x463)) ?x567)))
+ (let ((?x575 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x463)) ?x571)))
+ (let ((?x579 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x463)) ?x575)))
+ (let ((?x583 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x463)) ?x579)))
+ (let ((?x587 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x463)) ?x583)))
+ (let ((?x591 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x463)) ?x587)))
+ (let ((?x595 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x463)) ?x591)))
+ (let ((?x599 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x463)) ?x595)))
+ (let ((?x603 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x463)) ?x599)))
+ (let ((?x607 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x463)) ?x603)))
+ (let ((?x611 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x463)) ?x607)))
+ (let ((?x615 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x463)) ?x611)))
+ (let ((?x619 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x463)) ?x615)))
+ (let ((?x623 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x463)) ?x619)))
+ (let ((?x627 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x463)) ?x623)))
+ (let ((?x631 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x463)) ?x627)))
+ (let ((?x635 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x463)) ?x631)))
+ (let ((?x639 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x463)) ?x635)))
+ (let ((?x643 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x463)) ?x639)))
+ (let ((?x647 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x463)) ?x643)))
+ (let ((?x651 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x463)) ?x647)))
+ (let ((?x655 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x463)) ?x651)))
+ (let ((?x659 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x463)) ?x655)))
+ (let ((?x663 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x463)) ?x659)))
+ (let ((?x667 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x463)) ?x663)))
+ (let ((?x671 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x463)) ?x667)))
+ (let ((?x675 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x463)) ?x671)))
+ (let ((?x679 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x463)) ?x675)))
+ (let ((?x683 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x463)) ?x679)))
+ (let ((?x687 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x463)) ?x683)))
+ (let ((?x691 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x463)) ?x687)))
+ (let ((?x695 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x463)) ?x691)))
+ (let ((?x699 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x463)) ?x695)))
+ (let ((?x703 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x463)) ?x699)))
+ (let ((?x707 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x463)) ?x703)))
+ (let ((?x711 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x463)) ?x707)))
+ (let ((?x715 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x463)) ?x711)))
+ (let ((?x719 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x463)) ?x715)))
+ (let ((?x723 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x463)) ?x719)))
+ (let ((?x727 (ite (bvult (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv64 64)) (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv0 64)) ?x463 ?x723) (_ bv0 64))))
+ (let ((?x728 (bvand ?x727 (_ bv4294967295 64))))
+ (let ((?x1300 (bvmul ?x728 ?x1299)))
+ (let ((?x1310 (bvadd (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1300)) (bvmul ?x728 ?x1304))) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x727)) ?x1299)))))
+ (let ((?x1315 ((_ extract 63 0) ?x1310)))
+ (let ((?x1350 (bvadd (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1315) (_ bv0 32)) (bvand ?x1300 (_ bv4294967295 64)))) (concat (_ bv0 64) (bvadd ?x1340 (ite (bvult ?x60 ?x1345) (_ bv1 64) (_ bv0 64)))))))
+ (let ((?x738 (concat (_ bv0 32) ((_ extract 63 32) ?x727))))
+ (let ((?x1312 (bvmul ?x738 ?x1304)))
+ (let ((?x1318 (bvadd (ite (bvult ?x60 ?x1310) (bvadd (_ bv4294967296 64) ?x1312) ?x1312) (concat (_ bv0 32) ((_ extract 63 32) ?x1315)))))
+ (let ((?x1353 (bvadd ?x1318 (ite (bvult ?x60 ?x1350) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1359 (ite (fp.lt ((_ to_fp 11 53) ?x30) ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1361 ((_ sign_extend 32) ?x1359)))
+ (let ((?x1363 (ite (bvslt (_ bv4294967295 32) ?x1359) ?x1361 (bvsub (_ bv0 64) ?x1361))))
+ (let ((?x1365 ((_ extract 31 0) (bvmul (_ bv8 64) ?x1363))))
+ (let ((?x1425 (store (store (store (store const_arr12 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1429 (store (store (store (store ?x1425 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1433 (store (store (store (store ?x1429 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1437 (store (store (store (store ?x1433 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1441 (store (store (store (store ?x1437 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1445 (store (store (store (store ?x1441 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1449 (store (store (store (store ?x1445 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+ (let ((?x1453 (store (store (store (store ?x1449 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+ (let ((?x1455 (store (store ?x1453 (_ bv0 32) ((_ extract 7 0) ((_ extract 63 0) ?x1345))) (_ bv1 32) ((_ extract 15 8) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1457 (store (store ?x1455 (_ bv2 32) ((_ extract 23 16) ((_ extract 63 0) ?x1345))) (_ bv3 32) ((_ extract 31 24) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1459 (store (store ?x1457 (_ bv4 32) ((_ extract 39 32) ((_ extract 63 0) ?x1345))) (_ bv5 32) ((_ extract 47 40) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1461 (store (store ?x1459 (_ bv6 32) ((_ extract 55 48) ((_ extract 63 0) ?x1345))) (_ bv7 32) ((_ extract 63 56) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1463 (store (store ?x1461 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1350))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1465 (store (store ?x1463 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1350))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1467 (store (store ?x1465 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1350))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1469 (store (store ?x1467 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1350))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1473 (store (store (store (store ?x1469 (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8)) (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8))))
+ (let ((?x1477 (store (store (store (store ?x1473 (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8)) (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8))))
+ (let ((?x1481 (store (store (store (store ?x1477 (_ bv24 32) (_ bv171 8)) (_ bv25 32) (_ bv171 8)) (_ bv26 32) (_ bv171 8)) (_ bv27 32) (_ bv171 8))))
+ (let ((?x1485 (store (store (store (store ?x1481 (_ bv28 32) (_ bv171 8)) (_ bv29 32) (_ bv171 8)) (_ bv30 32) (_ bv171 8)) (_ bv31 32) (_ bv171 8))))
+ (let ((?x1487 (store (store ?x1485 ?x1365 ((_ extract 7 0) ?x1353)) (bvadd (_ bv1 32) ?x1365) ((_ extract 15 8) ?x1353))))
+ (let ((?x1489 (store (store ?x1487 (bvadd (_ bv2 32) ?x1365) ((_ extract 23 16) ?x1353)) (bvadd (_ bv3 32) ?x1365) ((_ extract 31 24) ?x1353))))
+ (let ((?x1491 (store (store ?x1489 (bvadd (_ bv4 32) ?x1365) ((_ extract 39 32) ?x1353)) (bvadd (_ bv5 32) ?x1365) ((_ extract 47 40) ?x1353))))
+ (let ((?x1493 (store (store ?x1491 (bvadd (_ bv6 32) ?x1365) ((_ extract 55 48) ?x1353)) (bvadd (_ bv7 32) ?x1365) ((_ extract 63 56) ?x1353))))
+ (let ((?x1498 (concat (select ?x1493 (_ bv10 32)) (concat (select ?x1493 (_ bv9 32)) (select ?x1493 (_ bv8 32))))))
+ (let ((?x1504 (concat (select ?x1493 (_ bv13 32)) (concat (select ?x1493 (_ bv12 32)) (concat (select ?x1493 (_ bv11 32)) ?x1498)))))
+ (let ((?x1509 (concat (_ bv0 64) (concat (select ?x1493 (_ bv15 32)) (concat (select ?x1493 (_ bv14 32)) ?x1504)))))
+ (let ((?x1512 (bvadd ?x1509 (concat (_ bv0 64) ((_ extract 63 0) ?x1037)))))
+ (let ((?x733 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))
+ (let ((?x1026 (bvmul ?x1021 ?x733)))
+ (let ((?x1032 (bvadd (ite (bvult ?x60 ?x1024) (bvadd (_ bv4294967296 64) ?x1026) ?x1026) (concat (_ bv0 32) ((_ extract 63 32) ?x1029)))))
+ (let ((?x1515 (bvadd (bvadd ?x1032 (ite (bvult ?x60 ?x1037) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1512) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x736 (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) (bvmul ?x728 ?x460))) (bvmul ?x728 ?x733)))))
+ (let ((?x741 (bvadd ?x736 (concat (_ bv0 64) (bvmul ?x738 ?x460)))))
+ (let ((?x747 ((_ extract 63 0) ?x741)))
+ (let ((?x755 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x747) (_ bv0 32)) (bvand (bvmul ?x728 ?x460) (_ bv4294967295 64))))))
+ (let ((?x1517 (bvadd ?x755 (concat (_ bv0 64) ?x1515))))
+ (let ((?x1525 (concat (select ?x1493 (_ bv18 32)) (concat (select ?x1493 (_ bv17 32)) (select ?x1493 (_ bv16 32))))))
+ (let ((?x1531 (concat (select ?x1493 (_ bv21 32)) (concat (select ?x1493 (_ bv20 32)) (concat (select ?x1493 (_ bv19 32)) ?x1525)))))
+ (let ((?x1536 (concat (_ bv0 64) (concat (select ?x1493 (_ bv23 32)) (concat (select ?x1493 (_ bv22 32)) ?x1531)))))
+ (let ((?x1539 (bvadd ?x1536 (concat (_ bv0 64) ((_ extract 63 0) ?x1517)))))
+ (let ((?x744 (bvmul ?x738 ?x733)))
+ (let ((?x750 (bvadd (ite (bvult ?x60 ?x741) (bvadd (_ bv4294967296 64) ?x744) ?x744) (concat (_ bv0 32) ((_ extract 63 32) ?x747)))))
+ (let ((?x1542 (bvadd (bvadd ?x750 (ite (bvult ?x60 ?x1517) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1539) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1546 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv1 64) ?x1363)))))
+ (let ((?x1580 (store (store ?x1493 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1512))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1582 (store (store ?x1580 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1512))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1584 (store (store ?x1582 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1512))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1586 (store (store ?x1584 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1512))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1588 (store (store ?x1586 (_ bv16 32) ((_ extract 7 0) ((_ extract 63 0) ?x1539))) (_ bv17 32) ((_ extract 15 8) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1590 (store (store ?x1588 (_ bv18 32) ((_ extract 23 16) ((_ extract 63 0) ?x1539))) (_ bv19 32) ((_ extract 31 24) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1592 (store (store ?x1590 (_ bv20 32) ((_ extract 39 32) ((_ extract 63 0) ?x1539))) (_ bv21 32) ((_ extract 47 40) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1594 (store (store ?x1592 (_ bv22 32) ((_ extract 55 48) ((_ extract 63 0) ?x1539))) (_ bv23 32) ((_ extract 63 56) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1596 (store (store ?x1594 ?x1546 ((_ extract 7 0) ?x1542)) (bvadd (_ bv1 32) ?x1546) ((_ extract 15 8) ?x1542))))
+ (let ((?x1598 (store (store ?x1596 (bvadd (_ bv2 32) ?x1546) ((_ extract 23 16) ?x1542)) (bvadd (_ bv3 32) ?x1546) ((_ extract 31 24) ?x1542))))
+ (let ((?x1600 (store (store ?x1598 (bvadd (_ bv4 32) ?x1546) ((_ extract 39 32) ?x1542)) (bvadd (_ bv5 32) ?x1546) ((_ extract 47 40) ?x1542))))
+ (let ((?x1602 (store (store ?x1600 (bvadd (_ bv6 32) ?x1546) ((_ extract 55 48) ?x1542)) (bvadd (_ bv7 32) ?x1546) ((_ extract 63 56) ?x1542))))
+ (let ((?x1605 (ite (fp.lt ((_ to_fp 11 53) ?x53) ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1607 ((_ sign_extend 32) ?x1605)))
+ (let ((?x1610 (bvadd (ite (bvslt (_ bv4294967295 32) ?x1605) ?x1607 (bvsub (_ bv0 64) ?x1607)) ?x1363)))
+ (let ((?x1613 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1610)))))
+ (let ((?x1620 (concat (select ?x1602 (bvadd (_ bv2 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv1 32) ?x1613)) (select ?x1602 ?x1613)))))
+ (let ((?x1626 (concat (select ?x1602 (bvadd (_ bv4 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv3 32) ?x1613)) ?x1620))))
+ (let ((?x1632 (concat (select ?x1602 (bvadd (_ bv6 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv5 32) ?x1613)) ?x1626))))
+ (let ((?x1637 (ite (= (_ bv0 64) (concat (select ?x1602 (bvadd (_ bv7 32) ?x1613)) ?x1632)) (_ bv1 64) (_ bv0 64))))
+ (let ((?x1638 (bvsub ?x1610 ?x1637)))
+ (let ((?x1641 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1638)))))
+ (let ((?x1676 (store (store (store (store const_arr23 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1680 (store (store (store (store ?x1676 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1684 (store (store (store (store ?x1680 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1688 (store (store (store (store ?x1684 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1692 (store (store (store (store ?x1688 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1696 (store (store (store (store ?x1692 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1699 (store (store (store ?x1696 (_ bv0 32) (select ?x1602 (_ bv0 32))) (_ bv1 32) (select ?x1602 (_ bv1 32))) (_ bv2 32) (select ?x1602 (_ bv2 32)))))
+ (let ((?x1702 (store (store (store ?x1699 (_ bv3 32) (select ?x1602 (_ bv3 32))) (_ bv4 32) (select ?x1602 (_ bv4 32))) (_ bv5 32) (select ?x1602 (_ bv5 32)))))
+ (let ((?x1705 (store (store (store ?x1702 (_ bv6 32) (select ?x1602 (_ bv6 32))) (_ bv7 32) (select ?x1602 (_ bv7 32))) (_ bv8 32) (select ?x1602 (_ bv8 32)))))
+ (let ((?x1708 (store (store (store ?x1705 (_ bv9 32) (select ?x1602 (_ bv9 32))) (_ bv10 32) (select ?x1602 (_ bv10 32))) (_ bv11 32) (select ?x1602 (_ bv11 32)))))
+ (let ((?x1711 (store (store (store ?x1708 (_ bv12 32) (select ?x1602 (_ bv12 32))) (_ bv13 32) (select ?x1602 (_ bv13 32))) (_ bv14 32) (select ?x1602 (_ bv14 32)))))
+ (let ((?x1714 (store (store (store ?x1711 (_ bv15 32) (select ?x1602 (_ bv15 32))) (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8))))
+ (let ((?x1718 (store (store (store (store ?x1714 (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8)) (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8))))
+ (let ((?x1721 (store (store (store ?x1718 (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8)) ?x1641 (select ?x1602 (_ bv16 32)))))
+ (let ((?x1723 (store (store ?x1721 (bvadd (_ bv1 32) ?x1641) (select ?x1602 (_ bv17 32))) (bvadd (_ bv2 32) ?x1641) (select ?x1602 (_ bv18 32)))))
+ (let ((?x1725 (store (store ?x1723 (bvadd (_ bv3 32) ?x1641) (select ?x1602 (_ bv19 32))) (bvadd (_ bv4 32) ?x1641) (select ?x1602 (_ bv20 32)))))
+ (let ((?x1727 (store (store ?x1725 (bvadd (_ bv5 32) ?x1641) (select ?x1602 (_ bv21 32))) (bvadd (_ bv6 32) ?x1641) (select ?x1602 (_ bv22 32)))))
+ (let ((?x1728 (store ?x1727 (bvadd (_ bv7 32) ?x1641) (select ?x1602 (_ bv23 32)))))
+ (let ((?x1749 (concat (select ?x1728 (_ bv10 32)) (concat (select ?x1728 (_ bv9 32)) (select ?x1728 (_ bv8 32))))))
+ (let ((?x1755 (concat (select ?x1728 (_ bv13 32)) (concat (select ?x1728 (_ bv12 32)) (concat (select ?x1728 (_ bv11 32)) ?x1749)))))
+ (not (= (_ bv0 64) (concat (select ?x1728 (_ bv15 32)) (concat (select ?x1728 (_ bv14 32)) ?x1755))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(assert
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+ (let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+ (let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+ (let ((?x31 ((_ to_fp 11 53) ?x30)))
+ (let ((?x1359 (ite (fp.lt ?x31 ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1361 ((_ sign_extend 32) ?x1359)))
+ (let ((?x1363 (ite (bvslt (_ bv4294967295 32) ?x1359) ?x1361 (bvsub (_ bv0 64) ?x1361))))
+ (let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+ (let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+ (let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+ (let ((?x54 ((_ to_fp 11 53) ?x53)))
+ (let ((?x1605 (ite (fp.lt ?x54 ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+ (let ((?x1607 ((_ sign_extend 32) ?x1605)))
+ (let ((?x1610 (bvadd (ite (bvslt (_ bv4294967295 32) ?x1605) ?x1607 (bvsub (_ bv0 64) ?x1607)) ?x1363)))
+ (let ((?x1613 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1610)))))
+ (let ((?x76 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x53)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x78 (concat (_ bv0 32) (bvsub (_ bv64 32) ?x76))))
+ (let ((?x84 (ite (= ?x78 (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) (_ bv0 64))))
+ (let ((?x90 (ite (= ?x78 (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x84)))
+ (let ((?x96 (ite (= ?x78 (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x90)))
+ (let ((?x102 (ite (= ?x78 (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x96)))
+ (let ((?x108 (ite (= ?x78 (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x102)))
+ (let ((?x114 (ite (= ?x78 (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x108)))
+ (let ((?x120 (ite (= ?x78 (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x114)))
+ (let ((?x126 (ite (= ?x78 (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x120)))
+ (let ((?x132 (ite (= ?x78 (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x126)))
+ (let ((?x138 (ite (= ?x78 (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x132)))
+ (let ((?x144 (ite (= ?x78 (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x138)))
+ (let ((?x149 (ite (= ?x78 (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x144)))
+ (let ((?x155 (ite (= ?x78 (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x149)))
+ (let ((?x161 (ite (= ?x78 (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x155)))
+ (let ((?x167 (ite (= ?x78 (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x161)))
+ (let ((?x173 (ite (= ?x78 (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x167)))
+ (let ((?x179 (ite (= ?x78 (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x173)))
+ (let ((?x185 (ite (= ?x78 (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x179)))
+ (let ((?x191 (ite (= ?x78 (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x185)))
+ (let ((?x197 (ite (= ?x78 (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x191)))
+ (let ((?x203 (ite (= ?x78 (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x197)))
+ (let ((?x209 (ite (= ?x78 (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x203)))
+ (let ((?x215 (ite (= ?x78 (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x209)))
+ (let ((?x221 (ite (= ?x78 (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x215)))
+ (let ((?x227 (ite (= ?x78 (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x221)))
+ (let ((?x233 (ite (= ?x78 (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x227)))
+ (let ((?x239 (ite (= ?x78 (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x233)))
+ (let ((?x245 (ite (= ?x78 (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x239)))
+ (let ((?x251 (ite (= ?x78 (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x245)))
+ (let ((?x257 (ite (= ?x78 (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x251)))
+ (let ((?x263 (ite (= ?x78 (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x257)))
+ (let ((?x268 (ite (= ?x78 (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x263)))
+ (let ((?x274 (ite (= ?x78 (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x268)))
+ (let ((?x280 (ite (= ?x78 (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x274)))
+ (let ((?x286 (ite (= ?x78 (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x280)))
+ (let ((?x292 (ite (= ?x78 (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x286)))
+ (let ((?x298 (ite (= ?x78 (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x292)))
+ (let ((?x304 (ite (= ?x78 (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x298)))
+ (let ((?x310 (ite (= ?x78 (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x304)))
+ (let ((?x316 (ite (= ?x78 (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x310)))
+ (let ((?x322 (ite (= ?x78 (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x316)))
+ (let ((?x328 (ite (= ?x78 (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x322)))
+ (let ((?x334 (ite (= ?x78 (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x328)))
+ (let ((?x340 (ite (= ?x78 (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x334)))
+ (let ((?x346 (ite (= ?x78 (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x340)))
+ (let ((?x352 (ite (= ?x78 (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x346)))
+ (let ((?x358 (ite (= ?x78 (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x352)))
+ (let ((?x364 (ite (= ?x78 (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x358)))
+ (let ((?x370 (ite (= ?x78 (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x364)))
+ (let ((?x376 (ite (= ?x78 (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x370)))
+ (let ((?x382 (ite (= ?x78 (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x376)))
+ (let ((?x388 (ite (= ?x78 (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x382)))
+ (let ((?x393 (ite (= ?x78 (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x388)))
+ (let ((?x399 (ite (= ?x78 (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x393)))
+ (let ((?x405 (ite (= ?x78 (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x399)))
+ (let ((?x411 (ite (= ?x78 (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x405)))
+ (let ((?x417 (ite (= ?x78 (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x411)))
+ (let ((?x423 (ite (= ?x78 (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x417)))
+ (let ((?x429 (ite (= ?x78 (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x423)))
+ (let ((?x435 (ite (= ?x78 (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x429)))
+ (let ((?x441 (ite (= ?x78 (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x435)))
+ (let ((?x447 (ite (= ?x78 (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x441)))
+ (let ((?x453 (ite (= ?x78 (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x447)))
+ (let ((?x65 (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x458 (ite (bvult ?x78 (_ bv64 64)) (ite (= ?x78 (_ bv0 64)) ?x65 ?x453) (_ bv0 64))))
+ (let ((?x460 (bvand ?x458 (_ bv4294967295 64))))
+ (let ((?x469 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x30)) (_ bv2047 64)))) (_ bv63 32))))
+ (let ((?x756 (concat (_ bv0 32) ?x469)))
+ (let ((?x760 (ite (= ?x756 (_ bv63 64)) (concat ((_ extract 0 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 63)) (_ bv0 64))))
+ (let ((?x764 (ite (= ?x756 (_ bv62 64)) (concat ((_ extract 1 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 62)) ?x760)))
+ (let ((?x768 (ite (= ?x756 (_ bv61 64)) (concat ((_ extract 2 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 61)) ?x764)))
+ (let ((?x772 (ite (= ?x756 (_ bv60 64)) (concat ((_ extract 3 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 60)) ?x768)))
+ (let ((?x776 (ite (= ?x756 (_ bv59 64)) (concat ((_ extract 4 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 59)) ?x772)))
+ (let ((?x780 (ite (= ?x756 (_ bv58 64)) (concat ((_ extract 5 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 58)) ?x776)))
+ (let ((?x784 (ite (= ?x756 (_ bv57 64)) (concat ((_ extract 6 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 57)) ?x780)))
+ (let ((?x788 (ite (= ?x756 (_ bv56 64)) (concat ((_ extract 7 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 56)) ?x784)))
+ (let ((?x792 (ite (= ?x756 (_ bv55 64)) (concat ((_ extract 8 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 55)) ?x788)))
+ (let ((?x796 (ite (= ?x756 (_ bv54 64)) (concat ((_ extract 9 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 54)) ?x792)))
+ (let ((?x800 (ite (= ?x756 (_ bv53 64)) (concat ((_ extract 10 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 53)) ?x796)))
+ (let ((?x804 (ite (= ?x756 (_ bv52 64)) (concat ((_ extract 11 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 52)) ?x800)))
+ (let ((?x808 (ite (= ?x756 (_ bv51 64)) (concat ((_ extract 12 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 51)) ?x804)))
+ (let ((?x812 (ite (= ?x756 (_ bv50 64)) (concat ((_ extract 13 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 50)) ?x808)))
+ (let ((?x816 (ite (= ?x756 (_ bv49 64)) (concat ((_ extract 14 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 49)) ?x812)))
+ (let ((?x820 (ite (= ?x756 (_ bv48 64)) (concat ((_ extract 15 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 48)) ?x816)))
+ (let ((?x824 (ite (= ?x756 (_ bv47 64)) (concat ((_ extract 16 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 47)) ?x820)))
+ (let ((?x828 (ite (= ?x756 (_ bv46 64)) (concat ((_ extract 17 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 46)) ?x824)))
+ (let ((?x832 (ite (= ?x756 (_ bv45 64)) (concat ((_ extract 18 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 45)) ?x828)))
+ (let ((?x836 (ite (= ?x756 (_ bv44 64)) (concat ((_ extract 19 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 44)) ?x832)))
+ (let ((?x840 (ite (= ?x756 (_ bv43 64)) (concat ((_ extract 20 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 43)) ?x836)))
+ (let ((?x844 (ite (= ?x756 (_ bv42 64)) (concat ((_ extract 21 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 42)) ?x840)))
+ (let ((?x848 (ite (= ?x756 (_ bv41 64)) (concat ((_ extract 22 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 41)) ?x844)))
+ (let ((?x852 (ite (= ?x756 (_ bv40 64)) (concat ((_ extract 23 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 40)) ?x848)))
+ (let ((?x856 (ite (= ?x756 (_ bv39 64)) (concat ((_ extract 24 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 39)) ?x852)))
+ (let ((?x860 (ite (= ?x756 (_ bv38 64)) (concat ((_ extract 25 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 38)) ?x856)))
+ (let ((?x864 (ite (= ?x756 (_ bv37 64)) (concat ((_ extract 26 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 37)) ?x860)))
+ (let ((?x868 (ite (= ?x756 (_ bv36 64)) (concat ((_ extract 27 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 36)) ?x864)))
+ (let ((?x872 (ite (= ?x756 (_ bv35 64)) (concat ((_ extract 28 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 35)) ?x868)))
+ (let ((?x876 (ite (= ?x756 (_ bv34 64)) (concat ((_ extract 29 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 34)) ?x872)))
+ (let ((?x880 (ite (= ?x756 (_ bv33 64)) (concat ((_ extract 30 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 33)) ?x876)))
+ (let ((?x884 (ite (= ?x756 (_ bv32 64)) (concat ((_ extract 31 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 32)) ?x880)))
+ (let ((?x888 (ite (= ?x756 (_ bv31 64)) (concat ((_ extract 32 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 31)) ?x884)))
+ (let ((?x892 (ite (= ?x756 (_ bv30 64)) (concat ((_ extract 33 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 30)) ?x888)))
+ (let ((?x896 (ite (= ?x756 (_ bv29 64)) (concat ((_ extract 34 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 29)) ?x892)))
+ (let ((?x900 (ite (= ?x756 (_ bv28 64)) (concat ((_ extract 35 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 28)) ?x896)))
+ (let ((?x904 (ite (= ?x756 (_ bv27 64)) (concat ((_ extract 36 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 27)) ?x900)))
+ (let ((?x908 (ite (= ?x756 (_ bv26 64)) (concat ((_ extract 37 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 26)) ?x904)))
+ (let ((?x912 (ite (= ?x756 (_ bv25 64)) (concat ((_ extract 38 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 25)) ?x908)))
+ (let ((?x916 (ite (= ?x756 (_ bv24 64)) (concat ((_ extract 39 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 24)) ?x912)))
+ (let ((?x920 (ite (= ?x756 (_ bv23 64)) (concat ((_ extract 40 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 23)) ?x916)))
+ (let ((?x924 (ite (= ?x756 (_ bv22 64)) (concat ((_ extract 41 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 22)) ?x920)))
+ (let ((?x928 (ite (= ?x756 (_ bv21 64)) (concat ((_ extract 42 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 21)) ?x924)))
+ (let ((?x932 (ite (= ?x756 (_ bv20 64)) (concat ((_ extract 43 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 20)) ?x928)))
+ (let ((?x936 (ite (= ?x756 (_ bv19 64)) (concat ((_ extract 44 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 19)) ?x932)))
+ (let ((?x940 (ite (= ?x756 (_ bv18 64)) (concat ((_ extract 45 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 18)) ?x936)))
+ (let ((?x944 (ite (= ?x756 (_ bv17 64)) (concat ((_ extract 46 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 17)) ?x940)))
+ (let ((?x948 (ite (= ?x756 (_ bv16 64)) (concat ((_ extract 47 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 16)) ?x944)))
+ (let ((?x952 (ite (= ?x756 (_ bv15 64)) (concat ((_ extract 48 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 15)) ?x948)))
+ (let ((?x956 (ite (= ?x756 (_ bv14 64)) (concat ((_ extract 49 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 14)) ?x952)))
+ (let ((?x960 (ite (= ?x756 (_ bv13 64)) (concat ((_ extract 50 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 13)) ?x956)))
+ (let ((?x964 (ite (= ?x756 (_ bv12 64)) (concat ((_ extract 51 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 12)) ?x960)))
+ (let ((?x968 (ite (= ?x756 (_ bv11 64)) (concat ((_ extract 52 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 11)) ?x964)))
+ (let ((?x972 (ite (= ?x756 (_ bv10 64)) (concat ((_ extract 53 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 10)) ?x968)))
+ (let ((?x976 (ite (= ?x756 (_ bv9 64)) (concat ((_ extract 54 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 9)) ?x972)))
+ (let ((?x980 (ite (= ?x756 (_ bv8 64)) (concat ((_ extract 55 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 8)) ?x976)))
+ (let ((?x984 (ite (= ?x756 (_ bv7 64)) (concat ((_ extract 56 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 7)) ?x980)))
+ (let ((?x988 (ite (= ?x756 (_ bv6 64)) (concat ((_ extract 57 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 6)) ?x984)))
+ (let ((?x992 (ite (= ?x756 (_ bv5 64)) (concat ((_ extract 58 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 5)) ?x988)))
+ (let ((?x996 (ite (= ?x756 (_ bv4 64)) (concat ((_ extract 59 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 4)) ?x992)))
+ (let ((?x1000 (ite (= ?x756 (_ bv3 64)) (concat ((_ extract 60 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 3)) ?x996)))
+ (let ((?x1004 (ite (= ?x756 (_ bv2 64)) (concat ((_ extract 61 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 2)) ?x1000)))
+ (let ((?x1008 (ite (= ?x756 (_ bv1 64)) (concat ((_ extract 62 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 1)) ?x1004)))
+ (let ((?x463 (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))))
+ (let ((?x1012 (ite (bvult ?x756 (_ bv64 64)) (ite (= ?x756 (_ bv0 64)) ?x463 ?x1008) (_ bv0 64))))
+ (let ((?x1013 (bvand ?x1012 (_ bv4294967295 64))))
+ (let ((?x1014 (bvmul ?x1013 ?x460)))
+ (let ((?x1018 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1014)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))))
+ (let ((?x1024 (bvadd (concat (_ bv0 64) ?x1018) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x460)))))
+ (let ((?x1029 ((_ extract 63 0) ?x1024)))
+ (let ((?x1037 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1029) (_ bv0 32)) (bvand ?x1014 (_ bv4294967295 64))))))
+ (let ((?x1050 (ite (= (concat (_ bv0 32) ?x76) (_ bv62 64)) (concat ((_ extract 1 0) ?x65) (_ bv0 62)) (ite (= (concat (_ bv0 32) ?x76) (_ bv63 64)) (concat ((_ extract 0 0) ?x65) (_ bv0 63)) (_ bv0 64)))))
+ (let ((?x1058 (ite (= (concat (_ bv0 32) ?x76) (_ bv60 64)) (concat ((_ extract 3 0) ?x65) (_ bv0 60)) (ite (= (concat (_ bv0 32) ?x76) (_ bv61 64)) (concat ((_ extract 2 0) ?x65) (_ bv0 61)) ?x1050))))
+ (let ((?x1066 (ite (= (concat (_ bv0 32) ?x76) (_ bv58 64)) (concat ((_ extract 5 0) ?x65) (_ bv0 58)) (ite (= (concat (_ bv0 32) ?x76) (_ bv59 64)) (concat ((_ extract 4 0) ?x65) (_ bv0 59)) ?x1058))))
+ (let ((?x1074 (ite (= (concat (_ bv0 32) ?x76) (_ bv56 64)) (concat ((_ extract 7 0) ?x65) (_ bv0 56)) (ite (= (concat (_ bv0 32) ?x76) (_ bv57 64)) (concat ((_ extract 6 0) ?x65) (_ bv0 57)) ?x1066))))
+ (let ((?x1082 (ite (= (concat (_ bv0 32) ?x76) (_ bv54 64)) (concat ((_ extract 9 0) ?x65) (_ bv0 54)) (ite (= (concat (_ bv0 32) ?x76) (_ bv55 64)) (concat ((_ extract 8 0) ?x65) (_ bv0 55)) ?x1074))))
+ (let ((?x1090 (ite (= (concat (_ bv0 32) ?x76) (_ bv52 64)) (concat ((_ extract 11 0) ?x65) (_ bv0 52)) (ite (= (concat (_ bv0 32) ?x76) (_ bv53 64)) (concat ((_ extract 10 0) ?x65) (_ bv0 53)) ?x1082))))
+ (let ((?x1098 (ite (= (concat (_ bv0 32) ?x76) (_ bv50 64)) (concat ((_ extract 13 0) ?x65) (_ bv0 50)) (ite (= (concat (_ bv0 32) ?x76) (_ bv51 64)) (concat ((_ extract 12 0) ?x65) (_ bv0 51)) ?x1090))))
+ (let ((?x1106 (ite (= (concat (_ bv0 32) ?x76) (_ bv48 64)) (concat ((_ extract 15 0) ?x65) (_ bv0 48)) (ite (= (concat (_ bv0 32) ?x76) (_ bv49 64)) (concat ((_ extract 14 0) ?x65) (_ bv0 49)) ?x1098))))
+ (let ((?x1114 (ite (= (concat (_ bv0 32) ?x76) (_ bv46 64)) (concat ((_ extract 17 0) ?x65) (_ bv0 46)) (ite (= (concat (_ bv0 32) ?x76) (_ bv47 64)) (concat ((_ extract 16 0) ?x65) (_ bv0 47)) ?x1106))))
+ (let ((?x1122 (ite (= (concat (_ bv0 32) ?x76) (_ bv44 64)) (concat ((_ extract 19 0) ?x65) (_ bv0 44)) (ite (= (concat (_ bv0 32) ?x76) (_ bv45 64)) (concat ((_ extract 18 0) ?x65) (_ bv0 45)) ?x1114))))
+ (let ((?x1130 (ite (= (concat (_ bv0 32) ?x76) (_ bv42 64)) (concat ((_ extract 21 0) ?x65) (_ bv0 42)) (ite (= (concat (_ bv0 32) ?x76) (_ bv43 64)) (concat ((_ extract 20 0) ?x65) (_ bv0 43)) ?x1122))))
+ (let ((?x1138 (ite (= (concat (_ bv0 32) ?x76) (_ bv40 64)) (concat ((_ extract 23 0) ?x65) (_ bv0 40)) (ite (= (concat (_ bv0 32) ?x76) (_ bv41 64)) (concat ((_ extract 22 0) ?x65) (_ bv0 41)) ?x1130))))
+ (let ((?x1146 (ite (= (concat (_ bv0 32) ?x76) (_ bv38 64)) (concat ((_ extract 25 0) ?x65) (_ bv0 38)) (ite (= (concat (_ bv0 32) ?x76) (_ bv39 64)) (concat ((_ extract 24 0) ?x65) (_ bv0 39)) ?x1138))))
+ (let ((?x1154 (ite (= (concat (_ bv0 32) ?x76) (_ bv36 64)) (concat ((_ extract 27 0) ?x65) (_ bv0 36)) (ite (= (concat (_ bv0 32) ?x76) (_ bv37 64)) (concat ((_ extract 26 0) ?x65) (_ bv0 37)) ?x1146))))
+ (let ((?x1162 (ite (= (concat (_ bv0 32) ?x76) (_ bv34 64)) (concat ((_ extract 29 0) ?x65) (_ bv0 34)) (ite (= (concat (_ bv0 32) ?x76) (_ bv35 64)) (concat ((_ extract 28 0) ?x65) (_ bv0 35)) ?x1154))))
+ (let ((?x1170 (ite (= (concat (_ bv0 32) ?x76) (_ bv32 64)) (concat ((_ extract 31 0) ?x65) (_ bv0 32)) (ite (= (concat (_ bv0 32) ?x76) (_ bv33 64)) (concat ((_ extract 30 0) ?x65) (_ bv0 33)) ?x1162))))
+ (let ((?x1178 (ite (= (concat (_ bv0 32) ?x76) (_ bv30 64)) (concat ((_ extract 33 0) ?x65) (_ bv0 30)) (ite (= (concat (_ bv0 32) ?x76) (_ bv31 64)) (concat ((_ extract 32 0) ?x65) (_ bv0 31)) ?x1170))))
+ (let ((?x1186 (ite (= (concat (_ bv0 32) ?x76) (_ bv28 64)) (concat ((_ extract 35 0) ?x65) (_ bv0 28)) (ite (= (concat (_ bv0 32) ?x76) (_ bv29 64)) (concat ((_ extract 34 0) ?x65) (_ bv0 29)) ?x1178))))
+ (let ((?x1194 (ite (= (concat (_ bv0 32) ?x76) (_ bv26 64)) (concat ((_ extract 37 0) ?x65) (_ bv0 26)) (ite (= (concat (_ bv0 32) ?x76) (_ bv27 64)) (concat ((_ extract 36 0) ?x65) (_ bv0 27)) ?x1186))))
+ (let ((?x1202 (ite (= (concat (_ bv0 32) ?x76) (_ bv24 64)) (concat ((_ extract 39 0) ?x65) (_ bv0 24)) (ite (= (concat (_ bv0 32) ?x76) (_ bv25 64)) (concat ((_ extract 38 0) ?x65) (_ bv0 25)) ?x1194))))
+ (let ((?x1210 (ite (= (concat (_ bv0 32) ?x76) (_ bv22 64)) (concat ((_ extract 41 0) ?x65) (_ bv0 22)) (ite (= (concat (_ bv0 32) ?x76) (_ bv23 64)) (concat ((_ extract 40 0) ?x65) (_ bv0 23)) ?x1202))))
+ (let ((?x1218 (ite (= (concat (_ bv0 32) ?x76) (_ bv20 64)) (concat ((_ extract 43 0) ?x65) (_ bv0 20)) (ite (= (concat (_ bv0 32) ?x76) (_ bv21 64)) (concat ((_ extract 42 0) ?x65) (_ bv0 21)) ?x1210))))
+ (let ((?x1226 (ite (= (concat (_ bv0 32) ?x76) (_ bv18 64)) (concat ((_ extract 45 0) ?x65) (_ bv0 18)) (ite (= (concat (_ bv0 32) ?x76) (_ bv19 64)) (concat ((_ extract 44 0) ?x65) (_ bv0 19)) ?x1218))))
+ (let ((?x1234 (ite (= (concat (_ bv0 32) ?x76) (_ bv16 64)) (concat ((_ extract 47 0) ?x65) (_ bv0 16)) (ite (= (concat (_ bv0 32) ?x76) (_ bv17 64)) (concat ((_ extract 46 0) ?x65) (_ bv0 17)) ?x1226))))
+ (let ((?x1242 (ite (= (concat (_ bv0 32) ?x76) (_ bv14 64)) (concat ((_ extract 49 0) ?x65) (_ bv0 14)) (ite (= (concat (_ bv0 32) ?x76) (_ bv15 64)) (concat ((_ extract 48 0) ?x65) (_ bv0 15)) ?x1234))))
+ (let ((?x1250 (ite (= (concat (_ bv0 32) ?x76) (_ bv12 64)) (concat ((_ extract 51 0) ?x65) (_ bv0 12)) (ite (= (concat (_ bv0 32) ?x76) (_ bv13 64)) (concat ((_ extract 50 0) ?x65) (_ bv0 13)) ?x1242))))
+ (let ((?x1258 (ite (= (concat (_ bv0 32) ?x76) (_ bv10 64)) (concat ((_ extract 53 0) ?x65) (_ bv0 10)) (ite (= (concat (_ bv0 32) ?x76) (_ bv11 64)) (concat ((_ extract 52 0) ?x65) (_ bv0 11)) ?x1250))))
+ (let ((?x1266 (ite (= (concat (_ bv0 32) ?x76) (_ bv8 64)) (concat ((_ extract 55 0) ?x65) (_ bv0 8)) (ite (= (concat (_ bv0 32) ?x76) (_ bv9 64)) (concat ((_ extract 54 0) ?x65) (_ bv0 9)) ?x1258))))
+ (let ((?x1274 (ite (= (concat (_ bv0 32) ?x76) (_ bv6 64)) (concat ((_ extract 57 0) ?x65) (_ bv0 6)) (ite (= (concat (_ bv0 32) ?x76) (_ bv7 64)) (concat ((_ extract 56 0) ?x65) (_ bv0 7)) ?x1266))))
+ (let ((?x1282 (ite (= (concat (_ bv0 32) ?x76) (_ bv4 64)) (concat ((_ extract 59 0) ?x65) (_ bv0 4)) (ite (= (concat (_ bv0 32) ?x76) (_ bv5 64)) (concat ((_ extract 58 0) ?x65) (_ bv0 5)) ?x1274))))
+ (let ((?x1290 (ite (= (concat (_ bv0 32) ?x76) (_ bv2 64)) (concat ((_ extract 61 0) ?x65) (_ bv0 2)) (ite (= (concat (_ bv0 32) ?x76) (_ bv3 64)) (concat ((_ extract 60 0) ?x65) (_ bv0 3)) ?x1282))))
+ (let ((?x1296 (ite (= (concat (_ bv0 32) ?x76) (_ bv0 64)) ?x65 (ite (= (concat (_ bv0 32) ?x76) (_ bv1 64)) (concat ((_ extract 62 0) ?x65) (_ bv0 1)) ?x1290))))
+ (let ((?x1298 (ite (bvult (concat (_ bv0 32) ?x76) (_ bv64 64)) ?x1296 (_ bv0 64))))
+ (let ((?x1299 (bvand ?x1298 (_ bv4294967295 64))))
+ (let ((?x1324 (bvmul ?x1013 ?x1299)))
+ (let ((?x1328 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1324)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))))
+ (let ((?x1332 (bvadd (concat (_ bv0 64) ?x1328) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x1299)))))
+ (let ((?x1337 ((_ extract 63 0) ?x1332)))
+ (let ((?x1345 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1337) (_ bv0 32)) (bvand ?x1324 (_ bv4294967295 64))))))
+ (let ((?x60 (concat (_ bv0 64) (_ bv18446744073709551615 64))))
+ (let ((?x1304 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))
+ (let ((?x1021 (concat (_ bv0 32) ((_ extract 63 32) ?x1012))))
+ (let ((?x1334 (bvmul ?x1021 ?x1304)))
+ (let ((?x1340 (bvadd (ite (bvult ?x60 ?x1332) (bvadd (_ bv4294967296 64) ?x1334) ?x1334) (concat (_ bv0 32) ((_ extract 63 32) ?x1337)))))
+ (let ((?x475 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x463)) (_ bv0 64))))
+ (let ((?x479 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x463)) ?x475)))
+ (let ((?x483 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x463)) ?x479)))
+ (let ((?x487 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x463)) ?x483)))
+ (let ((?x491 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x463)) ?x487)))
+ (let ((?x495 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x463)) ?x491)))
+ (let ((?x499 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x463)) ?x495)))
+ (let ((?x503 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x463)) ?x499)))
+ (let ((?x507 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x463)) ?x503)))
+ (let ((?x511 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x463)) ?x507)))
+ (let ((?x515 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x463)) ?x511)))
+ (let ((?x519 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x463)) ?x515)))
+ (let ((?x523 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x463)) ?x519)))
+ (let ((?x527 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x463)) ?x523)))
+ (let ((?x531 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x463)) ?x527)))
+ (let ((?x535 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x463)) ?x531)))
+ (let ((?x539 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x463)) ?x535)))
+ (let ((?x543 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x463)) ?x539)))
+ (let ((?x547 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x463)) ?x543)))
+ (let ((?x551 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x463)) ?x547)))
+ (let ((?x555 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x463)) ?x551)))
+ (let ((?x559 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x463)) ?x555)))
+ (let ((?x563 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x463)) ?x559)))
+ (let ((?x567 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x463)) ?x563)))
+ (let ((?x571 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x463)) ?x567)))
+ (let ((?x575 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x463)) ?x571)))
+ (let ((?x579 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x463)) ?x575)))
+ (let ((?x583 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x463)) ?x579)))
+ (let ((?x587 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x463)) ?x583)))
+ (let ((?x591 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x463)) ?x587)))
+ (let ((?x595 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x463)) ?x591)))
+ (let ((?x599 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x463)) ?x595)))
+ (let ((?x603 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x463)) ?x599)))
+ (let ((?x607 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x463)) ?x603)))
+ (let ((?x611 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x463)) ?x607)))
+ (let ((?x615 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x463)) ?x611)))
+ (let ((?x619 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x463)) ?x615)))
+ (let ((?x623 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x463)) ?x619)))
+ (let ((?x627 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x463)) ?x623)))
+ (let ((?x631 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x463)) ?x627)))
+ (let ((?x635 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x463)) ?x631)))
+ (let ((?x639 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x463)) ?x635)))
+ (let ((?x643 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x463)) ?x639)))
+ (let ((?x647 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x463)) ?x643)))
+ (let ((?x651 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x463)) ?x647)))
+ (let ((?x655 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x463)) ?x651)))
+ (let ((?x659 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x463)) ?x655)))
+ (let ((?x663 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x463)) ?x659)))
+ (let ((?x667 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x463)) ?x663)))
+ (let ((?x671 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x463)) ?x667)))
+ (let ((?x675 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x463)) ?x671)))
+ (let ((?x679 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x463)) ?x675)))
+ (let ((?x683 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x463)) ?x679)))
+ (let ((?x687 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x463)) ?x683)))
+ (let ((?x691 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x463)) ?x687)))
+ (let ((?x695 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x463)) ?x691)))
+ (let ((?x699 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x463)) ?x695)))
+ (let ((?x703 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x463)) ?x699)))
+ (let ((?x707 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x463)) ?x703)))
+ (let ((?x711 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x463)) ?x707)))
+ (let ((?x715 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x463)) ?x711)))
+ (let ((?x719 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x463)) ?x715)))
+ (let ((?x723 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x463)) ?x719)))
+ (let ((?x727 (ite (bvult (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv64 64)) (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv0 64)) ?x463 ?x723) (_ bv0 64))))
+ (let ((?x728 (bvand ?x727 (_ bv4294967295 64))))
+ (let ((?x1300 (bvmul ?x728 ?x1299)))
+ (let ((?x1310 (bvadd (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1300)) (bvmul ?x728 ?x1304))) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x727)) ?x1299)))))
+ (let ((?x1315 ((_ extract 63 0) ?x1310)))
+ (let ((?x1350 (bvadd (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1315) (_ bv0 32)) (bvand ?x1300 (_ bv4294967295 64)))) (concat (_ bv0 64) (bvadd ?x1340 (ite (bvult ?x60 ?x1345) (_ bv1 64) (_ bv0 64)))))))
+ (let ((?x738 (concat (_ bv0 32) ((_ extract 63 32) ?x727))))
+ (let ((?x1312 (bvmul ?x738 ?x1304)))
+ (let ((?x1318 (bvadd (ite (bvult ?x60 ?x1310) (bvadd (_ bv4294967296 64) ?x1312) ?x1312) (concat (_ bv0 32) ((_ extract 63 32) ?x1315)))))
+ (let ((?x1353 (bvadd ?x1318 (ite (bvult ?x60 ?x1350) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1365 ((_ extract 31 0) (bvmul (_ bv8 64) ?x1363))))
+ (let ((?x1425 (store (store (store (store const_arr12 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1429 (store (store (store (store ?x1425 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1433 (store (store (store (store ?x1429 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1437 (store (store (store (store ?x1433 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1441 (store (store (store (store ?x1437 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1445 (store (store (store (store ?x1441 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1449 (store (store (store (store ?x1445 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+ (let ((?x1453 (store (store (store (store ?x1449 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+ (let ((?x1455 (store (store ?x1453 (_ bv0 32) ((_ extract 7 0) ((_ extract 63 0) ?x1345))) (_ bv1 32) ((_ extract 15 8) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1457 (store (store ?x1455 (_ bv2 32) ((_ extract 23 16) ((_ extract 63 0) ?x1345))) (_ bv3 32) ((_ extract 31 24) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1459 (store (store ?x1457 (_ bv4 32) ((_ extract 39 32) ((_ extract 63 0) ?x1345))) (_ bv5 32) ((_ extract 47 40) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1461 (store (store ?x1459 (_ bv6 32) ((_ extract 55 48) ((_ extract 63 0) ?x1345))) (_ bv7 32) ((_ extract 63 56) ((_ extract 63 0) ?x1345)))))
+ (let ((?x1463 (store (store ?x1461 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1350))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1465 (store (store ?x1463 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1350))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1467 (store (store ?x1465 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1350))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1469 (store (store ?x1467 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1350))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1350)))))
+ (let ((?x1473 (store (store (store (store ?x1469 (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8)) (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8))))
+ (let ((?x1477 (store (store (store (store ?x1473 (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8)) (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8))))
+ (let ((?x1481 (store (store (store (store ?x1477 (_ bv24 32) (_ bv171 8)) (_ bv25 32) (_ bv171 8)) (_ bv26 32) (_ bv171 8)) (_ bv27 32) (_ bv171 8))))
+ (let ((?x1485 (store (store (store (store ?x1481 (_ bv28 32) (_ bv171 8)) (_ bv29 32) (_ bv171 8)) (_ bv30 32) (_ bv171 8)) (_ bv31 32) (_ bv171 8))))
+ (let ((?x1487 (store (store ?x1485 ?x1365 ((_ extract 7 0) ?x1353)) (bvadd (_ bv1 32) ?x1365) ((_ extract 15 8) ?x1353))))
+ (let ((?x1489 (store (store ?x1487 (bvadd (_ bv2 32) ?x1365) ((_ extract 23 16) ?x1353)) (bvadd (_ bv3 32) ?x1365) ((_ extract 31 24) ?x1353))))
+ (let ((?x1491 (store (store ?x1489 (bvadd (_ bv4 32) ?x1365) ((_ extract 39 32) ?x1353)) (bvadd (_ bv5 32) ?x1365) ((_ extract 47 40) ?x1353))))
+ (let ((?x1493 (store (store ?x1491 (bvadd (_ bv6 32) ?x1365) ((_ extract 55 48) ?x1353)) (bvadd (_ bv7 32) ?x1365) ((_ extract 63 56) ?x1353))))
+ (let ((?x1498 (concat (select ?x1493 (_ bv10 32)) (concat (select ?x1493 (_ bv9 32)) (select ?x1493 (_ bv8 32))))))
+ (let ((?x1504 (concat (select ?x1493 (_ bv13 32)) (concat (select ?x1493 (_ bv12 32)) (concat (select ?x1493 (_ bv11 32)) ?x1498)))))
+ (let ((?x1509 (concat (_ bv0 64) (concat (select ?x1493 (_ bv15 32)) (concat (select ?x1493 (_ bv14 32)) ?x1504)))))
+ (let ((?x1512 (bvadd ?x1509 (concat (_ bv0 64) ((_ extract 63 0) ?x1037)))))
+ (let ((?x733 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))
+ (let ((?x1026 (bvmul ?x1021 ?x733)))
+ (let ((?x1032 (bvadd (ite (bvult ?x60 ?x1024) (bvadd (_ bv4294967296 64) ?x1026) ?x1026) (concat (_ bv0 32) ((_ extract 63 32) ?x1029)))))
+ (let ((?x1515 (bvadd (bvadd ?x1032 (ite (bvult ?x60 ?x1037) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1512) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x736 (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) (bvmul ?x728 ?x460))) (bvmul ?x728 ?x733)))))
+ (let ((?x741 (bvadd ?x736 (concat (_ bv0 64) (bvmul ?x738 ?x460)))))
+ (let ((?x747 ((_ extract 63 0) ?x741)))
+ (let ((?x755 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x747) (_ bv0 32)) (bvand (bvmul ?x728 ?x460) (_ bv4294967295 64))))))
+ (let ((?x1517 (bvadd ?x755 (concat (_ bv0 64) ?x1515))))
+ (let ((?x1525 (concat (select ?x1493 (_ bv18 32)) (concat (select ?x1493 (_ bv17 32)) (select ?x1493 (_ bv16 32))))))
+ (let ((?x1531 (concat (select ?x1493 (_ bv21 32)) (concat (select ?x1493 (_ bv20 32)) (concat (select ?x1493 (_ bv19 32)) ?x1525)))))
+ (let ((?x1536 (concat (_ bv0 64) (concat (select ?x1493 (_ bv23 32)) (concat (select ?x1493 (_ bv22 32)) ?x1531)))))
+ (let ((?x1539 (bvadd ?x1536 (concat (_ bv0 64) ((_ extract 63 0) ?x1517)))))
+ (let ((?x744 (bvmul ?x738 ?x733)))
+ (let ((?x750 (bvadd (ite (bvult ?x60 ?x741) (bvadd (_ bv4294967296 64) ?x744) ?x744) (concat (_ bv0 32) ((_ extract 63 32) ?x747)))))
+ (let ((?x1542 (bvadd (bvadd ?x750 (ite (bvult ?x60 ?x1517) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1539) (_ bv1 64) (_ bv0 64)))))
+ (let ((?x1546 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv1 64) ?x1363)))))
+ (let ((?x1580 (store (store ?x1493 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1512))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1582 (store (store ?x1580 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1512))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1584 (store (store ?x1582 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1512))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1586 (store (store ?x1584 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1512))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1512)))))
+ (let ((?x1588 (store (store ?x1586 (_ bv16 32) ((_ extract 7 0) ((_ extract 63 0) ?x1539))) (_ bv17 32) ((_ extract 15 8) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1590 (store (store ?x1588 (_ bv18 32) ((_ extract 23 16) ((_ extract 63 0) ?x1539))) (_ bv19 32) ((_ extract 31 24) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1592 (store (store ?x1590 (_ bv20 32) ((_ extract 39 32) ((_ extract 63 0) ?x1539))) (_ bv21 32) ((_ extract 47 40) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1594 (store (store ?x1592 (_ bv22 32) ((_ extract 55 48) ((_ extract 63 0) ?x1539))) (_ bv23 32) ((_ extract 63 56) ((_ extract 63 0) ?x1539)))))
+ (let ((?x1596 (store (store ?x1594 ?x1546 ((_ extract 7 0) ?x1542)) (bvadd (_ bv1 32) ?x1546) ((_ extract 15 8) ?x1542))))
+ (let ((?x1598 (store (store ?x1596 (bvadd (_ bv2 32) ?x1546) ((_ extract 23 16) ?x1542)) (bvadd (_ bv3 32) ?x1546) ((_ extract 31 24) ?x1542))))
+ (let ((?x1600 (store (store ?x1598 (bvadd (_ bv4 32) ?x1546) ((_ extract 39 32) ?x1542)) (bvadd (_ bv5 32) ?x1546) ((_ extract 47 40) ?x1542))))
+ (let ((?x1602 (store (store ?x1600 (bvadd (_ bv6 32) ?x1546) ((_ extract 55 48) ?x1542)) (bvadd (_ bv7 32) ?x1546) ((_ extract 63 56) ?x1542))))
+ (let ((?x1620 (concat (select ?x1602 (bvadd (_ bv2 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv1 32) ?x1613)) (select ?x1602 ?x1613)))))
+ (let ((?x1626 (concat (select ?x1602 (bvadd (_ bv4 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv3 32) ?x1613)) ?x1620))))
+ (let ((?x1632 (concat (select ?x1602 (bvadd (_ bv6 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv5 32) ?x1613)) ?x1626))))
+ (let ((?x1637 (ite (= (_ bv0 64) (concat (select ?x1602 (bvadd (_ bv7 32) ?x1613)) ?x1632)) (_ bv1 64) (_ bv0 64))))
+ (let ((?x1638 (bvsub ?x1610 ?x1637)))
+ (let ((?x1767 ((_ extract 31 0) (ite (bvslt (_ bv4294967295 32) (bvxor ?x1605 ?x1359)) ?x1638 (bvsub (_ bv0 64) ?x1638)))))
+ (let ((?x1769 ((_ sign_extend 32) ?x1767)))
+ (let ((?x1773 (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551614 64) (ite (bvslt (_ bv4294967295 32) ?x1767) ?x1769 (bvsub (_ bv0 64) ?x1769))))))
+ (let ((?x1775 ((_ extract 31 0) (bvadd (_ bv8 64) ?x1773))))
+ (let ((?x1641 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1638)))))
+ (let ((?x1676 (store (store (store (store const_arr23 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+ (let ((?x1680 (store (store (store (store ?x1676 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+ (let ((?x1684 (store (store (store (store ?x1680 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+ (let ((?x1688 (store (store (store (store ?x1684 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+ (let ((?x1692 (store (store (store (store ?x1688 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+ (let ((?x1696 (store (store (store (store ?x1692 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+ (let ((?x1699 (store (store (store ?x1696 (_ bv0 32) (select ?x1602 (_ bv0 32))) (_ bv1 32) (select ?x1602 (_ bv1 32))) (_ bv2 32) (select ?x1602 (_ bv2 32)))))
+ (let ((?x1702 (store (store (store ?x1699 (_ bv3 32) (select ?x1602 (_ bv3 32))) (_ bv4 32) (select ?x1602 (_ bv4 32))) (_ bv5 32) (select ?x1602 (_ bv5 32)))))
+ (let ((?x1705 (store (store (store ?x1702 (_ bv6 32) (select ?x1602 (_ bv6 32))) (_ bv7 32) (select ?x1602 (_ bv7 32))) (_ bv8 32) (select ?x1602 (_ bv8 32)))))
+ (let ((?x1708 (store (store (store ?x1705 (_ bv9 32) (select ?x1602 (_ bv9 32))) (_ bv10 32) (select ?x1602 (_ bv10 32))) (_ bv11 32) (select ?x1602 (_ bv11 32)))))
+ (let ((?x1711 (store (store (store ?x1708 (_ bv12 32) (select ?x1602 (_ bv12 32))) (_ bv13 32) (select ?x1602 (_ bv13 32))) (_ bv14 32) (select ?x1602 (_ bv14 32)))))
+ (let ((?x1714 (store (store (store ?x1711 (_ bv15 32) (select ?x1602 (_ bv15 32))) (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8))))
+ (let ((?x1718 (store (store (store (store ?x1714 (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8)) (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8))))
+ (let ((?x1721 (store (store (store ?x1718 (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8)) ?x1641 (select ?x1602 (_ bv16 32)))))
+ (let ((?x1723 (store (store ?x1721 (bvadd (_ bv1 32) ?x1641) (select ?x1602 (_ bv17 32))) (bvadd (_ bv2 32) ?x1641) (select ?x1602 (_ bv18 32)))))
+ (let ((?x1725 (store (store ?x1723 (bvadd (_ bv3 32) ?x1641) (select ?x1602 (_ bv19 32))) (bvadd (_ bv4 32) ?x1641) (select ?x1602 (_ bv20 32)))))
+ (let ((?x1727 (store (store ?x1725 (bvadd (_ bv5 32) ?x1641) (select ?x1602 (_ bv21 32))) (bvadd (_ bv6 32) ?x1641) (select ?x1602 (_ bv22 32)))))
+ (let ((?x1728 (store ?x1727 (bvadd (_ bv7 32) ?x1641) (select ?x1602 (_ bv23 32)))))
+ (let ((?x1782 (concat (select ?x1728 (bvadd (_ bv2 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv1 32) ?x1775)) (select ?x1728 ?x1775)))))
+ (let ((?x1788 (concat (select ?x1728 (bvadd (_ bv4 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv3 32) ?x1775)) ?x1782))))
+ (let ((?x1794 (concat (select ?x1728 (bvadd (_ bv6 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv5 32) ?x1775)) ?x1788))))
+ (let ((?x1797 (concat (select ?x1728 (bvadd (_ bv7 32) ?x1775)) ?x1794)))
+ (not (= (_ bv1 64) ?x1797))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(assert
+ (let ((?x15 (concat (select d10 (_ bv2 32)) (concat (select d10 (_ bv1 32)) (select d10 (_ bv0 32))))))
+(let ((?x24 (concat (select d10 (_ bv5 32)) (concat (select d10 (_ bv4 32)) (concat (select d10 (_ bv3 32)) ?x15)))))
+(let ((?x30 (concat (select d10 (_ bv7 32)) (concat (select d10 (_ bv6 32)) ?x24))))
+(let ((?x31 ((_ to_fp 11 53) ?x30)))
+(let ((?x1359 (ite (fp.lt ?x31 ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+(let ((?x1361 ((_ sign_extend 32) ?x1359)))
+(let ((?x1363 (ite (bvslt (_ bv4294967295 32) ?x1359) ?x1361 (bvsub (_ bv0 64) ?x1361))))
+(let ((?x43 (concat (select d21 (_ bv2 32)) (concat (select d21 (_ bv1 32)) (select d21 (_ bv0 32))))))
+(let ((?x49 (concat (select d21 (_ bv5 32)) (concat (select d21 (_ bv4 32)) (concat (select d21 (_ bv3 32)) ?x43)))))
+(let ((?x53 (concat (select d21 (_ bv7 32)) (concat (select d21 (_ bv6 32)) ?x49))))
+(let ((?x54 ((_ to_fp 11 53) ?x53)))
+(let ((?x1605 (ite (fp.lt ?x54 ((_ to_fp 11 53) (_ bv0 64))) (_ bv4294967294 32) (_ bv2 32))))
+(let ((?x1607 ((_ sign_extend 32) ?x1605)))
+(let ((?x1610 (bvadd (ite (bvslt (_ bv4294967295 32) ?x1605) ?x1607 (bvsub (_ bv0 64) ?x1607)) ?x1363)))
+(let ((?x1613 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1610)))))
+(let ((?x76 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x53)) (_ bv2047 64)))) (_ bv63 32))))
+(let ((?x78 (concat (_ bv0 32) (bvsub (_ bv64 32) ?x76))))
+(let ((?x84 (ite (= ?x78 (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) (_ bv0 64))))
+(let ((?x90 (ite (= ?x78 (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x84)))
+(let ((?x96 (ite (= ?x78 (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x90)))
+(let ((?x102 (ite (= ?x78 (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x96)))
+(let ((?x108 (ite (= ?x78 (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x102)))
+(let ((?x114 (ite (= ?x78 (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x108)))
+(let ((?x120 (ite (= ?x78 (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x114)))
+(let ((?x126 (ite (= ?x78 (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x120)))
+(let ((?x132 (ite (= ?x78 (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x126)))
+(let ((?x138 (ite (= ?x78 (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x132)))
+(let ((?x144 (ite (= ?x78 (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x138)))
+(let ((?x149 (ite (= ?x78 (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x144)))
+(let ((?x155 (ite (= ?x78 (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x149)))
+(let ((?x161 (ite (= ?x78 (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x155)))
+(let ((?x167 (ite (= ?x78 (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x161)))
+(let ((?x173 (ite (= ?x78 (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x167)))
+(let ((?x179 (ite (= ?x78 (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x173)))
+(let ((?x185 (ite (= ?x78 (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x179)))
+(let ((?x191 (ite (= ?x78 (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x185)))
+(let ((?x197 (ite (= ?x78 (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x191)))
+(let ((?x203 (ite (= ?x78 (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x197)))
+(let ((?x209 (ite (= ?x78 (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x203)))
+(let ((?x215 (ite (= ?x78 (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x209)))
+(let ((?x221 (ite (= ?x78 (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x215)))
+(let ((?x227 (ite (= ?x78 (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x221)))
+(let ((?x233 (ite (= ?x78 (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x227)))
+(let ((?x239 (ite (= ?x78 (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x233)))
+(let ((?x245 (ite (= ?x78 (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x239)))
+(let ((?x251 (ite (= ?x78 (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x245)))
+(let ((?x257 (ite (= ?x78 (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x251)))
+(let ((?x263 (ite (= ?x78 (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x257)))
+(let ((?x268 (ite (= ?x78 (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x263)))
+(let ((?x274 (ite (= ?x78 (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x268)))
+(let ((?x280 (ite (= ?x78 (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x274)))
+(let ((?x286 (ite (= ?x78 (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x280)))
+(let ((?x292 (ite (= ?x78 (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x286)))
+(let ((?x298 (ite (= ?x78 (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x292)))
+(let ((?x304 (ite (= ?x78 (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x298)))
+(let ((?x310 (ite (= ?x78 (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x304)))
+(let ((?x316 (ite (= ?x78 (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x310)))
+(let ((?x322 (ite (= ?x78 (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x316)))
+(let ((?x328 (ite (= ?x78 (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x322)))
+(let ((?x334 (ite (= ?x78 (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x328)))
+(let ((?x340 (ite (= ?x78 (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x334)))
+(let ((?x346 (ite (= ?x78 (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x340)))
+(let ((?x352 (ite (= ?x78 (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x346)))
+(let ((?x358 (ite (= ?x78 (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x352)))
+(let ((?x364 (ite (= ?x78 (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x358)))
+(let ((?x370 (ite (= ?x78 (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x364)))
+(let ((?x376 (ite (= ?x78 (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x370)))
+(let ((?x382 (ite (= ?x78 (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x376)))
+(let ((?x388 (ite (= ?x78 (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x382)))
+(let ((?x393 (ite (= ?x78 (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x388)))
+(let ((?x399 (ite (= ?x78 (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x393)))
+(let ((?x405 (ite (= ?x78 (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x399)))
+(let ((?x411 (ite (= ?x78 (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x405)))
+(let ((?x417 (ite (= ?x78 (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x411)))
+(let ((?x423 (ite (= ?x78 (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x417)))
+(let ((?x429 (ite (= ?x78 (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x423)))
+(let ((?x435 (ite (= ?x78 (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x429)))
+(let ((?x441 (ite (= ?x78 (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x435)))
+(let ((?x447 (ite (= ?x78 (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x441)))
+(let ((?x453 (ite (= ?x78 (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64)))) ?x447)))
+(let ((?x65 (bvor (concat ((_ extract 52 0) ?x53) (_ bv0 11)) (_ bv9223372036854775808 64))))
+(let ((?x458 (ite (bvult ?x78 (_ bv64 64)) (ite (= ?x78 (_ bv0 64)) ?x65 ?x453) (_ bv0 64))))
+(let ((?x460 (bvand ?x458 (_ bv4294967295 64))))
+(let ((?x469 (bvand ((_ extract 31 0) (bvadd (_ bv3074 64) (bvand (concat (_ bv0 52) ((_ extract 63 52) ?x30)) (_ bv2047 64)))) (_ bv63 32))))
+(let ((?x756 (concat (_ bv0 32) ?x469)))
+(let ((?x760 (ite (= ?x756 (_ bv63 64)) (concat ((_ extract 0 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 63)) (_ bv0 64))))
+(let ((?x764 (ite (= ?x756 (_ bv62 64)) (concat ((_ extract 1 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 62)) ?x760)))
+(let ((?x768 (ite (= ?x756 (_ bv61 64)) (concat ((_ extract 2 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 61)) ?x764)))
+(let ((?x772 (ite (= ?x756 (_ bv60 64)) (concat ((_ extract 3 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 60)) ?x768)))
+(let ((?x776 (ite (= ?x756 (_ bv59 64)) (concat ((_ extract 4 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 59)) ?x772)))
+(let ((?x780 (ite (= ?x756 (_ bv58 64)) (concat ((_ extract 5 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 58)) ?x776)))
+(let ((?x784 (ite (= ?x756 (_ bv57 64)) (concat ((_ extract 6 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 57)) ?x780)))
+(let ((?x788 (ite (= ?x756 (_ bv56 64)) (concat ((_ extract 7 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 56)) ?x784)))
+(let ((?x792 (ite (= ?x756 (_ bv55 64)) (concat ((_ extract 8 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 55)) ?x788)))
+(let ((?x796 (ite (= ?x756 (_ bv54 64)) (concat ((_ extract 9 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 54)) ?x792)))
+(let ((?x800 (ite (= ?x756 (_ bv53 64)) (concat ((_ extract 10 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 53)) ?x796)))
+(let ((?x804 (ite (= ?x756 (_ bv52 64)) (concat ((_ extract 11 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 52)) ?x800)))
+(let ((?x808 (ite (= ?x756 (_ bv51 64)) (concat ((_ extract 12 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 51)) ?x804)))
+(let ((?x812 (ite (= ?x756 (_ bv50 64)) (concat ((_ extract 13 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 50)) ?x808)))
+(let ((?x816 (ite (= ?x756 (_ bv49 64)) (concat ((_ extract 14 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 49)) ?x812)))
+(let ((?x820 (ite (= ?x756 (_ bv48 64)) (concat ((_ extract 15 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 48)) ?x816)))
+(let ((?x824 (ite (= ?x756 (_ bv47 64)) (concat ((_ extract 16 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 47)) ?x820)))
+(let ((?x828 (ite (= ?x756 (_ bv46 64)) (concat ((_ extract 17 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 46)) ?x824)))
+(let ((?x832 (ite (= ?x756 (_ bv45 64)) (concat ((_ extract 18 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 45)) ?x828)))
+(let ((?x836 (ite (= ?x756 (_ bv44 64)) (concat ((_ extract 19 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 44)) ?x832)))
+(let ((?x840 (ite (= ?x756 (_ bv43 64)) (concat ((_ extract 20 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 43)) ?x836)))
+(let ((?x844 (ite (= ?x756 (_ bv42 64)) (concat ((_ extract 21 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 42)) ?x840)))
+(let ((?x848 (ite (= ?x756 (_ bv41 64)) (concat ((_ extract 22 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 41)) ?x844)))
+(let ((?x852 (ite (= ?x756 (_ bv40 64)) (concat ((_ extract 23 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 40)) ?x848)))
+(let ((?x856 (ite (= ?x756 (_ bv39 64)) (concat ((_ extract 24 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 39)) ?x852)))
+(let ((?x860 (ite (= ?x756 (_ bv38 64)) (concat ((_ extract 25 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 38)) ?x856)))
+(let ((?x864 (ite (= ?x756 (_ bv37 64)) (concat ((_ extract 26 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 37)) ?x860)))
+(let ((?x868 (ite (= ?x756 (_ bv36 64)) (concat ((_ extract 27 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 36)) ?x864)))
+(let ((?x872 (ite (= ?x756 (_ bv35 64)) (concat ((_ extract 28 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 35)) ?x868)))
+(let ((?x876 (ite (= ?x756 (_ bv34 64)) (concat ((_ extract 29 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 34)) ?x872)))
+(let ((?x880 (ite (= ?x756 (_ bv33 64)) (concat ((_ extract 30 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 33)) ?x876)))
+(let ((?x884 (ite (= ?x756 (_ bv32 64)) (concat ((_ extract 31 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 32)) ?x880)))
+(let ((?x888 (ite (= ?x756 (_ bv31 64)) (concat ((_ extract 32 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 31)) ?x884)))
+(let ((?x892 (ite (= ?x756 (_ bv30 64)) (concat ((_ extract 33 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 30)) ?x888)))
+(let ((?x896 (ite (= ?x756 (_ bv29 64)) (concat ((_ extract 34 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 29)) ?x892)))
+(let ((?x900 (ite (= ?x756 (_ bv28 64)) (concat ((_ extract 35 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 28)) ?x896)))
+(let ((?x904 (ite (= ?x756 (_ bv27 64)) (concat ((_ extract 36 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 27)) ?x900)))
+(let ((?x908 (ite (= ?x756 (_ bv26 64)) (concat ((_ extract 37 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 26)) ?x904)))
+(let ((?x912 (ite (= ?x756 (_ bv25 64)) (concat ((_ extract 38 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 25)) ?x908)))
+(let ((?x916 (ite (= ?x756 (_ bv24 64)) (concat ((_ extract 39 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 24)) ?x912)))
+(let ((?x920 (ite (= ?x756 (_ bv23 64)) (concat ((_ extract 40 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 23)) ?x916)))
+(let ((?x924 (ite (= ?x756 (_ bv22 64)) (concat ((_ extract 41 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 22)) ?x920)))
+(let ((?x928 (ite (= ?x756 (_ bv21 64)) (concat ((_ extract 42 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 21)) ?x924)))
+(let ((?x932 (ite (= ?x756 (_ bv20 64)) (concat ((_ extract 43 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 20)) ?x928)))
+(let ((?x936 (ite (= ?x756 (_ bv19 64)) (concat ((_ extract 44 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 19)) ?x932)))
+(let ((?x940 (ite (= ?x756 (_ bv18 64)) (concat ((_ extract 45 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 18)) ?x936)))
+(let ((?x944 (ite (= ?x756 (_ bv17 64)) (concat ((_ extract 46 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 17)) ?x940)))
+(let ((?x948 (ite (= ?x756 (_ bv16 64)) (concat ((_ extract 47 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 16)) ?x944)))
+(let ((?x952 (ite (= ?x756 (_ bv15 64)) (concat ((_ extract 48 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 15)) ?x948)))
+(let ((?x956 (ite (= ?x756 (_ bv14 64)) (concat ((_ extract 49 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 14)) ?x952)))
+(let ((?x960 (ite (= ?x756 (_ bv13 64)) (concat ((_ extract 50 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 13)) ?x956)))
+(let ((?x964 (ite (= ?x756 (_ bv12 64)) (concat ((_ extract 51 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 12)) ?x960)))
+(let ((?x968 (ite (= ?x756 (_ bv11 64)) (concat ((_ extract 52 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 11)) ?x964)))
+(let ((?x972 (ite (= ?x756 (_ bv10 64)) (concat ((_ extract 53 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 10)) ?x968)))
+(let ((?x976 (ite (= ?x756 (_ bv9 64)) (concat ((_ extract 54 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 9)) ?x972)))
+(let ((?x980 (ite (= ?x756 (_ bv8 64)) (concat ((_ extract 55 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 8)) ?x976)))
+(let ((?x984 (ite (= ?x756 (_ bv7 64)) (concat ((_ extract 56 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 7)) ?x980)))
+(let ((?x988 (ite (= ?x756 (_ bv6 64)) (concat ((_ extract 57 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 6)) ?x984)))
+(let ((?x992 (ite (= ?x756 (_ bv5 64)) (concat ((_ extract 58 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 5)) ?x988)))
+(let ((?x996 (ite (= ?x756 (_ bv4 64)) (concat ((_ extract 59 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 4)) ?x992)))
+(let ((?x1000 (ite (= ?x756 (_ bv3 64)) (concat ((_ extract 60 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 3)) ?x996)))
+(let ((?x1004 (ite (= ?x756 (_ bv2 64)) (concat ((_ extract 61 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 2)) ?x1000)))
+(let ((?x1008 (ite (= ?x756 (_ bv1 64)) (concat ((_ extract 62 0) (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))) (_ bv0 1)) ?x1004)))
+(let ((?x463 (bvor (concat ((_ extract 52 0) ?x30) (_ bv0 11)) (_ bv9223372036854775808 64))))
+(let ((?x1012 (ite (bvult ?x756 (_ bv64 64)) (ite (= ?x756 (_ bv0 64)) ?x463 ?x1008) (_ bv0 64))))
+(let ((?x1013 (bvand ?x1012 (_ bv4294967295 64))))
+(let ((?x1014 (bvmul ?x1013 ?x460)))
+(let ((?x1018 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1014)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))))
+(let ((?x1024 (bvadd (concat (_ bv0 64) ?x1018) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x460)))))
+(let ((?x1029 ((_ extract 63 0) ?x1024)))
+(let ((?x1037 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1029) (_ bv0 32)) (bvand ?x1014 (_ bv4294967295 64))))))
+(let ((?x1050 (ite (= (concat (_ bv0 32) ?x76) (_ bv62 64)) (concat ((_ extract 1 0) ?x65) (_ bv0 62)) (ite (= (concat (_ bv0 32) ?x76) (_ bv63 64)) (concat ((_ extract 0 0) ?x65) (_ bv0 63)) (_ bv0 64)))))
+(let ((?x1058 (ite (= (concat (_ bv0 32) ?x76) (_ bv60 64)) (concat ((_ extract 3 0) ?x65) (_ bv0 60)) (ite (= (concat (_ bv0 32) ?x76) (_ bv61 64)) (concat ((_ extract 2 0) ?x65) (_ bv0 61)) ?x1050))))
+(let ((?x1066 (ite (= (concat (_ bv0 32) ?x76) (_ bv58 64)) (concat ((_ extract 5 0) ?x65) (_ bv0 58)) (ite (= (concat (_ bv0 32) ?x76) (_ bv59 64)) (concat ((_ extract 4 0) ?x65) (_ bv0 59)) ?x1058))))
+(let ((?x1074 (ite (= (concat (_ bv0 32) ?x76) (_ bv56 64)) (concat ((_ extract 7 0) ?x65) (_ bv0 56)) (ite (= (concat (_ bv0 32) ?x76) (_ bv57 64)) (concat ((_ extract 6 0) ?x65) (_ bv0 57)) ?x1066))))
+(let ((?x1082 (ite (= (concat (_ bv0 32) ?x76) (_ bv54 64)) (concat ((_ extract 9 0) ?x65) (_ bv0 54)) (ite (= (concat (_ bv0 32) ?x76) (_ bv55 64)) (concat ((_ extract 8 0) ?x65) (_ bv0 55)) ?x1074))))
+(let ((?x1090 (ite (= (concat (_ bv0 32) ?x76) (_ bv52 64)) (concat ((_ extract 11 0) ?x65) (_ bv0 52)) (ite (= (concat (_ bv0 32) ?x76) (_ bv53 64)) (concat ((_ extract 10 0) ?x65) (_ bv0 53)) ?x1082))))
+(let ((?x1098 (ite (= (concat (_ bv0 32) ?x76) (_ bv50 64)) (concat ((_ extract 13 0) ?x65) (_ bv0 50)) (ite (= (concat (_ bv0 32) ?x76) (_ bv51 64)) (concat ((_ extract 12 0) ?x65) (_ bv0 51)) ?x1090))))
+(let ((?x1106 (ite (= (concat (_ bv0 32) ?x76) (_ bv48 64)) (concat ((_ extract 15 0) ?x65) (_ bv0 48)) (ite (= (concat (_ bv0 32) ?x76) (_ bv49 64)) (concat ((_ extract 14 0) ?x65) (_ bv0 49)) ?x1098))))
+(let ((?x1114 (ite (= (concat (_ bv0 32) ?x76) (_ bv46 64)) (concat ((_ extract 17 0) ?x65) (_ bv0 46)) (ite (= (concat (_ bv0 32) ?x76) (_ bv47 64)) (concat ((_ extract 16 0) ?x65) (_ bv0 47)) ?x1106))))
+(let ((?x1122 (ite (= (concat (_ bv0 32) ?x76) (_ bv44 64)) (concat ((_ extract 19 0) ?x65) (_ bv0 44)) (ite (= (concat (_ bv0 32) ?x76) (_ bv45 64)) (concat ((_ extract 18 0) ?x65) (_ bv0 45)) ?x1114))))
+(let ((?x1130 (ite (= (concat (_ bv0 32) ?x76) (_ bv42 64)) (concat ((_ extract 21 0) ?x65) (_ bv0 42)) (ite (= (concat (_ bv0 32) ?x76) (_ bv43 64)) (concat ((_ extract 20 0) ?x65) (_ bv0 43)) ?x1122))))
+(let ((?x1138 (ite (= (concat (_ bv0 32) ?x76) (_ bv40 64)) (concat ((_ extract 23 0) ?x65) (_ bv0 40)) (ite (= (concat (_ bv0 32) ?x76) (_ bv41 64)) (concat ((_ extract 22 0) ?x65) (_ bv0 41)) ?x1130))))
+(let ((?x1146 (ite (= (concat (_ bv0 32) ?x76) (_ bv38 64)) (concat ((_ extract 25 0) ?x65) (_ bv0 38)) (ite (= (concat (_ bv0 32) ?x76) (_ bv39 64)) (concat ((_ extract 24 0) ?x65) (_ bv0 39)) ?x1138))))
+(let ((?x1154 (ite (= (concat (_ bv0 32) ?x76) (_ bv36 64)) (concat ((_ extract 27 0) ?x65) (_ bv0 36)) (ite (= (concat (_ bv0 32) ?x76) (_ bv37 64)) (concat ((_ extract 26 0) ?x65) (_ bv0 37)) ?x1146))))
+(let ((?x1162 (ite (= (concat (_ bv0 32) ?x76) (_ bv34 64)) (concat ((_ extract 29 0) ?x65) (_ bv0 34)) (ite (= (concat (_ bv0 32) ?x76) (_ bv35 64)) (concat ((_ extract 28 0) ?x65) (_ bv0 35)) ?x1154))))
+(let ((?x1170 (ite (= (concat (_ bv0 32) ?x76) (_ bv32 64)) (concat ((_ extract 31 0) ?x65) (_ bv0 32)) (ite (= (concat (_ bv0 32) ?x76) (_ bv33 64)) (concat ((_ extract 30 0) ?x65) (_ bv0 33)) ?x1162))))
+(let ((?x1178 (ite (= (concat (_ bv0 32) ?x76) (_ bv30 64)) (concat ((_ extract 33 0) ?x65) (_ bv0 30)) (ite (= (concat (_ bv0 32) ?x76) (_ bv31 64)) (concat ((_ extract 32 0) ?x65) (_ bv0 31)) ?x1170))))
+(let ((?x1186 (ite (= (concat (_ bv0 32) ?x76) (_ bv28 64)) (concat ((_ extract 35 0) ?x65) (_ bv0 28)) (ite (= (concat (_ bv0 32) ?x76) (_ bv29 64)) (concat ((_ extract 34 0) ?x65) (_ bv0 29)) ?x1178))))
+(let ((?x1194 (ite (= (concat (_ bv0 32) ?x76) (_ bv26 64)) (concat ((_ extract 37 0) ?x65) (_ bv0 26)) (ite (= (concat (_ bv0 32) ?x76) (_ bv27 64)) (concat ((_ extract 36 0) ?x65) (_ bv0 27)) ?x1186))))
+(let ((?x1202 (ite (= (concat (_ bv0 32) ?x76) (_ bv24 64)) (concat ((_ extract 39 0) ?x65) (_ bv0 24)) (ite (= (concat (_ bv0 32) ?x76) (_ bv25 64)) (concat ((_ extract 38 0) ?x65) (_ bv0 25)) ?x1194))))
+(let ((?x1210 (ite (= (concat (_ bv0 32) ?x76) (_ bv22 64)) (concat ((_ extract 41 0) ?x65) (_ bv0 22)) (ite (= (concat (_ bv0 32) ?x76) (_ bv23 64)) (concat ((_ extract 40 0) ?x65) (_ bv0 23)) ?x1202))))
+(let ((?x1218 (ite (= (concat (_ bv0 32) ?x76) (_ bv20 64)) (concat ((_ extract 43 0) ?x65) (_ bv0 20)) (ite (= (concat (_ bv0 32) ?x76) (_ bv21 64)) (concat ((_ extract 42 0) ?x65) (_ bv0 21)) ?x1210))))
+(let ((?x1226 (ite (= (concat (_ bv0 32) ?x76) (_ bv18 64)) (concat ((_ extract 45 0) ?x65) (_ bv0 18)) (ite (= (concat (_ bv0 32) ?x76) (_ bv19 64)) (concat ((_ extract 44 0) ?x65) (_ bv0 19)) ?x1218))))
+(let ((?x1234 (ite (= (concat (_ bv0 32) ?x76) (_ bv16 64)) (concat ((_ extract 47 0) ?x65) (_ bv0 16)) (ite (= (concat (_ bv0 32) ?x76) (_ bv17 64)) (concat ((_ extract 46 0) ?x65) (_ bv0 17)) ?x1226))))
+(let ((?x1242 (ite (= (concat (_ bv0 32) ?x76) (_ bv14 64)) (concat ((_ extract 49 0) ?x65) (_ bv0 14)) (ite (= (concat (_ bv0 32) ?x76) (_ bv15 64)) (concat ((_ extract 48 0) ?x65) (_ bv0 15)) ?x1234))))
+(let ((?x1250 (ite (= (concat (_ bv0 32) ?x76) (_ bv12 64)) (concat ((_ extract 51 0) ?x65) (_ bv0 12)) (ite (= (concat (_ bv0 32) ?x76) (_ bv13 64)) (concat ((_ extract 50 0) ?x65) (_ bv0 13)) ?x1242))))
+(let ((?x1258 (ite (= (concat (_ bv0 32) ?x76) (_ bv10 64)) (concat ((_ extract 53 0) ?x65) (_ bv0 10)) (ite (= (concat (_ bv0 32) ?x76) (_ bv11 64)) (concat ((_ extract 52 0) ?x65) (_ bv0 11)) ?x1250))))
+(let ((?x1266 (ite (= (concat (_ bv0 32) ?x76) (_ bv8 64)) (concat ((_ extract 55 0) ?x65) (_ bv0 8)) (ite (= (concat (_ bv0 32) ?x76) (_ bv9 64)) (concat ((_ extract 54 0) ?x65) (_ bv0 9)) ?x1258))))
+(let ((?x1274 (ite (= (concat (_ bv0 32) ?x76) (_ bv6 64)) (concat ((_ extract 57 0) ?x65) (_ bv0 6)) (ite (= (concat (_ bv0 32) ?x76) (_ bv7 64)) (concat ((_ extract 56 0) ?x65) (_ bv0 7)) ?x1266))))
+(let ((?x1282 (ite (= (concat (_ bv0 32) ?x76) (_ bv4 64)) (concat ((_ extract 59 0) ?x65) (_ bv0 4)) (ite (= (concat (_ bv0 32) ?x76) (_ bv5 64)) (concat ((_ extract 58 0) ?x65) (_ bv0 5)) ?x1274))))
+(let ((?x1290 (ite (= (concat (_ bv0 32) ?x76) (_ bv2 64)) (concat ((_ extract 61 0) ?x65) (_ bv0 2)) (ite (= (concat (_ bv0 32) ?x76) (_ bv3 64)) (concat ((_ extract 60 0) ?x65) (_ bv0 3)) ?x1282))))
+(let ((?x1296 (ite (= (concat (_ bv0 32) ?x76) (_ bv0 64)) ?x65 (ite (= (concat (_ bv0 32) ?x76) (_ bv1 64)) (concat ((_ extract 62 0) ?x65) (_ bv0 1)) ?x1290))))
+(let ((?x1298 (ite (bvult (concat (_ bv0 32) ?x76) (_ bv64 64)) ?x1296 (_ bv0 64))))
+(let ((?x1299 (bvand ?x1298 (_ bv4294967295 64))))
+(let ((?x1324 (bvmul ?x1013 ?x1299)))
+(let ((?x1328 (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1324)) (bvmul ?x1013 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))))
+(let ((?x1332 (bvadd (concat (_ bv0 64) ?x1328) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x1012)) ?x1299)))))
+(let ((?x1337 ((_ extract 63 0) ?x1332)))
+(let ((?x1345 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1337) (_ bv0 32)) (bvand ?x1324 (_ bv4294967295 64))))))
+(let ((?x60 (concat (_ bv0 64) (_ bv18446744073709551615 64))))
+(let ((?x1304 (concat (_ bv0 32) ((_ extract 63 32) ?x1298))))
+(let ((?x1021 (concat (_ bv0 32) ((_ extract 63 32) ?x1012))))
+(let ((?x1334 (bvmul ?x1021 ?x1304)))
+(let ((?x1340 (bvadd (ite (bvult ?x60 ?x1332) (bvadd (_ bv4294967296 64) ?x1334) ?x1334) (concat (_ bv0 32) ((_ extract 63 32) ?x1337)))))
+(let ((?x475 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv63 64)) (concat (_ bv0 63) ((_ extract 63 63) ?x463)) (_ bv0 64))))
+(let ((?x479 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv62 64)) (concat (_ bv0 62) ((_ extract 63 62) ?x463)) ?x475)))
+(let ((?x483 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv61 64)) (concat (_ bv0 61) ((_ extract 63 61) ?x463)) ?x479)))
+(let ((?x487 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv60 64)) (concat (_ bv0 60) ((_ extract 63 60) ?x463)) ?x483)))
+(let ((?x491 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv59 64)) (concat (_ bv0 59) ((_ extract 63 59) ?x463)) ?x487)))
+(let ((?x495 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv58 64)) (concat (_ bv0 58) ((_ extract 63 58) ?x463)) ?x491)))
+(let ((?x499 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv57 64)) (concat (_ bv0 57) ((_ extract 63 57) ?x463)) ?x495)))
+(let ((?x503 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv56 64)) (concat (_ bv0 56) ((_ extract 63 56) ?x463)) ?x499)))
+(let ((?x507 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv55 64)) (concat (_ bv0 55) ((_ extract 63 55) ?x463)) ?x503)))
+(let ((?x511 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv54 64)) (concat (_ bv0 54) ((_ extract 63 54) ?x463)) ?x507)))
+(let ((?x515 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv53 64)) (concat (_ bv0 53) ((_ extract 63 53) ?x463)) ?x511)))
+(let ((?x519 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv52 64)) (concat (_ bv0 52) ((_ extract 63 52) ?x463)) ?x515)))
+(let ((?x523 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv51 64)) (concat (_ bv0 51) ((_ extract 63 51) ?x463)) ?x519)))
+(let ((?x527 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv50 64)) (concat (_ bv0 50) ((_ extract 63 50) ?x463)) ?x523)))
+(let ((?x531 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv49 64)) (concat (_ bv0 49) ((_ extract 63 49) ?x463)) ?x527)))
+(let ((?x535 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv48 64)) (concat (_ bv0 48) ((_ extract 63 48) ?x463)) ?x531)))
+(let ((?x539 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv47 64)) (concat (_ bv0 47) ((_ extract 63 47) ?x463)) ?x535)))
+(let ((?x543 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv46 64)) (concat (_ bv0 46) ((_ extract 63 46) ?x463)) ?x539)))
+(let ((?x547 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv45 64)) (concat (_ bv0 45) ((_ extract 63 45) ?x463)) ?x543)))
+(let ((?x551 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv44 64)) (concat (_ bv0 44) ((_ extract 63 44) ?x463)) ?x547)))
+(let ((?x555 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv43 64)) (concat (_ bv0 43) ((_ extract 63 43) ?x463)) ?x551)))
+(let ((?x559 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv42 64)) (concat (_ bv0 42) ((_ extract 63 42) ?x463)) ?x555)))
+(let ((?x563 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv41 64)) (concat (_ bv0 41) ((_ extract 63 41) ?x463)) ?x559)))
+(let ((?x567 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv40 64)) (concat (_ bv0 40) ((_ extract 63 40) ?x463)) ?x563)))
+(let ((?x571 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv39 64)) (concat (_ bv0 39) ((_ extract 63 39) ?x463)) ?x567)))
+(let ((?x575 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv38 64)) (concat (_ bv0 38) ((_ extract 63 38) ?x463)) ?x571)))
+(let ((?x579 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv37 64)) (concat (_ bv0 37) ((_ extract 63 37) ?x463)) ?x575)))
+(let ((?x583 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv36 64)) (concat (_ bv0 36) ((_ extract 63 36) ?x463)) ?x579)))
+(let ((?x587 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv35 64)) (concat (_ bv0 35) ((_ extract 63 35) ?x463)) ?x583)))
+(let ((?x591 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv34 64)) (concat (_ bv0 34) ((_ extract 63 34) ?x463)) ?x587)))
+(let ((?x595 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv33 64)) (concat (_ bv0 33) ((_ extract 63 33) ?x463)) ?x591)))
+(let ((?x599 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv32 64)) (concat (_ bv0 32) ((_ extract 63 32) ?x463)) ?x595)))
+(let ((?x603 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv31 64)) (concat (_ bv0 31) ((_ extract 63 31) ?x463)) ?x599)))
+(let ((?x607 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv30 64)) (concat (_ bv0 30) ((_ extract 63 30) ?x463)) ?x603)))
+(let ((?x611 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv29 64)) (concat (_ bv0 29) ((_ extract 63 29) ?x463)) ?x607)))
+(let ((?x615 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv28 64)) (concat (_ bv0 28) ((_ extract 63 28) ?x463)) ?x611)))
+(let ((?x619 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv27 64)) (concat (_ bv0 27) ((_ extract 63 27) ?x463)) ?x615)))
+(let ((?x623 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv26 64)) (concat (_ bv0 26) ((_ extract 63 26) ?x463)) ?x619)))
+(let ((?x627 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv25 64)) (concat (_ bv0 25) ((_ extract 63 25) ?x463)) ?x623)))
+(let ((?x631 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv24 64)) (concat (_ bv0 24) ((_ extract 63 24) ?x463)) ?x627)))
+(let ((?x635 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv23 64)) (concat (_ bv0 23) ((_ extract 63 23) ?x463)) ?x631)))
+(let ((?x639 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv22 64)) (concat (_ bv0 22) ((_ extract 63 22) ?x463)) ?x635)))
+(let ((?x643 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv21 64)) (concat (_ bv0 21) ((_ extract 63 21) ?x463)) ?x639)))
+(let ((?x647 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv20 64)) (concat (_ bv0 20) ((_ extract 63 20) ?x463)) ?x643)))
+(let ((?x651 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv19 64)) (concat (_ bv0 19) ((_ extract 63 19) ?x463)) ?x647)))
+(let ((?x655 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv18 64)) (concat (_ bv0 18) ((_ extract 63 18) ?x463)) ?x651)))
+(let ((?x659 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv17 64)) (concat (_ bv0 17) ((_ extract 63 17) ?x463)) ?x655)))
+(let ((?x663 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv16 64)) (concat (_ bv0 16) ((_ extract 63 16) ?x463)) ?x659)))
+(let ((?x667 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv15 64)) (concat (_ bv0 15) ((_ extract 63 15) ?x463)) ?x663)))
+(let ((?x671 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv14 64)) (concat (_ bv0 14) ((_ extract 63 14) ?x463)) ?x667)))
+(let ((?x675 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv13 64)) (concat (_ bv0 13) ((_ extract 63 13) ?x463)) ?x671)))
+(let ((?x679 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv12 64)) (concat (_ bv0 12) ((_ extract 63 12) ?x463)) ?x675)))
+(let ((?x683 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv11 64)) (concat (_ bv0 11) ((_ extract 63 11) ?x463)) ?x679)))
+(let ((?x687 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv10 64)) (concat (_ bv0 10) ((_ extract 63 10) ?x463)) ?x683)))
+(let ((?x691 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv9 64)) (concat (_ bv0 9) ((_ extract 63 9) ?x463)) ?x687)))
+(let ((?x695 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv8 64)) (concat (_ bv0 8) ((_ extract 63 8) ?x463)) ?x691)))
+(let ((?x699 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv7 64)) (concat (_ bv0 7) ((_ extract 63 7) ?x463)) ?x695)))
+(let ((?x703 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv6 64)) (concat (_ bv0 6) ((_ extract 63 6) ?x463)) ?x699)))
+(let ((?x707 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv5 64)) (concat (_ bv0 5) ((_ extract 63 5) ?x463)) ?x703)))
+(let ((?x711 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv4 64)) (concat (_ bv0 4) ((_ extract 63 4) ?x463)) ?x707)))
+(let ((?x715 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv3 64)) (concat (_ bv0 3) ((_ extract 63 3) ?x463)) ?x711)))
+(let ((?x719 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv2 64)) (concat (_ bv0 2) ((_ extract 63 2) ?x463)) ?x715)))
+(let ((?x723 (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv1 64)) (concat (_ bv0 1) ((_ extract 63 1) ?x463)) ?x719)))
+(let ((?x727 (ite (bvult (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv64 64)) (ite (= (concat (_ bv0 32) (bvsub (_ bv64 32) ?x469)) (_ bv0 64)) ?x463 ?x723) (_ bv0 64))))
+(let ((?x728 (bvand ?x727 (_ bv4294967295 64))))
+(let ((?x1300 (bvmul ?x728 ?x1299)))
+(let ((?x1310 (bvadd (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) ?x1300)) (bvmul ?x728 ?x1304))) (concat (_ bv0 64) (bvmul (concat (_ bv0 32) ((_ extract 63 32) ?x727)) ?x1299)))))
+(let ((?x1315 ((_ extract 63 0) ?x1310)))
+(let ((?x1350 (bvadd (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x1315) (_ bv0 32)) (bvand ?x1300 (_ bv4294967295 64)))) (concat (_ bv0 64) (bvadd ?x1340 (ite (bvult ?x60 ?x1345) (_ bv1 64) (_ bv0 64)))))))
+(let ((?x738 (concat (_ bv0 32) ((_ extract 63 32) ?x727))))
+(let ((?x1312 (bvmul ?x738 ?x1304)))
+(let ((?x1318 (bvadd (ite (bvult ?x60 ?x1310) (bvadd (_ bv4294967296 64) ?x1312) ?x1312) (concat (_ bv0 32) ((_ extract 63 32) ?x1315)))))
+(let ((?x1353 (bvadd ?x1318 (ite (bvult ?x60 ?x1350) (_ bv1 64) (_ bv0 64)))))
+(let ((?x1365 ((_ extract 31 0) (bvmul (_ bv8 64) ?x1363))))
+(let ((?x1425 (store (store (store (store const_arr12 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x1429 (store (store (store (store ?x1425 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x1433 (store (store (store (store ?x1429 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x1437 (store (store (store (store ?x1433 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x1441 (store (store (store (store ?x1437 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x1445 (store (store (store (store ?x1441 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x1449 (store (store (store (store ?x1445 (_ bv24 32) (_ bv0 8)) (_ bv25 32) (_ bv0 8)) (_ bv26 32) (_ bv0 8)) (_ bv27 32) (_ bv0 8))))
+(let ((?x1453 (store (store (store (store ?x1449 (_ bv28 32) (_ bv0 8)) (_ bv29 32) (_ bv0 8)) (_ bv30 32) (_ bv0 8)) (_ bv31 32) (_ bv0 8))))
+(let ((?x1455 (store (store ?x1453 (_ bv0 32) ((_ extract 7 0) ((_ extract 63 0) ?x1345))) (_ bv1 32) ((_ extract 15 8) ((_ extract 63 0) ?x1345)))))
+(let ((?x1457 (store (store ?x1455 (_ bv2 32) ((_ extract 23 16) ((_ extract 63 0) ?x1345))) (_ bv3 32) ((_ extract 31 24) ((_ extract 63 0) ?x1345)))))
+(let ((?x1459 (store (store ?x1457 (_ bv4 32) ((_ extract 39 32) ((_ extract 63 0) ?x1345))) (_ bv5 32) ((_ extract 47 40) ((_ extract 63 0) ?x1345)))))
+(let ((?x1461 (store (store ?x1459 (_ bv6 32) ((_ extract 55 48) ((_ extract 63 0) ?x1345))) (_ bv7 32) ((_ extract 63 56) ((_ extract 63 0) ?x1345)))))
+(let ((?x1463 (store (store ?x1461 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1350))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1350)))))
+(let ((?x1465 (store (store ?x1463 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1350))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1350)))))
+(let ((?x1467 (store (store ?x1465 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1350))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1350)))))
+(let ((?x1469 (store (store ?x1467 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1350))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1350)))))
+(let ((?x1473 (store (store (store (store ?x1469 (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8)) (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8))))
+(let ((?x1477 (store (store (store (store ?x1473 (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8)) (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8))))
+(let ((?x1481 (store (store (store (store ?x1477 (_ bv24 32) (_ bv171 8)) (_ bv25 32) (_ bv171 8)) (_ bv26 32) (_ bv171 8)) (_ bv27 32) (_ bv171 8))))
+(let ((?x1485 (store (store (store (store ?x1481 (_ bv28 32) (_ bv171 8)) (_ bv29 32) (_ bv171 8)) (_ bv30 32) (_ bv171 8)) (_ bv31 32) (_ bv171 8))))
+(let ((?x1487 (store (store ?x1485 ?x1365 ((_ extract 7 0) ?x1353)) (bvadd (_ bv1 32) ?x1365) ((_ extract 15 8) ?x1353))))
+(let ((?x1489 (store (store ?x1487 (bvadd (_ bv2 32) ?x1365) ((_ extract 23 16) ?x1353)) (bvadd (_ bv3 32) ?x1365) ((_ extract 31 24) ?x1353))))
+(let ((?x1491 (store (store ?x1489 (bvadd (_ bv4 32) ?x1365) ((_ extract 39 32) ?x1353)) (bvadd (_ bv5 32) ?x1365) ((_ extract 47 40) ?x1353))))
+(let ((?x1493 (store (store ?x1491 (bvadd (_ bv6 32) ?x1365) ((_ extract 55 48) ?x1353)) (bvadd (_ bv7 32) ?x1365) ((_ extract 63 56) ?x1353))))
+(let ((?x1498 (concat (select ?x1493 (_ bv10 32)) (concat (select ?x1493 (_ bv9 32)) (select ?x1493 (_ bv8 32))))))
+(let ((?x1504 (concat (select ?x1493 (_ bv13 32)) (concat (select ?x1493 (_ bv12 32)) (concat (select ?x1493 (_ bv11 32)) ?x1498)))))
+(let ((?x1509 (concat (_ bv0 64) (concat (select ?x1493 (_ bv15 32)) (concat (select ?x1493 (_ bv14 32)) ?x1504)))))
+(let ((?x1512 (bvadd ?x1509 (concat (_ bv0 64) ((_ extract 63 0) ?x1037)))))
+(let ((?x733 (concat (_ bv0 32) ((_ extract 63 32) ?x458))))
+(let ((?x1026 (bvmul ?x1021 ?x733)))
+(let ((?x1032 (bvadd (ite (bvult ?x60 ?x1024) (bvadd (_ bv4294967296 64) ?x1026) ?x1026) (concat (_ bv0 32) ((_ extract 63 32) ?x1029)))))
+(let ((?x1515 (bvadd (bvadd ?x1032 (ite (bvult ?x60 ?x1037) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1512) (_ bv1 64) (_ bv0 64)))))
+(let ((?x736 (concat (_ bv0 64) (bvadd (concat (_ bv0 32) ((_ extract 63 32) (bvmul ?x728 ?x460))) (bvmul ?x728 ?x733)))))
+(let ((?x741 (bvadd ?x736 (concat (_ bv0 64) (bvmul ?x738 ?x460)))))
+(let ((?x747 ((_ extract 63 0) ?x741)))
+(let ((?x755 (concat (_ bv0 64) (bvor (concat ((_ extract 31 0) ?x747) (_ bv0 32)) (bvand (bvmul ?x728 ?x460) (_ bv4294967295 64))))))
+(let ((?x1517 (bvadd ?x755 (concat (_ bv0 64) ?x1515))))
+(let ((?x1525 (concat (select ?x1493 (_ bv18 32)) (concat (select ?x1493 (_ bv17 32)) (select ?x1493 (_ bv16 32))))))
+(let ((?x1531 (concat (select ?x1493 (_ bv21 32)) (concat (select ?x1493 (_ bv20 32)) (concat (select ?x1493 (_ bv19 32)) ?x1525)))))
+(let ((?x1536 (concat (_ bv0 64) (concat (select ?x1493 (_ bv23 32)) (concat (select ?x1493 (_ bv22 32)) ?x1531)))))
+(let ((?x1539 (bvadd ?x1536 (concat (_ bv0 64) ((_ extract 63 0) ?x1517)))))
+(let ((?x744 (bvmul ?x738 ?x733)))
+(let ((?x750 (bvadd (ite (bvult ?x60 ?x741) (bvadd (_ bv4294967296 64) ?x744) ?x744) (concat (_ bv0 32) ((_ extract 63 32) ?x747)))))
+(let ((?x1542 (bvadd (bvadd ?x750 (ite (bvult ?x60 ?x1517) (_ bv1 64) (_ bv0 64))) (ite (bvult ?x60 ?x1539) (_ bv1 64) (_ bv0 64)))))
+(let ((?x1546 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv1 64) ?x1363)))))
+(let ((?x1580 (store (store ?x1493 (_ bv8 32) ((_ extract 7 0) ((_ extract 63 0) ?x1512))) (_ bv9 32) ((_ extract 15 8) ((_ extract 63 0) ?x1512)))))
+(let ((?x1582 (store (store ?x1580 (_ bv10 32) ((_ extract 23 16) ((_ extract 63 0) ?x1512))) (_ bv11 32) ((_ extract 31 24) ((_ extract 63 0) ?x1512)))))
+(let ((?x1584 (store (store ?x1582 (_ bv12 32) ((_ extract 39 32) ((_ extract 63 0) ?x1512))) (_ bv13 32) ((_ extract 47 40) ((_ extract 63 0) ?x1512)))))
+(let ((?x1586 (store (store ?x1584 (_ bv14 32) ((_ extract 55 48) ((_ extract 63 0) ?x1512))) (_ bv15 32) ((_ extract 63 56) ((_ extract 63 0) ?x1512)))))
+(let ((?x1588 (store (store ?x1586 (_ bv16 32) ((_ extract 7 0) ((_ extract 63 0) ?x1539))) (_ bv17 32) ((_ extract 15 8) ((_ extract 63 0) ?x1539)))))
+(let ((?x1590 (store (store ?x1588 (_ bv18 32) ((_ extract 23 16) ((_ extract 63 0) ?x1539))) (_ bv19 32) ((_ extract 31 24) ((_ extract 63 0) ?x1539)))))
+(let ((?x1592 (store (store ?x1590 (_ bv20 32) ((_ extract 39 32) ((_ extract 63 0) ?x1539))) (_ bv21 32) ((_ extract 47 40) ((_ extract 63 0) ?x1539)))))
+(let ((?x1594 (store (store ?x1592 (_ bv22 32) ((_ extract 55 48) ((_ extract 63 0) ?x1539))) (_ bv23 32) ((_ extract 63 56) ((_ extract 63 0) ?x1539)))))
+(let ((?x1596 (store (store ?x1594 ?x1546 ((_ extract 7 0) ?x1542)) (bvadd (_ bv1 32) ?x1546) ((_ extract 15 8) ?x1542))))
+(let ((?x1598 (store (store ?x1596 (bvadd (_ bv2 32) ?x1546) ((_ extract 23 16) ?x1542)) (bvadd (_ bv3 32) ?x1546) ((_ extract 31 24) ?x1542))))
+(let ((?x1600 (store (store ?x1598 (bvadd (_ bv4 32) ?x1546) ((_ extract 39 32) ?x1542)) (bvadd (_ bv5 32) ?x1546) ((_ extract 47 40) ?x1542))))
+(let ((?x1602 (store (store ?x1600 (bvadd (_ bv6 32) ?x1546) ((_ extract 55 48) ?x1542)) (bvadd (_ bv7 32) ?x1546) ((_ extract 63 56) ?x1542))))
+(let ((?x1620 (concat (select ?x1602 (bvadd (_ bv2 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv1 32) ?x1613)) (select ?x1602 ?x1613)))))
+(let ((?x1626 (concat (select ?x1602 (bvadd (_ bv4 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv3 32) ?x1613)) ?x1620))))
+(let ((?x1632 (concat (select ?x1602 (bvadd (_ bv6 32) ?x1613)) (concat (select ?x1602 (bvadd (_ bv5 32) ?x1613)) ?x1626))))
+(let ((?x1637 (ite (= (_ bv0 64) (concat (select ?x1602 (bvadd (_ bv7 32) ?x1613)) ?x1632)) (_ bv1 64) (_ bv0 64))))
+(let ((?x1638 (bvsub ?x1610 ?x1637)))
+(let ((?x1767 ((_ extract 31 0) (ite (bvslt (_ bv4294967295 32) (bvxor ?x1605 ?x1359)) ?x1638 (bvsub (_ bv0 64) ?x1638)))))
+(let ((?x1769 ((_ sign_extend 32) ?x1767)))
+(let ((?x1773 (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551614 64) (ite (bvslt (_ bv4294967295 32) ?x1767) ?x1769 (bvsub (_ bv0 64) ?x1769))))))
+(let ((?x1775 ((_ extract 31 0) (bvadd (_ bv8 64) ?x1773))))
+(let ((?x1641 ((_ extract 31 0) (bvmul (_ bv8 64) (bvadd (_ bv18446744073709551615 64) ?x1638)))))
+(let ((?x1676 (store (store (store (store const_arr23 (_ bv0 32) (_ bv0 8)) (_ bv1 32) (_ bv0 8)) (_ bv2 32) (_ bv0 8)) (_ bv3 32) (_ bv0 8))))
+(let ((?x1680 (store (store (store (store ?x1676 (_ bv4 32) (_ bv0 8)) (_ bv5 32) (_ bv0 8)) (_ bv6 32) (_ bv0 8)) (_ bv7 32) (_ bv0 8))))
+(let ((?x1684 (store (store (store (store ?x1680 (_ bv8 32) (_ bv0 8)) (_ bv9 32) (_ bv0 8)) (_ bv10 32) (_ bv0 8)) (_ bv11 32) (_ bv0 8))))
+(let ((?x1688 (store (store (store (store ?x1684 (_ bv12 32) (_ bv0 8)) (_ bv13 32) (_ bv0 8)) (_ bv14 32) (_ bv0 8)) (_ bv15 32) (_ bv0 8))))
+(let ((?x1692 (store (store (store (store ?x1688 (_ bv16 32) (_ bv0 8)) (_ bv17 32) (_ bv0 8)) (_ bv18 32) (_ bv0 8)) (_ bv19 32) (_ bv0 8))))
+(let ((?x1696 (store (store (store (store ?x1692 (_ bv20 32) (_ bv0 8)) (_ bv21 32) (_ bv0 8)) (_ bv22 32) (_ bv0 8)) (_ bv23 32) (_ bv0 8))))
+(let ((?x1699 (store (store (store ?x1696 (_ bv0 32) (select ?x1602 (_ bv0 32))) (_ bv1 32) (select ?x1602 (_ bv1 32))) (_ bv2 32) (select ?x1602 (_ bv2 32)))))
+(let ((?x1702 (store (store (store ?x1699 (_ bv3 32) (select ?x1602 (_ bv3 32))) (_ bv4 32) (select ?x1602 (_ bv4 32))) (_ bv5 32) (select ?x1602 (_ bv5 32)))))
+(let ((?x1705 (store (store (store ?x1702 (_ bv6 32) (select ?x1602 (_ bv6 32))) (_ bv7 32) (select ?x1602 (_ bv7 32))) (_ bv8 32) (select ?x1602 (_ bv8 32)))))
+(let ((?x1708 (store (store (store ?x1705 (_ bv9 32) (select ?x1602 (_ bv9 32))) (_ bv10 32) (select ?x1602 (_ bv10 32))) (_ bv11 32) (select ?x1602 (_ bv11 32)))))
+(let ((?x1711 (store (store (store ?x1708 (_ bv12 32) (select ?x1602 (_ bv12 32))) (_ bv13 32) (select ?x1602 (_ bv13 32))) (_ bv14 32) (select ?x1602 (_ bv14 32)))))
+(let ((?x1714 (store (store (store ?x1711 (_ bv15 32) (select ?x1602 (_ bv15 32))) (_ bv16 32) (_ bv171 8)) (_ bv17 32) (_ bv171 8))))
+(let ((?x1718 (store (store (store (store ?x1714 (_ bv18 32) (_ bv171 8)) (_ bv19 32) (_ bv171 8)) (_ bv20 32) (_ bv171 8)) (_ bv21 32) (_ bv171 8))))
+(let ((?x1721 (store (store (store ?x1718 (_ bv22 32) (_ bv171 8)) (_ bv23 32) (_ bv171 8)) ?x1641 (select ?x1602 (_ bv16 32)))))
+(let ((?x1723 (store (store ?x1721 (bvadd (_ bv1 32) ?x1641) (select ?x1602 (_ bv17 32))) (bvadd (_ bv2 32) ?x1641) (select ?x1602 (_ bv18 32)))))
+(let ((?x1725 (store (store ?x1723 (bvadd (_ bv3 32) ?x1641) (select ?x1602 (_ bv19 32))) (bvadd (_ bv4 32) ?x1641) (select ?x1602 (_ bv20 32)))))
+(let ((?x1727 (store (store ?x1725 (bvadd (_ bv5 32) ?x1641) (select ?x1602 (_ bv21 32))) (bvadd (_ bv6 32) ?x1641) (select ?x1602 (_ bv22 32)))))
+(let ((?x1728 (store ?x1727 (bvadd (_ bv7 32) ?x1641) (select ?x1602 (_ bv23 32)))))
+(let ((?x1782 (concat (select ?x1728 (bvadd (_ bv2 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv1 32) ?x1775)) (select ?x1728 ?x1775)))))
+(let ((?x1788 (concat (select ?x1728 (bvadd (_ bv4 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv3 32) ?x1775)) ?x1782))))
+(let ((?x1794 (concat (select ?x1728 (bvadd (_ bv6 32) ?x1775)) (concat (select ?x1728 (bvadd (_ bv5 32) ?x1775)) ?x1788))))
+(let ((?x1797 (concat (select ?x1728 (bvadd (_ bv7 32) ?x1775)) ?x1794)))
+(not (not (= (_ bv4 64) ?x1797)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_ABVFP/query.93.smt2 b/UnitTests/unsat/QF_ABVFP/query.93.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2aa87b6a64602ab36a1aa4e13629ffa88a1f5462
--- /dev/null
+++ b/UnitTests/unsat/QF_ABVFP/query.93.smt2
@@ -0,0 +1,251 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_ABVFP)
+(set-info :source |
+Generated by: Daniel Liew, Daniel Schemmel, Cristian Cadar, Alastair Donaldson, and Rafael Zähl
+Generated on: 2017-4-28
+Generator: KLEE
+Application: Branch satisfiability check for symbolic execution of C programs
+Target solver: Z3 or MathSAT5
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unsat)
+(declare-fun data0 () (Array (_ BitVec 32) (_ BitVec 8)))
+(declare-fun elem1 () (Array (_ BitVec 32) (_ BitVec 8)))
+(assert
+ (let ((?x15 (concat (select data0 (_ bv2 32)) (concat (select data0 (_ bv1 32)) (select data0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select data0 (_ bv3 32)) ?x15))))
+ (not (fp.isNaN ?x19)))))
+(assert
+ (let ((?x29 (concat (select data0 (_ bv6 32)) (concat (select data0 (_ bv5 32)) (select data0 (_ bv4 32))))))
+ (let ((?x33 ((_ to_fp 8 24) (concat (select data0 (_ bv7 32)) ?x29))))
+ (not (fp.isNaN ?x33)))))
+(assert
+ (let ((?x15 (concat (select data0 (_ bv2 32)) (concat (select data0 (_ bv1 32)) (select data0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select data0 (_ bv3 32)) ?x15))))
+ (let ((?x29 (concat (select data0 (_ bv6 32)) (concat (select data0 (_ bv5 32)) (select data0 (_ bv4 32))))))
+ (let ((?x33 ((_ to_fp 8 24) (concat (select data0 (_ bv7 32)) ?x29))))
+ (not (fp.lt ?x33 ?x19)))))))
+(assert
+ (let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+ (let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+ (not (fp.isNaN ?x49)))))
+(assert
+ (let ((?x29 (concat (select data0 (_ bv6 32)) (concat (select data0 (_ bv5 32)) (select data0 (_ bv4 32))))))
+ (let ((?x33 ((_ to_fp 8 24) (concat (select data0 (_ bv7 32)) ?x29))))
+ (let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+ (let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+ (not (fp.lt ?x49 ?x33)))))))
+(assert
+ (let ((?x61 (concat (select data0 (_ bv14 32)) (concat (select data0 (_ bv13 32)) (select data0 (_ bv12 32))))))
+ (let ((?x65 ((_ to_fp 8 24) (concat (select data0 (_ bv15 32)) ?x61))))
+ (not (fp.isNaN ?x65)))))
+(assert
+ (let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+ (let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+ (let ((?x61 (concat (select data0 (_ bv14 32)) (concat (select data0 (_ bv13 32)) (select data0 (_ bv12 32))))))
+ (let ((?x65 ((_ to_fp 8 24) (concat (select data0 (_ bv15 32)) ?x61))))
+ (not (fp.lt ?x65 ?x49)))))))
+(assert
+ (let ((?x77 (concat (select data0 (_ bv18 32)) (concat (select data0 (_ bv17 32)) (select data0 (_ bv16 32))))))
+ (let ((?x81 ((_ to_fp 8 24) (concat (select data0 (_ bv19 32)) ?x77))))
+ (not (fp.isNaN ?x81)))))
+(assert
+ (let ((?x61 (concat (select data0 (_ bv14 32)) (concat (select data0 (_ bv13 32)) (select data0 (_ bv12 32))))))
+ (let ((?x65 ((_ to_fp 8 24) (concat (select data0 (_ bv15 32)) ?x61))))
+ (let ((?x77 (concat (select data0 (_ bv18 32)) (concat (select data0 (_ bv17 32)) (select data0 (_ bv16 32))))))
+ (let ((?x81 ((_ to_fp 8 24) (concat (select data0 (_ bv19 32)) ?x77))))
+ (not (fp.lt ?x81 ?x65)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x15 (concat (select data0 (_ bv2 32)) (concat (select data0 (_ bv1 32)) (select data0 (_ bv0 32))))))
+ (let ((?x19 ((_ to_fp 8 24) (concat (select data0 (_ bv3 32)) ?x15))))
+ (not (fp.eq ?x19 ?x94)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x29 (concat (select data0 (_ bv6 32)) (concat (select data0 (_ bv5 32)) (select data0 (_ bv4 32))))))
+ (let ((?x33 ((_ to_fp 8 24) (concat (select data0 (_ bv7 32)) ?x29))))
+ (not (fp.eq ?x33 ?x94)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+ (let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+ (not (fp.eq ?x49 ?x94)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x61 (concat (select data0 (_ bv14 32)) (concat (select data0 (_ bv13 32)) (select data0 (_ bv12 32))))))
+ (let ((?x65 ((_ to_fp 8 24) (concat (select data0 (_ bv15 32)) ?x61))))
+ (not (fp.eq ?x65 ?x94)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x77 (concat (select data0 (_ bv18 32)) (concat (select data0 (_ bv17 32)) (select data0 (_ bv16 32))))))
+ (let ((?x81 ((_ to_fp 8 24) (concat (select data0 (_ bv19 32)) ?x77))))
+ (not (fp.eq ?x81 ?x94)))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+ (let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+ (let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+ (let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+ (let (($x105 (fp.gt ?x49 ?x94)))
+ (let ((?x107 (ite $x105 (_ bv2 32) (_ bv5 32))))
+ (let ((?x109 (bvsdiv (bvadd (ite $x105 (_ bv0 32) (_ bv2 32)) ?x107) (_ bv2 32))))
+ (let ((?x117 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109)))))))
+ (let ((?x120 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) ?x117)))
+ (let ((?x123 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) ?x120)))
+ (let (($x125 (fp.gt ((_ to_fp 8 24) ?x123) ?x94)))
+ (let ((?x127 (ite $x125 ?x109 ?x107)))
+ (let ((?x129 (bvsdiv (bvadd (ite $x125 (ite $x105 (_ bv0 32) (_ bv2 32)) ?x109) ?x127) (_ bv2 32))))
+ (let ((?x136 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129)))))))
+ (let ((?x139 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) ?x136)))
+ (let ((?x142 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) ?x139)))
+ (let (($x144 (fp.gt ((_ to_fp 8 24) ?x142) ?x94)))
+ (let ((?x146 (ite $x144 ?x129 ?x127)))
+ (let ((?x106 (ite $x105 (_ bv0 32) (_ bv2 32))))
+ (let ((?x126 (ite $x125 ?x106 ?x109)))
+ (let ((?x145 (ite $x144 ?x126 ?x129)))
+ (not (= ?x145 ?x146))))))))))))))))))))))))
+(assert
+ (let ((?x91 (concat (select elem1 (_ bv2 32)) (concat (select elem1 (_ bv1 32)) (select elem1 (_ bv0 32))))))
+(let ((?x94 ((_ to_fp 8 24) (concat (select elem1 (_ bv3 32)) ?x91))))
+(let ((?x45 (concat (select data0 (_ bv10 32)) (concat (select data0 (_ bv9 32)) (select data0 (_ bv8 32))))))
+(let ((?x49 ((_ to_fp 8 24) (concat (select data0 (_ bv11 32)) ?x45))))
+(let (($x105 (fp.gt ?x49 ?x94)))
+(let ((?x107 (ite $x105 (_ bv2 32) (_ bv5 32))))
+(let ((?x109 (bvsdiv (bvadd (ite $x105 (_ bv0 32) (_ bv2 32)) ?x107) (_ bv2 32))))
+(let ((?x117 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109)))))))
+(let ((?x120 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) ?x117)))
+(let ((?x123 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x109))))) ?x120)))
+(let (($x125 (fp.gt ((_ to_fp 8 24) ?x123) ?x94)))
+(let ((?x127 (ite $x125 ?x109 ?x107)))
+(let ((?x129 (bvsdiv (bvadd (ite $x125 (ite $x105 (_ bv0 32) (_ bv2 32)) ?x109) ?x127) (_ bv2 32))))
+(let ((?x136 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129)))))))
+(let ((?x139 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) ?x136)))
+(let ((?x142 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x129))))) ?x139)))
+(let (($x144 (fp.gt ((_ to_fp 8 24) ?x142) ?x94)))
+(let ((?x146 (ite $x144 ?x129 ?x127)))
+(let ((?x150 (bvsdiv (bvadd (ite $x144 (ite $x125 (ite $x105 (_ bv0 32) (_ bv2 32)) ?x109) ?x129) ?x146) (_ bv2 32))))
+(let ((?x157 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x150))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x150)))))))
+(let ((?x160 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x150))))) ?x157)))
+(let ((?x163 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x150))))) ?x160)))
+(let (($x165 (fp.gt ((_ to_fp 8 24) ?x163) ?x94)))
+(let ((?x167 (ite $x165 ?x150 ?x146)))
+(let ((?x106 (ite $x105 (_ bv0 32) (_ bv2 32))))
+(let ((?x126 (ite $x125 ?x106 ?x109)))
+(let ((?x145 (ite $x144 ?x126 ?x129)))
+(let ((?x166 (ite $x165 ?x145 ?x150)))
+(let ((?x169 (bvsdiv (bvadd ?x166 ?x167) (_ bv2 32))))
+(let ((?x176 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x169))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x169)))))))
+(let ((?x179 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x169))))) ?x176)))
+(let ((?x182 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x169))))) ?x179)))
+(let (($x184 (fp.gt ((_ to_fp 8 24) ?x182) ?x94)))
+(let ((?x186 (ite $x184 ?x169 ?x167)))
+(let ((?x188 (bvsdiv (bvadd (ite $x184 ?x166 ?x169) ?x186) (_ bv2 32))))
+(let ((?x195 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x188))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x188)))))))
+(let ((?x198 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x188))))) ?x195)))
+(let ((?x201 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x188))))) ?x198)))
+(let (($x203 (fp.gt ((_ to_fp 8 24) ?x201) ?x94)))
+(let ((?x205 (ite $x203 ?x188 ?x186)))
+(let ((?x207 (bvsdiv (bvadd (ite $x203 (ite $x184 ?x166 ?x169) ?x188) ?x205) (_ bv2 32))))
+(let ((?x214 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x207))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x207)))))))
+(let ((?x217 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x207))))) ?x214)))
+(let ((?x220 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x207))))) ?x217)))
+(let (($x222 (fp.gt ((_ to_fp 8 24) ?x220) ?x94)))
+(let ((?x224 (ite $x222 ?x207 ?x205)))
+(let ((?x226 (bvsdiv (bvadd (ite $x222 (ite $x203 (ite $x184 ?x166 ?x169) ?x188) ?x207) ?x224) (_ bv2 32))))
+(let ((?x233 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x226))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x226)))))))
+(let ((?x236 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x226))))) ?x233)))
+(let ((?x239 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x226))))) ?x236)))
+(let (($x241 (fp.gt ((_ to_fp 8 24) ?x239) ?x94)))
+(let ((?x243 (ite $x241 ?x226 ?x224)))
+(let ((?x185 (ite $x184 ?x166 ?x169)))
+(let ((?x204 (ite $x203 ?x185 ?x188)))
+(let ((?x223 (ite $x222 ?x204 ?x207)))
+(let ((?x242 (ite $x241 ?x223 ?x226)))
+(let ((?x245 (bvsdiv (bvadd ?x242 ?x243) (_ bv2 32))))
+(let ((?x252 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x245))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x245)))))))
+(let ((?x255 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x245))))) ?x252)))
+(let ((?x258 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x245))))) ?x255)))
+(let (($x260 (fp.gt ((_ to_fp 8 24) ?x258) ?x94)))
+(let ((?x262 (ite $x260 ?x245 ?x243)))
+(let ((?x264 (bvsdiv (bvadd (ite $x260 ?x242 ?x245) ?x262) (_ bv2 32))))
+(let ((?x271 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264)))))))
+(let ((?x274 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x271)))
+(let ((?x277 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x264))))) ?x274)))
+(let (($x279 (fp.gt ((_ to_fp 8 24) ?x277) ?x94)))
+(let ((?x281 (ite $x279 ?x264 ?x262)))
+(let ((?x283 (bvsdiv (bvadd (ite $x279 (ite $x260 ?x242 ?x245) ?x264) ?x281) (_ bv2 32))))
+(let ((?x290 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x283))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x283)))))))
+(let ((?x293 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x283))))) ?x290)))
+(let ((?x296 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x283))))) ?x293)))
+(let (($x298 (fp.gt ((_ to_fp 8 24) ?x296) ?x94)))
+(let ((?x300 (ite $x298 ?x283 ?x281)))
+(let ((?x302 (bvsdiv (bvadd (ite $x298 (ite $x279 (ite $x260 ?x242 ?x245) ?x264) ?x283) ?x300) (_ bv2 32))))
+(let ((?x309 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x302))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x302)))))))
+(let ((?x312 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x302))))) ?x309)))
+(let ((?x315 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x302))))) ?x312)))
+(let (($x317 (fp.gt ((_ to_fp 8 24) ?x315) ?x94)))
+(let ((?x319 (ite $x317 ?x302 ?x300)))
+(let ((?x261 (ite $x260 ?x242 ?x245)))
+(let ((?x280 (ite $x279 ?x261 ?x264)))
+(let ((?x299 (ite $x298 ?x280 ?x283)))
+(let ((?x318 (ite $x317 ?x299 ?x302)))
+(let ((?x321 (bvsdiv (bvadd ?x318 ?x319) (_ bv2 32))))
+(let ((?x328 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x321))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x321)))))))
+(let ((?x331 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x321))))) ?x328)))
+(let ((?x334 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x321))))) ?x331)))
+(let (($x336 (fp.gt ((_ to_fp 8 24) ?x334) ?x94)))
+(let ((?x338 (ite $x336 ?x321 ?x319)))
+(let ((?x340 (bvsdiv (bvadd (ite $x336 ?x318 ?x321) ?x338) (_ bv2 32))))
+(let ((?x347 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x340))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x340)))))))
+(let ((?x350 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x340))))) ?x347)))
+(let ((?x353 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x340))))) ?x350)))
+(let (($x355 (fp.gt ((_ to_fp 8 24) ?x353) ?x94)))
+(let ((?x357 (ite $x355 ?x340 ?x338)))
+(let ((?x359 (bvsdiv (bvadd (ite $x355 (ite $x336 ?x318 ?x321) ?x340) ?x357) (_ bv2 32))))
+(let ((?x366 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x359))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x359)))))))
+(let ((?x369 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x359))))) ?x366)))
+(let ((?x372 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x359))))) ?x369)))
+(let (($x374 (fp.gt ((_ to_fp 8 24) ?x372) ?x94)))
+(let ((?x376 (ite $x374 ?x359 ?x357)))
+(let ((?x378 (bvsdiv (bvadd (ite $x374 (ite $x355 (ite $x336 ?x318 ?x321) ?x340) ?x359) ?x376) (_ bv2 32))))
+(let ((?x385 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x378))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x378)))))))
+(let ((?x388 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x378))))) ?x385)))
+(let ((?x391 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x378))))) ?x388)))
+(let (($x393 (fp.gt ((_ to_fp 8 24) ?x391) ?x94)))
+(let ((?x395 (ite $x393 ?x378 ?x376)))
+(let ((?x337 (ite $x336 ?x318 ?x321)))
+(let ((?x356 (ite $x355 ?x337 ?x340)))
+(let ((?x375 (ite $x374 ?x356 ?x359)))
+(let ((?x394 (ite $x393 ?x375 ?x378)))
+(let ((?x397 (bvsdiv (bvadd ?x394 ?x395) (_ bv2 32))))
+(let ((?x404 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x397))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x397)))))))
+(let ((?x407 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x397))))) ?x404)))
+(let ((?x410 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x397))))) ?x407)))
+(let (($x412 (fp.gt ((_ to_fp 8 24) ?x410) ?x94)))
+(let ((?x414 (ite $x412 ?x397 ?x395)))
+(let ((?x416 (bvsdiv (bvadd (ite $x412 ?x394 ?x397) ?x414) (_ bv2 32))))
+(let ((?x423 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x416))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x416)))))))
+(let ((?x426 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x416))))) ?x423)))
+(let ((?x429 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x416))))) ?x426)))
+(let (($x431 (fp.gt ((_ to_fp 8 24) ?x429) ?x94)))
+(let ((?x433 (ite $x431 ?x416 ?x414)))
+(let ((?x435 (bvsdiv (bvadd (ite $x431 (ite $x412 ?x394 ?x397) ?x416) ?x433) (_ bv2 32))))
+(let ((?x442 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x435))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x435)))))))
+(let ((?x445 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x435))))) ?x442)))
+(let ((?x448 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x435))))) ?x445)))
+(let (($x450 (fp.gt ((_ to_fp 8 24) ?x448) ?x94)))
+(let ((?x452 (ite $x450 ?x435 ?x433)))
+(let ((?x454 (bvsdiv (bvadd (ite $x450 (ite $x431 (ite $x412 ?x394 ?x397) ?x416) ?x435) ?x452) (_ bv2 32))))
+(let ((?x461 (concat (select data0 (bvadd (_ bv1 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x454))))) (select data0 ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x454)))))))
+(let ((?x464 (concat (select data0 (bvadd (_ bv2 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x454))))) ?x461)))
+(let ((?x467 (concat (select data0 (bvadd (_ bv3 32) ((_ extract 31 0) (bvmul (_ bv4 64) ((_ sign_extend 32) ?x454))))) ?x464)))
+(let (($x469 (fp.gt ((_ to_fp 8 24) ?x467) ?x94)))
+(let ((?x472 (bvadd (ite $x469 (ite $x450 (ite $x431 (ite $x412 ?x394 ?x397) ?x416) ?x435) ?x454) (ite $x469 ?x454 ?x452))))
+(not (bvult (bvmul (_ bv4 64) ((_ sign_extend 32) (bvsdiv ?x472 (_ bv2 32)))) (_ bv17 64))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/Float-div2-main.smt2 b/UnitTests/unsat/QF_BVFP/Float-div2-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a5373698b8654b19de8efb68d814ab529d7632d3
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/Float-div2-main.smt2
@@ -0,0 +1,68 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unsat)
+
+(declare-fun |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |nondet$symex::nondet0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::f@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |nondet$symex::nondet1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::2::g@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::3::div@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::tmp$3@1!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |nondet$symex::nondet0| |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|))
+(assert (= |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|
+   |c::main::main::1::f@1!0&0#1|))
+(assert (= |nondet$symex::nondet1| |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|))
+(assert (= |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|
+   |c::main::main::2::g@1!0&0#1|))
+(assert (= (fp.div roundNearestTiesToEven
+           |c::main::main::1::f@1!0&0#1|
+           |c::main::main::2::g@1!0&0#1|)
+   |c::main::main::3::div@1!0&0#1|))
+(assert (= (not (fp.eq ((_ to_fp 11 53)
+                 roundNearestTiesToEven
+                 |c::main::main::3::div@1!0&0#1|)
+               (fp #b0 #b00000000000 #x0000000000000)))
+   |c::main::$tmp::tmp$3@1!0&0#1|))
+(assert (let ((a!1 (and (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                (fp.geq |c::main::main::1::f@1!0&0#1|
+                        (fp #b0 #xea #b00000000000000000000000)))))
+(let ((a!2 (=> (and a!1
+                    (fp.gt |c::main::main::1::f@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000)))
+               (fp.leq |c::main::main::2::g@1!0&0#1|
+                       (fp #b0 #x00 #b00000000000000000000001))))
+      (a!3 (and (and a!1
+                     (fp.gt |c::main::main::1::f@1!0&0#1|
+                            (fp #b0 #x00 #b00000000000000000000000)))
+                (fp.leq |c::main::main::2::g@1!0&0#1|
+                        (fp #b0 #x00 #b00000000000000000000001)))))
+(let ((a!4 (and true
+                (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                (=> (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                    (fp.geq |c::main::main::1::f@1!0&0#1|
+                            (fp #b0 #xea #b00000000000000000000000)))
+                (=> a!1
+                    (fp.gt |c::main::main::1::f@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000)))
+                a!2
+                (=> a!3
+                    (fp.gt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000)))))
+      (a!5 (=> (and a!3
+                    (fp.gt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000))
+                    (not |c::main::$tmp::tmp$3@1!0&0#1|))
+               false)))
+  (not (=> a!4 (=> |execution_statet::guard_exec@0!0| a!5)))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/Float-div3-main.smt2 b/UnitTests/unsat/QF_BVFP/Float-div3-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a7ca0570c959fa765e781db043b817576544cb1e
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/Float-div3-main.smt2
@@ -0,0 +1,68 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unsat)
+
+(declare-fun |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |nondet$symex::nondet0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::f@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |nondet$symex::nondet1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::2::g@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::3::div@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::tmp$3@1!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |nondet$symex::nondet0| |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|))
+(assert (= |c::main::$tmp::return_value_nondet_float$1@1!0&0#1|
+   |c::main::main::1::f@1!0&0#1|))
+(assert (= |nondet$symex::nondet1| |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|))
+(assert (= |c::main::$tmp::return_value_nondet_float$2@1!0&0#1|
+   |c::main::main::2::g@1!0&0#1|))
+(assert (= (fp.div roundNearestTiesToEven
+           |c::main::main::1::f@1!0&0#1|
+           |c::main::main::2::g@1!0&0#1|)
+   |c::main::main::3::div@1!0&0#1|))
+(assert (= (not (fp.eq ((_ to_fp 11 53)
+                 roundNearestTiesToEven
+                 |c::main::main::3::div@1!0&0#1|)
+               (fp #b0 #b00000000000 #x0000000000000)))
+   |c::main::$tmp::tmp$3@1!0&0#1|))
+(assert (let ((a!1 (and (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                (fp.gt |c::main::main::1::f@1!0&0#1|
+                       (fp #b0 #x7f #b00000000000000000000000)))))
+(let ((a!2 (=> (and a!1
+                    (fp.lt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x7f #b00000000000000000000000)))
+               (fp.geq |c::main::main::2::g@1!0&0#1|
+                       (fp #b0 #x01 #b00000000000000000000000))))
+      (a!3 (and (and a!1
+                     (fp.lt |c::main::main::2::g@1!0&0#1|
+                            (fp #b0 #x7f #b00000000000000000000000)))
+                (fp.geq |c::main::main::2::g@1!0&0#1|
+                        (fp #b0 #x01 #b00000000000000000000000)))))
+(let ((a!4 (and true
+                (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                (=> (fp.lt |c::main::main::1::f@1!0&0#1| (_ +oo 8 24))
+                    (fp.gt |c::main::main::1::f@1!0&0#1|
+                           (fp #b0 #x7f #b00000000000000000000000)))
+                (=> a!1
+                    (fp.lt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x7f #b00000000000000000000000)))
+                a!2
+                (=> a!3
+                    (fp.gt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000)))))
+      (a!5 (=> (and a!3
+                    (fp.gt |c::main::main::2::g@1!0&0#1|
+                           (fp #b0 #x00 #b00000000000000000000000))
+                    (not |c::main::$tmp::tmp$3@1!0&0#1|))
+               false)))
+  (not (=> a!4 (=> |execution_statet::guard_exec@0!0| a!5)))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_1_3_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_1_3_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..66f864499bce7873df9e2d5e6a43e3c07c7127ff
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_1_3_true-unreach-call-main.smt2
@@ -0,0 +1,100 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unsat)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#1|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7e #b00110011001100110011010)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7e #b00110011001100110011010)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_2_1_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_2_1_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..30192bef66e866b74742c1bd45c9b5b827eefb66
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_2_1_true-unreach-call-main.smt2
@@ -0,0 +1,177 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#2|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7c #b10011001100110011001101)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7c #b10011001100110011001101)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_2_2_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_2_2_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2064338b1d7db138ca962892144340f89bfd0407
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_2_2_true-unreach-call-main.smt2
@@ -0,0 +1,177 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#2|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7d #b10011001100110011001101)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7d #b10011001100110011001101)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_2_3_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_2_3_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..867daecd032f8ef021a49c8ce47aafba0b50727c
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_2_3_true-unreach-call-main.smt2
@@ -0,0 +1,177 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#2|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7e #b00110011001100110011010)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7e #b00110011001100110011010)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_2_4_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_2_4_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5421720b69d2fe221ad9306448b40832d6948907
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_2_4_true-unreach-call-main.smt2
@@ -0,0 +1,177 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#2|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7e #b10011001100110011001101)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7e #b10011001100110011001101)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_2_5_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_2_5_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e4c655187e8ebc586c049b430c830cc5e97a436a
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_2_5_true-unreach-call-main.smt2
@@ -0,0 +1,177 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#2|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7f #b00000000000000000000000)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7f #b00000000000000000000000)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_3_1_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_3_1_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..27f585df9c0ac4dd11b4d6ad8030450387758974
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_3_1_true-unreach-call-main.smt2
@@ -0,0 +1,254 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@3!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$5@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@3!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$6@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#3| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (= |c::main::main::1::x@1!0&0#2| |c::main::f::x@3!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@3!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@3!0&0#1|
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@3!0&0#1|
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           |c::main::f::x@3!0&0#1|)
+                   |c::main::f::x@3!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$5@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#2| |c::main::fp::x@3!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@3!0&0#1|
+                                   |c::main::fp::x@3!0&0#1|)
+                           |c::main::fp::x@3!0&0#1|)
+                   |c::main::fp::x@3!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@3!0&0#1|
+                                           |c::main::fp::x@3!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@3!0&0#1|)
+                                   |c::main::fp::x@3!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$6@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#2|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$5@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$6@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#3|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#3|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7c #b10011001100110011001101)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7c #b10011001100110011001101)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/newton_3_2_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/newton_3_2_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1bcaf21d806763ae3de917b883fe9db7bdaa58a0
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/newton_3_2_true-unreach-call-main.smt2
@@ -0,0 +1,254 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown)
+
+(declare-fun |c::main::f::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$1@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$2@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$3@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@2!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$4@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#2| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::f::x@3!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_f$5@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::fp::x@3!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::$tmp::return_value_fp$6@1!0&0#1|
+             ()
+             (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::x@1!0&0#3| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::f::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@1!0&0#1|
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           |c::main::f::x@1!0&0#1|)
+                   |c::main::f::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@1!0&0#1|)
+                                   |c::main::f::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$1@1!0&0#1|))))
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::fp::x@1!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@1!0&0#1|
+                                   |c::main::fp::x@1!0&0#1|)
+                           |c::main::fp::x@1!0&0#1|)
+                   |c::main::fp::x@1!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@1!0&0#1|
+                                           |c::main::fp::x@1!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@1!0&0#1|)
+                                   |c::main::fp::x@1!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$2@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::IN@1!0&0#0|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$1@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$2@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#1|))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::f::x@2!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@2!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@2!0&0#1|
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           |c::main::f::x@2!0&0#1|)
+                   |c::main::f::x@2!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@2!0&0#1|)
+                                   |c::main::f::x@2!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$3@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#1| |c::main::fp::x@2!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@2!0&0#1|
+                                   |c::main::fp::x@2!0&0#1|)
+                           |c::main::fp::x@2!0&0#1|)
+                   |c::main::fp::x@2!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@2!0&0#1|
+                                           |c::main::fp::x@2!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@2!0&0#1|)
+                                   |c::main::fp::x@2!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$4@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#1|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$3@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$4@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#2|))
+(assert (= |c::main::main::1::x@1!0&0#2| |c::main::f::x@3!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::f::x@3!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@3!0&0#1|
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::f::x@3!0&0#1|
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           |c::main::f::x@3!0&0#1|)
+                   |c::main::f::x@3!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::f::x@3!0&0#1|)
+                                   |c::main::f::x@3!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_f$5@1!0&0#1|))))
+(assert (= |c::main::main::1::x@1!0&0#2| |c::main::fp::x@3!0&0#1|))
+(assert (let ((a!1 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   |c::main::fp::x@3!0&0#1|
+                                   |c::main::fp::x@3!0&0#1|)
+                           |c::main::fp::x@3!0&0#1|)
+                   |c::main::fp::x@3!0&0#1|)))
+(let ((a!2 (fp.add roundNearestTiesToEven
+                   (fp.sub roundNearestTiesToEven
+                           (fp #b0 #x7f #b00000000000000000000000)
+                           (fp.div roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::fp::x@3!0&0#1|
+                                           |c::main::fp::x@3!0&0#1|)
+                                   (fp #b0 #x80 #b00000000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           a!1
+                           (fp #b0 #x83 #b10000000000000000000000)))))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   a!2
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!1
+                                           |c::main::fp::x@3!0&0#1|)
+                                   |c::main::fp::x@3!0&0#1|)
+                           (fp #b0 #x88 #b01101000000000000000000)))))
+  (= a!3 |c::main::$tmp::return_value_fp$6@1!0&0#1|)))))
+(assert (= (fp.sub roundNearestTiesToEven
+           |c::main::main::1::x@1!0&0#2|
+           (fp.div roundNearestTiesToEven
+                   |c::main::$tmp::return_value_f$5@1!0&0#1|
+                   |c::main::$tmp::return_value_fp$6@1!0&0#1|))
+   |c::main::main::1::x@1!0&0#3|))
+(assert (let ((a!1 (not (not (fp.lt ((_ to_fp 11 53)
+                              roundNearestTiesToEven
+                              |c::main::main::1::x@1!0&0#3|)
+                            (fp #b0 #b01111111011 #x999999999999a))))))
+  (= (not a!1) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7d #b10011001100110011001101)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7d #b10011001100110011001101)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFP/sine_4_true-unreach-call-main.smt2 b/UnitTests/unsat/QF_BVFP/sine_4_true-unreach-call-main.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1ecdfb5851cac068fa4e8f043af28c1ab60dc77f
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFP/sine_4_true-unreach-call-main.smt2
@@ -0,0 +1,58 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFP)
+(set-info :source |ESBMC floating-point test cases contributed by Mikhail Ramalho.|)
+(set-info :category "crafted")
+(set-info :status unknown) ; unsat ?
+
+(declare-fun |c::main::main::1::x@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::IN@1!0&0#0| () (_ FloatingPoint 8 24))
+(declare-fun |c::main::main::1::result@1!0&0#1| () (_ FloatingPoint 8 24))
+(declare-fun |goto_symex::guard@0!0&0#1| () Bool)
+(declare-fun |execution_statet::guard_exec@0!0| () Bool)
+(assert (= |c::main::main::1::IN@1!0&0#0| |c::main::main::1::x@1!0&0#1|))
+(assert (let ((a!1 (fp.sub roundNearestTiesToEven
+                   |c::main::main::1::x@1!0&0#1|
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::main::1::x@1!0&0#1|
+                                           |c::main::main::1::x@1!0&0#1|)
+                                   |c::main::main::1::x@1!0&0#1|)
+                           (fp #b0 #x81 #b10000000000000000000000))))
+      (a!2 (fp.mul roundNearestTiesToEven
+                   (fp.mul roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           |c::main::main::1::x@1!0&0#1|
+                                           |c::main::main::1::x@1!0&0#1|)
+                                   |c::main::main::1::x@1!0&0#1|)
+                           |c::main::main::1::x@1!0&0#1|)
+                   |c::main::main::1::x@1!0&0#1|)))
+(let ((a!3 (fp.add roundNearestTiesToEven
+                   (fp.add roundNearestTiesToEven
+                           a!1
+                           (fp.div roundNearestTiesToEven
+                                   a!2
+                                   (fp #b0 #x85 #b11100000000000000000000)))
+                   (fp.div roundNearestTiesToEven
+                           (fp.mul roundNearestTiesToEven
+                                   (fp.mul roundNearestTiesToEven
+                                           a!2
+                                           |c::main::main::1::x@1!0&0#1|)
+                                   |c::main::main::1::x@1!0&0#1|)
+                           (fp #b0 #x8b #b00111011000000000000000)))))
+  (= a!3 |c::main::main::1::result@1!0&0#1|))))
+(assert (let ((a!1 (and (fp.leq |c::main::main::1::result@1!0&0#1|
+                        (fp #b0 #x7f #b00000010100011110101110))
+                (fp.geq |c::main::main::1::result@1!0&0#1|
+                        (fp.neg (fp #b0 #x7f #b00000010100011110101110))))))
+  (= (not (not (not a!1))) |goto_symex::guard@0!0&0#1|)))
+(assert (let ((a!1 (and (fp.gt |c::main::main::1::IN@1!0&0#0|
+                       (fp.neg (fp #b0 #x7f #b10010010000111111011011)))
+                (fp.lt |c::main::main::1::IN@1!0&0#0|
+                       (fp #b0 #x7f #b10010010000111111011011)))))
+(let ((a!2 (=> (and a!1 (not (not |goto_symex::guard@0!0&0#1|))) false)))
+  (not (=> (and true a!1) (=> |execution_statet::guard_exec@0!0| a!2))))))
+
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_BVFPLRA/newton_2_5_true-unreach-call_true-termination.i_AllErrorsAtOnce_Iteration1_TraceCheck_0.smt2 b/UnitTests/unsat/QF_BVFPLRA/newton_2_5_true-unreach-call_true-termination.i_AllErrorsAtOnce_Iteration1_TraceCheck_0.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c44ffd8895c774d5b4b8fa9b7de90ce02bd653dd
--- /dev/null
+++ b/UnitTests/unsat/QF_BVFPLRA/newton_2_5_true-unreach-call_true-termination.i_AllErrorsAtOnce_Iteration1_TraceCheck_0.smt2
@@ -0,0 +1,82 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_BVFPLRA)
+(set-info :source "|
+Generated by the tool Ultimate Automizer [1,2] which implements
+an automata theoretic approach [3] to software verification.
+
+This SMT script belongs to a set of SMT scripts that was generated by
+applying Ultimate Automizer to benchmarks [4] from the SV-COMP 2019 [5,6].
+This script might _not_ contain all SMT commands that are used by
+Ultimate Automizer. In order to satisfy the restrictions of
+the SMT-COMP we have to drop e.g., the commands for getting
+values (resp. models), unsatisfiable cores and interpolants.
+
+2019-04-27, Matthias Heizmann (heizmann@informatik.uni-freiburg.de)
+
+[1] https://ultimate.informatik.uni-freiburg.de/automizer/
+[2] Matthias Heizmann, Yu-Fang Chen, Daniel Dietsch, Marius Greitschus,
+     Jochen Hoenicke, Yong Li, Alexander Nutz, Betim Musa, Christian
+     Schilling, Tanja Schindler, Andreas Podelski: Ultimate Automizer
+     and the Search for Perfect Interpolants - (Competition Contribution).
+     TACAS (2) 2018: 447-451
+[3] Matthias Heizmann, Jochen Hoenicke, Andreas Podelski: Software Model
+     Checking for People Who Love Automata. CAV 2013:36-52
+[4] https://github.com/sosy-lab/sv-benchmarks
+[5] Dirk Beyer: Automatic Verification of C and Java Programs: SV-COMP 2019.
+     TACAS (3) 2019: 133-155
+[6] https://sv-comp.sosy-lab.org/2019/
+|")
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+(declare-fun currentRoundingMode_-1 () RoundingMode)
+(declare-fun |old(currentRoundingMode)_0| () RoundingMode)
+(declare-fun currentRoundingMode_0 () RoundingMode)
+(declare-fun currentRoundingMode_1 () RoundingMode)
+(declare-fun |main_#t~nondet1_4| () (_ FloatingPoint 8 24))
+(declare-fun main_~IN~0_5 () (_ FloatingPoint 8 24))
+(declare-fun |f_#in~x_6| () (_ FloatingPoint 8 24))
+(declare-fun f_~x_7 () (_ FloatingPoint 8 24))
+(declare-fun |f_#res_7| () (_ FloatingPoint 8 24))
+(declare-fun |main_#t~ret2_9| () (_ FloatingPoint 8 24))
+(declare-fun |fp_#in~x_10| () (_ FloatingPoint 8 24))
+(declare-fun |fp_#res_11| () (_ FloatingPoint 8 24))
+(declare-fun fp_~x_11 () (_ FloatingPoint 8 24))
+(declare-fun |main_#t~ret3_13| () (_ FloatingPoint 8 24))
+(declare-fun main_~x~0_14 () (_ FloatingPoint 8 24))
+(declare-fun |f_#in~x_15| () (_ FloatingPoint 8 24))
+(declare-fun f_~x_16 () (_ FloatingPoint 8 24))
+(declare-fun |f_#res_16| () (_ FloatingPoint 8 24))
+(declare-fun |main_#t~ret4_18| () (_ FloatingPoint 8 24))
+(declare-fun |fp_#in~x_19| () (_ FloatingPoint 8 24))
+(declare-fun |fp_#res_20| () (_ FloatingPoint 8 24))
+(declare-fun fp_~x_20 () (_ FloatingPoint 8 24))
+(declare-fun |main_#t~ret5_22| () (_ FloatingPoint 8 24))
+(declare-fun main_~x~0_23 () (_ FloatingPoint 8 24))
+(assert (not false))
+(assert (= currentRoundingMode_0 |old(currentRoundingMode)_0|))
+(assert (= |old(currentRoundingMode)_0| currentRoundingMode_-1))
+(assert (= currentRoundingMode_1 roundNearestTiesToEven))
+(assert (not (= (ite (let ((.cse0 ((_ to_fp 8 24) currentRoundingMode_1 1.0))) (and (fp.gt main_~IN~0_5 (fp.neg .cse0)) (fp.lt main_~IN~0_5 .cse0))) (_ bv1 32) (_ bv0 32)) (_ bv0 32))))
+(assert (= main_~IN~0_5 |main_#t~nondet1_4|))
+(assert (= |f_#in~x_6| main_~IN~0_5))
+(assert (= f_~x_7 |f_#in~x_6|))
+(assert (= |f_#res_7| (let ((.cse0 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 f_~x_7 f_~x_7) f_~x_7))) (let ((.cse1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse0 f_~x_7) f_~x_7))) (fp.add currentRoundingMode_1 (fp.add currentRoundingMode_1 (fp.sub currentRoundingMode_1 f_~x_7 (fp.div currentRoundingMode_1 .cse0 ((_ to_fp 8 24) currentRoundingMode_1 6.0))) (fp.div currentRoundingMode_1 .cse1 ((_ to_fp 8 24) currentRoundingMode_1 120.0))) (fp.div currentRoundingMode_1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse1 f_~x_7) f_~x_7) ((_ to_fp 8 24) currentRoundingMode_1 5040.0)))))))
+(assert (= |main_#t~ret2_9| |f_#res_7|))
+(assert (= |fp_#in~x_10| main_~IN~0_5))
+(assert (= fp_~x_11 |fp_#in~x_10|))
+(assert (= |fp_#res_11| (let ((.cse0 (fp.mul currentRoundingMode_1 fp_~x_11 fp_~x_11))) (let ((.cse1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse0 fp_~x_11) fp_~x_11))) (fp.add currentRoundingMode_1 (fp.add currentRoundingMode_1 (fp.sub currentRoundingMode_1 ((_ to_fp 8 24) currentRoundingMode_1 (_ bv1 32)) (fp.div currentRoundingMode_1 .cse0 ((_ to_fp 8 24) currentRoundingMode_1 2.0))) (fp.div currentRoundingMode_1 .cse1 ((_ to_fp 8 24) currentRoundingMode_1 24.0))) (fp.div currentRoundingMode_1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse1 fp_~x_11) fp_~x_11) ((_ to_fp 8 24) currentRoundingMode_1 720.0)))))))
+(assert (= |main_#t~ret3_13| |fp_#res_11|))
+(assert (= main_~x~0_14 (fp.sub currentRoundingMode_1 main_~IN~0_5 (fp.div currentRoundingMode_1 |main_#t~ret2_9| |main_#t~ret3_13|))))
+(assert (= |f_#in~x_15| main_~x~0_14))
+(assert (= f_~x_16 |f_#in~x_15|))
+(assert (= |f_#res_16| (let ((.cse0 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 f_~x_16 f_~x_16) f_~x_16))) (let ((.cse1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse0 f_~x_16) f_~x_16))) (fp.add currentRoundingMode_1 (fp.add currentRoundingMode_1 (fp.sub currentRoundingMode_1 f_~x_16 (fp.div currentRoundingMode_1 .cse0 ((_ to_fp 8 24) currentRoundingMode_1 6.0))) (fp.div currentRoundingMode_1 .cse1 ((_ to_fp 8 24) currentRoundingMode_1 120.0))) (fp.div currentRoundingMode_1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse1 f_~x_16) f_~x_16) ((_ to_fp 8 24) currentRoundingMode_1 5040.0)))))))
+(assert (= |main_#t~ret4_18| |f_#res_16|))
+(assert (= |fp_#in~x_19| main_~x~0_14))
+(assert (= fp_~x_20 |fp_#in~x_19|))
+(assert (= |fp_#res_20| (let ((.cse0 (fp.mul currentRoundingMode_1 fp_~x_20 fp_~x_20))) (let ((.cse1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse0 fp_~x_20) fp_~x_20))) (fp.add currentRoundingMode_1 (fp.add currentRoundingMode_1 (fp.sub currentRoundingMode_1 ((_ to_fp 8 24) currentRoundingMode_1 (_ bv1 32)) (fp.div currentRoundingMode_1 .cse0 ((_ to_fp 8 24) currentRoundingMode_1 2.0))) (fp.div currentRoundingMode_1 .cse1 ((_ to_fp 8 24) currentRoundingMode_1 24.0))) (fp.div currentRoundingMode_1 (fp.mul currentRoundingMode_1 (fp.mul currentRoundingMode_1 .cse1 fp_~x_20) fp_~x_20) ((_ to_fp 8 24) currentRoundingMode_1 720.0)))))))
+(assert (= |main_#t~ret5_22| |fp_#res_20|))
+(assert (= main_~x~0_23 (fp.sub currentRoundingMode_1 main_~x~0_14 (fp.div currentRoundingMode_1 |main_#t~ret4_18| |main_#t~ret5_22|))))
+(assert (not (fp.lt ((_ to_fp 11 53) currentRoundingMode_1 main_~x~0_23) ((_ to_fp 11 53) currentRoundingMode_1 (/ 1.0 10.0)))))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/newton.5.2.i.smt2 b/UnitTests/unsat/QF_FP/newton.5.2.i.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c8cfef2f313589a45d772deba4fcd2100ac04904
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/newton.5.2.i.smt2
@@ -0,0 +1,76 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unknown)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:52
+
+(declare-fun |c::main::1::IN!0@1#0| () (_ FloatingPoint 8 24))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 8 24) |c::main::1::IN!0@1#0|)
+(define-fun _t_11 () (_ FloatingPoint 8 24) (fp #b0 #b01111111 #b00000000000000000000000))
+(define-fun _t_12 () Bool (fp.lt _t_9 _t_11))
+(define-fun _t_14 () (_ FloatingPoint 8 24) (fp #b1 #b01111111 #b00000000000000000000000))
+(define-fun _t_15 () Bool (fp.lt _t_14 _t_9))
+(define-fun _t_16 () Bool (and _t_12 _t_15))
+(define-fun _t_17 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_19 () (_ FloatingPoint 8 24) (fp #b0 #b10000000 #b00000000000000000000000))
+(define-fun _t_20 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_17 _t_19))
+(define-fun _t_21 () (_ FloatingPoint 8 24) (fp.neg _t_20))
+(define-fun _t_22 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_11 _t_21))
+(define-fun _t_23 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_17))
+(define-fun _t_24 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_23))
+(define-fun _t_26 () (_ FloatingPoint 8 24) (fp #b0 #b10000011 #b10000000000000000000000))
+(define-fun _t_27 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_24 _t_26))
+(define-fun _t_28 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_22 _t_27))
+(define-fun _t_29 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_24))
+(define-fun _t_30 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_29))
+(define-fun _t_32 () (_ FloatingPoint 8 24) (fp #b0 #b10001000 #b01101000000000000000000))
+(define-fun _t_33 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_30 _t_32))
+(define-fun _t_34 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_28 _t_33))
+(define-fun _t_36 () (_ FloatingPoint 8 24) (fp #b0 #b10000001 #b10000000000000000000000))
+(define-fun _t_37 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_23 _t_36))
+(define-fun _t_38 () (_ FloatingPoint 8 24) (fp.neg _t_37))
+(define-fun _t_39 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_9 _t_38))
+(define-fun _t_41 () (_ FloatingPoint 8 24) (fp #b0 #b10000101 #b11100000000000000000000))
+(define-fun _t_42 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_29 _t_41))
+(define-fun _t_43 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_39 _t_42))
+(define-fun _t_44 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_9 _t_30))
+(define-fun _t_46 () (_ FloatingPoint 8 24) (fp #b0 #b10001011 #b00111011000000000000000))
+(define-fun _t_47 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_44 _t_46))
+(define-fun _t_48 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_43 _t_47))
+(define-fun _t_49 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_48 _t_34))
+(define-fun _t_50 () (_ FloatingPoint 8 24) (fp.neg _t_49))
+(define-fun _t_51 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_9 _t_50))
+(define-fun _t_52 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_51))
+(define-fun _t_53 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_52 _t_19))
+(define-fun _t_54 () (_ FloatingPoint 8 24) (fp.neg _t_53))
+(define-fun _t_55 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_11 _t_54))
+(define-fun _t_56 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_52))
+(define-fun _t_57 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_56))
+(define-fun _t_58 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_57 _t_26))
+(define-fun _t_59 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_55 _t_58))
+(define-fun _t_60 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_57))
+(define-fun _t_61 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_60))
+(define-fun _t_62 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_61 _t_32))
+(define-fun _t_63 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_59 _t_62))
+(define-fun _t_64 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_56 _t_36))
+(define-fun _t_65 () (_ FloatingPoint 8 24) (fp.neg _t_64))
+(define-fun _t_66 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_51 _t_65))
+(define-fun _t_67 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_60 _t_41))
+(define-fun _t_68 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_66 _t_67))
+(define-fun _t_69 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_51 _t_61))
+(define-fun _t_70 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_69 _t_46))
+(define-fun _t_71 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_68 _t_70))
+(define-fun _t_72 () (_ FloatingPoint 8 24) (fp.div _t_3 _t_71 _t_63))
+(define-fun _t_73 () (_ FloatingPoint 8 24) (fp.neg _t_72))
+(define-fun _t_74 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_51 _t_73))
+(define-fun _t_75 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) _t_3 _t_74))
+(define-fun _t_77 () (_ FloatingPoint 11 53) (fp #b0 #b01111111011 #b1001100110011001100110011001100110011001100110011001))
+(define-fun _t_78 () Bool (fp.lt _t_75 _t_77))
+(define-fun _t_79 () Bool (not _t_78))
+(define-fun _t_80 () Bool (and _t_16 _t_79))
+(assert _t_80)
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/qurt.c.15.smt2 b/UnitTests/unsat/QF_FP/qurt.c.15.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c1551e7988abdb7c73ae3f39ea2f2df9b18e4c10
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/qurt.c.15.smt2
@@ -0,0 +1,1324 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unsat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:53
+
+(declare-fun b492 () (_ FloatingPoint 11 53))
+(declare-fun b3444 () (_ FloatingPoint 11 53))
+(declare-fun b3620 () (_ FloatingPoint 11 53))
+(declare-fun b526 () (_ FloatingPoint 11 53))
+(declare-fun b3077 () (_ FloatingPoint 11 53))
+(declare-fun b3655 () (_ FloatingPoint 11 53))
+(declare-fun b4264 () (_ FloatingPoint 11 53))
+(declare-fun b3132 () (_ FloatingPoint 11 53))
+(declare-fun b3016 () (_ FloatingPoint 11 53))
+(declare-fun b3257 () (_ FloatingPoint 11 53))
+(declare-fun b4138 () (_ FloatingPoint 11 53))
+(declare-fun b3500 () (_ FloatingPoint 11 53))
+(declare-fun b3505 () (_ FloatingPoint 11 53))
+(declare-fun b3428 () (_ FloatingPoint 11 53))
+(declare-fun b3745 () (_ FloatingPoint 11 53))
+(declare-fun b3685 () (_ FloatingPoint 11 53))
+(declare-fun b4048 () (_ FloatingPoint 11 53))
+(declare-fun b3372 () (_ FloatingPoint 11 53))
+(declare-fun b535 () (_ FloatingPoint 11 53))
+(declare-fun b3836 () (_ FloatingPoint 11 53))
+(declare-fun b4274 () (_ FloatingPoint 11 53))
+(declare-fun b3867 () (_ FloatingPoint 11 53))
+(declare-fun b3565 () (_ FloatingPoint 11 53))
+(declare-fun b3102 () (_ FloatingPoint 11 53))
+(declare-fun b3928 () (_ FloatingPoint 11 53))
+(declare-fun b3317 () (_ FloatingPoint 11 53))
+(declare-fun b3710 () (_ FloatingPoint 11 53))
+(declare-fun b3470 () (_ FloatingPoint 11 53))
+(declare-fun b3047 () (_ FloatingPoint 11 53))
+(declare-fun b504 () (_ FloatingPoint 11 53))
+(declare-fun b3963 () (_ FloatingPoint 11 53))
+(declare-fun b4083 () (_ FloatingPoint 11 53))
+(declare-fun b3475 () (_ FloatingPoint 11 53))
+(declare-fun b3958 () (_ FloatingPoint 11 53))
+(declare-fun b3560 () (_ FloatingPoint 11 53))
+(declare-fun b1363 () (_ FloatingPoint 11 53))
+(declare-fun b4113 () (_ FloatingPoint 11 53))
+(declare-fun b3222 () (_ FloatingPoint 11 53))
+(declare-fun b3770 () (_ FloatingPoint 11 53))
+(declare-fun b3072 () (_ FloatingPoint 11 53))
+(declare-fun b3903 () (_ FloatingPoint 11 53))
+(declare-fun b3000 () (_ FloatingPoint 11 53))
+(declare-fun b3846 () (_ FloatingPoint 11 53))
+(declare-fun b3137 () (_ FloatingPoint 11 53))
+(declare-fun b3775 () (_ FloatingPoint 11 53))
+(declare-fun b3342 () (_ FloatingPoint 11 53))
+(declare-fun b3011 () (_ FloatingPoint 11 53))
+(declare-fun b3898 () (_ FloatingPoint 11 53))
+(declare-fun b3197 () (_ FloatingPoint 11 53))
+(declare-fun b3530 () (_ FloatingPoint 11 53))
+(declare-fun b4203 () (_ FloatingPoint 11 53))
+(declare-fun b3740 () (_ FloatingPoint 11 53))
+(declare-fun b3439 () (_ FloatingPoint 11 53))
+(declare-fun b4173 () (_ FloatingPoint 11 53))
+(declare-fun b3856 () (_ FloatingPoint 11 53))
+(declare-fun b4143 () (_ FloatingPoint 11 53))
+(declare-fun b3347 () (_ FloatingPoint 11 53))
+(declare-fun b3282 () (_ FloatingPoint 11 53))
+(declare-fun b4018 () (_ FloatingPoint 11 53))
+(declare-fun b538 () (_ FloatingPoint 11 53))
+(declare-fun b4078 () (_ FloatingPoint 11 53))
+(declare-fun b3988 () (_ FloatingPoint 11 53))
+(declare-fun b4168 () (_ FloatingPoint 11 53))
+(declare-fun b3625 () (_ FloatingPoint 11 53))
+(declare-fun b3595 () (_ FloatingPoint 11 53))
+(declare-fun b3872 () (_ FloatingPoint 11 53))
+(declare-fun b3287 () (_ FloatingPoint 11 53))
+(declare-fun b3312 () (_ FloatingPoint 11 53))
+(declare-fun b3107 () (_ FloatingPoint 11 53))
+(declare-fun b3252 () (_ FloatingPoint 11 53))
+(declare-fun b3715 () (_ FloatingPoint 11 53))
+(declare-fun b4053 () (_ FloatingPoint 11 53))
+(declare-fun b3650 () (_ FloatingPoint 11 53))
+(declare-fun b3162 () (_ FloatingPoint 11 53))
+(declare-fun b3167 () (_ FloatingPoint 11 53))
+(declare-fun b3535 () (_ FloatingPoint 11 53))
+(declare-fun b3042 () (_ FloatingPoint 11 53))
+(declare-fun b3192 () (_ FloatingPoint 11 53))
+(declare-fun b3800 () (_ FloatingPoint 11 53))
+(declare-fun b3408 () (_ FloatingPoint 11 53))
+(declare-fun b3993 () (_ FloatingPoint 11 53))
+(declare-fun b3590 () (_ FloatingPoint 11 53))
+(declare-fun b3227 () (_ FloatingPoint 11 53))
+(declare-fun b3680 () (_ FloatingPoint 11 53))
+(declare-fun b4228 () (_ FloatingPoint 11 53))
+(declare-fun b4023 () (_ FloatingPoint 11 53))
+(declare-fun b3933 () (_ FloatingPoint 11 53))
+(declare-fun b4198 () (_ FloatingPoint 11 53))
+(declare-fun b3418 () (_ FloatingPoint 11 53))
+(declare-fun b4108 () (_ FloatingPoint 11 53))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 11 53) b3000)
+(define-fun _t_10 () (_ FloatingPoint 11 53) b526)
+(define-fun _t_11 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_10))
+(define-fun _t_12 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_13 () (_ FloatingPoint 11 53) (fp.neg _t_12))
+(define-fun _t_14 () (_ FloatingPoint 11 53) b1363)
+(define-fun _t_15 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_13 _t_14))
+(define-fun _t_16 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_15 _t_11))
+(define-fun _t_17 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_9 _t_16))
+(define-fun _t_18 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_17 _t_17))
+(define-fun _t_19 () (_ FloatingPoint 11 53) (fp.neg _t_18))
+(define-fun _t_20 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_19))
+(define-fun _t_21 () (_ FloatingPoint 11 53) b3011)
+(define-fun _t_22 () Bool (= _t_20 _t_21))
+(define-fun _t_23 () Bool (not _t_22))
+(define-fun _t_24 () (_ FloatingPoint 11 53) b3016)
+(define-fun _t_25 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_24))
+(define-fun _t_26 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_24 _t_24))
+(define-fun _t_27 () (_ FloatingPoint 11 53) (fp.neg _t_26))
+(define-fun _t_28 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_27))
+(define-fun _t_29 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_28 _t_25))
+(define-fun _t_30 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_24 _t_29))
+(define-fun _t_31 () Bool (= _t_9 _t_30))
+(define-fun _t_32 () Bool (not _t_31))
+(define-fun _t_33 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_30 _t_30))
+(define-fun _t_34 () (_ FloatingPoint 11 53) (fp.neg _t_33))
+(define-fun _t_35 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_34))
+(define-fun _t_36 () (_ FloatingPoint 11 53) b3042)
+(define-fun _t_37 () Bool (= _t_35 _t_36))
+(define-fun _t_38 () Bool (not _t_37))
+(define-fun _t_39 () (_ FloatingPoint 11 53) b3047)
+(define-fun _t_40 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_39))
+(define-fun _t_41 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_39 _t_39))
+(define-fun _t_42 () (_ FloatingPoint 11 53) (fp.neg _t_41))
+(define-fun _t_43 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_42))
+(define-fun _t_44 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_43 _t_40))
+(define-fun _t_45 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_39 _t_44))
+(define-fun _t_46 () Bool (= _t_24 _t_45))
+(define-fun _t_47 () Bool (not _t_46))
+(define-fun _t_48 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_45 _t_45))
+(define-fun _t_49 () (_ FloatingPoint 11 53) (fp.neg _t_48))
+(define-fun _t_50 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_49))
+(define-fun _t_51 () (_ FloatingPoint 11 53) b3072)
+(define-fun _t_52 () Bool (= _t_50 _t_51))
+(define-fun _t_53 () Bool (not _t_52))
+(define-fun _t_54 () (_ FloatingPoint 11 53) b3077)
+(define-fun _t_55 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_54))
+(define-fun _t_56 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_54 _t_54))
+(define-fun _t_57 () (_ FloatingPoint 11 53) (fp.neg _t_56))
+(define-fun _t_58 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_57))
+(define-fun _t_59 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_58 _t_55))
+(define-fun _t_60 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_54 _t_59))
+(define-fun _t_61 () Bool (= _t_39 _t_60))
+(define-fun _t_62 () Bool (not _t_61))
+(define-fun _t_63 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_60 _t_60))
+(define-fun _t_64 () (_ FloatingPoint 11 53) (fp.neg _t_63))
+(define-fun _t_65 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_64))
+(define-fun _t_66 () (_ FloatingPoint 11 53) b3102)
+(define-fun _t_67 () Bool (= _t_65 _t_66))
+(define-fun _t_68 () Bool (not _t_67))
+(define-fun _t_69 () (_ FloatingPoint 11 53) b3107)
+(define-fun _t_70 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_69))
+(define-fun _t_71 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_69 _t_69))
+(define-fun _t_72 () (_ FloatingPoint 11 53) (fp.neg _t_71))
+(define-fun _t_73 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_72))
+(define-fun _t_74 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_73 _t_70))
+(define-fun _t_75 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_69 _t_74))
+(define-fun _t_76 () Bool (= _t_54 _t_75))
+(define-fun _t_77 () Bool (not _t_76))
+(define-fun _t_78 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_75 _t_75))
+(define-fun _t_79 () (_ FloatingPoint 11 53) (fp.neg _t_78))
+(define-fun _t_80 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_79))
+(define-fun _t_81 () (_ FloatingPoint 11 53) b3132)
+(define-fun _t_82 () Bool (= _t_80 _t_81))
+(define-fun _t_83 () Bool (not _t_82))
+(define-fun _t_84 () (_ FloatingPoint 11 53) b3137)
+(define-fun _t_85 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_84))
+(define-fun _t_86 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_84 _t_84))
+(define-fun _t_87 () (_ FloatingPoint 11 53) (fp.neg _t_86))
+(define-fun _t_88 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_88 _t_85))
+(define-fun _t_90 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_84 _t_89))
+(define-fun _t_91 () Bool (= _t_69 _t_90))
+(define-fun _t_92 () Bool (not _t_91))
+(define-fun _t_93 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_90 _t_90))
+(define-fun _t_94 () (_ FloatingPoint 11 53) (fp.neg _t_93))
+(define-fun _t_95 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_94))
+(define-fun _t_96 () (_ FloatingPoint 11 53) b3162)
+(define-fun _t_97 () Bool (= _t_95 _t_96))
+(define-fun _t_98 () Bool (not _t_97))
+(define-fun _t_99 () (_ FloatingPoint 11 53) b3167)
+(define-fun _t_100 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_99))
+(define-fun _t_101 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_99 _t_99))
+(define-fun _t_102 () (_ FloatingPoint 11 53) (fp.neg _t_101))
+(define-fun _t_103 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_102))
+(define-fun _t_104 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_103 _t_100))
+(define-fun _t_105 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_99 _t_104))
+(define-fun _t_106 () Bool (= _t_84 _t_105))
+(define-fun _t_107 () Bool (not _t_106))
+(define-fun _t_108 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_105 _t_105))
+(define-fun _t_109 () (_ FloatingPoint 11 53) (fp.neg _t_108))
+(define-fun _t_110 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_109))
+(define-fun _t_111 () (_ FloatingPoint 11 53) b3192)
+(define-fun _t_112 () Bool (= _t_110 _t_111))
+(define-fun _t_113 () Bool (not _t_112))
+(define-fun _t_114 () (_ FloatingPoint 11 53) b3197)
+(define-fun _t_115 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_114))
+(define-fun _t_116 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_114 _t_114))
+(define-fun _t_117 () (_ FloatingPoint 11 53) (fp.neg _t_116))
+(define-fun _t_118 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_118 _t_115))
+(define-fun _t_120 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_114 _t_119))
+(define-fun _t_121 () Bool (= _t_99 _t_120))
+(define-fun _t_122 () Bool (not _t_121))
+(define-fun _t_123 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_120 _t_120))
+(define-fun _t_124 () (_ FloatingPoint 11 53) (fp.neg _t_123))
+(define-fun _t_125 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_124))
+(define-fun _t_126 () (_ FloatingPoint 11 53) b3222)
+(define-fun _t_127 () Bool (= _t_125 _t_126))
+(define-fun _t_128 () Bool (not _t_127))
+(define-fun _t_129 () (_ FloatingPoint 11 53) b3227)
+(define-fun _t_130 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_129))
+(define-fun _t_131 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_129 _t_129))
+(define-fun _t_132 () (_ FloatingPoint 11 53) (fp.neg _t_131))
+(define-fun _t_133 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_132))
+(define-fun _t_134 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_133 _t_130))
+(define-fun _t_135 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_129 _t_134))
+(define-fun _t_136 () Bool (= _t_114 _t_135))
+(define-fun _t_137 () Bool (not _t_136))
+(define-fun _t_138 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_135 _t_135))
+(define-fun _t_139 () (_ FloatingPoint 11 53) (fp.neg _t_138))
+(define-fun _t_140 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_139))
+(define-fun _t_141 () (_ FloatingPoint 11 53) b3252)
+(define-fun _t_142 () Bool (= _t_140 _t_141))
+(define-fun _t_143 () Bool (not _t_142))
+(define-fun _t_144 () (_ FloatingPoint 11 53) b3257)
+(define-fun _t_145 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_144))
+(define-fun _t_146 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_144 _t_144))
+(define-fun _t_147 () (_ FloatingPoint 11 53) (fp.neg _t_146))
+(define-fun _t_148 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_147))
+(define-fun _t_149 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_148 _t_145))
+(define-fun _t_150 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_144 _t_149))
+(define-fun _t_151 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_150 _t_150))
+(define-fun _t_152 () (_ FloatingPoint 11 53) (fp.neg _t_151))
+(define-fun _t_153 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_152))
+(define-fun _t_154 () (_ FloatingPoint 11 53) b3282)
+(define-fun _t_155 () Bool (= _t_153 _t_154))
+(define-fun _t_156 () Bool (not _t_155))
+(define-fun _t_157 () (_ FloatingPoint 11 53) b3287)
+(define-fun _t_158 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_157))
+(define-fun _t_159 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_157 _t_157))
+(define-fun _t_160 () (_ FloatingPoint 11 53) (fp.neg _t_159))
+(define-fun _t_161 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_160))
+(define-fun _t_162 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_161 _t_158))
+(define-fun _t_163 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_157 _t_162))
+(define-fun _t_164 () Bool (= _t_144 _t_163))
+(define-fun _t_165 () Bool (not _t_164))
+(define-fun _t_166 () Bool (= _t_129 _t_150))
+(define-fun _t_167 () Bool (not _t_166))
+(define-fun _t_168 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_163 _t_163))
+(define-fun _t_169 () (_ FloatingPoint 11 53) (fp.neg _t_168))
+(define-fun _t_170 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_169))
+(define-fun _t_171 () (_ FloatingPoint 11 53) b3312)
+(define-fun _t_172 () Bool (= _t_170 _t_171))
+(define-fun _t_173 () Bool (not _t_172))
+(define-fun _t_174 () (_ FloatingPoint 11 53) b3317)
+(define-fun _t_175 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_174))
+(define-fun _t_176 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_174 _t_174))
+(define-fun _t_177 () (_ FloatingPoint 11 53) (fp.neg _t_176))
+(define-fun _t_178 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_177))
+(define-fun _t_179 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_178 _t_175))
+(define-fun _t_180 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_174 _t_179))
+(define-fun _t_181 () Bool (= _t_157 _t_180))
+(define-fun _t_182 () Bool (not _t_181))
+(define-fun _t_183 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_180 _t_180))
+(define-fun _t_184 () (_ FloatingPoint 11 53) (fp.neg _t_183))
+(define-fun _t_185 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_184))
+(define-fun _t_186 () (_ FloatingPoint 11 53) b3342)
+(define-fun _t_187 () Bool (= _t_185 _t_186))
+(define-fun _t_188 () Bool (not _t_187))
+(define-fun _t_189 () (_ FloatingPoint 11 53) b3347)
+(define-fun _t_190 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_189))
+(define-fun _t_191 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_189 _t_189))
+(define-fun _t_192 () (_ FloatingPoint 11 53) (fp.neg _t_191))
+(define-fun _t_193 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_192))
+(define-fun _t_194 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_193 _t_190))
+(define-fun _t_195 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_189 _t_194))
+(define-fun _t_196 () Bool (= _t_174 _t_195))
+(define-fun _t_197 () Bool (not _t_196))
+(define-fun _t_198 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_195 _t_195))
+(define-fun _t_199 () (_ FloatingPoint 11 53) (fp.neg _t_198))
+(define-fun _t_200 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_199))
+(define-fun _t_201 () (_ FloatingPoint 11 53) b3372)
+(define-fun _t_202 () Bool (= _t_200 _t_201))
+(define-fun _t_203 () Bool (not _t_202))
+(define-fun _t_204 () (_ FloatingPoint 11 53) b535)
+(define-fun _t_205 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_14 _t_204))
+(define-fun _t_206 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_205))
+(define-fun _t_207 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_205 _t_205))
+(define-fun _t_208 () (_ FloatingPoint 11 53) (fp.neg _t_207))
+(define-fun _t_209 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_208))
+(define-fun _t_210 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_209 _t_206))
+(define-fun _t_211 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_205 _t_210))
+(define-fun _t_212 () Bool (= _t_189 _t_211))
+(define-fun _t_213 () Bool (not _t_212))
+(define-fun _t_214 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_211))
+(define-fun _t_215 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_211 _t_211))
+(define-fun _t_216 () (_ FloatingPoint 11 53) (fp.neg _t_215))
+(define-fun _t_217 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_216))
+(define-fun _t_218 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_217 _t_214))
+(define-fun _t_219 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_211 _t_218))
+(define-fun _t_220 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_219 _t_219))
+(define-fun _t_221 () (_ FloatingPoint 11 53) (fp.neg _t_220))
+(define-fun _t_222 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_221))
+(define-fun _t_223 () (_ FloatingPoint 11 53) b3408)
+(define-fun _t_224 () Bool (= _t_222 _t_223))
+(define-fun _t_225 () Bool (not _t_224))
+(define-fun _t_226 () (_ FloatingPoint 11 53) b3418)
+(define-fun _t_227 () Bool (= _t_217 _t_226))
+(define-fun _t_228 () Bool (not _t_227))
+(define-fun _t_229 () (_ FloatingPoint 11 53) b3428)
+(define-fun _t_230 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_229))
+(define-fun _t_231 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_229 _t_229))
+(define-fun _t_232 () (_ FloatingPoint 11 53) (fp.neg _t_231))
+(define-fun _t_233 () (_ FloatingPoint 11 53) b492)
+(define-fun _t_234 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_232 _t_233))
+(define-fun _t_235 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_234 _t_230))
+(define-fun _t_236 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_229 _t_235))
+(define-fun _t_237 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_236 _t_236))
+(define-fun _t_238 () (_ FloatingPoint 11 53) (fp.neg _t_237))
+(define-fun _t_239 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_238))
+(define-fun _t_240 () (_ FloatingPoint 11 53) b3439)
+(define-fun _t_241 () Bool (= _t_239 _t_240))
+(define-fun _t_242 () Bool (not _t_241))
+(define-fun _t_243 () (_ FloatingPoint 11 53) b3444)
+(define-fun _t_244 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_243))
+(define-fun _t_245 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_243 _t_243))
+(define-fun _t_246 () (_ FloatingPoint 11 53) (fp.neg _t_245))
+(define-fun _t_247 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_246))
+(define-fun _t_248 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_247 _t_244))
+(define-fun _t_249 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_243 _t_248))
+(define-fun _t_250 () Bool (= _t_229 _t_249))
+(define-fun _t_251 () Bool (not _t_250))
+(define-fun _t_252 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_249 _t_249))
+(define-fun _t_253 () (_ FloatingPoint 11 53) (fp.neg _t_252))
+(define-fun _t_254 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_253))
+(define-fun _t_255 () (_ FloatingPoint 11 53) (fp.neg _t_254))
+(define-fun _t_256 () (_ FloatingPoint 11 53) b3470)
+(define-fun _t_257 () Bool (= _t_255 _t_256))
+(define-fun _t_258 () Bool (not _t_257))
+(define-fun _t_259 () (_ FloatingPoint 11 53) b3475)
+(define-fun _t_260 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_259))
+(define-fun _t_261 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_259 _t_259))
+(define-fun _t_262 () (_ FloatingPoint 11 53) (fp.neg _t_261))
+(define-fun _t_263 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_262))
+(define-fun _t_264 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_263 _t_260))
+(define-fun _t_265 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_259 _t_264))
+(define-fun _t_266 () Bool (= _t_243 _t_265))
+(define-fun _t_267 () Bool (not _t_266))
+(define-fun _t_268 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_265 _t_265))
+(define-fun _t_269 () (_ FloatingPoint 11 53) (fp.neg _t_268))
+(define-fun _t_270 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_269))
+(define-fun _t_271 () (_ FloatingPoint 11 53) b3500)
+(define-fun _t_272 () Bool (= _t_270 _t_271))
+(define-fun _t_273 () Bool (not _t_272))
+(define-fun _t_274 () (_ FloatingPoint 11 53) b3505)
+(define-fun _t_275 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_274))
+(define-fun _t_276 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_274 _t_274))
+(define-fun _t_277 () (_ FloatingPoint 11 53) (fp.neg _t_276))
+(define-fun _t_278 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_277))
+(define-fun _t_279 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_278 _t_275))
+(define-fun _t_280 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_274 _t_279))
+(define-fun _t_281 () Bool (= _t_259 _t_280))
+(define-fun _t_282 () Bool (not _t_281))
+(define-fun _t_283 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_280 _t_280))
+(define-fun _t_284 () (_ FloatingPoint 11 53) (fp.neg _t_283))
+(define-fun _t_285 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_284))
+(define-fun _t_286 () (_ FloatingPoint 11 53) b3530)
+(define-fun _t_287 () Bool (= _t_285 _t_286))
+(define-fun _t_288 () Bool (not _t_287))
+(define-fun _t_289 () (_ FloatingPoint 11 53) b3535)
+(define-fun _t_290 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_289))
+(define-fun _t_291 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_289 _t_289))
+(define-fun _t_292 () (_ FloatingPoint 11 53) (fp.neg _t_291))
+(define-fun _t_293 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_292))
+(define-fun _t_294 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_293 _t_290))
+(define-fun _t_295 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_289 _t_294))
+(define-fun _t_296 () Bool (= _t_274 _t_295))
+(define-fun _t_297 () Bool (not _t_296))
+(define-fun _t_298 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_295 _t_295))
+(define-fun _t_299 () (_ FloatingPoint 11 53) (fp.neg _t_298))
+(define-fun _t_300 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_299))
+(define-fun _t_301 () (_ FloatingPoint 11 53) b3560)
+(define-fun _t_302 () Bool (= _t_300 _t_301))
+(define-fun _t_303 () Bool (not _t_302))
+(define-fun _t_304 () (_ FloatingPoint 11 53) b3565)
+(define-fun _t_305 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_304))
+(define-fun _t_306 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_304 _t_304))
+(define-fun _t_307 () (_ FloatingPoint 11 53) (fp.neg _t_306))
+(define-fun _t_308 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_307))
+(define-fun _t_309 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_308 _t_305))
+(define-fun _t_310 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_304 _t_309))
+(define-fun _t_311 () Bool (= _t_289 _t_310))
+(define-fun _t_312 () Bool (not _t_311))
+(define-fun _t_313 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_310 _t_310))
+(define-fun _t_314 () (_ FloatingPoint 11 53) (fp.neg _t_313))
+(define-fun _t_315 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_314))
+(define-fun _t_316 () (_ FloatingPoint 11 53) b3590)
+(define-fun _t_317 () Bool (= _t_315 _t_316))
+(define-fun _t_318 () Bool (not _t_317))
+(define-fun _t_319 () (_ FloatingPoint 11 53) b3595)
+(define-fun _t_320 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_319))
+(define-fun _t_321 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_319 _t_319))
+(define-fun _t_322 () (_ FloatingPoint 11 53) (fp.neg _t_321))
+(define-fun _t_323 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_322))
+(define-fun _t_324 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_323 _t_320))
+(define-fun _t_325 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_319 _t_324))
+(define-fun _t_326 () Bool (= _t_304 _t_325))
+(define-fun _t_327 () Bool (not _t_326))
+(define-fun _t_328 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_325 _t_325))
+(define-fun _t_329 () (_ FloatingPoint 11 53) (fp.neg _t_328))
+(define-fun _t_330 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_329))
+(define-fun _t_331 () (_ FloatingPoint 11 53) b3620)
+(define-fun _t_332 () Bool (= _t_330 _t_331))
+(define-fun _t_333 () Bool (not _t_332))
+(define-fun _t_334 () (_ FloatingPoint 11 53) b3625)
+(define-fun _t_335 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_334))
+(define-fun _t_336 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_334 _t_334))
+(define-fun _t_337 () (_ FloatingPoint 11 53) (fp.neg _t_336))
+(define-fun _t_338 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_337))
+(define-fun _t_339 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_338 _t_335))
+(define-fun _t_340 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_334 _t_339))
+(define-fun _t_341 () Bool (= _t_319 _t_340))
+(define-fun _t_342 () Bool (not _t_341))
+(define-fun _t_343 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_340 _t_340))
+(define-fun _t_344 () (_ FloatingPoint 11 53) (fp.neg _t_343))
+(define-fun _t_345 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_344))
+(define-fun _t_346 () (_ FloatingPoint 11 53) b3650)
+(define-fun _t_347 () Bool (= _t_345 _t_346))
+(define-fun _t_348 () Bool (not _t_347))
+(define-fun _t_349 () (_ FloatingPoint 11 53) b3655)
+(define-fun _t_350 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_349))
+(define-fun _t_351 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_349 _t_349))
+(define-fun _t_352 () (_ FloatingPoint 11 53) (fp.neg _t_351))
+(define-fun _t_353 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_352))
+(define-fun _t_354 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_353 _t_350))
+(define-fun _t_355 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_349 _t_354))
+(define-fun _t_356 () Bool (= _t_334 _t_355))
+(define-fun _t_357 () Bool (not _t_356))
+(define-fun _t_358 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_355 _t_355))
+(define-fun _t_359 () (_ FloatingPoint 11 53) (fp.neg _t_358))
+(define-fun _t_360 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_359))
+(define-fun _t_361 () (_ FloatingPoint 11 53) b3680)
+(define-fun _t_362 () Bool (= _t_360 _t_361))
+(define-fun _t_363 () Bool (not _t_362))
+(define-fun _t_364 () (_ FloatingPoint 11 53) b3685)
+(define-fun _t_365 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_364))
+(define-fun _t_366 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_364 _t_364))
+(define-fun _t_367 () (_ FloatingPoint 11 53) (fp.neg _t_366))
+(define-fun _t_368 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_367))
+(define-fun _t_369 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_368 _t_365))
+(define-fun _t_370 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_364 _t_369))
+(define-fun _t_371 () Bool (= _t_349 _t_370))
+(define-fun _t_372 () Bool (not _t_371))
+(define-fun _t_373 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_370 _t_370))
+(define-fun _t_374 () (_ FloatingPoint 11 53) (fp.neg _t_373))
+(define-fun _t_375 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_374))
+(define-fun _t_376 () (_ FloatingPoint 11 53) b3710)
+(define-fun _t_377 () Bool (= _t_375 _t_376))
+(define-fun _t_378 () Bool (not _t_377))
+(define-fun _t_379 () (_ FloatingPoint 11 53) b3715)
+(define-fun _t_380 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_379))
+(define-fun _t_381 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_379 _t_379))
+(define-fun _t_382 () (_ FloatingPoint 11 53) (fp.neg _t_381))
+(define-fun _t_383 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_382))
+(define-fun _t_384 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_383 _t_380))
+(define-fun _t_385 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_379 _t_384))
+(define-fun _t_386 () Bool (= _t_364 _t_385))
+(define-fun _t_387 () Bool (not _t_386))
+(define-fun _t_388 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_385 _t_385))
+(define-fun _t_389 () (_ FloatingPoint 11 53) (fp.neg _t_388))
+(define-fun _t_390 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_389))
+(define-fun _t_391 () (_ FloatingPoint 11 53) b3740)
+(define-fun _t_392 () Bool (= _t_390 _t_391))
+(define-fun _t_393 () Bool (not _t_392))
+(define-fun _t_394 () (_ FloatingPoint 11 53) b3745)
+(define-fun _t_395 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_394))
+(define-fun _t_396 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_394 _t_394))
+(define-fun _t_397 () (_ FloatingPoint 11 53) (fp.neg _t_396))
+(define-fun _t_398 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_397))
+(define-fun _t_399 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_398 _t_395))
+(define-fun _t_400 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_394 _t_399))
+(define-fun _t_401 () Bool (= _t_379 _t_400))
+(define-fun _t_402 () Bool (not _t_401))
+(define-fun _t_403 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_400 _t_400))
+(define-fun _t_404 () (_ FloatingPoint 11 53) (fp.neg _t_403))
+(define-fun _t_405 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_404))
+(define-fun _t_406 () (_ FloatingPoint 11 53) b3770)
+(define-fun _t_407 () Bool (= _t_405 _t_406))
+(define-fun _t_408 () Bool (not _t_407))
+(define-fun _t_409 () (_ FloatingPoint 11 53) b3775)
+(define-fun _t_410 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_409))
+(define-fun _t_411 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_409 _t_409))
+(define-fun _t_412 () (_ FloatingPoint 11 53) (fp.neg _t_411))
+(define-fun _t_413 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_412))
+(define-fun _t_414 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_413 _t_410))
+(define-fun _t_415 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_409 _t_414))
+(define-fun _t_416 () Bool (= _t_394 _t_415))
+(define-fun _t_417 () Bool (not _t_416))
+(define-fun _t_418 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_415 _t_415))
+(define-fun _t_419 () (_ FloatingPoint 11 53) (fp.neg _t_418))
+(define-fun _t_420 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_419))
+(define-fun _t_421 () (_ FloatingPoint 11 53) b3800)
+(define-fun _t_422 () Bool (= _t_420 _t_421))
+(define-fun _t_423 () Bool (not _t_422))
+(define-fun _t_424 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_233 _t_204))
+(define-fun _t_425 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_424))
+(define-fun _t_426 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_424 _t_424))
+(define-fun _t_427 () (_ FloatingPoint 11 53) (fp.neg _t_426))
+(define-fun _t_428 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_427))
+(define-fun _t_429 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_428 _t_425))
+(define-fun _t_430 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_424 _t_429))
+(define-fun _t_431 () Bool (= _t_409 _t_430))
+(define-fun _t_432 () Bool (not _t_431))
+(define-fun _t_433 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_430))
+(define-fun _t_434 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_430 _t_430))
+(define-fun _t_435 () (_ FloatingPoint 11 53) (fp.neg _t_434))
+(define-fun _t_436 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_435))
+(define-fun _t_437 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_436 _t_433))
+(define-fun _t_438 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_430 _t_437))
+(define-fun _t_439 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_438 _t_438))
+(define-fun _t_440 () (_ FloatingPoint 11 53) (fp.neg _t_439))
+(define-fun _t_441 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_233 _t_440))
+(define-fun _t_442 () (_ FloatingPoint 11 53) b3836)
+(define-fun _t_443 () Bool (= _t_441 _t_442))
+(define-fun _t_444 () Bool (not _t_443))
+(define-fun _t_445 () (_ FloatingPoint 11 53) b3846)
+(define-fun _t_446 () Bool (= _t_436 _t_445))
+(define-fun _t_447 () Bool (not _t_446))
+(define-fun _t_448 () (_ FloatingPoint 11 53) b3856)
+(define-fun _t_449 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_448))
+(define-fun _t_450 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_448 _t_448))
+(define-fun _t_451 () (_ FloatingPoint 11 53) (fp.neg _t_450))
+(define-fun _t_452 () (_ FloatingPoint 11 53) b504)
+(define-fun _t_453 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_451 _t_452))
+(define-fun _t_454 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_453 _t_449))
+(define-fun _t_455 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_448 _t_454))
+(define-fun _t_456 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_455 _t_455))
+(define-fun _t_457 () (_ FloatingPoint 11 53) (fp.neg _t_456))
+(define-fun _t_458 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_457))
+(define-fun _t_459 () (_ FloatingPoint 11 53) b3867)
+(define-fun _t_460 () Bool (= _t_458 _t_459))
+(define-fun _t_461 () Bool (not _t_460))
+(define-fun _t_462 () (_ FloatingPoint 11 53) b3872)
+(define-fun _t_463 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_462))
+(define-fun _t_464 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_462 _t_462))
+(define-fun _t_465 () (_ FloatingPoint 11 53) (fp.neg _t_464))
+(define-fun _t_466 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_465))
+(define-fun _t_467 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_466 _t_463))
+(define-fun _t_468 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_462 _t_467))
+(define-fun _t_469 () Bool (= _t_448 _t_468))
+(define-fun _t_470 () Bool (not _t_469))
+(define-fun _t_471 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_468 _t_468))
+(define-fun _t_472 () (_ FloatingPoint 11 53) (fp.neg _t_471))
+(define-fun _t_473 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_472))
+(define-fun _t_474 () (_ FloatingPoint 11 53) b3898)
+(define-fun _t_475 () Bool (= _t_473 _t_474))
+(define-fun _t_476 () Bool (not _t_475))
+(define-fun _t_477 () (_ FloatingPoint 11 53) b3903)
+(define-fun _t_478 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_477))
+(define-fun _t_479 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_477 _t_477))
+(define-fun _t_480 () (_ FloatingPoint 11 53) (fp.neg _t_479))
+(define-fun _t_481 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_480))
+(define-fun _t_482 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_481 _t_478))
+(define-fun _t_483 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_477 _t_482))
+(define-fun _t_484 () Bool (= _t_462 _t_483))
+(define-fun _t_485 () Bool (not _t_484))
+(define-fun _t_486 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_483 _t_483))
+(define-fun _t_487 () (_ FloatingPoint 11 53) (fp.neg _t_486))
+(define-fun _t_488 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_487))
+(define-fun _t_489 () (_ FloatingPoint 11 53) b3928)
+(define-fun _t_490 () Bool (= _t_488 _t_489))
+(define-fun _t_491 () Bool (not _t_490))
+(define-fun _t_492 () (_ FloatingPoint 11 53) b3933)
+(define-fun _t_493 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_492))
+(define-fun _t_494 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_492 _t_492))
+(define-fun _t_495 () (_ FloatingPoint 11 53) (fp.neg _t_494))
+(define-fun _t_496 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_495))
+(define-fun _t_497 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_496 _t_493))
+(define-fun _t_498 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_492 _t_497))
+(define-fun _t_499 () Bool (= _t_477 _t_498))
+(define-fun _t_500 () Bool (not _t_499))
+(define-fun _t_501 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_498 _t_498))
+(define-fun _t_502 () (_ FloatingPoint 11 53) (fp.neg _t_501))
+(define-fun _t_503 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_502))
+(define-fun _t_504 () (_ FloatingPoint 11 53) b3958)
+(define-fun _t_505 () Bool (= _t_503 _t_504))
+(define-fun _t_506 () Bool (not _t_505))
+(define-fun _t_507 () (_ FloatingPoint 11 53) b3963)
+(define-fun _t_508 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_507))
+(define-fun _t_509 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_507 _t_507))
+(define-fun _t_510 () (_ FloatingPoint 11 53) (fp.neg _t_509))
+(define-fun _t_511 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_510))
+(define-fun _t_512 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_511 _t_508))
+(define-fun _t_513 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_507 _t_512))
+(define-fun _t_514 () Bool (= _t_492 _t_513))
+(define-fun _t_515 () Bool (not _t_514))
+(define-fun _t_516 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_513 _t_513))
+(define-fun _t_517 () (_ FloatingPoint 11 53) (fp.neg _t_516))
+(define-fun _t_518 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_517))
+(define-fun _t_519 () (_ FloatingPoint 11 53) b3988)
+(define-fun _t_520 () Bool (= _t_518 _t_519))
+(define-fun _t_521 () Bool (not _t_520))
+(define-fun _t_522 () (_ FloatingPoint 11 53) b3993)
+(define-fun _t_523 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_522))
+(define-fun _t_524 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_522 _t_522))
+(define-fun _t_525 () (_ FloatingPoint 11 53) (fp.neg _t_524))
+(define-fun _t_526 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_525))
+(define-fun _t_527 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_526 _t_523))
+(define-fun _t_528 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_522 _t_527))
+(define-fun _t_529 () Bool (= _t_507 _t_528))
+(define-fun _t_530 () Bool (not _t_529))
+(define-fun _t_531 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_528 _t_528))
+(define-fun _t_532 () (_ FloatingPoint 11 53) (fp.neg _t_531))
+(define-fun _t_533 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_532))
+(define-fun _t_534 () (_ FloatingPoint 11 53) b4018)
+(define-fun _t_535 () Bool (= _t_533 _t_534))
+(define-fun _t_536 () Bool (not _t_535))
+(define-fun _t_537 () (_ FloatingPoint 11 53) b4023)
+(define-fun _t_538 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_537))
+(define-fun _t_539 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_537 _t_537))
+(define-fun _t_540 () (_ FloatingPoint 11 53) (fp.neg _t_539))
+(define-fun _t_541 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_540))
+(define-fun _t_542 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_541 _t_538))
+(define-fun _t_543 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_537 _t_542))
+(define-fun _t_544 () Bool (= _t_522 _t_543))
+(define-fun _t_545 () Bool (not _t_544))
+(define-fun _t_546 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_543 _t_543))
+(define-fun _t_547 () (_ FloatingPoint 11 53) (fp.neg _t_546))
+(define-fun _t_548 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_547))
+(define-fun _t_549 () (_ FloatingPoint 11 53) b4048)
+(define-fun _t_550 () Bool (= _t_548 _t_549))
+(define-fun _t_551 () Bool (not _t_550))
+(define-fun _t_552 () (_ FloatingPoint 11 53) b4053)
+(define-fun _t_553 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_552))
+(define-fun _t_554 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_552 _t_552))
+(define-fun _t_555 () (_ FloatingPoint 11 53) (fp.neg _t_554))
+(define-fun _t_556 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_555))
+(define-fun _t_557 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_556 _t_553))
+(define-fun _t_558 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_552 _t_557))
+(define-fun _t_559 () Bool (= _t_537 _t_558))
+(define-fun _t_560 () Bool (not _t_559))
+(define-fun _t_561 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_558 _t_558))
+(define-fun _t_562 () (_ FloatingPoint 11 53) (fp.neg _t_561))
+(define-fun _t_563 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_562))
+(define-fun _t_564 () (_ FloatingPoint 11 53) b4078)
+(define-fun _t_565 () Bool (= _t_563 _t_564))
+(define-fun _t_566 () Bool (not _t_565))
+(define-fun _t_567 () (_ FloatingPoint 11 53) b4083)
+(define-fun _t_568 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_567))
+(define-fun _t_569 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_567 _t_567))
+(define-fun _t_570 () (_ FloatingPoint 11 53) (fp.neg _t_569))
+(define-fun _t_571 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_570))
+(define-fun _t_572 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_571 _t_568))
+(define-fun _t_573 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_567 _t_572))
+(define-fun _t_574 () Bool (= _t_552 _t_573))
+(define-fun _t_575 () Bool (not _t_574))
+(define-fun _t_576 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_573 _t_573))
+(define-fun _t_577 () (_ FloatingPoint 11 53) (fp.neg _t_576))
+(define-fun _t_578 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_577))
+(define-fun _t_579 () (_ FloatingPoint 11 53) b4108)
+(define-fun _t_580 () Bool (= _t_578 _t_579))
+(define-fun _t_581 () Bool (not _t_580))
+(define-fun _t_582 () (_ FloatingPoint 11 53) b4113)
+(define-fun _t_583 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_582))
+(define-fun _t_584 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_582 _t_582))
+(define-fun _t_585 () (_ FloatingPoint 11 53) (fp.neg _t_584))
+(define-fun _t_586 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_585))
+(define-fun _t_587 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_586 _t_583))
+(define-fun _t_588 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_582 _t_587))
+(define-fun _t_589 () Bool (= _t_567 _t_588))
+(define-fun _t_590 () Bool (not _t_589))
+(define-fun _t_591 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_588 _t_588))
+(define-fun _t_592 () (_ FloatingPoint 11 53) (fp.neg _t_591))
+(define-fun _t_593 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_592))
+(define-fun _t_594 () (_ FloatingPoint 11 53) b4138)
+(define-fun _t_595 () Bool (= _t_593 _t_594))
+(define-fun _t_596 () Bool (not _t_595))
+(define-fun _t_597 () (_ FloatingPoint 11 53) b4143)
+(define-fun _t_598 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_597))
+(define-fun _t_599 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_597 _t_597))
+(define-fun _t_600 () (_ FloatingPoint 11 53) (fp.neg _t_599))
+(define-fun _t_601 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_600))
+(define-fun _t_602 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_601 _t_598))
+(define-fun _t_603 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_597 _t_602))
+(define-fun _t_604 () Bool (= _t_582 _t_603))
+(define-fun _t_605 () Bool (not _t_604))
+(define-fun _t_606 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_603 _t_603))
+(define-fun _t_607 () (_ FloatingPoint 11 53) (fp.neg _t_606))
+(define-fun _t_608 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_607))
+(define-fun _t_609 () (_ FloatingPoint 11 53) b4168)
+(define-fun _t_610 () Bool (= _t_608 _t_609))
+(define-fun _t_611 () Bool (not _t_610))
+(define-fun _t_612 () (_ FloatingPoint 11 53) b4173)
+(define-fun _t_613 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_612))
+(define-fun _t_614 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_612 _t_612))
+(define-fun _t_615 () (_ FloatingPoint 11 53) (fp.neg _t_614))
+(define-fun _t_616 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_615))
+(define-fun _t_617 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_616 _t_613))
+(define-fun _t_618 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_612 _t_617))
+(define-fun _t_619 () Bool (= _t_597 _t_618))
+(define-fun _t_620 () Bool (not _t_619))
+(define-fun _t_621 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_618 _t_618))
+(define-fun _t_622 () (_ FloatingPoint 11 53) (fp.neg _t_621))
+(define-fun _t_623 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_622))
+(define-fun _t_624 () (_ FloatingPoint 11 53) b4198)
+(define-fun _t_625 () Bool (= _t_623 _t_624))
+(define-fun _t_626 () Bool (not _t_625))
+(define-fun _t_627 () (_ FloatingPoint 11 53) b4203)
+(define-fun _t_628 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_627))
+(define-fun _t_629 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_627 _t_627))
+(define-fun _t_630 () (_ FloatingPoint 11 53) (fp.neg _t_629))
+(define-fun _t_631 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_630))
+(define-fun _t_632 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_631 _t_628))
+(define-fun _t_633 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_627 _t_632))
+(define-fun _t_634 () Bool (= _t_612 _t_633))
+(define-fun _t_635 () Bool (not _t_634))
+(define-fun _t_636 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_633 _t_633))
+(define-fun _t_637 () (_ FloatingPoint 11 53) (fp.neg _t_636))
+(define-fun _t_638 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_637))
+(define-fun _t_639 () (_ FloatingPoint 11 53) b4228)
+(define-fun _t_640 () Bool (= _t_638 _t_639))
+(define-fun _t_641 () Bool (not _t_640))
+(define-fun _t_642 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_452 _t_204))
+(define-fun _t_643 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_642))
+(define-fun _t_644 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_642 _t_642))
+(define-fun _t_645 () (_ FloatingPoint 11 53) (fp.neg _t_644))
+(define-fun _t_646 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_645))
+(define-fun _t_647 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_646 _t_643))
+(define-fun _t_648 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_642 _t_647))
+(define-fun _t_649 () Bool (= _t_627 _t_648))
+(define-fun _t_650 () Bool (not _t_649))
+(define-fun _t_651 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_648))
+(define-fun _t_652 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_648 _t_648))
+(define-fun _t_653 () (_ FloatingPoint 11 53) (fp.neg _t_652))
+(define-fun _t_654 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_653))
+(define-fun _t_655 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_654 _t_651))
+(define-fun _t_656 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_648 _t_655))
+(define-fun _t_657 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_656 _t_656))
+(define-fun _t_658 () (_ FloatingPoint 11 53) (fp.neg _t_657))
+(define-fun _t_659 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_452 _t_658))
+(define-fun _t_660 () (_ FloatingPoint 11 53) b4264)
+(define-fun _t_661 () Bool (= _t_659 _t_660))
+(define-fun _t_662 () Bool (not _t_661))
+(define-fun _t_663 () (_ FloatingPoint 11 53) b4274)
+(define-fun _t_664 () Bool (= _t_654 _t_663))
+(define-fun _t_665 () Bool (not _t_664))
+(define-fun _t_666 () Bool (fp.eq _t_233 _t_233))
+(define-fun _t_667 () Bool (not _t_666))
+(define-fun _t_668 () Bool (fp.eq _t_233 _t_452))
+(define-fun _t_669 () Bool (not _t_668))
+(define-fun _t_670 () Bool (and _t_667 _t_669))
+(define-fun _t_671 () Bool (fp.eq _t_14 _t_233))
+(define-fun _t_672 () Bool (not _t_671))
+(define-fun _t_673 () Bool (and _t_670 _t_672))
+(define-fun _t_674 () Bool (fp.leq _t_233 _t_654))
+(define-fun _t_675 () Bool (not _t_674))
+(define-fun _t_676 () Bool (and _t_673 _t_675))
+(define-fun _t_677 () (_ FloatingPoint 11 53) (fp.neg _t_654))
+(define-fun _t_678 () Bool (= _t_663 _t_677))
+(define-fun _t_679 () Bool (and _t_676 _t_678))
+(define-fun _t_680 () Bool (and _t_665 _t_679))
+(define-fun _t_681 () (_ FloatingPoint 11 53) b538)
+(define-fun _t_682 () Bool (fp.leq _t_663 _t_681))
+(define-fun _t_683 () Bool (not _t_682))
+(define-fun _t_684 () Bool (and _t_680 _t_683))
+(define-fun _t_685 () Bool (= _t_627 _t_656))
+(define-fun _t_686 () Bool (and _t_684 _t_685))
+(define-fun _t_687 () Bool (fp.leq _t_233 _t_659))
+(define-fun _t_688 () Bool (not _t_687))
+(define-fun _t_689 () Bool (and _t_686 _t_688))
+(define-fun _t_690 () (_ FloatingPoint 11 53) (fp.neg _t_659))
+(define-fun _t_691 () Bool (= _t_660 _t_690))
+(define-fun _t_692 () Bool (and _t_689 _t_691))
+(define-fun _t_693 () Bool (and _t_662 _t_692))
+(define-fun _t_694 () Bool (fp.leq _t_660 _t_681))
+(define-fun _t_695 () Bool (not _t_694))
+(define-fun _t_696 () Bool (and _t_693 _t_695))
+(define-fun _t_697 () Bool (and _t_650 _t_696))
+(define-fun _t_698 () Bool (fp.leq _t_233 _t_638))
+(define-fun _t_699 () Bool (not _t_698))
+(define-fun _t_700 () Bool (and _t_697 _t_699))
+(define-fun _t_701 () (_ FloatingPoint 11 53) (fp.neg _t_638))
+(define-fun _t_702 () Bool (= _t_639 _t_701))
+(define-fun _t_703 () Bool (and _t_700 _t_702))
+(define-fun _t_704 () Bool (and _t_641 _t_703))
+(define-fun _t_705 () Bool (= _t_612 _t_627))
+(define-fun _t_706 () Bool (and _t_704 _t_705))
+(define-fun _t_707 () Bool (fp.leq _t_639 _t_681))
+(define-fun _t_708 () Bool (not _t_707))
+(define-fun _t_709 () Bool (and _t_706 _t_708))
+(define-fun _t_710 () Bool (and _t_635 _t_709))
+(define-fun _t_711 () Bool (fp.leq _t_233 _t_623))
+(define-fun _t_712 () Bool (not _t_711))
+(define-fun _t_713 () Bool (and _t_710 _t_712))
+(define-fun _t_714 () (_ FloatingPoint 11 53) (fp.neg _t_623))
+(define-fun _t_715 () Bool (= _t_624 _t_714))
+(define-fun _t_716 () Bool (and _t_713 _t_715))
+(define-fun _t_717 () Bool (and _t_626 _t_716))
+(define-fun _t_718 () Bool (= _t_597 _t_612))
+(define-fun _t_719 () Bool (and _t_717 _t_718))
+(define-fun _t_720 () Bool (and _t_620 _t_719))
+(define-fun _t_721 () Bool (fp.leq _t_624 _t_681))
+(define-fun _t_722 () Bool (not _t_721))
+(define-fun _t_723 () Bool (and _t_720 _t_722))
+(define-fun _t_724 () Bool (fp.leq _t_233 _t_608))
+(define-fun _t_725 () Bool (not _t_724))
+(define-fun _t_726 () Bool (and _t_723 _t_725))
+(define-fun _t_727 () (_ FloatingPoint 11 53) (fp.neg _t_608))
+(define-fun _t_728 () Bool (= _t_609 _t_727))
+(define-fun _t_729 () Bool (and _t_726 _t_728))
+(define-fun _t_730 () Bool (and _t_611 _t_729))
+(define-fun _t_731 () Bool (= _t_582 _t_597))
+(define-fun _t_732 () Bool (and _t_730 _t_731))
+(define-fun _t_733 () Bool (and _t_605 _t_732))
+(define-fun _t_734 () Bool (fp.leq _t_609 _t_681))
+(define-fun _t_735 () Bool (not _t_734))
+(define-fun _t_736 () Bool (and _t_733 _t_735))
+(define-fun _t_737 () Bool (fp.leq _t_233 _t_593))
+(define-fun _t_738 () Bool (not _t_737))
+(define-fun _t_739 () Bool (and _t_736 _t_738))
+(define-fun _t_740 () (_ FloatingPoint 11 53) (fp.neg _t_593))
+(define-fun _t_741 () Bool (= _t_594 _t_740))
+(define-fun _t_742 () Bool (and _t_739 _t_741))
+(define-fun _t_743 () Bool (and _t_596 _t_742))
+(define-fun _t_744 () Bool (= _t_567 _t_582))
+(define-fun _t_745 () Bool (and _t_743 _t_744))
+(define-fun _t_746 () Bool (and _t_590 _t_745))
+(define-fun _t_747 () Bool (fp.leq _t_594 _t_681))
+(define-fun _t_748 () Bool (not _t_747))
+(define-fun _t_749 () Bool (and _t_746 _t_748))
+(define-fun _t_750 () Bool (fp.leq _t_233 _t_578))
+(define-fun _t_751 () Bool (not _t_750))
+(define-fun _t_752 () Bool (and _t_749 _t_751))
+(define-fun _t_753 () (_ FloatingPoint 11 53) (fp.neg _t_578))
+(define-fun _t_754 () Bool (= _t_579 _t_753))
+(define-fun _t_755 () Bool (and _t_752 _t_754))
+(define-fun _t_756 () Bool (and _t_581 _t_755))
+(define-fun _t_757 () Bool (= _t_552 _t_567))
+(define-fun _t_758 () Bool (and _t_756 _t_757))
+(define-fun _t_759 () Bool (and _t_575 _t_758))
+(define-fun _t_760 () Bool (fp.leq _t_579 _t_681))
+(define-fun _t_761 () Bool (not _t_760))
+(define-fun _t_762 () Bool (and _t_759 _t_761))
+(define-fun _t_763 () Bool (fp.leq _t_233 _t_563))
+(define-fun _t_764 () Bool (not _t_763))
+(define-fun _t_765 () Bool (and _t_762 _t_764))
+(define-fun _t_766 () (_ FloatingPoint 11 53) (fp.neg _t_563))
+(define-fun _t_767 () Bool (= _t_564 _t_766))
+(define-fun _t_768 () Bool (and _t_765 _t_767))
+(define-fun _t_769 () Bool (and _t_566 _t_768))
+(define-fun _t_770 () Bool (= _t_537 _t_552))
+(define-fun _t_771 () Bool (and _t_769 _t_770))
+(define-fun _t_772 () Bool (and _t_560 _t_771))
+(define-fun _t_773 () Bool (fp.leq _t_564 _t_681))
+(define-fun _t_774 () Bool (not _t_773))
+(define-fun _t_775 () Bool (and _t_772 _t_774))
+(define-fun _t_776 () Bool (fp.leq _t_233 _t_548))
+(define-fun _t_777 () Bool (not _t_776))
+(define-fun _t_778 () Bool (and _t_775 _t_777))
+(define-fun _t_779 () (_ FloatingPoint 11 53) (fp.neg _t_548))
+(define-fun _t_780 () Bool (= _t_549 _t_779))
+(define-fun _t_781 () Bool (and _t_778 _t_780))
+(define-fun _t_782 () Bool (and _t_551 _t_781))
+(define-fun _t_783 () Bool (= _t_522 _t_537))
+(define-fun _t_784 () Bool (and _t_782 _t_783))
+(define-fun _t_785 () Bool (and _t_545 _t_784))
+(define-fun _t_786 () Bool (fp.leq _t_549 _t_681))
+(define-fun _t_787 () Bool (not _t_786))
+(define-fun _t_788 () Bool (and _t_785 _t_787))
+(define-fun _t_789 () Bool (fp.leq _t_233 _t_533))
+(define-fun _t_790 () Bool (not _t_789))
+(define-fun _t_791 () Bool (and _t_788 _t_790))
+(define-fun _t_792 () (_ FloatingPoint 11 53) (fp.neg _t_533))
+(define-fun _t_793 () Bool (= _t_534 _t_792))
+(define-fun _t_794 () Bool (and _t_791 _t_793))
+(define-fun _t_795 () Bool (and _t_536 _t_794))
+(define-fun _t_796 () Bool (= _t_507 _t_522))
+(define-fun _t_797 () Bool (and _t_795 _t_796))
+(define-fun _t_798 () Bool (and _t_530 _t_797))
+(define-fun _t_799 () Bool (fp.leq _t_534 _t_681))
+(define-fun _t_800 () Bool (not _t_799))
+(define-fun _t_801 () Bool (and _t_798 _t_800))
+(define-fun _t_802 () Bool (fp.leq _t_233 _t_518))
+(define-fun _t_803 () Bool (not _t_802))
+(define-fun _t_804 () Bool (and _t_801 _t_803))
+(define-fun _t_805 () (_ FloatingPoint 11 53) (fp.neg _t_518))
+(define-fun _t_806 () Bool (= _t_519 _t_805))
+(define-fun _t_807 () Bool (and _t_804 _t_806))
+(define-fun _t_808 () Bool (and _t_521 _t_807))
+(define-fun _t_809 () Bool (= _t_492 _t_507))
+(define-fun _t_810 () Bool (and _t_808 _t_809))
+(define-fun _t_811 () Bool (and _t_515 _t_810))
+(define-fun _t_812 () Bool (fp.leq _t_519 _t_681))
+(define-fun _t_813 () Bool (not _t_812))
+(define-fun _t_814 () Bool (and _t_811 _t_813))
+(define-fun _t_815 () Bool (fp.leq _t_233 _t_503))
+(define-fun _t_816 () Bool (not _t_815))
+(define-fun _t_817 () Bool (and _t_814 _t_816))
+(define-fun _t_818 () (_ FloatingPoint 11 53) (fp.neg _t_503))
+(define-fun _t_819 () Bool (= _t_504 _t_818))
+(define-fun _t_820 () Bool (and _t_817 _t_819))
+(define-fun _t_821 () Bool (and _t_506 _t_820))
+(define-fun _t_822 () Bool (= _t_477 _t_492))
+(define-fun _t_823 () Bool (and _t_821 _t_822))
+(define-fun _t_824 () Bool (and _t_500 _t_823))
+(define-fun _t_825 () Bool (fp.leq _t_504 _t_681))
+(define-fun _t_826 () Bool (not _t_825))
+(define-fun _t_827 () Bool (and _t_824 _t_826))
+(define-fun _t_828 () Bool (fp.leq _t_233 _t_488))
+(define-fun _t_829 () Bool (not _t_828))
+(define-fun _t_830 () Bool (and _t_827 _t_829))
+(define-fun _t_831 () (_ FloatingPoint 11 53) (fp.neg _t_488))
+(define-fun _t_832 () Bool (= _t_489 _t_831))
+(define-fun _t_833 () Bool (and _t_830 _t_832))
+(define-fun _t_834 () Bool (and _t_491 _t_833))
+(define-fun _t_835 () Bool (= _t_462 _t_477))
+(define-fun _t_836 () Bool (and _t_834 _t_835))
+(define-fun _t_837 () Bool (and _t_485 _t_836))
+(define-fun _t_838 () Bool (fp.leq _t_489 _t_681))
+(define-fun _t_839 () Bool (not _t_838))
+(define-fun _t_840 () Bool (and _t_837 _t_839))
+(define-fun _t_841 () Bool (fp.leq _t_233 _t_473))
+(define-fun _t_842 () Bool (not _t_841))
+(define-fun _t_843 () Bool (and _t_840 _t_842))
+(define-fun _t_844 () (_ FloatingPoint 11 53) (fp.neg _t_473))
+(define-fun _t_845 () Bool (= _t_474 _t_844))
+(define-fun _t_846 () Bool (and _t_843 _t_845))
+(define-fun _t_847 () Bool (and _t_476 _t_846))
+(define-fun _t_848 () Bool (= _t_448 _t_462))
+(define-fun _t_849 () Bool (and _t_847 _t_848))
+(define-fun _t_850 () Bool (and _t_470 _t_849))
+(define-fun _t_851 () Bool (fp.leq _t_474 _t_681))
+(define-fun _t_852 () Bool (not _t_851))
+(define-fun _t_853 () Bool (and _t_850 _t_852))
+(define-fun _t_854 () Bool (fp.leq _t_233 _t_458))
+(define-fun _t_855 () Bool (not _t_854))
+(define-fun _t_856 () Bool (and _t_853 _t_855))
+(define-fun _t_857 () (_ FloatingPoint 11 53) (fp.neg _t_458))
+(define-fun _t_858 () Bool (= _t_459 _t_857))
+(define-fun _t_859 () Bool (and _t_856 _t_858))
+(define-fun _t_860 () Bool (and _t_461 _t_859))
+(define-fun _t_861 () Bool (fp.leq _t_233 _t_436))
+(define-fun _t_862 () Bool (not _t_861))
+(define-fun _t_863 () Bool (and _t_860 _t_862))
+(define-fun _t_864 () (_ FloatingPoint 11 53) (fp.neg _t_436))
+(define-fun _t_865 () Bool (= _t_445 _t_864))
+(define-fun _t_866 () Bool (and _t_863 _t_865))
+(define-fun _t_867 () Bool (and _t_447 _t_866))
+(define-fun _t_868 () Bool (fp.leq _t_445 _t_681))
+(define-fun _t_869 () Bool (not _t_868))
+(define-fun _t_870 () Bool (and _t_867 _t_869))
+(define-fun _t_871 () Bool (= _t_409 _t_438))
+(define-fun _t_872 () Bool (and _t_870 _t_871))
+(define-fun _t_873 () Bool (fp.leq _t_233 _t_441))
+(define-fun _t_874 () Bool (not _t_873))
+(define-fun _t_875 () Bool (and _t_872 _t_874))
+(define-fun _t_876 () (_ FloatingPoint 11 53) (fp.neg _t_441))
+(define-fun _t_877 () Bool (= _t_442 _t_876))
+(define-fun _t_878 () Bool (and _t_875 _t_877))
+(define-fun _t_879 () Bool (and _t_444 _t_878))
+(define-fun _t_880 () Bool (fp.leq _t_442 _t_681))
+(define-fun _t_881 () Bool (not _t_880))
+(define-fun _t_882 () Bool (and _t_879 _t_881))
+(define-fun _t_883 () Bool (and _t_432 _t_882))
+(define-fun _t_884 () Bool (fp.leq _t_233 _t_420))
+(define-fun _t_885 () Bool (not _t_884))
+(define-fun _t_886 () Bool (and _t_883 _t_885))
+(define-fun _t_887 () (_ FloatingPoint 11 53) (fp.neg _t_420))
+(define-fun _t_888 () Bool (= _t_421 _t_887))
+(define-fun _t_889 () Bool (and _t_886 _t_888))
+(define-fun _t_890 () Bool (and _t_423 _t_889))
+(define-fun _t_891 () Bool (= _t_394 _t_409))
+(define-fun _t_892 () Bool (and _t_890 _t_891))
+(define-fun _t_893 () Bool (fp.leq _t_421 _t_681))
+(define-fun _t_894 () Bool (not _t_893))
+(define-fun _t_895 () Bool (and _t_892 _t_894))
+(define-fun _t_896 () Bool (and _t_417 _t_895))
+(define-fun _t_897 () Bool (fp.leq _t_233 _t_405))
+(define-fun _t_898 () Bool (not _t_897))
+(define-fun _t_899 () Bool (and _t_896 _t_898))
+(define-fun _t_900 () (_ FloatingPoint 11 53) (fp.neg _t_405))
+(define-fun _t_901 () Bool (= _t_406 _t_900))
+(define-fun _t_902 () Bool (and _t_899 _t_901))
+(define-fun _t_903 () Bool (and _t_408 _t_902))
+(define-fun _t_904 () Bool (= _t_379 _t_394))
+(define-fun _t_905 () Bool (and _t_903 _t_904))
+(define-fun _t_906 () Bool (and _t_402 _t_905))
+(define-fun _t_907 () Bool (fp.leq _t_406 _t_681))
+(define-fun _t_908 () Bool (not _t_907))
+(define-fun _t_909 () Bool (and _t_906 _t_908))
+(define-fun _t_910 () Bool (fp.leq _t_233 _t_390))
+(define-fun _t_911 () Bool (not _t_910))
+(define-fun _t_912 () Bool (and _t_909 _t_911))
+(define-fun _t_913 () (_ FloatingPoint 11 53) (fp.neg _t_390))
+(define-fun _t_914 () Bool (= _t_391 _t_913))
+(define-fun _t_915 () Bool (and _t_912 _t_914))
+(define-fun _t_916 () Bool (and _t_393 _t_915))
+(define-fun _t_917 () Bool (= _t_364 _t_379))
+(define-fun _t_918 () Bool (and _t_916 _t_917))
+(define-fun _t_919 () Bool (and _t_387 _t_918))
+(define-fun _t_920 () Bool (fp.leq _t_391 _t_681))
+(define-fun _t_921 () Bool (not _t_920))
+(define-fun _t_922 () Bool (and _t_919 _t_921))
+(define-fun _t_923 () Bool (fp.leq _t_233 _t_375))
+(define-fun _t_924 () Bool (not _t_923))
+(define-fun _t_925 () Bool (and _t_922 _t_924))
+(define-fun _t_926 () (_ FloatingPoint 11 53) (fp.neg _t_375))
+(define-fun _t_927 () Bool (= _t_376 _t_926))
+(define-fun _t_928 () Bool (and _t_925 _t_927))
+(define-fun _t_929 () Bool (and _t_378 _t_928))
+(define-fun _t_930 () Bool (= _t_349 _t_364))
+(define-fun _t_931 () Bool (and _t_929 _t_930))
+(define-fun _t_932 () Bool (and _t_372 _t_931))
+(define-fun _t_933 () Bool (fp.leq _t_376 _t_681))
+(define-fun _t_934 () Bool (not _t_933))
+(define-fun _t_935 () Bool (and _t_932 _t_934))
+(define-fun _t_936 () Bool (fp.leq _t_233 _t_360))
+(define-fun _t_937 () Bool (not _t_936))
+(define-fun _t_938 () Bool (and _t_935 _t_937))
+(define-fun _t_939 () (_ FloatingPoint 11 53) (fp.neg _t_360))
+(define-fun _t_940 () Bool (= _t_361 _t_939))
+(define-fun _t_941 () Bool (and _t_938 _t_940))
+(define-fun _t_942 () Bool (and _t_363 _t_941))
+(define-fun _t_943 () Bool (= _t_334 _t_349))
+(define-fun _t_944 () Bool (and _t_942 _t_943))
+(define-fun _t_945 () Bool (and _t_357 _t_944))
+(define-fun _t_946 () Bool (fp.leq _t_361 _t_681))
+(define-fun _t_947 () Bool (not _t_946))
+(define-fun _t_948 () Bool (and _t_945 _t_947))
+(define-fun _t_949 () Bool (fp.leq _t_233 _t_345))
+(define-fun _t_950 () Bool (not _t_949))
+(define-fun _t_951 () Bool (and _t_948 _t_950))
+(define-fun _t_952 () (_ FloatingPoint 11 53) (fp.neg _t_345))
+(define-fun _t_953 () Bool (= _t_346 _t_952))
+(define-fun _t_954 () Bool (and _t_951 _t_953))
+(define-fun _t_955 () Bool (and _t_348 _t_954))
+(define-fun _t_956 () Bool (fp.leq _t_346 _t_681))
+(define-fun _t_957 () Bool (not _t_956))
+(define-fun _t_958 () Bool (and _t_955 _t_957))
+(define-fun _t_959 () Bool (= _t_319 _t_334))
+(define-fun _t_960 () Bool (and _t_958 _t_959))
+(define-fun _t_961 () Bool (and _t_342 _t_960))
+(define-fun _t_962 () Bool (fp.leq _t_233 _t_330))
+(define-fun _t_963 () Bool (not _t_962))
+(define-fun _t_964 () Bool (and _t_961 _t_963))
+(define-fun _t_965 () (_ FloatingPoint 11 53) (fp.neg _t_330))
+(define-fun _t_966 () Bool (= _t_331 _t_965))
+(define-fun _t_967 () Bool (and _t_964 _t_966))
+(define-fun _t_968 () Bool (and _t_333 _t_967))
+(define-fun _t_969 () Bool (= _t_304 _t_319))
+(define-fun _t_970 () Bool (and _t_968 _t_969))
+(define-fun _t_971 () Bool (and _t_327 _t_970))
+(define-fun _t_972 () Bool (fp.leq _t_331 _t_681))
+(define-fun _t_973 () Bool (not _t_972))
+(define-fun _t_974 () Bool (and _t_971 _t_973))
+(define-fun _t_975 () Bool (= _t_254 _t_256))
+(define-fun _t_976 () Bool (and _t_974 _t_975))
+(define-fun _t_977 () Bool (fp.leq _t_233 _t_315))
+(define-fun _t_978 () Bool (not _t_977))
+(define-fun _t_979 () Bool (and _t_976 _t_978))
+(define-fun _t_980 () (_ FloatingPoint 11 53) (fp.neg _t_315))
+(define-fun _t_981 () Bool (= _t_316 _t_980))
+(define-fun _t_982 () Bool (and _t_979 _t_981))
+(define-fun _t_983 () Bool (and _t_318 _t_982))
+(define-fun _t_984 () Bool (= _t_289 _t_304))
+(define-fun _t_985 () Bool (and _t_983 _t_984))
+(define-fun _t_986 () Bool (and _t_312 _t_985))
+(define-fun _t_987 () Bool (fp.leq _t_316 _t_681))
+(define-fun _t_988 () Bool (not _t_987))
+(define-fun _t_989 () Bool (and _t_986 _t_988))
+(define-fun _t_990 () Bool (fp.leq _t_233 _t_300))
+(define-fun _t_991 () Bool (not _t_990))
+(define-fun _t_992 () Bool (and _t_989 _t_991))
+(define-fun _t_993 () (_ FloatingPoint 11 53) (fp.neg _t_300))
+(define-fun _t_994 () Bool (= _t_301 _t_993))
+(define-fun _t_995 () Bool (and _t_992 _t_994))
+(define-fun _t_996 () Bool (and _t_303 _t_995))
+(define-fun _t_997 () Bool (= _t_129 _t_144))
+(define-fun _t_998 () Bool (and _t_996 _t_997))
+(define-fun _t_999 () Bool (= _t_274 _t_289))
+(define-fun _t_1000 () Bool (and _t_998 _t_999))
+(define-fun _t_1001 () Bool (and _t_297 _t_1000))
+(define-fun _t_1002 () Bool (fp.leq _t_301 _t_681))
+(define-fun _t_1003 () Bool (not _t_1002))
+(define-fun _t_1004 () Bool (and _t_1001 _t_1003))
+(define-fun _t_1005 () Bool (fp.leq _t_233 _t_285))
+(define-fun _t_1006 () Bool (not _t_1005))
+(define-fun _t_1007 () Bool (and _t_1004 _t_1006))
+(define-fun _t_1008 () (_ FloatingPoint 11 53) (fp.neg _t_285))
+(define-fun _t_1009 () Bool (= _t_286 _t_1008))
+(define-fun _t_1010 () Bool (and _t_1007 _t_1009))
+(define-fun _t_1011 () Bool (and _t_288 _t_1010))
+(define-fun _t_1012 () Bool (= _t_259 _t_274))
+(define-fun _t_1013 () Bool (and _t_1011 _t_1012))
+(define-fun _t_1014 () Bool (and _t_282 _t_1013))
+(define-fun _t_1015 () Bool (fp.leq _t_286 _t_681))
+(define-fun _t_1016 () Bool (not _t_1015))
+(define-fun _t_1017 () Bool (and _t_1014 _t_1016))
+(define-fun _t_1018 () Bool (fp.leq _t_233 _t_270))
+(define-fun _t_1019 () Bool (not _t_1018))
+(define-fun _t_1020 () Bool (and _t_1017 _t_1019))
+(define-fun _t_1021 () (_ FloatingPoint 11 53) (fp.neg _t_270))
+(define-fun _t_1022 () Bool (= _t_271 _t_1021))
+(define-fun _t_1023 () Bool (and _t_1020 _t_1022))
+(define-fun _t_1024 () Bool (and _t_273 _t_1023))
+(define-fun _t_1025 () Bool (= _t_243 _t_259))
+(define-fun _t_1026 () Bool (and _t_1024 _t_1025))
+(define-fun _t_1027 () Bool (and _t_267 _t_1026))
+(define-fun _t_1028 () Bool (and _t_258 _t_1027))
+(define-fun _t_1029 () Bool (fp.leq _t_233 _t_254))
+(define-fun _t_1030 () Bool (and _t_1028 _t_1029))
+(define-fun _t_1031 () Bool (fp.leq _t_271 _t_681))
+(define-fun _t_1032 () Bool (not _t_1031))
+(define-fun _t_1033 () Bool (and _t_1030 _t_1032))
+(define-fun _t_1034 () Bool (= _t_229 _t_243))
+(define-fun _t_1035 () Bool (and _t_1033 _t_1034))
+(define-fun _t_1036 () Bool (and _t_251 _t_1035))
+(define-fun _t_1037 () Bool (fp.leq _t_256 _t_681))
+(define-fun _t_1038 () Bool (not _t_1037))
+(define-fun _t_1039 () Bool (and _t_1036 _t_1038))
+(define-fun _t_1040 () Bool (fp.leq _t_233 _t_239))
+(define-fun _t_1041 () Bool (not _t_1040))
+(define-fun _t_1042 () Bool (and _t_1039 _t_1041))
+(define-fun _t_1043 () (_ FloatingPoint 11 53) (fp.neg _t_239))
+(define-fun _t_1044 () Bool (= _t_240 _t_1043))
+(define-fun _t_1045 () Bool (and _t_1042 _t_1044))
+(define-fun _t_1046 () Bool (and _t_242 _t_1045))
+(define-fun _t_1047 () Bool (fp.leq _t_233 _t_217))
+(define-fun _t_1048 () Bool (not _t_1047))
+(define-fun _t_1049 () Bool (and _t_1046 _t_1048))
+(define-fun _t_1050 () (_ FloatingPoint 11 53) (fp.neg _t_217))
+(define-fun _t_1051 () Bool (= _t_226 _t_1050))
+(define-fun _t_1052 () Bool (and _t_1049 _t_1051))
+(define-fun _t_1053 () Bool (and _t_228 _t_1052))
+(define-fun _t_1054 () Bool (fp.leq _t_226 _t_681))
+(define-fun _t_1055 () Bool (not _t_1054))
+(define-fun _t_1056 () Bool (and _t_1053 _t_1055))
+(define-fun _t_1057 () Bool (= _t_189 _t_219))
+(define-fun _t_1058 () Bool (and _t_1056 _t_1057))
+(define-fun _t_1059 () Bool (fp.leq _t_233 _t_222))
+(define-fun _t_1060 () Bool (not _t_1059))
+(define-fun _t_1061 () Bool (and _t_1058 _t_1060))
+(define-fun _t_1062 () (_ FloatingPoint 11 53) (fp.neg _t_222))
+(define-fun _t_1063 () Bool (= _t_223 _t_1062))
+(define-fun _t_1064 () Bool (and _t_1061 _t_1063))
+(define-fun _t_1065 () Bool (and _t_225 _t_1064))
+(define-fun _t_1066 () Bool (fp.leq _t_223 _t_681))
+(define-fun _t_1067 () Bool (not _t_1066))
+(define-fun _t_1068 () Bool (and _t_1065 _t_1067))
+(define-fun _t_1069 () Bool (and _t_213 _t_1068))
+(define-fun _t_1070 () Bool (fp.leq _t_233 _t_200))
+(define-fun _t_1071 () Bool (not _t_1070))
+(define-fun _t_1072 () Bool (and _t_1069 _t_1071))
+(define-fun _t_1073 () (_ FloatingPoint 11 53) (fp.neg _t_200))
+(define-fun _t_1074 () Bool (= _t_201 _t_1073))
+(define-fun _t_1075 () Bool (and _t_1072 _t_1074))
+(define-fun _t_1076 () Bool (and _t_203 _t_1075))
+(define-fun _t_1077 () Bool (= _t_174 _t_189))
+(define-fun _t_1078 () Bool (and _t_1076 _t_1077))
+(define-fun _t_1079 () Bool (fp.leq _t_201 _t_681))
+(define-fun _t_1080 () Bool (not _t_1079))
+(define-fun _t_1081 () Bool (and _t_1078 _t_1080))
+(define-fun _t_1082 () Bool (and _t_197 _t_1081))
+(define-fun _t_1083 () Bool (fp.leq _t_233 _t_185))
+(define-fun _t_1084 () Bool (not _t_1083))
+(define-fun _t_1085 () Bool (and _t_1082 _t_1084))
+(define-fun _t_1086 () (_ FloatingPoint 11 53) (fp.neg _t_185))
+(define-fun _t_1087 () Bool (= _t_186 _t_1086))
+(define-fun _t_1088 () Bool (and _t_1085 _t_1087))
+(define-fun _t_1089 () Bool (and _t_188 _t_1088))
+(define-fun _t_1090 () Bool (= _t_157 _t_174))
+(define-fun _t_1091 () Bool (and _t_1089 _t_1090))
+(define-fun _t_1092 () Bool (and _t_182 _t_1091))
+(define-fun _t_1093 () Bool (fp.leq _t_186 _t_681))
+(define-fun _t_1094 () Bool (not _t_1093))
+(define-fun _t_1095 () Bool (and _t_1092 _t_1094))
+(define-fun _t_1096 () Bool (fp.leq _t_233 _t_170))
+(define-fun _t_1097 () Bool (not _t_1096))
+(define-fun _t_1098 () Bool (and _t_1095 _t_1097))
+(define-fun _t_1099 () (_ FloatingPoint 11 53) (fp.neg _t_170))
+(define-fun _t_1100 () Bool (= _t_171 _t_1099))
+(define-fun _t_1101 () Bool (and _t_1098 _t_1100))
+(define-fun _t_1102 () Bool (and _t_173 _t_1101))
+(define-fun _t_1103 () Bool (= _t_144 _t_157))
+(define-fun _t_1104 () Bool (and _t_1102 _t_1103))
+(define-fun _t_1105 () Bool (and _t_167 _t_1104))
+(define-fun _t_1106 () Bool (and _t_165 _t_1105))
+(define-fun _t_1107 () Bool (fp.leq _t_171 _t_681))
+(define-fun _t_1108 () Bool (not _t_1107))
+(define-fun _t_1109 () Bool (and _t_1106 _t_1108))
+(define-fun _t_1110 () Bool (fp.leq _t_233 _t_153))
+(define-fun _t_1111 () Bool (not _t_1110))
+(define-fun _t_1112 () Bool (and _t_1109 _t_1111))
+(define-fun _t_1113 () (_ FloatingPoint 11 53) (fp.neg _t_153))
+(define-fun _t_1114 () Bool (= _t_154 _t_1113))
+(define-fun _t_1115 () Bool (and _t_1112 _t_1114))
+(define-fun _t_1116 () Bool (and _t_156 _t_1115))
+(define-fun _t_1117 () Bool (fp.leq _t_154 _t_681))
+(define-fun _t_1118 () Bool (not _t_1117))
+(define-fun _t_1119 () Bool (and _t_1116 _t_1118))
+(define-fun _t_1120 () Bool (fp.leq _t_233 _t_140))
+(define-fun _t_1121 () Bool (not _t_1120))
+(define-fun _t_1122 () Bool (and _t_1119 _t_1121))
+(define-fun _t_1123 () (_ FloatingPoint 11 53) (fp.neg _t_140))
+(define-fun _t_1124 () Bool (= _t_141 _t_1123))
+(define-fun _t_1125 () Bool (and _t_1122 _t_1124))
+(define-fun _t_1126 () Bool (and _t_143 _t_1125))
+(define-fun _t_1127 () Bool (= _t_114 _t_129))
+(define-fun _t_1128 () Bool (and _t_1126 _t_1127))
+(define-fun _t_1129 () Bool (and _t_137 _t_1128))
+(define-fun _t_1130 () Bool (fp.leq _t_141 _t_681))
+(define-fun _t_1131 () Bool (not _t_1130))
+(define-fun _t_1132 () Bool (and _t_1129 _t_1131))
+(define-fun _t_1133 () Bool (fp.leq _t_233 _t_125))
+(define-fun _t_1134 () Bool (not _t_1133))
+(define-fun _t_1135 () Bool (and _t_1132 _t_1134))
+(define-fun _t_1136 () (_ FloatingPoint 11 53) (fp.neg _t_125))
+(define-fun _t_1137 () Bool (= _t_126 _t_1136))
+(define-fun _t_1138 () Bool (and _t_1135 _t_1137))
+(define-fun _t_1139 () Bool (and _t_128 _t_1138))
+(define-fun _t_1140 () Bool (= _t_99 _t_114))
+(define-fun _t_1141 () Bool (and _t_1139 _t_1140))
+(define-fun _t_1142 () Bool (and _t_122 _t_1141))
+(define-fun _t_1143 () Bool (fp.leq _t_126 _t_681))
+(define-fun _t_1144 () Bool (not _t_1143))
+(define-fun _t_1145 () Bool (and _t_1142 _t_1144))
+(define-fun _t_1146 () Bool (fp.leq _t_233 _t_110))
+(define-fun _t_1147 () Bool (not _t_1146))
+(define-fun _t_1148 () Bool (and _t_1145 _t_1147))
+(define-fun _t_1149 () (_ FloatingPoint 11 53) (fp.neg _t_110))
+(define-fun _t_1150 () Bool (= _t_111 _t_1149))
+(define-fun _t_1151 () Bool (and _t_1148 _t_1150))
+(define-fun _t_1152 () Bool (and _t_113 _t_1151))
+(define-fun _t_1153 () Bool (= _t_84 _t_99))
+(define-fun _t_1154 () Bool (and _t_1152 _t_1153))
+(define-fun _t_1155 () Bool (and _t_107 _t_1154))
+(define-fun _t_1156 () Bool (fp.leq _t_111 _t_681))
+(define-fun _t_1157 () Bool (not _t_1156))
+(define-fun _t_1158 () Bool (and _t_1155 _t_1157))
+(define-fun _t_1159 () Bool (fp.leq _t_233 _t_95))
+(define-fun _t_1160 () Bool (not _t_1159))
+(define-fun _t_1161 () Bool (and _t_1158 _t_1160))
+(define-fun _t_1162 () (_ FloatingPoint 11 53) (fp.neg _t_95))
+(define-fun _t_1163 () Bool (= _t_96 _t_1162))
+(define-fun _t_1164 () Bool (and _t_1161 _t_1163))
+(define-fun _t_1165 () Bool (and _t_98 _t_1164))
+(define-fun _t_1166 () Bool (= _t_69 _t_84))
+(define-fun _t_1167 () Bool (and _t_1165 _t_1166))
+(define-fun _t_1168 () Bool (and _t_92 _t_1167))
+(define-fun _t_1169 () Bool (fp.leq _t_96 _t_681))
+(define-fun _t_1170 () Bool (not _t_1169))
+(define-fun _t_1171 () Bool (and _t_1168 _t_1170))
+(define-fun _t_1172 () Bool (fp.leq _t_233 _t_80))
+(define-fun _t_1173 () Bool (not _t_1172))
+(define-fun _t_1174 () Bool (and _t_1171 _t_1173))
+(define-fun _t_1175 () (_ FloatingPoint 11 53) (fp.neg _t_80))
+(define-fun _t_1176 () Bool (= _t_81 _t_1175))
+(define-fun _t_1177 () Bool (and _t_1174 _t_1176))
+(define-fun _t_1178 () Bool (and _t_83 _t_1177))
+(define-fun _t_1179 () Bool (= _t_54 _t_69))
+(define-fun _t_1180 () Bool (and _t_1178 _t_1179))
+(define-fun _t_1181 () Bool (and _t_77 _t_1180))
+(define-fun _t_1182 () Bool (fp.leq _t_81 _t_681))
+(define-fun _t_1183 () Bool (not _t_1182))
+(define-fun _t_1184 () Bool (and _t_1181 _t_1183))
+(define-fun _t_1185 () Bool (fp.leq _t_233 _t_65))
+(define-fun _t_1186 () Bool (not _t_1185))
+(define-fun _t_1187 () Bool (and _t_1184 _t_1186))
+(define-fun _t_1188 () (_ FloatingPoint 11 53) (fp.neg _t_65))
+(define-fun _t_1189 () Bool (= _t_66 _t_1188))
+(define-fun _t_1190 () Bool (and _t_1187 _t_1189))
+(define-fun _t_1191 () Bool (and _t_68 _t_1190))
+(define-fun _t_1192 () Bool (= _t_39 _t_54))
+(define-fun _t_1193 () Bool (and _t_1191 _t_1192))
+(define-fun _t_1194 () Bool (and _t_62 _t_1193))
+(define-fun _t_1195 () Bool (fp.leq _t_66 _t_681))
+(define-fun _t_1196 () Bool (not _t_1195))
+(define-fun _t_1197 () Bool (and _t_1194 _t_1196))
+(define-fun _t_1198 () Bool (fp.leq _t_233 _t_50))
+(define-fun _t_1199 () Bool (not _t_1198))
+(define-fun _t_1200 () Bool (and _t_1197 _t_1199))
+(define-fun _t_1201 () (_ FloatingPoint 11 53) (fp.neg _t_50))
+(define-fun _t_1202 () Bool (= _t_51 _t_1201))
+(define-fun _t_1203 () Bool (and _t_1200 _t_1202))
+(define-fun _t_1204 () Bool (and _t_53 _t_1203))
+(define-fun _t_1205 () Bool (= _t_24 _t_39))
+(define-fun _t_1206 () Bool (and _t_1204 _t_1205))
+(define-fun _t_1207 () Bool (and _t_47 _t_1206))
+(define-fun _t_1208 () Bool (fp.leq _t_51 _t_681))
+(define-fun _t_1209 () Bool (not _t_1208))
+(define-fun _t_1210 () Bool (and _t_1207 _t_1209))
+(define-fun _t_1211 () Bool (fp.leq _t_233 _t_35))
+(define-fun _t_1212 () Bool (not _t_1211))
+(define-fun _t_1213 () Bool (and _t_1210 _t_1212))
+(define-fun _t_1214 () (_ FloatingPoint 11 53) (fp.neg _t_35))
+(define-fun _t_1215 () Bool (= _t_36 _t_1214))
+(define-fun _t_1216 () Bool (and _t_1213 _t_1215))
+(define-fun _t_1217 () Bool (and _t_38 _t_1216))
+(define-fun _t_1218 () Bool (= _t_9 _t_24))
+(define-fun _t_1219 () Bool (and _t_1217 _t_1218))
+(define-fun _t_1220 () Bool (and _t_32 _t_1219))
+(define-fun _t_1221 () Bool (fp.leq _t_36 _t_681))
+(define-fun _t_1222 () Bool (not _t_1221))
+(define-fun _t_1223 () Bool (and _t_1220 _t_1222))
+(define-fun _t_1224 () Bool (fp.leq _t_233 _t_20))
+(define-fun _t_1225 () Bool (not _t_1224))
+(define-fun _t_1226 () Bool (and _t_1223 _t_1225))
+(define-fun _t_1227 () (_ FloatingPoint 11 53) (fp.neg _t_20))
+(define-fun _t_1228 () Bool (= _t_21 _t_1227))
+(define-fun _t_1229 () Bool (and _t_1226 _t_1228))
+(define-fun _t_1230 () Bool (and _t_23 _t_1229))
+(assert _t_1230)
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/qurt.c.20.smt2 b/UnitTests/unsat/QF_FP/qurt.c.20.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1db36eef7cd53737c723a9eeff103a37f2a478f4
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/qurt.c.20.smt2
@@ -0,0 +1,1674 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unknown)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:53
+
+(declare-fun b3811 () (_ FloatingPoint 11 53))
+(declare-fun b3877 () (_ FloatingPoint 11 53))
+(declare-fun b5153 () (_ FloatingPoint 11 53))
+(declare-fun b4575 () (_ FloatingPoint 11 53))
+(declare-fun b5213 () (_ FloatingPoint 11 53))
+(declare-fun b4027 () (_ FloatingPoint 11 53))
+(declare-fun b5208 () (_ FloatingPoint 11 53))
+(declare-fun b4117 () (_ FloatingPoint 11 53))
+(declare-fun b4690 () (_ FloatingPoint 11 53))
+(declare-fun b4540 () (_ FloatingPoint 11 53))
+(declare-fun b5434 () (_ FloatingPoint 11 53))
+(declare-fun b4262 () (_ FloatingPoint 11 53))
+(declare-fun b4570 () (_ FloatingPoint 11 53))
+(declare-fun b4998 () (_ FloatingPoint 11 53))
+(declare-fun b5183 () (_ FloatingPoint 11 53))
+(declare-fun b5388 () (_ FloatingPoint 11 53))
+(declare-fun b4267 () (_ FloatingPoint 11 53))
+(declare-fun b5088 () (_ FloatingPoint 11 53))
+(declare-fun b4425 () (_ FloatingPoint 11 53))
+(declare-fun b5268 () (_ FloatingPoint 11 53))
+(declare-fun b4338 () (_ FloatingPoint 11 53))
+(declare-fun b4840 () (_ FloatingPoint 11 53))
+(declare-fun b3992 () (_ FloatingPoint 11 53))
+(declare-fun b5123 () (_ FloatingPoint 11 53))
+(declare-fun b5363 () (_ FloatingPoint 11 53))
+(declare-fun b4177 () (_ FloatingPoint 11 53))
+(declare-fun b4750 () (_ FloatingPoint 11 53))
+(declare-fun b3847 () (_ FloatingPoint 11 53))
+(declare-fun b5328 () (_ FloatingPoint 11 53))
+(declare-fun b4973 () (_ FloatingPoint 11 53))
+(declare-fun b4660 () (_ FloatingPoint 11 53))
+(declare-fun b4815 () (_ FloatingPoint 11 53))
+(declare-fun b4810 () (_ FloatingPoint 11 53))
+(declare-fun b4630 () (_ FloatingPoint 11 53))
+(declare-fun b5273 () (_ FloatingPoint 11 53))
+(declare-fun b4943 () (_ FloatingPoint 11 53))
+(declare-fun b598 () (_ FloatingPoint 11 53))
+(declare-fun b4057 () (_ FloatingPoint 11 53))
+(declare-fun b4785 () (_ FloatingPoint 11 53))
+(declare-fun b4515 () (_ FloatingPoint 11 53))
+(declare-fun b4605 () (_ FloatingPoint 11 53))
+(declare-fun b4172 () (_ FloatingPoint 11 53))
+(declare-fun b4142 () (_ FloatingPoint 11 53))
+(declare-fun b641 () (_ FloatingPoint 11 53))
+(declare-fun b4292 () (_ FloatingPoint 11 53))
+(declare-fun b4390 () (_ FloatingPoint 11 53))
+(declare-fun b4968 () (_ FloatingPoint 11 53))
+(declare-fun b4022 () (_ FloatingPoint 11 53))
+(declare-fun b5333 () (_ FloatingPoint 11 53))
+(declare-fun b5033 () (_ FloatingPoint 11 53))
+(declare-fun b4912 () (_ FloatingPoint 11 53))
+(declare-fun b4755 () (_ FloatingPoint 11 53))
+(declare-fun b1719 () (_ FloatingPoint 11 53))
+(declare-fun b4237 () (_ FloatingPoint 11 53))
+(declare-fun b3872 () (_ FloatingPoint 11 53))
+(declare-fun b4202 () (_ FloatingPoint 11 53))
+(declare-fun b5243 () (_ FloatingPoint 11 53))
+(declare-fun b4359 () (_ FloatingPoint 11 53))
+(declare-fun b4420 () (_ FloatingPoint 11 53))
+(declare-fun b4147 () (_ FloatingPoint 11 53))
+(declare-fun b4510 () (_ FloatingPoint 11 53))
+(declare-fun b4600 () (_ FloatingPoint 11 53))
+(declare-fun b4907 () (_ FloatingPoint 11 53))
+(declare-fun b3967 () (_ FloatingPoint 11 53))
+(declare-fun b5148 () (_ FloatingPoint 11 53))
+(declare-fun b5063 () (_ FloatingPoint 11 53))
+(declare-fun b4112 () (_ FloatingPoint 11 53))
+(declare-fun b5028 () (_ FloatingPoint 11 53))
+(declare-fun b4207 () (_ FloatingPoint 11 53))
+(declare-fun b4364 () (_ FloatingPoint 11 53))
+(declare-fun b3816 () (_ FloatingPoint 11 53))
+(declare-fun b3997 () (_ FloatingPoint 11 53))
+(declare-fun b4455 () (_ FloatingPoint 11 53))
+(declare-fun b4720 () (_ FloatingPoint 11 53))
+(declare-fun b3962 () (_ FloatingPoint 11 53))
+(declare-fun b5238 () (_ FloatingPoint 11 53))
+(declare-fun b3800 () (_ FloatingPoint 11 53))
+(declare-fun b5303 () (_ FloatingPoint 11 53))
+(declare-fun b4348 () (_ FloatingPoint 11 53))
+(declare-fun b4886 () (_ FloatingPoint 11 53))
+(declare-fun b5298 () (_ FloatingPoint 11 53))
+(declare-fun b610 () (_ FloatingPoint 11 53))
+(declare-fun b3902 () (_ FloatingPoint 11 53))
+(declare-fun b5058 () (_ FloatingPoint 11 53))
+(declare-fun b4395 () (_ FloatingPoint 11 53))
+(declare-fun b4725 () (_ FloatingPoint 11 53))
+(declare-fun b5003 () (_ FloatingPoint 11 53))
+(declare-fun b4780 () (_ FloatingPoint 11 53))
+(declare-fun b3907 () (_ FloatingPoint 11 53))
+(declare-fun b4938 () (_ FloatingPoint 11 53))
+(declare-fun b4450 () (_ FloatingPoint 11 53))
+(declare-fun b4485 () (_ FloatingPoint 11 53))
+(declare-fun b4665 () (_ FloatingPoint 11 53))
+(declare-fun b3842 () (_ FloatingPoint 11 53))
+(declare-fun b4232 () (_ FloatingPoint 11 53))
+(declare-fun b4480 () (_ FloatingPoint 11 53))
+(declare-fun b4896 () (_ FloatingPoint 11 53))
+(declare-fun b644 () (_ FloatingPoint 11 53))
+(declare-fun b4082 () (_ FloatingPoint 11 53))
+(declare-fun b5358 () (_ FloatingPoint 11 53))
+(declare-fun b5178 () (_ FloatingPoint 11 53))
+(declare-fun b4876 () (_ FloatingPoint 11 53))
+(declare-fun b4545 () (_ FloatingPoint 11 53))
+(declare-fun b5118 () (_ FloatingPoint 11 53))
+(declare-fun b3937 () (_ FloatingPoint 11 53))
+(declare-fun b632 () (_ FloatingPoint 11 53))
+(declare-fun b4695 () (_ FloatingPoint 11 53))
+(declare-fun b4052 () (_ FloatingPoint 11 53))
+(declare-fun b4635 () (_ FloatingPoint 11 53))
+(declare-fun b4087 () (_ FloatingPoint 11 53))
+(declare-fun b5424 () (_ FloatingPoint 11 53))
+(declare-fun b3932 () (_ FloatingPoint 11 53))
+(declare-fun b5093 () (_ FloatingPoint 11 53))
+(declare-fun b4328 () (_ FloatingPoint 11 53))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 11 53) b3800)
+(define-fun _t_10 () (_ FloatingPoint 11 53) b632)
+(define-fun _t_11 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_10))
+(define-fun _t_12 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_13 () (_ FloatingPoint 11 53) (fp.neg _t_12))
+(define-fun _t_14 () (_ FloatingPoint 11 53) b1719)
+(define-fun _t_15 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_13 _t_14))
+(define-fun _t_16 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_15 _t_11))
+(define-fun _t_17 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_9 _t_16))
+(define-fun _t_18 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_17 _t_17))
+(define-fun _t_19 () (_ FloatingPoint 11 53) (fp.neg _t_18))
+(define-fun _t_20 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_19))
+(define-fun _t_21 () (_ FloatingPoint 11 53) b3811)
+(define-fun _t_22 () Bool (= _t_20 _t_21))
+(define-fun _t_23 () Bool (not _t_22))
+(define-fun _t_24 () (_ FloatingPoint 11 53) b3816)
+(define-fun _t_25 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_24))
+(define-fun _t_26 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_24 _t_24))
+(define-fun _t_27 () (_ FloatingPoint 11 53) (fp.neg _t_26))
+(define-fun _t_28 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_27))
+(define-fun _t_29 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_28 _t_25))
+(define-fun _t_30 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_24 _t_29))
+(define-fun _t_31 () Bool (= _t_9 _t_30))
+(define-fun _t_32 () Bool (not _t_31))
+(define-fun _t_33 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_30 _t_30))
+(define-fun _t_34 () (_ FloatingPoint 11 53) (fp.neg _t_33))
+(define-fun _t_35 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_34))
+(define-fun _t_36 () (_ FloatingPoint 11 53) b3842)
+(define-fun _t_37 () Bool (= _t_35 _t_36))
+(define-fun _t_38 () Bool (not _t_37))
+(define-fun _t_39 () (_ FloatingPoint 11 53) b3847)
+(define-fun _t_40 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_39))
+(define-fun _t_41 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_39 _t_39))
+(define-fun _t_42 () (_ FloatingPoint 11 53) (fp.neg _t_41))
+(define-fun _t_43 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_42))
+(define-fun _t_44 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_43 _t_40))
+(define-fun _t_45 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_39 _t_44))
+(define-fun _t_46 () Bool (= _t_24 _t_45))
+(define-fun _t_47 () Bool (not _t_46))
+(define-fun _t_48 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_45 _t_45))
+(define-fun _t_49 () (_ FloatingPoint 11 53) (fp.neg _t_48))
+(define-fun _t_50 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_49))
+(define-fun _t_51 () (_ FloatingPoint 11 53) b3872)
+(define-fun _t_52 () Bool (= _t_50 _t_51))
+(define-fun _t_53 () Bool (not _t_52))
+(define-fun _t_54 () (_ FloatingPoint 11 53) b3877)
+(define-fun _t_55 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_54))
+(define-fun _t_56 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_54 _t_54))
+(define-fun _t_57 () (_ FloatingPoint 11 53) (fp.neg _t_56))
+(define-fun _t_58 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_57))
+(define-fun _t_59 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_58 _t_55))
+(define-fun _t_60 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_54 _t_59))
+(define-fun _t_61 () Bool (= _t_39 _t_60))
+(define-fun _t_62 () Bool (not _t_61))
+(define-fun _t_63 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_60 _t_60))
+(define-fun _t_64 () (_ FloatingPoint 11 53) (fp.neg _t_63))
+(define-fun _t_65 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_64))
+(define-fun _t_66 () (_ FloatingPoint 11 53) b3902)
+(define-fun _t_67 () Bool (= _t_65 _t_66))
+(define-fun _t_68 () Bool (not _t_67))
+(define-fun _t_69 () (_ FloatingPoint 11 53) b3907)
+(define-fun _t_70 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_69))
+(define-fun _t_71 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_69 _t_69))
+(define-fun _t_72 () (_ FloatingPoint 11 53) (fp.neg _t_71))
+(define-fun _t_73 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_72))
+(define-fun _t_74 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_73 _t_70))
+(define-fun _t_75 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_69 _t_74))
+(define-fun _t_76 () Bool (= _t_54 _t_75))
+(define-fun _t_77 () Bool (not _t_76))
+(define-fun _t_78 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_75 _t_75))
+(define-fun _t_79 () (_ FloatingPoint 11 53) (fp.neg _t_78))
+(define-fun _t_80 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_79))
+(define-fun _t_81 () (_ FloatingPoint 11 53) b3932)
+(define-fun _t_82 () Bool (= _t_80 _t_81))
+(define-fun _t_83 () Bool (not _t_82))
+(define-fun _t_84 () (_ FloatingPoint 11 53) b3937)
+(define-fun _t_85 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_84))
+(define-fun _t_86 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_84 _t_84))
+(define-fun _t_87 () (_ FloatingPoint 11 53) (fp.neg _t_86))
+(define-fun _t_88 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_88 _t_85))
+(define-fun _t_90 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_84 _t_89))
+(define-fun _t_91 () Bool (= _t_69 _t_90))
+(define-fun _t_92 () Bool (not _t_91))
+(define-fun _t_93 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_90 _t_90))
+(define-fun _t_94 () (_ FloatingPoint 11 53) (fp.neg _t_93))
+(define-fun _t_95 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_94))
+(define-fun _t_96 () (_ FloatingPoint 11 53) b3962)
+(define-fun _t_97 () Bool (= _t_95 _t_96))
+(define-fun _t_98 () Bool (not _t_97))
+(define-fun _t_99 () (_ FloatingPoint 11 53) b3967)
+(define-fun _t_100 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_99))
+(define-fun _t_101 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_99 _t_99))
+(define-fun _t_102 () (_ FloatingPoint 11 53) (fp.neg _t_101))
+(define-fun _t_103 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_102))
+(define-fun _t_104 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_103 _t_100))
+(define-fun _t_105 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_99 _t_104))
+(define-fun _t_106 () Bool (= _t_84 _t_105))
+(define-fun _t_107 () Bool (not _t_106))
+(define-fun _t_108 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_105 _t_105))
+(define-fun _t_109 () (_ FloatingPoint 11 53) (fp.neg _t_108))
+(define-fun _t_110 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_109))
+(define-fun _t_111 () (_ FloatingPoint 11 53) b3992)
+(define-fun _t_112 () Bool (= _t_110 _t_111))
+(define-fun _t_113 () Bool (not _t_112))
+(define-fun _t_114 () (_ FloatingPoint 11 53) b3997)
+(define-fun _t_115 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_114))
+(define-fun _t_116 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_114 _t_114))
+(define-fun _t_117 () (_ FloatingPoint 11 53) (fp.neg _t_116))
+(define-fun _t_118 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_118 _t_115))
+(define-fun _t_120 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_114 _t_119))
+(define-fun _t_121 () Bool (= _t_99 _t_120))
+(define-fun _t_122 () Bool (not _t_121))
+(define-fun _t_123 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_120 _t_120))
+(define-fun _t_124 () (_ FloatingPoint 11 53) (fp.neg _t_123))
+(define-fun _t_125 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_124))
+(define-fun _t_126 () (_ FloatingPoint 11 53) b4022)
+(define-fun _t_127 () Bool (= _t_125 _t_126))
+(define-fun _t_128 () Bool (not _t_127))
+(define-fun _t_129 () (_ FloatingPoint 11 53) b4027)
+(define-fun _t_130 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_129))
+(define-fun _t_131 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_129 _t_129))
+(define-fun _t_132 () (_ FloatingPoint 11 53) (fp.neg _t_131))
+(define-fun _t_133 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_132))
+(define-fun _t_134 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_133 _t_130))
+(define-fun _t_135 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_129 _t_134))
+(define-fun _t_136 () Bool (= _t_114 _t_135))
+(define-fun _t_137 () Bool (not _t_136))
+(define-fun _t_138 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_135 _t_135))
+(define-fun _t_139 () (_ FloatingPoint 11 53) (fp.neg _t_138))
+(define-fun _t_140 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_139))
+(define-fun _t_141 () (_ FloatingPoint 11 53) b4052)
+(define-fun _t_142 () Bool (= _t_140 _t_141))
+(define-fun _t_143 () Bool (not _t_142))
+(define-fun _t_144 () (_ FloatingPoint 11 53) b4057)
+(define-fun _t_145 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_144))
+(define-fun _t_146 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_144 _t_144))
+(define-fun _t_147 () (_ FloatingPoint 11 53) (fp.neg _t_146))
+(define-fun _t_148 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_147))
+(define-fun _t_149 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_148 _t_145))
+(define-fun _t_150 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_144 _t_149))
+(define-fun _t_151 () Bool (= _t_129 _t_150))
+(define-fun _t_152 () Bool (not _t_151))
+(define-fun _t_153 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_150 _t_150))
+(define-fun _t_154 () (_ FloatingPoint 11 53) (fp.neg _t_153))
+(define-fun _t_155 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_154))
+(define-fun _t_156 () (_ FloatingPoint 11 53) b4082)
+(define-fun _t_157 () Bool (= _t_155 _t_156))
+(define-fun _t_158 () Bool (not _t_157))
+(define-fun _t_159 () (_ FloatingPoint 11 53) b4087)
+(define-fun _t_160 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_159))
+(define-fun _t_161 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_159 _t_159))
+(define-fun _t_162 () (_ FloatingPoint 11 53) (fp.neg _t_161))
+(define-fun _t_163 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_162))
+(define-fun _t_164 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_163 _t_160))
+(define-fun _t_165 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_159 _t_164))
+(define-fun _t_166 () Bool (= _t_144 _t_165))
+(define-fun _t_167 () Bool (not _t_166))
+(define-fun _t_168 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_165 _t_165))
+(define-fun _t_169 () (_ FloatingPoint 11 53) (fp.neg _t_168))
+(define-fun _t_170 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_169))
+(define-fun _t_171 () (_ FloatingPoint 11 53) b4112)
+(define-fun _t_172 () Bool (= _t_170 _t_171))
+(define-fun _t_173 () Bool (not _t_172))
+(define-fun _t_174 () (_ FloatingPoint 11 53) b4117)
+(define-fun _t_175 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_174))
+(define-fun _t_176 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_174 _t_174))
+(define-fun _t_177 () (_ FloatingPoint 11 53) (fp.neg _t_176))
+(define-fun _t_178 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_177))
+(define-fun _t_179 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_178 _t_175))
+(define-fun _t_180 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_174 _t_179))
+(define-fun _t_181 () Bool (= _t_159 _t_180))
+(define-fun _t_182 () Bool (not _t_181))
+(define-fun _t_183 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_180 _t_180))
+(define-fun _t_184 () (_ FloatingPoint 11 53) (fp.neg _t_183))
+(define-fun _t_185 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_184))
+(define-fun _t_186 () (_ FloatingPoint 11 53) b4142)
+(define-fun _t_187 () Bool (= _t_185 _t_186))
+(define-fun _t_188 () Bool (not _t_187))
+(define-fun _t_189 () (_ FloatingPoint 11 53) b4147)
+(define-fun _t_190 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_189))
+(define-fun _t_191 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_189 _t_189))
+(define-fun _t_192 () (_ FloatingPoint 11 53) (fp.neg _t_191))
+(define-fun _t_193 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_192))
+(define-fun _t_194 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_193 _t_190))
+(define-fun _t_195 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_189 _t_194))
+(define-fun _t_196 () Bool (= _t_174 _t_195))
+(define-fun _t_197 () Bool (not _t_196))
+(define-fun _t_198 () (_ FloatingPoint 11 53) b4177)
+(define-fun _t_199 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_198))
+(define-fun _t_200 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_198 _t_198))
+(define-fun _t_201 () (_ FloatingPoint 11 53) (fp.neg _t_200))
+(define-fun _t_202 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_201))
+(define-fun _t_203 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_202 _t_199))
+(define-fun _t_204 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_198 _t_203))
+(define-fun _t_205 () Bool (= _t_189 _t_204))
+(define-fun _t_206 () Bool (not _t_205))
+(define-fun _t_207 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_195 _t_195))
+(define-fun _t_208 () (_ FloatingPoint 11 53) (fp.neg _t_207))
+(define-fun _t_209 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_208))
+(define-fun _t_210 () (_ FloatingPoint 11 53) b4172)
+(define-fun _t_211 () Bool (= _t_209 _t_210))
+(define-fun _t_212 () Bool (not _t_211))
+(define-fun _t_213 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_204 _t_204))
+(define-fun _t_214 () (_ FloatingPoint 11 53) (fp.neg _t_213))
+(define-fun _t_215 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_214))
+(define-fun _t_216 () (_ FloatingPoint 11 53) b4202)
+(define-fun _t_217 () Bool (= _t_215 _t_216))
+(define-fun _t_218 () Bool (not _t_217))
+(define-fun _t_219 () (_ FloatingPoint 11 53) b4207)
+(define-fun _t_220 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_219))
+(define-fun _t_221 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_219 _t_219))
+(define-fun _t_222 () (_ FloatingPoint 11 53) (fp.neg _t_221))
+(define-fun _t_223 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_222))
+(define-fun _t_224 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_223 _t_220))
+(define-fun _t_225 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_219 _t_224))
+(define-fun _t_226 () Bool (= _t_198 _t_225))
+(define-fun _t_227 () Bool (not _t_226))
+(define-fun _t_228 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_225 _t_225))
+(define-fun _t_229 () (_ FloatingPoint 11 53) (fp.neg _t_228))
+(define-fun _t_230 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_229))
+(define-fun _t_231 () (_ FloatingPoint 11 53) b4232)
+(define-fun _t_232 () Bool (= _t_230 _t_231))
+(define-fun _t_233 () Bool (not _t_232))
+(define-fun _t_234 () (_ FloatingPoint 11 53) b4237)
+(define-fun _t_235 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_234))
+(define-fun _t_236 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_234 _t_234))
+(define-fun _t_237 () (_ FloatingPoint 11 53) (fp.neg _t_236))
+(define-fun _t_238 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_237))
+(define-fun _t_239 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_238 _t_235))
+(define-fun _t_240 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_234 _t_239))
+(define-fun _t_241 () Bool (= _t_219 _t_240))
+(define-fun _t_242 () Bool (not _t_241))
+(define-fun _t_243 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_240 _t_240))
+(define-fun _t_244 () (_ FloatingPoint 11 53) (fp.neg _t_243))
+(define-fun _t_245 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_244))
+(define-fun _t_246 () (_ FloatingPoint 11 53) b4262)
+(define-fun _t_247 () Bool (= _t_245 _t_246))
+(define-fun _t_248 () Bool (not _t_247))
+(define-fun _t_249 () (_ FloatingPoint 11 53) b4267)
+(define-fun _t_250 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_249))
+(define-fun _t_251 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_249 _t_249))
+(define-fun _t_252 () (_ FloatingPoint 11 53) (fp.neg _t_251))
+(define-fun _t_253 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_252))
+(define-fun _t_254 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_253 _t_250))
+(define-fun _t_255 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_249 _t_254))
+(define-fun _t_256 () Bool (= _t_234 _t_255))
+(define-fun _t_257 () Bool (not _t_256))
+(define-fun _t_258 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_255 _t_255))
+(define-fun _t_259 () (_ FloatingPoint 11 53) (fp.neg _t_258))
+(define-fun _t_260 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_259))
+(define-fun _t_261 () (_ FloatingPoint 11 53) b4292)
+(define-fun _t_262 () Bool (= _t_260 _t_261))
+(define-fun _t_263 () Bool (not _t_262))
+(define-fun _t_264 () (_ FloatingPoint 11 53) b641)
+(define-fun _t_265 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_14 _t_264))
+(define-fun _t_266 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_265))
+(define-fun _t_267 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_265 _t_265))
+(define-fun _t_268 () (_ FloatingPoint 11 53) (fp.neg _t_267))
+(define-fun _t_269 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_268))
+(define-fun _t_270 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_269 _t_266))
+(define-fun _t_271 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_265 _t_270))
+(define-fun _t_272 () Bool (= _t_249 _t_271))
+(define-fun _t_273 () Bool (not _t_272))
+(define-fun _t_274 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_271))
+(define-fun _t_275 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_271 _t_271))
+(define-fun _t_276 () (_ FloatingPoint 11 53) (fp.neg _t_275))
+(define-fun _t_277 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_276))
+(define-fun _t_278 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_277 _t_274))
+(define-fun _t_279 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_271 _t_278))
+(define-fun _t_280 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_279 _t_279))
+(define-fun _t_281 () (_ FloatingPoint 11 53) (fp.neg _t_280))
+(define-fun _t_282 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_281))
+(define-fun _t_283 () (_ FloatingPoint 11 53) b4328)
+(define-fun _t_284 () Bool (= _t_282 _t_283))
+(define-fun _t_285 () Bool (not _t_284))
+(define-fun _t_286 () (_ FloatingPoint 11 53) b4338)
+(define-fun _t_287 () Bool (= _t_277 _t_286))
+(define-fun _t_288 () Bool (not _t_287))
+(define-fun _t_289 () (_ FloatingPoint 11 53) b4348)
+(define-fun _t_290 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_289))
+(define-fun _t_291 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_289 _t_289))
+(define-fun _t_292 () (_ FloatingPoint 11 53) (fp.neg _t_291))
+(define-fun _t_293 () (_ FloatingPoint 11 53) b598)
+(define-fun _t_294 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_292 _t_293))
+(define-fun _t_295 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_294 _t_290))
+(define-fun _t_296 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_289 _t_295))
+(define-fun _t_297 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_296 _t_296))
+(define-fun _t_298 () (_ FloatingPoint 11 53) (fp.neg _t_297))
+(define-fun _t_299 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_298))
+(define-fun _t_300 () (_ FloatingPoint 11 53) b4359)
+(define-fun _t_301 () Bool (= _t_299 _t_300))
+(define-fun _t_302 () Bool (not _t_301))
+(define-fun _t_303 () (_ FloatingPoint 11 53) b4364)
+(define-fun _t_304 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_303))
+(define-fun _t_305 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_303 _t_303))
+(define-fun _t_306 () (_ FloatingPoint 11 53) (fp.neg _t_305))
+(define-fun _t_307 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_306))
+(define-fun _t_308 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_307 _t_304))
+(define-fun _t_309 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_303 _t_308))
+(define-fun _t_310 () Bool (= _t_289 _t_309))
+(define-fun _t_311 () Bool (not _t_310))
+(define-fun _t_312 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_309 _t_309))
+(define-fun _t_313 () (_ FloatingPoint 11 53) (fp.neg _t_312))
+(define-fun _t_314 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_313))
+(define-fun _t_315 () (_ FloatingPoint 11 53) b4390)
+(define-fun _t_316 () Bool (= _t_314 _t_315))
+(define-fun _t_317 () Bool (not _t_316))
+(define-fun _t_318 () (_ FloatingPoint 11 53) b4395)
+(define-fun _t_319 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_318))
+(define-fun _t_320 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_318 _t_318))
+(define-fun _t_321 () (_ FloatingPoint 11 53) (fp.neg _t_320))
+(define-fun _t_322 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_321))
+(define-fun _t_323 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_322 _t_319))
+(define-fun _t_324 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_318 _t_323))
+(define-fun _t_325 () Bool (= _t_303 _t_324))
+(define-fun _t_326 () Bool (not _t_325))
+(define-fun _t_327 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_324 _t_324))
+(define-fun _t_328 () (_ FloatingPoint 11 53) (fp.neg _t_327))
+(define-fun _t_329 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_328))
+(define-fun _t_330 () (_ FloatingPoint 11 53) b4420)
+(define-fun _t_331 () Bool (= _t_329 _t_330))
+(define-fun _t_332 () Bool (not _t_331))
+(define-fun _t_333 () (_ FloatingPoint 11 53) b4425)
+(define-fun _t_334 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_333))
+(define-fun _t_335 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_333 _t_333))
+(define-fun _t_336 () (_ FloatingPoint 11 53) (fp.neg _t_335))
+(define-fun _t_337 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_336))
+(define-fun _t_338 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_337 _t_334))
+(define-fun _t_339 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_333 _t_338))
+(define-fun _t_340 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_339 _t_339))
+(define-fun _t_341 () (_ FloatingPoint 11 53) (fp.neg _t_340))
+(define-fun _t_342 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_341))
+(define-fun _t_343 () (_ FloatingPoint 11 53) b4450)
+(define-fun _t_344 () Bool (= _t_342 _t_343))
+(define-fun _t_345 () Bool (not _t_344))
+(define-fun _t_346 () (_ FloatingPoint 11 53) b4455)
+(define-fun _t_347 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_346))
+(define-fun _t_348 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_346 _t_346))
+(define-fun _t_349 () (_ FloatingPoint 11 53) (fp.neg _t_348))
+(define-fun _t_350 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_349))
+(define-fun _t_351 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_350 _t_347))
+(define-fun _t_352 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_346 _t_351))
+(define-fun _t_353 () Bool (= _t_333 _t_352))
+(define-fun _t_354 () Bool (not _t_353))
+(define-fun _t_355 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_352 _t_352))
+(define-fun _t_356 () (_ FloatingPoint 11 53) (fp.neg _t_355))
+(define-fun _t_357 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_356))
+(define-fun _t_358 () (_ FloatingPoint 11 53) b4480)
+(define-fun _t_359 () Bool (= _t_357 _t_358))
+(define-fun _t_360 () Bool (not _t_359))
+(define-fun _t_361 () (_ FloatingPoint 11 53) b4485)
+(define-fun _t_362 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_361))
+(define-fun _t_363 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_361 _t_361))
+(define-fun _t_364 () (_ FloatingPoint 11 53) (fp.neg _t_363))
+(define-fun _t_365 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_364))
+(define-fun _t_366 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_365 _t_362))
+(define-fun _t_367 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_361 _t_366))
+(define-fun _t_368 () Bool (= _t_346 _t_367))
+(define-fun _t_369 () Bool (not _t_368))
+(define-fun _t_370 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_367 _t_367))
+(define-fun _t_371 () (_ FloatingPoint 11 53) (fp.neg _t_370))
+(define-fun _t_372 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_371))
+(define-fun _t_373 () (_ FloatingPoint 11 53) b4510)
+(define-fun _t_374 () Bool (= _t_372 _t_373))
+(define-fun _t_375 () Bool (not _t_374))
+(define-fun _t_376 () (_ FloatingPoint 11 53) b4515)
+(define-fun _t_377 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_376))
+(define-fun _t_378 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_376 _t_376))
+(define-fun _t_379 () (_ FloatingPoint 11 53) (fp.neg _t_378))
+(define-fun _t_380 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_379))
+(define-fun _t_381 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_380 _t_377))
+(define-fun _t_382 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_376 _t_381))
+(define-fun _t_383 () Bool (= _t_361 _t_382))
+(define-fun _t_384 () Bool (not _t_383))
+(define-fun _t_385 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_382 _t_382))
+(define-fun _t_386 () (_ FloatingPoint 11 53) (fp.neg _t_385))
+(define-fun _t_387 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_386))
+(define-fun _t_388 () (_ FloatingPoint 11 53) b4540)
+(define-fun _t_389 () Bool (= _t_387 _t_388))
+(define-fun _t_390 () Bool (not _t_389))
+(define-fun _t_391 () (_ FloatingPoint 11 53) b4545)
+(define-fun _t_392 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_391))
+(define-fun _t_393 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_391 _t_391))
+(define-fun _t_394 () (_ FloatingPoint 11 53) (fp.neg _t_393))
+(define-fun _t_395 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_394))
+(define-fun _t_396 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_395 _t_392))
+(define-fun _t_397 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_391 _t_396))
+(define-fun _t_398 () Bool (= _t_376 _t_397))
+(define-fun _t_399 () Bool (not _t_398))
+(define-fun _t_400 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_397 _t_397))
+(define-fun _t_401 () (_ FloatingPoint 11 53) (fp.neg _t_400))
+(define-fun _t_402 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_401))
+(define-fun _t_403 () (_ FloatingPoint 11 53) b4570)
+(define-fun _t_404 () Bool (= _t_402 _t_403))
+(define-fun _t_405 () Bool (not _t_404))
+(define-fun _t_406 () (_ FloatingPoint 11 53) b4575)
+(define-fun _t_407 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_406))
+(define-fun _t_408 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_406 _t_406))
+(define-fun _t_409 () (_ FloatingPoint 11 53) (fp.neg _t_408))
+(define-fun _t_410 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_409))
+(define-fun _t_411 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_410 _t_407))
+(define-fun _t_412 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_406 _t_411))
+(define-fun _t_413 () Bool (= _t_391 _t_412))
+(define-fun _t_414 () Bool (not _t_413))
+(define-fun _t_415 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_412 _t_412))
+(define-fun _t_416 () (_ FloatingPoint 11 53) (fp.neg _t_415))
+(define-fun _t_417 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_416))
+(define-fun _t_418 () (_ FloatingPoint 11 53) b4600)
+(define-fun _t_419 () Bool (= _t_417 _t_418))
+(define-fun _t_420 () Bool (not _t_419))
+(define-fun _t_421 () (_ FloatingPoint 11 53) b4605)
+(define-fun _t_422 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_421))
+(define-fun _t_423 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_421 _t_421))
+(define-fun _t_424 () (_ FloatingPoint 11 53) (fp.neg _t_423))
+(define-fun _t_425 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_424))
+(define-fun _t_426 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_425 _t_422))
+(define-fun _t_427 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_421 _t_426))
+(define-fun _t_428 () Bool (= _t_406 _t_427))
+(define-fun _t_429 () Bool (not _t_428))
+(define-fun _t_430 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_427 _t_427))
+(define-fun _t_431 () (_ FloatingPoint 11 53) (fp.neg _t_430))
+(define-fun _t_432 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_431))
+(define-fun _t_433 () (_ FloatingPoint 11 53) b4630)
+(define-fun _t_434 () Bool (= _t_432 _t_433))
+(define-fun _t_435 () Bool (not _t_434))
+(define-fun _t_436 () (_ FloatingPoint 11 53) b4635)
+(define-fun _t_437 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_436))
+(define-fun _t_438 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_436 _t_436))
+(define-fun _t_439 () (_ FloatingPoint 11 53) (fp.neg _t_438))
+(define-fun _t_440 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_439))
+(define-fun _t_441 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_440 _t_437))
+(define-fun _t_442 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_436 _t_441))
+(define-fun _t_443 () Bool (= _t_421 _t_442))
+(define-fun _t_444 () Bool (not _t_443))
+(define-fun _t_445 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_442 _t_442))
+(define-fun _t_446 () (_ FloatingPoint 11 53) (fp.neg _t_445))
+(define-fun _t_447 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_446))
+(define-fun _t_448 () (_ FloatingPoint 11 53) b4660)
+(define-fun _t_449 () Bool (= _t_447 _t_448))
+(define-fun _t_450 () Bool (not _t_449))
+(define-fun _t_451 () (_ FloatingPoint 11 53) b4665)
+(define-fun _t_452 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_451))
+(define-fun _t_453 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_451 _t_451))
+(define-fun _t_454 () (_ FloatingPoint 11 53) (fp.neg _t_453))
+(define-fun _t_455 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_454))
+(define-fun _t_456 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_455 _t_452))
+(define-fun _t_457 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_451 _t_456))
+(define-fun _t_458 () Bool (= _t_436 _t_457))
+(define-fun _t_459 () Bool (not _t_458))
+(define-fun _t_460 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_457 _t_457))
+(define-fun _t_461 () (_ FloatingPoint 11 53) (fp.neg _t_460))
+(define-fun _t_462 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_461))
+(define-fun _t_463 () (_ FloatingPoint 11 53) b4690)
+(define-fun _t_464 () Bool (= _t_462 _t_463))
+(define-fun _t_465 () Bool (not _t_464))
+(define-fun _t_466 () Bool (= _t_318 _t_333))
+(define-fun _t_467 () Bool (not _t_466))
+(define-fun _t_468 () (_ FloatingPoint 11 53) b4695)
+(define-fun _t_469 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_468))
+(define-fun _t_470 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_468 _t_468))
+(define-fun _t_471 () (_ FloatingPoint 11 53) (fp.neg _t_470))
+(define-fun _t_472 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_471))
+(define-fun _t_473 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_472 _t_469))
+(define-fun _t_474 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_468 _t_473))
+(define-fun _t_475 () Bool (= _t_451 _t_474))
+(define-fun _t_476 () Bool (not _t_475))
+(define-fun _t_477 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_474 _t_474))
+(define-fun _t_478 () (_ FloatingPoint 11 53) (fp.neg _t_477))
+(define-fun _t_479 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_478))
+(define-fun _t_480 () (_ FloatingPoint 11 53) b4720)
+(define-fun _t_481 () Bool (= _t_479 _t_480))
+(define-fun _t_482 () Bool (not _t_481))
+(define-fun _t_483 () (_ FloatingPoint 11 53) b4725)
+(define-fun _t_484 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_483))
+(define-fun _t_485 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_483 _t_483))
+(define-fun _t_486 () (_ FloatingPoint 11 53) (fp.neg _t_485))
+(define-fun _t_487 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_486))
+(define-fun _t_488 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_487 _t_484))
+(define-fun _t_489 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_483 _t_488))
+(define-fun _t_490 () Bool (= _t_468 _t_489))
+(define-fun _t_491 () Bool (not _t_490))
+(define-fun _t_492 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_489 _t_489))
+(define-fun _t_493 () (_ FloatingPoint 11 53) (fp.neg _t_492))
+(define-fun _t_494 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_493))
+(define-fun _t_495 () (_ FloatingPoint 11 53) b4750)
+(define-fun _t_496 () Bool (= _t_494 _t_495))
+(define-fun _t_497 () Bool (not _t_496))
+(define-fun _t_498 () (_ FloatingPoint 11 53) b4755)
+(define-fun _t_499 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_498))
+(define-fun _t_500 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_498 _t_498))
+(define-fun _t_501 () (_ FloatingPoint 11 53) (fp.neg _t_500))
+(define-fun _t_502 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_501))
+(define-fun _t_503 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_502 _t_499))
+(define-fun _t_504 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_498 _t_503))
+(define-fun _t_505 () Bool (= _t_483 _t_504))
+(define-fun _t_506 () Bool (not _t_505))
+(define-fun _t_507 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_504 _t_504))
+(define-fun _t_508 () (_ FloatingPoint 11 53) (fp.neg _t_507))
+(define-fun _t_509 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_508))
+(define-fun _t_510 () (_ FloatingPoint 11 53) b4780)
+(define-fun _t_511 () Bool (= _t_509 _t_510))
+(define-fun _t_512 () Bool (not _t_511))
+(define-fun _t_513 () (_ FloatingPoint 11 53) b4785)
+(define-fun _t_514 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_513))
+(define-fun _t_515 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_513 _t_513))
+(define-fun _t_516 () (_ FloatingPoint 11 53) (fp.neg _t_515))
+(define-fun _t_517 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_516))
+(define-fun _t_518 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_517 _t_514))
+(define-fun _t_519 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_513 _t_518))
+(define-fun _t_520 () Bool (= _t_498 _t_519))
+(define-fun _t_521 () Bool (not _t_520))
+(define-fun _t_522 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_519 _t_519))
+(define-fun _t_523 () (_ FloatingPoint 11 53) (fp.neg _t_522))
+(define-fun _t_524 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_523))
+(define-fun _t_525 () (_ FloatingPoint 11 53) b4810)
+(define-fun _t_526 () Bool (= _t_524 _t_525))
+(define-fun _t_527 () Bool (not _t_526))
+(define-fun _t_528 () (_ FloatingPoint 11 53) b4815)
+(define-fun _t_529 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_528))
+(define-fun _t_530 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_528 _t_528))
+(define-fun _t_531 () (_ FloatingPoint 11 53) (fp.neg _t_530))
+(define-fun _t_532 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_531))
+(define-fun _t_533 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_532 _t_529))
+(define-fun _t_534 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_528 _t_533))
+(define-fun _t_535 () Bool (= _t_513 _t_534))
+(define-fun _t_536 () Bool (not _t_535))
+(define-fun _t_537 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_534 _t_534))
+(define-fun _t_538 () (_ FloatingPoint 11 53) (fp.neg _t_537))
+(define-fun _t_539 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_538))
+(define-fun _t_540 () (_ FloatingPoint 11 53) b4840)
+(define-fun _t_541 () Bool (= _t_539 _t_540))
+(define-fun _t_542 () Bool (not _t_541))
+(define-fun _t_543 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_293 _t_264))
+(define-fun _t_544 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_543))
+(define-fun _t_545 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_543 _t_543))
+(define-fun _t_546 () (_ FloatingPoint 11 53) (fp.neg _t_545))
+(define-fun _t_547 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_546))
+(define-fun _t_548 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_547 _t_544))
+(define-fun _t_549 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_543 _t_548))
+(define-fun _t_550 () Bool (= _t_528 _t_549))
+(define-fun _t_551 () Bool (not _t_550))
+(define-fun _t_552 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_549))
+(define-fun _t_553 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_549 _t_549))
+(define-fun _t_554 () (_ FloatingPoint 11 53) (fp.neg _t_553))
+(define-fun _t_555 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_554))
+(define-fun _t_556 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_555 _t_552))
+(define-fun _t_557 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_549 _t_556))
+(define-fun _t_558 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_557 _t_557))
+(define-fun _t_559 () (_ FloatingPoint 11 53) (fp.neg _t_558))
+(define-fun _t_560 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_559))
+(define-fun _t_561 () (_ FloatingPoint 11 53) b4876)
+(define-fun _t_562 () Bool (= _t_560 _t_561))
+(define-fun _t_563 () Bool (not _t_562))
+(define-fun _t_564 () (_ FloatingPoint 11 53) b4886)
+(define-fun _t_565 () Bool (= _t_555 _t_564))
+(define-fun _t_566 () Bool (not _t_565))
+(define-fun _t_567 () (_ FloatingPoint 11 53) b4896)
+(define-fun _t_568 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_567))
+(define-fun _t_569 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_567 _t_567))
+(define-fun _t_570 () (_ FloatingPoint 11 53) (fp.neg _t_569))
+(define-fun _t_571 () (_ FloatingPoint 11 53) b610)
+(define-fun _t_572 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_570 _t_571))
+(define-fun _t_573 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_572 _t_568))
+(define-fun _t_574 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_567 _t_573))
+(define-fun _t_575 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_574 _t_574))
+(define-fun _t_576 () (_ FloatingPoint 11 53) (fp.neg _t_575))
+(define-fun _t_577 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_576))
+(define-fun _t_578 () (_ FloatingPoint 11 53) b4907)
+(define-fun _t_579 () Bool (= _t_577 _t_578))
+(define-fun _t_580 () Bool (not _t_579))
+(define-fun _t_581 () (_ FloatingPoint 11 53) b4912)
+(define-fun _t_582 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_581))
+(define-fun _t_583 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_581 _t_581))
+(define-fun _t_584 () (_ FloatingPoint 11 53) (fp.neg _t_583))
+(define-fun _t_585 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_584))
+(define-fun _t_586 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_585 _t_582))
+(define-fun _t_587 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_581 _t_586))
+(define-fun _t_588 () Bool (= _t_567 _t_587))
+(define-fun _t_589 () Bool (not _t_588))
+(define-fun _t_590 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_587 _t_587))
+(define-fun _t_591 () (_ FloatingPoint 11 53) (fp.neg _t_590))
+(define-fun _t_592 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_591))
+(define-fun _t_593 () (_ FloatingPoint 11 53) b4938)
+(define-fun _t_594 () Bool (= _t_592 _t_593))
+(define-fun _t_595 () Bool (not _t_594))
+(define-fun _t_596 () (_ FloatingPoint 11 53) b4943)
+(define-fun _t_597 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_596))
+(define-fun _t_598 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_596 _t_596))
+(define-fun _t_599 () (_ FloatingPoint 11 53) (fp.neg _t_598))
+(define-fun _t_600 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_599))
+(define-fun _t_601 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_600 _t_597))
+(define-fun _t_602 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_596 _t_601))
+(define-fun _t_603 () Bool (= _t_581 _t_602))
+(define-fun _t_604 () Bool (not _t_603))
+(define-fun _t_605 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_602 _t_602))
+(define-fun _t_606 () (_ FloatingPoint 11 53) (fp.neg _t_605))
+(define-fun _t_607 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_606))
+(define-fun _t_608 () (_ FloatingPoint 11 53) b4968)
+(define-fun _t_609 () Bool (= _t_607 _t_608))
+(define-fun _t_610 () Bool (not _t_609))
+(define-fun _t_611 () (_ FloatingPoint 11 53) b4973)
+(define-fun _t_612 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_611))
+(define-fun _t_613 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_611 _t_611))
+(define-fun _t_614 () (_ FloatingPoint 11 53) (fp.neg _t_613))
+(define-fun _t_615 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_614))
+(define-fun _t_616 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_615 _t_612))
+(define-fun _t_617 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_611 _t_616))
+(define-fun _t_618 () Bool (= _t_596 _t_617))
+(define-fun _t_619 () Bool (not _t_618))
+(define-fun _t_620 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_617 _t_617))
+(define-fun _t_621 () (_ FloatingPoint 11 53) (fp.neg _t_620))
+(define-fun _t_622 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_621))
+(define-fun _t_623 () (_ FloatingPoint 11 53) b4998)
+(define-fun _t_624 () Bool (= _t_622 _t_623))
+(define-fun _t_625 () Bool (not _t_624))
+(define-fun _t_626 () (_ FloatingPoint 11 53) b5003)
+(define-fun _t_627 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_626))
+(define-fun _t_628 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_626 _t_626))
+(define-fun _t_629 () (_ FloatingPoint 11 53) (fp.neg _t_628))
+(define-fun _t_630 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_629))
+(define-fun _t_631 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_630 _t_627))
+(define-fun _t_632 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_626 _t_631))
+(define-fun _t_633 () Bool (= _t_611 _t_632))
+(define-fun _t_634 () Bool (not _t_633))
+(define-fun _t_635 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_632 _t_632))
+(define-fun _t_636 () (_ FloatingPoint 11 53) (fp.neg _t_635))
+(define-fun _t_637 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_636))
+(define-fun _t_638 () (_ FloatingPoint 11 53) b5028)
+(define-fun _t_639 () Bool (= _t_637 _t_638))
+(define-fun _t_640 () Bool (not _t_639))
+(define-fun _t_641 () (_ FloatingPoint 11 53) b5033)
+(define-fun _t_642 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_641))
+(define-fun _t_643 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_641 _t_641))
+(define-fun _t_644 () (_ FloatingPoint 11 53) (fp.neg _t_643))
+(define-fun _t_645 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_644))
+(define-fun _t_646 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_645 _t_642))
+(define-fun _t_647 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_641 _t_646))
+(define-fun _t_648 () Bool (= _t_626 _t_647))
+(define-fun _t_649 () Bool (not _t_648))
+(define-fun _t_650 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_647 _t_647))
+(define-fun _t_651 () (_ FloatingPoint 11 53) (fp.neg _t_650))
+(define-fun _t_652 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_651))
+(define-fun _t_653 () (_ FloatingPoint 11 53) b5058)
+(define-fun _t_654 () Bool (= _t_652 _t_653))
+(define-fun _t_655 () Bool (not _t_654))
+(define-fun _t_656 () (_ FloatingPoint 11 53) b5063)
+(define-fun _t_657 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_656))
+(define-fun _t_658 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_656 _t_656))
+(define-fun _t_659 () (_ FloatingPoint 11 53) (fp.neg _t_658))
+(define-fun _t_660 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_659))
+(define-fun _t_661 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_660 _t_657))
+(define-fun _t_662 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_656 _t_661))
+(define-fun _t_663 () Bool (= _t_641 _t_662))
+(define-fun _t_664 () Bool (not _t_663))
+(define-fun _t_665 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_662 _t_662))
+(define-fun _t_666 () (_ FloatingPoint 11 53) (fp.neg _t_665))
+(define-fun _t_667 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_666))
+(define-fun _t_668 () (_ FloatingPoint 11 53) b5088)
+(define-fun _t_669 () Bool (= _t_667 _t_668))
+(define-fun _t_670 () Bool (not _t_669))
+(define-fun _t_671 () (_ FloatingPoint 11 53) b5093)
+(define-fun _t_672 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_671))
+(define-fun _t_673 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_671 _t_671))
+(define-fun _t_674 () (_ FloatingPoint 11 53) (fp.neg _t_673))
+(define-fun _t_675 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_674))
+(define-fun _t_676 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_675 _t_672))
+(define-fun _t_677 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_671 _t_676))
+(define-fun _t_678 () Bool (= _t_656 _t_677))
+(define-fun _t_679 () Bool (not _t_678))
+(define-fun _t_680 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_677 _t_677))
+(define-fun _t_681 () (_ FloatingPoint 11 53) (fp.neg _t_680))
+(define-fun _t_682 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_681))
+(define-fun _t_683 () (_ FloatingPoint 11 53) b5118)
+(define-fun _t_684 () Bool (= _t_682 _t_683))
+(define-fun _t_685 () Bool (not _t_684))
+(define-fun _t_686 () (_ FloatingPoint 11 53) b5123)
+(define-fun _t_687 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_686))
+(define-fun _t_688 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_686 _t_686))
+(define-fun _t_689 () (_ FloatingPoint 11 53) (fp.neg _t_688))
+(define-fun _t_690 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_689))
+(define-fun _t_691 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_690 _t_687))
+(define-fun _t_692 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_686 _t_691))
+(define-fun _t_693 () Bool (= _t_671 _t_692))
+(define-fun _t_694 () Bool (not _t_693))
+(define-fun _t_695 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_692 _t_692))
+(define-fun _t_696 () (_ FloatingPoint 11 53) (fp.neg _t_695))
+(define-fun _t_697 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_696))
+(define-fun _t_698 () (_ FloatingPoint 11 53) b5148)
+(define-fun _t_699 () Bool (= _t_697 _t_698))
+(define-fun _t_700 () Bool (not _t_699))
+(define-fun _t_701 () (_ FloatingPoint 11 53) b5153)
+(define-fun _t_702 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_701))
+(define-fun _t_703 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_701 _t_701))
+(define-fun _t_704 () (_ FloatingPoint 11 53) (fp.neg _t_703))
+(define-fun _t_705 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_704))
+(define-fun _t_706 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_705 _t_702))
+(define-fun _t_707 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_701 _t_706))
+(define-fun _t_708 () Bool (= _t_686 _t_707))
+(define-fun _t_709 () Bool (not _t_708))
+(define-fun _t_710 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_707 _t_707))
+(define-fun _t_711 () (_ FloatingPoint 11 53) (fp.neg _t_710))
+(define-fun _t_712 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_711))
+(define-fun _t_713 () (_ FloatingPoint 11 53) b5178)
+(define-fun _t_714 () Bool (= _t_712 _t_713))
+(define-fun _t_715 () Bool (not _t_714))
+(define-fun _t_716 () (_ FloatingPoint 11 53) b5183)
+(define-fun _t_717 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_716))
+(define-fun _t_718 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_716 _t_716))
+(define-fun _t_719 () (_ FloatingPoint 11 53) (fp.neg _t_718))
+(define-fun _t_720 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_719))
+(define-fun _t_721 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_720 _t_717))
+(define-fun _t_722 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_716 _t_721))
+(define-fun _t_723 () Bool (= _t_701 _t_722))
+(define-fun _t_724 () Bool (not _t_723))
+(define-fun _t_725 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_722 _t_722))
+(define-fun _t_726 () (_ FloatingPoint 11 53) (fp.neg _t_725))
+(define-fun _t_727 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_726))
+(define-fun _t_728 () (_ FloatingPoint 11 53) b5208)
+(define-fun _t_729 () Bool (= _t_727 _t_728))
+(define-fun _t_730 () Bool (not _t_729))
+(define-fun _t_731 () (_ FloatingPoint 11 53) b5213)
+(define-fun _t_732 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_731))
+(define-fun _t_733 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_731 _t_731))
+(define-fun _t_734 () (_ FloatingPoint 11 53) (fp.neg _t_733))
+(define-fun _t_735 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_734))
+(define-fun _t_736 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_735 _t_732))
+(define-fun _t_737 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_731 _t_736))
+(define-fun _t_738 () Bool (= _t_716 _t_737))
+(define-fun _t_739 () Bool (not _t_738))
+(define-fun _t_740 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_737 _t_737))
+(define-fun _t_741 () (_ FloatingPoint 11 53) (fp.neg _t_740))
+(define-fun _t_742 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_741))
+(define-fun _t_743 () (_ FloatingPoint 11 53) b5238)
+(define-fun _t_744 () Bool (= _t_742 _t_743))
+(define-fun _t_745 () Bool (not _t_744))
+(define-fun _t_746 () (_ FloatingPoint 11 53) b5243)
+(define-fun _t_747 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_746))
+(define-fun _t_748 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_746 _t_746))
+(define-fun _t_749 () (_ FloatingPoint 11 53) (fp.neg _t_748))
+(define-fun _t_750 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_749))
+(define-fun _t_751 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_750 _t_747))
+(define-fun _t_752 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_746 _t_751))
+(define-fun _t_753 () Bool (= _t_731 _t_752))
+(define-fun _t_754 () Bool (not _t_753))
+(define-fun _t_755 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_752 _t_752))
+(define-fun _t_756 () (_ FloatingPoint 11 53) (fp.neg _t_755))
+(define-fun _t_757 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_756))
+(define-fun _t_758 () (_ FloatingPoint 11 53) b5268)
+(define-fun _t_759 () Bool (= _t_757 _t_758))
+(define-fun _t_760 () Bool (not _t_759))
+(define-fun _t_761 () (_ FloatingPoint 11 53) b5273)
+(define-fun _t_762 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_761))
+(define-fun _t_763 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_761 _t_761))
+(define-fun _t_764 () (_ FloatingPoint 11 53) (fp.neg _t_763))
+(define-fun _t_765 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_764))
+(define-fun _t_766 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_765 _t_762))
+(define-fun _t_767 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_761 _t_766))
+(define-fun _t_768 () Bool (= _t_746 _t_767))
+(define-fun _t_769 () Bool (not _t_768))
+(define-fun _t_770 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_767 _t_767))
+(define-fun _t_771 () (_ FloatingPoint 11 53) (fp.neg _t_770))
+(define-fun _t_772 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_771))
+(define-fun _t_773 () (_ FloatingPoint 11 53) b5298)
+(define-fun _t_774 () Bool (= _t_772 _t_773))
+(define-fun _t_775 () Bool (not _t_774))
+(define-fun _t_776 () (_ FloatingPoint 11 53) b5303)
+(define-fun _t_777 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_776))
+(define-fun _t_778 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_776 _t_776))
+(define-fun _t_779 () (_ FloatingPoint 11 53) (fp.neg _t_778))
+(define-fun _t_780 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_779))
+(define-fun _t_781 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_780 _t_777))
+(define-fun _t_782 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_776 _t_781))
+(define-fun _t_783 () Bool (= _t_761 _t_782))
+(define-fun _t_784 () Bool (not _t_783))
+(define-fun _t_785 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_782 _t_782))
+(define-fun _t_786 () (_ FloatingPoint 11 53) (fp.neg _t_785))
+(define-fun _t_787 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_786))
+(define-fun _t_788 () (_ FloatingPoint 11 53) b5328)
+(define-fun _t_789 () Bool (= _t_787 _t_788))
+(define-fun _t_790 () Bool (not _t_789))
+(define-fun _t_791 () (_ FloatingPoint 11 53) b5333)
+(define-fun _t_792 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_791))
+(define-fun _t_793 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_791 _t_791))
+(define-fun _t_794 () (_ FloatingPoint 11 53) (fp.neg _t_793))
+(define-fun _t_795 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_794))
+(define-fun _t_796 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_795 _t_792))
+(define-fun _t_797 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_791 _t_796))
+(define-fun _t_798 () Bool (= _t_776 _t_797))
+(define-fun _t_799 () Bool (not _t_798))
+(define-fun _t_800 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_797 _t_797))
+(define-fun _t_801 () (_ FloatingPoint 11 53) (fp.neg _t_800))
+(define-fun _t_802 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_801))
+(define-fun _t_803 () (_ FloatingPoint 11 53) b5358)
+(define-fun _t_804 () Bool (= _t_802 _t_803))
+(define-fun _t_805 () Bool (not _t_804))
+(define-fun _t_806 () (_ FloatingPoint 11 53) b5363)
+(define-fun _t_807 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_806))
+(define-fun _t_808 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_806 _t_806))
+(define-fun _t_809 () (_ FloatingPoint 11 53) (fp.neg _t_808))
+(define-fun _t_810 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_809))
+(define-fun _t_811 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_810 _t_807))
+(define-fun _t_812 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_806 _t_811))
+(define-fun _t_813 () Bool (= _t_791 _t_812))
+(define-fun _t_814 () Bool (not _t_813))
+(define-fun _t_815 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_812 _t_812))
+(define-fun _t_816 () (_ FloatingPoint 11 53) (fp.neg _t_815))
+(define-fun _t_817 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_816))
+(define-fun _t_818 () (_ FloatingPoint 11 53) b5388)
+(define-fun _t_819 () Bool (= _t_817 _t_818))
+(define-fun _t_820 () Bool (not _t_819))
+(define-fun _t_821 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_571 _t_264))
+(define-fun _t_822 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_821))
+(define-fun _t_823 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_821 _t_821))
+(define-fun _t_824 () (_ FloatingPoint 11 53) (fp.neg _t_823))
+(define-fun _t_825 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_824))
+(define-fun _t_826 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_825 _t_822))
+(define-fun _t_827 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_821 _t_826))
+(define-fun _t_828 () Bool (= _t_806 _t_827))
+(define-fun _t_829 () Bool (not _t_828))
+(define-fun _t_830 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_827))
+(define-fun _t_831 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_827 _t_827))
+(define-fun _t_832 () (_ FloatingPoint 11 53) (fp.neg _t_831))
+(define-fun _t_833 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_832))
+(define-fun _t_834 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_833 _t_830))
+(define-fun _t_835 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_827 _t_834))
+(define-fun _t_836 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_835 _t_835))
+(define-fun _t_837 () (_ FloatingPoint 11 53) (fp.neg _t_836))
+(define-fun _t_838 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_837))
+(define-fun _t_839 () (_ FloatingPoint 11 53) b5424)
+(define-fun _t_840 () Bool (= _t_838 _t_839))
+(define-fun _t_841 () Bool (not _t_840))
+(define-fun _t_842 () (_ FloatingPoint 11 53) b5434)
+(define-fun _t_843 () Bool (= _t_833 _t_842))
+(define-fun _t_844 () Bool (not _t_843))
+(define-fun _t_845 () Bool (fp.leq _t_293 _t_833))
+(define-fun _t_846 () Bool (not _t_845))
+(define-fun _t_847 () (_ FloatingPoint 11 53) (fp.neg _t_833))
+(define-fun _t_848 () Bool (= _t_842 _t_847))
+(define-fun _t_849 () Bool (and _t_846 _t_848))
+(define-fun _t_850 () Bool (and _t_844 _t_849))
+(define-fun _t_851 () (_ FloatingPoint 11 53) b644)
+(define-fun _t_852 () Bool (fp.leq _t_842 _t_851))
+(define-fun _t_853 () Bool (not _t_852))
+(define-fun _t_854 () Bool (and _t_850 _t_853))
+(define-fun _t_855 () Bool (= _t_806 _t_835))
+(define-fun _t_856 () Bool (and _t_854 _t_855))
+(define-fun _t_857 () Bool (fp.leq _t_293 _t_838))
+(define-fun _t_858 () Bool (not _t_857))
+(define-fun _t_859 () Bool (and _t_856 _t_858))
+(define-fun _t_860 () (_ FloatingPoint 11 53) (fp.neg _t_838))
+(define-fun _t_861 () Bool (= _t_839 _t_860))
+(define-fun _t_862 () Bool (and _t_859 _t_861))
+(define-fun _t_863 () Bool (and _t_841 _t_862))
+(define-fun _t_864 () Bool (fp.leq _t_839 _t_851))
+(define-fun _t_865 () Bool (not _t_864))
+(define-fun _t_866 () Bool (and _t_863 _t_865))
+(define-fun _t_867 () Bool (and _t_829 _t_866))
+(define-fun _t_868 () Bool (fp.leq _t_293 _t_817))
+(define-fun _t_869 () Bool (not _t_868))
+(define-fun _t_870 () Bool (and _t_867 _t_869))
+(define-fun _t_871 () (_ FloatingPoint 11 53) (fp.neg _t_817))
+(define-fun _t_872 () Bool (= _t_818 _t_871))
+(define-fun _t_873 () Bool (and _t_870 _t_872))
+(define-fun _t_874 () Bool (and _t_820 _t_873))
+(define-fun _t_875 () Bool (= _t_791 _t_806))
+(define-fun _t_876 () Bool (and _t_874 _t_875))
+(define-fun _t_877 () Bool (fp.leq _t_818 _t_851))
+(define-fun _t_878 () Bool (not _t_877))
+(define-fun _t_879 () Bool (and _t_876 _t_878))
+(define-fun _t_880 () Bool (and _t_814 _t_879))
+(define-fun _t_881 () Bool (fp.leq _t_293 _t_802))
+(define-fun _t_882 () Bool (not _t_881))
+(define-fun _t_883 () Bool (and _t_880 _t_882))
+(define-fun _t_884 () (_ FloatingPoint 11 53) (fp.neg _t_802))
+(define-fun _t_885 () Bool (= _t_803 _t_884))
+(define-fun _t_886 () Bool (and _t_883 _t_885))
+(define-fun _t_887 () Bool (and _t_805 _t_886))
+(define-fun _t_888 () Bool (= _t_776 _t_791))
+(define-fun _t_889 () Bool (and _t_887 _t_888))
+(define-fun _t_890 () Bool (and _t_799 _t_889))
+(define-fun _t_891 () Bool (fp.leq _t_803 _t_851))
+(define-fun _t_892 () Bool (not _t_891))
+(define-fun _t_893 () Bool (and _t_890 _t_892))
+(define-fun _t_894 () Bool (fp.leq _t_293 _t_787))
+(define-fun _t_895 () Bool (not _t_894))
+(define-fun _t_896 () Bool (and _t_893 _t_895))
+(define-fun _t_897 () (_ FloatingPoint 11 53) (fp.neg _t_787))
+(define-fun _t_898 () Bool (= _t_788 _t_897))
+(define-fun _t_899 () Bool (and _t_896 _t_898))
+(define-fun _t_900 () Bool (and _t_790 _t_899))
+(define-fun _t_901 () Bool (= _t_761 _t_776))
+(define-fun _t_902 () Bool (and _t_900 _t_901))
+(define-fun _t_903 () Bool (and _t_784 _t_902))
+(define-fun _t_904 () Bool (fp.leq _t_788 _t_851))
+(define-fun _t_905 () Bool (not _t_904))
+(define-fun _t_906 () Bool (and _t_903 _t_905))
+(define-fun _t_907 () Bool (fp.leq _t_293 _t_772))
+(define-fun _t_908 () Bool (not _t_907))
+(define-fun _t_909 () Bool (and _t_906 _t_908))
+(define-fun _t_910 () (_ FloatingPoint 11 53) (fp.neg _t_772))
+(define-fun _t_911 () Bool (= _t_773 _t_910))
+(define-fun _t_912 () Bool (and _t_909 _t_911))
+(define-fun _t_913 () Bool (and _t_775 _t_912))
+(define-fun _t_914 () Bool (= _t_746 _t_761))
+(define-fun _t_915 () Bool (and _t_913 _t_914))
+(define-fun _t_916 () Bool (and _t_769 _t_915))
+(define-fun _t_917 () Bool (fp.leq _t_773 _t_851))
+(define-fun _t_918 () Bool (not _t_917))
+(define-fun _t_919 () Bool (and _t_916 _t_918))
+(define-fun _t_920 () Bool (fp.leq _t_293 _t_757))
+(define-fun _t_921 () Bool (not _t_920))
+(define-fun _t_922 () Bool (and _t_919 _t_921))
+(define-fun _t_923 () (_ FloatingPoint 11 53) (fp.neg _t_757))
+(define-fun _t_924 () Bool (= _t_758 _t_923))
+(define-fun _t_925 () Bool (and _t_922 _t_924))
+(define-fun _t_926 () Bool (and _t_760 _t_925))
+(define-fun _t_927 () Bool (= _t_731 _t_746))
+(define-fun _t_928 () Bool (and _t_926 _t_927))
+(define-fun _t_929 () Bool (and _t_754 _t_928))
+(define-fun _t_930 () Bool (fp.leq _t_758 _t_851))
+(define-fun _t_931 () Bool (not _t_930))
+(define-fun _t_932 () Bool (and _t_929 _t_931))
+(define-fun _t_933 () Bool (fp.leq _t_293 _t_742))
+(define-fun _t_934 () Bool (not _t_933))
+(define-fun _t_935 () Bool (and _t_932 _t_934))
+(define-fun _t_936 () (_ FloatingPoint 11 53) (fp.neg _t_742))
+(define-fun _t_937 () Bool (= _t_743 _t_936))
+(define-fun _t_938 () Bool (and _t_935 _t_937))
+(define-fun _t_939 () Bool (and _t_745 _t_938))
+(define-fun _t_940 () Bool (= _t_716 _t_731))
+(define-fun _t_941 () Bool (and _t_939 _t_940))
+(define-fun _t_942 () Bool (and _t_739 _t_941))
+(define-fun _t_943 () Bool (fp.leq _t_743 _t_851))
+(define-fun _t_944 () Bool (not _t_943))
+(define-fun _t_945 () Bool (and _t_942 _t_944))
+(define-fun _t_946 () Bool (fp.leq _t_293 _t_727))
+(define-fun _t_947 () Bool (not _t_946))
+(define-fun _t_948 () Bool (and _t_945 _t_947))
+(define-fun _t_949 () (_ FloatingPoint 11 53) (fp.neg _t_727))
+(define-fun _t_950 () Bool (= _t_728 _t_949))
+(define-fun _t_951 () Bool (and _t_948 _t_950))
+(define-fun _t_952 () Bool (and _t_730 _t_951))
+(define-fun _t_953 () Bool (= _t_701 _t_716))
+(define-fun _t_954 () Bool (and _t_952 _t_953))
+(define-fun _t_955 () Bool (and _t_724 _t_954))
+(define-fun _t_956 () Bool (fp.leq _t_728 _t_851))
+(define-fun _t_957 () Bool (not _t_956))
+(define-fun _t_958 () Bool (and _t_955 _t_957))
+(define-fun _t_959 () Bool (fp.leq _t_293 _t_712))
+(define-fun _t_960 () Bool (not _t_959))
+(define-fun _t_961 () Bool (and _t_958 _t_960))
+(define-fun _t_962 () (_ FloatingPoint 11 53) (fp.neg _t_712))
+(define-fun _t_963 () Bool (= _t_713 _t_962))
+(define-fun _t_964 () Bool (and _t_961 _t_963))
+(define-fun _t_965 () Bool (and _t_715 _t_964))
+(define-fun _t_966 () Bool (= _t_686 _t_701))
+(define-fun _t_967 () Bool (and _t_965 _t_966))
+(define-fun _t_968 () Bool (and _t_709 _t_967))
+(define-fun _t_969 () Bool (fp.leq _t_713 _t_851))
+(define-fun _t_970 () Bool (not _t_969))
+(define-fun _t_971 () Bool (and _t_968 _t_970))
+(define-fun _t_972 () Bool (fp.leq _t_293 _t_697))
+(define-fun _t_973 () Bool (not _t_972))
+(define-fun _t_974 () Bool (and _t_971 _t_973))
+(define-fun _t_975 () (_ FloatingPoint 11 53) (fp.neg _t_697))
+(define-fun _t_976 () Bool (= _t_698 _t_975))
+(define-fun _t_977 () Bool (and _t_974 _t_976))
+(define-fun _t_978 () Bool (and _t_700 _t_977))
+(define-fun _t_979 () Bool (= _t_671 _t_686))
+(define-fun _t_980 () Bool (and _t_978 _t_979))
+(define-fun _t_981 () Bool (and _t_694 _t_980))
+(define-fun _t_982 () Bool (fp.leq _t_698 _t_851))
+(define-fun _t_983 () Bool (not _t_982))
+(define-fun _t_984 () Bool (and _t_981 _t_983))
+(define-fun _t_985 () Bool (fp.leq _t_293 _t_682))
+(define-fun _t_986 () Bool (not _t_985))
+(define-fun _t_987 () Bool (and _t_984 _t_986))
+(define-fun _t_988 () (_ FloatingPoint 11 53) (fp.neg _t_682))
+(define-fun _t_989 () Bool (= _t_683 _t_988))
+(define-fun _t_990 () Bool (and _t_987 _t_989))
+(define-fun _t_991 () Bool (and _t_685 _t_990))
+(define-fun _t_992 () Bool (= _t_656 _t_671))
+(define-fun _t_993 () Bool (and _t_991 _t_992))
+(define-fun _t_994 () Bool (and _t_679 _t_993))
+(define-fun _t_995 () Bool (fp.leq _t_683 _t_851))
+(define-fun _t_996 () Bool (not _t_995))
+(define-fun _t_997 () Bool (and _t_994 _t_996))
+(define-fun _t_998 () Bool (fp.leq _t_293 _t_667))
+(define-fun _t_999 () Bool (not _t_998))
+(define-fun _t_1000 () Bool (and _t_997 _t_999))
+(define-fun _t_1001 () (_ FloatingPoint 11 53) (fp.neg _t_667))
+(define-fun _t_1002 () Bool (= _t_668 _t_1001))
+(define-fun _t_1003 () Bool (and _t_1000 _t_1002))
+(define-fun _t_1004 () Bool (and _t_670 _t_1003))
+(define-fun _t_1005 () Bool (= _t_641 _t_656))
+(define-fun _t_1006 () Bool (and _t_1004 _t_1005))
+(define-fun _t_1007 () Bool (and _t_664 _t_1006))
+(define-fun _t_1008 () Bool (fp.leq _t_668 _t_851))
+(define-fun _t_1009 () Bool (not _t_1008))
+(define-fun _t_1010 () Bool (and _t_1007 _t_1009))
+(define-fun _t_1011 () Bool (fp.leq _t_293 _t_652))
+(define-fun _t_1012 () Bool (not _t_1011))
+(define-fun _t_1013 () Bool (and _t_1010 _t_1012))
+(define-fun _t_1014 () (_ FloatingPoint 11 53) (fp.neg _t_652))
+(define-fun _t_1015 () Bool (= _t_653 _t_1014))
+(define-fun _t_1016 () Bool (and _t_1013 _t_1015))
+(define-fun _t_1017 () Bool (and _t_655 _t_1016))
+(define-fun _t_1018 () Bool (= _t_626 _t_641))
+(define-fun _t_1019 () Bool (and _t_1017 _t_1018))
+(define-fun _t_1020 () Bool (and _t_649 _t_1019))
+(define-fun _t_1021 () Bool (fp.leq _t_653 _t_851))
+(define-fun _t_1022 () Bool (not _t_1021))
+(define-fun _t_1023 () Bool (and _t_1020 _t_1022))
+(define-fun _t_1024 () Bool (fp.leq _t_293 _t_637))
+(define-fun _t_1025 () Bool (not _t_1024))
+(define-fun _t_1026 () Bool (and _t_1023 _t_1025))
+(define-fun _t_1027 () (_ FloatingPoint 11 53) (fp.neg _t_637))
+(define-fun _t_1028 () Bool (= _t_638 _t_1027))
+(define-fun _t_1029 () Bool (and _t_1026 _t_1028))
+(define-fun _t_1030 () Bool (and _t_640 _t_1029))
+(define-fun _t_1031 () Bool (= _t_611 _t_626))
+(define-fun _t_1032 () Bool (and _t_1030 _t_1031))
+(define-fun _t_1033 () Bool (and _t_634 _t_1032))
+(define-fun _t_1034 () Bool (fp.leq _t_638 _t_851))
+(define-fun _t_1035 () Bool (not _t_1034))
+(define-fun _t_1036 () Bool (and _t_1033 _t_1035))
+(define-fun _t_1037 () Bool (fp.leq _t_293 _t_622))
+(define-fun _t_1038 () Bool (not _t_1037))
+(define-fun _t_1039 () Bool (and _t_1036 _t_1038))
+(define-fun _t_1040 () (_ FloatingPoint 11 53) (fp.neg _t_622))
+(define-fun _t_1041 () Bool (= _t_623 _t_1040))
+(define-fun _t_1042 () Bool (and _t_1039 _t_1041))
+(define-fun _t_1043 () Bool (and _t_625 _t_1042))
+(define-fun _t_1044 () Bool (= _t_596 _t_611))
+(define-fun _t_1045 () Bool (and _t_1043 _t_1044))
+(define-fun _t_1046 () Bool (and _t_619 _t_1045))
+(define-fun _t_1047 () Bool (fp.leq _t_623 _t_851))
+(define-fun _t_1048 () Bool (not _t_1047))
+(define-fun _t_1049 () Bool (and _t_1046 _t_1048))
+(define-fun _t_1050 () Bool (fp.leq _t_293 _t_607))
+(define-fun _t_1051 () Bool (not _t_1050))
+(define-fun _t_1052 () Bool (and _t_1049 _t_1051))
+(define-fun _t_1053 () (_ FloatingPoint 11 53) (fp.neg _t_607))
+(define-fun _t_1054 () Bool (= _t_608 _t_1053))
+(define-fun _t_1055 () Bool (and _t_1052 _t_1054))
+(define-fun _t_1056 () Bool (and _t_610 _t_1055))
+(define-fun _t_1057 () Bool (= _t_581 _t_596))
+(define-fun _t_1058 () Bool (and _t_1056 _t_1057))
+(define-fun _t_1059 () Bool (and _t_604 _t_1058))
+(define-fun _t_1060 () Bool (fp.leq _t_608 _t_851))
+(define-fun _t_1061 () Bool (not _t_1060))
+(define-fun _t_1062 () Bool (and _t_1059 _t_1061))
+(define-fun _t_1063 () Bool (fp.leq _t_293 _t_592))
+(define-fun _t_1064 () Bool (not _t_1063))
+(define-fun _t_1065 () Bool (and _t_1062 _t_1064))
+(define-fun _t_1066 () (_ FloatingPoint 11 53) (fp.neg _t_592))
+(define-fun _t_1067 () Bool (= _t_593 _t_1066))
+(define-fun _t_1068 () Bool (and _t_1065 _t_1067))
+(define-fun _t_1069 () Bool (and _t_595 _t_1068))
+(define-fun _t_1070 () Bool (= _t_567 _t_581))
+(define-fun _t_1071 () Bool (and _t_1069 _t_1070))
+(define-fun _t_1072 () Bool (and _t_589 _t_1071))
+(define-fun _t_1073 () Bool (fp.leq _t_593 _t_851))
+(define-fun _t_1074 () Bool (not _t_1073))
+(define-fun _t_1075 () Bool (and _t_1072 _t_1074))
+(define-fun _t_1076 () Bool (fp.leq _t_293 _t_577))
+(define-fun _t_1077 () Bool (not _t_1076))
+(define-fun _t_1078 () Bool (and _t_1075 _t_1077))
+(define-fun _t_1079 () (_ FloatingPoint 11 53) (fp.neg _t_577))
+(define-fun _t_1080 () Bool (= _t_578 _t_1079))
+(define-fun _t_1081 () Bool (and _t_1078 _t_1080))
+(define-fun _t_1082 () Bool (and _t_580 _t_1081))
+(define-fun _t_1083 () Bool (fp.leq _t_293 _t_555))
+(define-fun _t_1084 () Bool (not _t_1083))
+(define-fun _t_1085 () Bool (and _t_1082 _t_1084))
+(define-fun _t_1086 () (_ FloatingPoint 11 53) (fp.neg _t_555))
+(define-fun _t_1087 () Bool (= _t_564 _t_1086))
+(define-fun _t_1088 () Bool (and _t_1085 _t_1087))
+(define-fun _t_1089 () Bool (and _t_566 _t_1088))
+(define-fun _t_1090 () Bool (fp.leq _t_564 _t_851))
+(define-fun _t_1091 () Bool (not _t_1090))
+(define-fun _t_1092 () Bool (and _t_1089 _t_1091))
+(define-fun _t_1093 () Bool (= _t_528 _t_557))
+(define-fun _t_1094 () Bool (and _t_1092 _t_1093))
+(define-fun _t_1095 () Bool (fp.leq _t_293 _t_560))
+(define-fun _t_1096 () Bool (not _t_1095))
+(define-fun _t_1097 () Bool (and _t_1094 _t_1096))
+(define-fun _t_1098 () (_ FloatingPoint 11 53) (fp.neg _t_560))
+(define-fun _t_1099 () Bool (= _t_561 _t_1098))
+(define-fun _t_1100 () Bool (and _t_1097 _t_1099))
+(define-fun _t_1101 () Bool (and _t_563 _t_1100))
+(define-fun _t_1102 () Bool (fp.leq _t_561 _t_851))
+(define-fun _t_1103 () Bool (not _t_1102))
+(define-fun _t_1104 () Bool (and _t_1101 _t_1103))
+(define-fun _t_1105 () Bool (and _t_551 _t_1104))
+(define-fun _t_1106 () Bool (fp.leq _t_293 _t_539))
+(define-fun _t_1107 () Bool (not _t_1106))
+(define-fun _t_1108 () Bool (and _t_1105 _t_1107))
+(define-fun _t_1109 () (_ FloatingPoint 11 53) (fp.neg _t_539))
+(define-fun _t_1110 () Bool (= _t_540 _t_1109))
+(define-fun _t_1111 () Bool (and _t_1108 _t_1110))
+(define-fun _t_1112 () Bool (and _t_542 _t_1111))
+(define-fun _t_1113 () Bool (= _t_513 _t_528))
+(define-fun _t_1114 () Bool (and _t_1112 _t_1113))
+(define-fun _t_1115 () Bool (fp.leq _t_540 _t_851))
+(define-fun _t_1116 () Bool (not _t_1115))
+(define-fun _t_1117 () Bool (and _t_1114 _t_1116))
+(define-fun _t_1118 () Bool (and _t_536 _t_1117))
+(define-fun _t_1119 () Bool (fp.leq _t_293 _t_524))
+(define-fun _t_1120 () Bool (not _t_1119))
+(define-fun _t_1121 () Bool (and _t_1118 _t_1120))
+(define-fun _t_1122 () (_ FloatingPoint 11 53) (fp.neg _t_524))
+(define-fun _t_1123 () Bool (= _t_525 _t_1122))
+(define-fun _t_1124 () Bool (and _t_1121 _t_1123))
+(define-fun _t_1125 () Bool (and _t_527 _t_1124))
+(define-fun _t_1126 () Bool (= _t_498 _t_513))
+(define-fun _t_1127 () Bool (and _t_1125 _t_1126))
+(define-fun _t_1128 () Bool (and _t_521 _t_1127))
+(define-fun _t_1129 () Bool (fp.leq _t_525 _t_851))
+(define-fun _t_1130 () Bool (not _t_1129))
+(define-fun _t_1131 () Bool (and _t_1128 _t_1130))
+(define-fun _t_1132 () Bool (fp.leq _t_293 _t_509))
+(define-fun _t_1133 () Bool (not _t_1132))
+(define-fun _t_1134 () Bool (and _t_1131 _t_1133))
+(define-fun _t_1135 () (_ FloatingPoint 11 53) (fp.neg _t_509))
+(define-fun _t_1136 () Bool (= _t_510 _t_1135))
+(define-fun _t_1137 () Bool (and _t_1134 _t_1136))
+(define-fun _t_1138 () Bool (and _t_512 _t_1137))
+(define-fun _t_1139 () Bool (= _t_483 _t_498))
+(define-fun _t_1140 () Bool (and _t_1138 _t_1139))
+(define-fun _t_1141 () Bool (and _t_506 _t_1140))
+(define-fun _t_1142 () Bool (fp.leq _t_210 _t_851))
+(define-fun _t_1143 () Bool (and _t_1141 _t_1142))
+(define-fun _t_1144 () Bool (fp.leq _t_510 _t_851))
+(define-fun _t_1145 () Bool (not _t_1144))
+(define-fun _t_1146 () Bool (and _t_1143 _t_1145))
+(define-fun _t_1147 () Bool (fp.leq _t_293 _t_494))
+(define-fun _t_1148 () Bool (not _t_1147))
+(define-fun _t_1149 () Bool (and _t_1146 _t_1148))
+(define-fun _t_1150 () (_ FloatingPoint 11 53) (fp.neg _t_494))
+(define-fun _t_1151 () Bool (= _t_495 _t_1150))
+(define-fun _t_1152 () Bool (and _t_1149 _t_1151))
+(define-fun _t_1153 () Bool (and _t_497 _t_1152))
+(define-fun _t_1154 () Bool (= _t_468 _t_483))
+(define-fun _t_1155 () Bool (and _t_1153 _t_1154))
+(define-fun _t_1156 () Bool (and _t_491 _t_1155))
+(define-fun _t_1157 () Bool (fp.leq _t_495 _t_851))
+(define-fun _t_1158 () Bool (not _t_1157))
+(define-fun _t_1159 () Bool (and _t_1156 _t_1158))
+(define-fun _t_1160 () (_ FloatingPoint 11 53) (fp.neg _t_209))
+(define-fun _t_1161 () Bool (= _t_210 _t_1160))
+(define-fun _t_1162 () Bool (and _t_1159 _t_1161))
+(define-fun _t_1163 () Bool (fp.leq _t_293 _t_479))
+(define-fun _t_1164 () Bool (not _t_1163))
+(define-fun _t_1165 () Bool (and _t_1162 _t_1164))
+(define-fun _t_1166 () (_ FloatingPoint 11 53) (fp.neg _t_479))
+(define-fun _t_1167 () Bool (= _t_480 _t_1166))
+(define-fun _t_1168 () Bool (and _t_1165 _t_1167))
+(define-fun _t_1169 () Bool (and _t_482 _t_1168))
+(define-fun _t_1170 () Bool (fp.leq _t_388 _t_851))
+(define-fun _t_1171 () Bool (and _t_1169 _t_1170))
+(define-fun _t_1172 () Bool (= _t_451 _t_468))
+(define-fun _t_1173 () Bool (and _t_1171 _t_1172))
+(define-fun _t_1174 () Bool (and _t_476 _t_1173))
+(define-fun _t_1175 () Bool (fp.leq _t_480 _t_851))
+(define-fun _t_1176 () Bool (not _t_1175))
+(define-fun _t_1177 () Bool (and _t_1174 _t_1176))
+(define-fun _t_1178 () Bool (and _t_467 _t_1177))
+(define-fun _t_1179 () Bool (= _t_318 _t_339))
+(define-fun _t_1180 () Bool (and _t_1178 _t_1179))
+(define-fun _t_1181 () Bool (fp.leq _t_293 _t_462))
+(define-fun _t_1182 () Bool (not _t_1181))
+(define-fun _t_1183 () Bool (and _t_1180 _t_1182))
+(define-fun _t_1184 () (_ FloatingPoint 11 53) (fp.neg _t_462))
+(define-fun _t_1185 () Bool (= _t_463 _t_1184))
+(define-fun _t_1186 () Bool (and _t_1183 _t_1185))
+(define-fun _t_1187 () Bool (and _t_465 _t_1186))
+(define-fun _t_1188 () Bool (= _t_436 _t_451))
+(define-fun _t_1189 () Bool (and _t_1187 _t_1188))
+(define-fun _t_1190 () Bool (and _t_459 _t_1189))
+(define-fun _t_1191 () Bool (fp.leq _t_463 _t_851))
+(define-fun _t_1192 () Bool (not _t_1191))
+(define-fun _t_1193 () Bool (and _t_1190 _t_1192))
+(define-fun _t_1194 () Bool (fp.leq _t_293 _t_447))
+(define-fun _t_1195 () Bool (not _t_1194))
+(define-fun _t_1196 () Bool (and _t_1193 _t_1195))
+(define-fun _t_1197 () (_ FloatingPoint 11 53) (fp.neg _t_447))
+(define-fun _t_1198 () Bool (= _t_448 _t_1197))
+(define-fun _t_1199 () Bool (and _t_1196 _t_1198))
+(define-fun _t_1200 () Bool (and _t_450 _t_1199))
+(define-fun _t_1201 () Bool (= _t_421 _t_436))
+(define-fun _t_1202 () Bool (and _t_1200 _t_1201))
+(define-fun _t_1203 () Bool (and _t_444 _t_1202))
+(define-fun _t_1204 () Bool (fp.leq _t_448 _t_851))
+(define-fun _t_1205 () Bool (not _t_1204))
+(define-fun _t_1206 () Bool (and _t_1203 _t_1205))
+(define-fun _t_1207 () Bool (fp.leq _t_293 _t_432))
+(define-fun _t_1208 () Bool (not _t_1207))
+(define-fun _t_1209 () Bool (and _t_1206 _t_1208))
+(define-fun _t_1210 () (_ FloatingPoint 11 53) (fp.neg _t_432))
+(define-fun _t_1211 () Bool (= _t_433 _t_1210))
+(define-fun _t_1212 () Bool (and _t_1209 _t_1211))
+(define-fun _t_1213 () Bool (and _t_435 _t_1212))
+(define-fun _t_1214 () Bool (= _t_406 _t_421))
+(define-fun _t_1215 () Bool (and _t_1213 _t_1214))
+(define-fun _t_1216 () Bool (and _t_429 _t_1215))
+(define-fun _t_1217 () Bool (fp.leq _t_433 _t_851))
+(define-fun _t_1218 () Bool (not _t_1217))
+(define-fun _t_1219 () Bool (and _t_1216 _t_1218))
+(define-fun _t_1220 () Bool (fp.leq _t_293 _t_417))
+(define-fun _t_1221 () Bool (not _t_1220))
+(define-fun _t_1222 () Bool (and _t_1219 _t_1221))
+(define-fun _t_1223 () (_ FloatingPoint 11 53) (fp.neg _t_417))
+(define-fun _t_1224 () Bool (= _t_418 _t_1223))
+(define-fun _t_1225 () Bool (and _t_1222 _t_1224))
+(define-fun _t_1226 () Bool (and _t_420 _t_1225))
+(define-fun _t_1227 () Bool (= _t_391 _t_406))
+(define-fun _t_1228 () Bool (and _t_1226 _t_1227))
+(define-fun _t_1229 () Bool (and _t_414 _t_1228))
+(define-fun _t_1230 () Bool (fp.leq _t_418 _t_851))
+(define-fun _t_1231 () Bool (not _t_1230))
+(define-fun _t_1232 () Bool (and _t_1229 _t_1231))
+(define-fun _t_1233 () Bool (fp.leq _t_293 _t_402))
+(define-fun _t_1234 () Bool (not _t_1233))
+(define-fun _t_1235 () Bool (and _t_1232 _t_1234))
+(define-fun _t_1236 () (_ FloatingPoint 11 53) (fp.neg _t_402))
+(define-fun _t_1237 () Bool (= _t_403 _t_1236))
+(define-fun _t_1238 () Bool (and _t_1235 _t_1237))
+(define-fun _t_1239 () Bool (and _t_405 _t_1238))
+(define-fun _t_1240 () Bool (= _t_376 _t_391))
+(define-fun _t_1241 () Bool (and _t_1239 _t_1240))
+(define-fun _t_1242 () Bool (and _t_399 _t_1241))
+(define-fun _t_1243 () Bool (fp.leq _t_403 _t_851))
+(define-fun _t_1244 () Bool (not _t_1243))
+(define-fun _t_1245 () Bool (and _t_1242 _t_1244))
+(define-fun _t_1246 () Bool (fp.leq _t_293 _t_387))
+(define-fun _t_1247 () Bool (not _t_1246))
+(define-fun _t_1248 () Bool (and _t_1245 _t_1247))
+(define-fun _t_1249 () (_ FloatingPoint 11 53) (fp.neg _t_387))
+(define-fun _t_1250 () Bool (= _t_388 _t_1249))
+(define-fun _t_1251 () Bool (and _t_1248 _t_1250))
+(define-fun _t_1252 () Bool (and _t_390 _t_1251))
+(define-fun _t_1253 () Bool (= _t_361 _t_376))
+(define-fun _t_1254 () Bool (and _t_1252 _t_1253))
+(define-fun _t_1255 () Bool (and _t_384 _t_1254))
+(define-fun _t_1256 () Bool (fp.leq _t_293 _t_372))
+(define-fun _t_1257 () Bool (not _t_1256))
+(define-fun _t_1258 () Bool (and _t_1255 _t_1257))
+(define-fun _t_1259 () (_ FloatingPoint 11 53) (fp.neg _t_372))
+(define-fun _t_1260 () Bool (= _t_373 _t_1259))
+(define-fun _t_1261 () Bool (and _t_1258 _t_1260))
+(define-fun _t_1262 () Bool (and _t_375 _t_1261))
+(define-fun _t_1263 () Bool (= _t_346 _t_361))
+(define-fun _t_1264 () Bool (and _t_1262 _t_1263))
+(define-fun _t_1265 () Bool (and _t_369 _t_1264))
+(define-fun _t_1266 () Bool (fp.leq _t_373 _t_851))
+(define-fun _t_1267 () Bool (not _t_1266))
+(define-fun _t_1268 () Bool (and _t_1265 _t_1267))
+(define-fun _t_1269 () Bool (fp.leq _t_293 _t_357))
+(define-fun _t_1270 () Bool (not _t_1269))
+(define-fun _t_1271 () Bool (and _t_1268 _t_1270))
+(define-fun _t_1272 () (_ FloatingPoint 11 53) (fp.neg _t_357))
+(define-fun _t_1273 () Bool (= _t_358 _t_1272))
+(define-fun _t_1274 () Bool (and _t_1271 _t_1273))
+(define-fun _t_1275 () Bool (and _t_360 _t_1274))
+(define-fun _t_1276 () Bool (= _t_333 _t_346))
+(define-fun _t_1277 () Bool (and _t_1275 _t_1276))
+(define-fun _t_1278 () Bool (and _t_354 _t_1277))
+(define-fun _t_1279 () Bool (fp.leq _t_358 _t_851))
+(define-fun _t_1280 () Bool (not _t_1279))
+(define-fun _t_1281 () Bool (and _t_1278 _t_1280))
+(define-fun _t_1282 () Bool (fp.leq _t_293 _t_342))
+(define-fun _t_1283 () Bool (not _t_1282))
+(define-fun _t_1284 () Bool (and _t_1281 _t_1283))
+(define-fun _t_1285 () (_ FloatingPoint 11 53) (fp.neg _t_342))
+(define-fun _t_1286 () Bool (= _t_343 _t_1285))
+(define-fun _t_1287 () Bool (and _t_1284 _t_1286))
+(define-fun _t_1288 () Bool (and _t_345 _t_1287))
+(define-fun _t_1289 () Bool (fp.leq _t_343 _t_851))
+(define-fun _t_1290 () Bool (not _t_1289))
+(define-fun _t_1291 () Bool (and _t_1288 _t_1290))
+(define-fun _t_1292 () Bool (fp.leq _t_293 _t_329))
+(define-fun _t_1293 () Bool (not _t_1292))
+(define-fun _t_1294 () Bool (and _t_1291 _t_1293))
+(define-fun _t_1295 () (_ FloatingPoint 11 53) (fp.neg _t_329))
+(define-fun _t_1296 () Bool (= _t_330 _t_1295))
+(define-fun _t_1297 () Bool (and _t_1294 _t_1296))
+(define-fun _t_1298 () Bool (and _t_332 _t_1297))
+(define-fun _t_1299 () Bool (= _t_303 _t_318))
+(define-fun _t_1300 () Bool (and _t_1298 _t_1299))
+(define-fun _t_1301 () Bool (fp.leq _t_330 _t_851))
+(define-fun _t_1302 () Bool (not _t_1301))
+(define-fun _t_1303 () Bool (and _t_1300 _t_1302))
+(define-fun _t_1304 () Bool (and _t_326 _t_1303))
+(define-fun _t_1305 () Bool (fp.leq _t_293 _t_314))
+(define-fun _t_1306 () Bool (not _t_1305))
+(define-fun _t_1307 () Bool (and _t_1304 _t_1306))
+(define-fun _t_1308 () (_ FloatingPoint 11 53) (fp.neg _t_314))
+(define-fun _t_1309 () Bool (= _t_315 _t_1308))
+(define-fun _t_1310 () Bool (and _t_1307 _t_1309))
+(define-fun _t_1311 () Bool (and _t_317 _t_1310))
+(define-fun _t_1312 () Bool (= _t_289 _t_303))
+(define-fun _t_1313 () Bool (and _t_1311 _t_1312))
+(define-fun _t_1314 () Bool (and _t_311 _t_1313))
+(define-fun _t_1315 () Bool (fp.leq _t_315 _t_851))
+(define-fun _t_1316 () Bool (not _t_1315))
+(define-fun _t_1317 () Bool (and _t_1314 _t_1316))
+(define-fun _t_1318 () Bool (fp.leq _t_293 _t_299))
+(define-fun _t_1319 () Bool (not _t_1318))
+(define-fun _t_1320 () Bool (and _t_1317 _t_1319))
+(define-fun _t_1321 () (_ FloatingPoint 11 53) (fp.neg _t_299))
+(define-fun _t_1322 () Bool (= _t_300 _t_1321))
+(define-fun _t_1323 () Bool (and _t_1320 _t_1322))
+(define-fun _t_1324 () Bool (and _t_302 _t_1323))
+(define-fun _t_1325 () Bool (fp.leq _t_293 _t_277))
+(define-fun _t_1326 () Bool (not _t_1325))
+(define-fun _t_1327 () Bool (and _t_1324 _t_1326))
+(define-fun _t_1328 () (_ FloatingPoint 11 53) (fp.neg _t_277))
+(define-fun _t_1329 () Bool (= _t_286 _t_1328))
+(define-fun _t_1330 () Bool (and _t_1327 _t_1329))
+(define-fun _t_1331 () Bool (and _t_288 _t_1330))
+(define-fun _t_1332 () Bool (fp.leq _t_286 _t_851))
+(define-fun _t_1333 () Bool (not _t_1332))
+(define-fun _t_1334 () Bool (and _t_1331 _t_1333))
+(define-fun _t_1335 () Bool (= _t_249 _t_279))
+(define-fun _t_1336 () Bool (and _t_1334 _t_1335))
+(define-fun _t_1337 () Bool (fp.leq _t_293 _t_282))
+(define-fun _t_1338 () Bool (not _t_1337))
+(define-fun _t_1339 () Bool (and _t_1336 _t_1338))
+(define-fun _t_1340 () (_ FloatingPoint 11 53) (fp.neg _t_282))
+(define-fun _t_1341 () Bool (= _t_283 _t_1340))
+(define-fun _t_1342 () Bool (and _t_1339 _t_1341))
+(define-fun _t_1343 () Bool (and _t_285 _t_1342))
+(define-fun _t_1344 () Bool (fp.leq _t_283 _t_851))
+(define-fun _t_1345 () Bool (not _t_1344))
+(define-fun _t_1346 () Bool (and _t_1343 _t_1345))
+(define-fun _t_1347 () Bool (and _t_273 _t_1346))
+(define-fun _t_1348 () Bool (fp.leq _t_293 _t_260))
+(define-fun _t_1349 () Bool (not _t_1348))
+(define-fun _t_1350 () Bool (and _t_1347 _t_1349))
+(define-fun _t_1351 () (_ FloatingPoint 11 53) (fp.neg _t_260))
+(define-fun _t_1352 () Bool (= _t_261 _t_1351))
+(define-fun _t_1353 () Bool (and _t_1350 _t_1352))
+(define-fun _t_1354 () Bool (and _t_263 _t_1353))
+(define-fun _t_1355 () Bool (= _t_234 _t_249))
+(define-fun _t_1356 () Bool (and _t_1354 _t_1355))
+(define-fun _t_1357 () Bool (fp.leq _t_261 _t_851))
+(define-fun _t_1358 () Bool (not _t_1357))
+(define-fun _t_1359 () Bool (and _t_1356 _t_1358))
+(define-fun _t_1360 () Bool (and _t_257 _t_1359))
+(define-fun _t_1361 () Bool (fp.leq _t_293 _t_245))
+(define-fun _t_1362 () Bool (not _t_1361))
+(define-fun _t_1363 () Bool (and _t_1360 _t_1362))
+(define-fun _t_1364 () (_ FloatingPoint 11 53) (fp.neg _t_245))
+(define-fun _t_1365 () Bool (= _t_246 _t_1364))
+(define-fun _t_1366 () Bool (and _t_1363 _t_1365))
+(define-fun _t_1367 () Bool (and _t_248 _t_1366))
+(define-fun _t_1368 () Bool (= _t_219 _t_234))
+(define-fun _t_1369 () Bool (and _t_1367 _t_1368))
+(define-fun _t_1370 () Bool (and _t_242 _t_1369))
+(define-fun _t_1371 () Bool (fp.leq _t_246 _t_851))
+(define-fun _t_1372 () Bool (not _t_1371))
+(define-fun _t_1373 () Bool (and _t_1370 _t_1372))
+(define-fun _t_1374 () Bool (fp.leq _t_293 _t_230))
+(define-fun _t_1375 () Bool (not _t_1374))
+(define-fun _t_1376 () Bool (and _t_1373 _t_1375))
+(define-fun _t_1377 () (_ FloatingPoint 11 53) (fp.neg _t_230))
+(define-fun _t_1378 () Bool (= _t_231 _t_1377))
+(define-fun _t_1379 () Bool (and _t_1376 _t_1378))
+(define-fun _t_1380 () Bool (and _t_233 _t_1379))
+(define-fun _t_1381 () Bool (= _t_198 _t_219))
+(define-fun _t_1382 () Bool (and _t_1380 _t_1381))
+(define-fun _t_1383 () Bool (and _t_227 _t_1382))
+(define-fun _t_1384 () Bool (fp.leq _t_231 _t_851))
+(define-fun _t_1385 () Bool (not _t_1384))
+(define-fun _t_1386 () Bool (and _t_1383 _t_1385))
+(define-fun _t_1387 () Bool (fp.leq _t_293 _t_215))
+(define-fun _t_1388 () Bool (not _t_1387))
+(define-fun _t_1389 () Bool (and _t_1386 _t_1388))
+(define-fun _t_1390 () (_ FloatingPoint 11 53) (fp.neg _t_215))
+(define-fun _t_1391 () Bool (= _t_216 _t_1390))
+(define-fun _t_1392 () Bool (and _t_1389 _t_1391))
+(define-fun _t_1393 () Bool (and _t_218 _t_1392))
+(define-fun _t_1394 () Bool (= _t_189 _t_198))
+(define-fun _t_1395 () Bool (and _t_1393 _t_1394))
+(define-fun _t_1396 () Bool (and _t_212 _t_1395))
+(define-fun _t_1397 () Bool (and _t_206 _t_1396))
+(define-fun _t_1398 () Bool (fp.leq _t_293 _t_209))
+(define-fun _t_1399 () Bool (not _t_1398))
+(define-fun _t_1400 () Bool (and _t_1397 _t_1399))
+(define-fun _t_1401 () Bool (fp.leq _t_216 _t_851))
+(define-fun _t_1402 () Bool (not _t_1401))
+(define-fun _t_1403 () Bool (and _t_1400 _t_1402))
+(define-fun _t_1404 () Bool (= _t_174 _t_189))
+(define-fun _t_1405 () Bool (and _t_1403 _t_1404))
+(define-fun _t_1406 () Bool (and _t_197 _t_1405))
+(define-fun _t_1407 () Bool (fp.leq _t_293 _t_185))
+(define-fun _t_1408 () Bool (not _t_1407))
+(define-fun _t_1409 () Bool (and _t_1406 _t_1408))
+(define-fun _t_1410 () (_ FloatingPoint 11 53) (fp.neg _t_185))
+(define-fun _t_1411 () Bool (= _t_186 _t_1410))
+(define-fun _t_1412 () Bool (and _t_1409 _t_1411))
+(define-fun _t_1413 () Bool (and _t_188 _t_1412))
+(define-fun _t_1414 () Bool (= _t_159 _t_174))
+(define-fun _t_1415 () Bool (and _t_1413 _t_1414))
+(define-fun _t_1416 () Bool (and _t_182 _t_1415))
+(define-fun _t_1417 () Bool (fp.leq _t_186 _t_851))
+(define-fun _t_1418 () Bool (not _t_1417))
+(define-fun _t_1419 () Bool (and _t_1416 _t_1418))
+(define-fun _t_1420 () Bool (fp.leq _t_293 _t_170))
+(define-fun _t_1421 () Bool (not _t_1420))
+(define-fun _t_1422 () Bool (and _t_1419 _t_1421))
+(define-fun _t_1423 () (_ FloatingPoint 11 53) (fp.neg _t_170))
+(define-fun _t_1424 () Bool (= _t_171 _t_1423))
+(define-fun _t_1425 () Bool (and _t_1422 _t_1424))
+(define-fun _t_1426 () Bool (and _t_173 _t_1425))
+(define-fun _t_1427 () Bool (= _t_144 _t_159))
+(define-fun _t_1428 () Bool (and _t_1426 _t_1427))
+(define-fun _t_1429 () Bool (and _t_167 _t_1428))
+(define-fun _t_1430 () Bool (fp.leq _t_171 _t_851))
+(define-fun _t_1431 () Bool (not _t_1430))
+(define-fun _t_1432 () Bool (and _t_1429 _t_1431))
+(define-fun _t_1433 () Bool (fp.leq _t_293 _t_155))
+(define-fun _t_1434 () Bool (not _t_1433))
+(define-fun _t_1435 () Bool (and _t_1432 _t_1434))
+(define-fun _t_1436 () (_ FloatingPoint 11 53) (fp.neg _t_155))
+(define-fun _t_1437 () Bool (= _t_156 _t_1436))
+(define-fun _t_1438 () Bool (and _t_1435 _t_1437))
+(define-fun _t_1439 () Bool (and _t_158 _t_1438))
+(define-fun _t_1440 () Bool (= _t_129 _t_144))
+(define-fun _t_1441 () Bool (and _t_1439 _t_1440))
+(define-fun _t_1442 () Bool (and _t_152 _t_1441))
+(define-fun _t_1443 () Bool (fp.leq _t_156 _t_851))
+(define-fun _t_1444 () Bool (not _t_1443))
+(define-fun _t_1445 () Bool (and _t_1442 _t_1444))
+(define-fun _t_1446 () Bool (fp.leq _t_293 _t_140))
+(define-fun _t_1447 () Bool (not _t_1446))
+(define-fun _t_1448 () Bool (and _t_1445 _t_1447))
+(define-fun _t_1449 () (_ FloatingPoint 11 53) (fp.neg _t_140))
+(define-fun _t_1450 () Bool (= _t_141 _t_1449))
+(define-fun _t_1451 () Bool (and _t_1448 _t_1450))
+(define-fun _t_1452 () Bool (and _t_143 _t_1451))
+(define-fun _t_1453 () Bool (= _t_114 _t_129))
+(define-fun _t_1454 () Bool (and _t_1452 _t_1453))
+(define-fun _t_1455 () Bool (and _t_137 _t_1454))
+(define-fun _t_1456 () Bool (fp.leq _t_141 _t_851))
+(define-fun _t_1457 () Bool (not _t_1456))
+(define-fun _t_1458 () Bool (and _t_1455 _t_1457))
+(define-fun _t_1459 () Bool (fp.leq _t_293 _t_125))
+(define-fun _t_1460 () Bool (not _t_1459))
+(define-fun _t_1461 () Bool (and _t_1458 _t_1460))
+(define-fun _t_1462 () (_ FloatingPoint 11 53) (fp.neg _t_125))
+(define-fun _t_1463 () Bool (= _t_126 _t_1462))
+(define-fun _t_1464 () Bool (and _t_1461 _t_1463))
+(define-fun _t_1465 () Bool (and _t_128 _t_1464))
+(define-fun _t_1466 () Bool (= _t_99 _t_114))
+(define-fun _t_1467 () Bool (and _t_1465 _t_1466))
+(define-fun _t_1468 () Bool (and _t_122 _t_1467))
+(define-fun _t_1469 () Bool (fp.leq _t_126 _t_851))
+(define-fun _t_1470 () Bool (not _t_1469))
+(define-fun _t_1471 () Bool (and _t_1468 _t_1470))
+(define-fun _t_1472 () Bool (fp.leq _t_293 _t_110))
+(define-fun _t_1473 () Bool (not _t_1472))
+(define-fun _t_1474 () Bool (and _t_1471 _t_1473))
+(define-fun _t_1475 () (_ FloatingPoint 11 53) (fp.neg _t_110))
+(define-fun _t_1476 () Bool (= _t_111 _t_1475))
+(define-fun _t_1477 () Bool (and _t_1474 _t_1476))
+(define-fun _t_1478 () Bool (and _t_113 _t_1477))
+(define-fun _t_1479 () Bool (= _t_84 _t_99))
+(define-fun _t_1480 () Bool (and _t_1478 _t_1479))
+(define-fun _t_1481 () Bool (and _t_107 _t_1480))
+(define-fun _t_1482 () Bool (fp.leq _t_111 _t_851))
+(define-fun _t_1483 () Bool (not _t_1482))
+(define-fun _t_1484 () Bool (and _t_1481 _t_1483))
+(define-fun _t_1485 () Bool (fp.leq _t_293 _t_95))
+(define-fun _t_1486 () Bool (not _t_1485))
+(define-fun _t_1487 () Bool (and _t_1484 _t_1486))
+(define-fun _t_1488 () (_ FloatingPoint 11 53) (fp.neg _t_95))
+(define-fun _t_1489 () Bool (= _t_96 _t_1488))
+(define-fun _t_1490 () Bool (and _t_1487 _t_1489))
+(define-fun _t_1491 () Bool (and _t_98 _t_1490))
+(define-fun _t_1492 () Bool (= _t_69 _t_84))
+(define-fun _t_1493 () Bool (and _t_1491 _t_1492))
+(define-fun _t_1494 () Bool (and _t_92 _t_1493))
+(define-fun _t_1495 () Bool (fp.leq _t_96 _t_851))
+(define-fun _t_1496 () Bool (not _t_1495))
+(define-fun _t_1497 () Bool (and _t_1494 _t_1496))
+(define-fun _t_1498 () Bool (fp.leq _t_293 _t_80))
+(define-fun _t_1499 () Bool (not _t_1498))
+(define-fun _t_1500 () Bool (and _t_1497 _t_1499))
+(define-fun _t_1501 () (_ FloatingPoint 11 53) (fp.neg _t_80))
+(define-fun _t_1502 () Bool (= _t_81 _t_1501))
+(define-fun _t_1503 () Bool (and _t_1500 _t_1502))
+(define-fun _t_1504 () Bool (and _t_83 _t_1503))
+(define-fun _t_1505 () Bool (= _t_54 _t_69))
+(define-fun _t_1506 () Bool (and _t_1504 _t_1505))
+(define-fun _t_1507 () Bool (and _t_77 _t_1506))
+(define-fun _t_1508 () Bool (fp.leq _t_81 _t_851))
+(define-fun _t_1509 () Bool (not _t_1508))
+(define-fun _t_1510 () Bool (and _t_1507 _t_1509))
+(define-fun _t_1511 () Bool (fp.leq _t_293 _t_65))
+(define-fun _t_1512 () Bool (not _t_1511))
+(define-fun _t_1513 () Bool (and _t_1510 _t_1512))
+(define-fun _t_1514 () (_ FloatingPoint 11 53) (fp.neg _t_65))
+(define-fun _t_1515 () Bool (= _t_66 _t_1514))
+(define-fun _t_1516 () Bool (and _t_1513 _t_1515))
+(define-fun _t_1517 () Bool (and _t_68 _t_1516))
+(define-fun _t_1518 () Bool (= _t_39 _t_54))
+(define-fun _t_1519 () Bool (and _t_1517 _t_1518))
+(define-fun _t_1520 () Bool (and _t_62 _t_1519))
+(define-fun _t_1521 () Bool (fp.leq _t_66 _t_851))
+(define-fun _t_1522 () Bool (not _t_1521))
+(define-fun _t_1523 () Bool (and _t_1520 _t_1522))
+(define-fun _t_1524 () Bool (fp.leq _t_293 _t_50))
+(define-fun _t_1525 () Bool (not _t_1524))
+(define-fun _t_1526 () Bool (and _t_1523 _t_1525))
+(define-fun _t_1527 () (_ FloatingPoint 11 53) (fp.neg _t_50))
+(define-fun _t_1528 () Bool (= _t_51 _t_1527))
+(define-fun _t_1529 () Bool (and _t_1526 _t_1528))
+(define-fun _t_1530 () Bool (and _t_53 _t_1529))
+(define-fun _t_1531 () Bool (= _t_24 _t_39))
+(define-fun _t_1532 () Bool (and _t_1530 _t_1531))
+(define-fun _t_1533 () Bool (and _t_47 _t_1532))
+(define-fun _t_1534 () Bool (fp.leq _t_51 _t_851))
+(define-fun _t_1535 () Bool (not _t_1534))
+(define-fun _t_1536 () Bool (and _t_1533 _t_1535))
+(define-fun _t_1537 () Bool (fp.leq _t_293 _t_35))
+(define-fun _t_1538 () Bool (not _t_1537))
+(define-fun _t_1539 () Bool (and _t_1536 _t_1538))
+(define-fun _t_1540 () (_ FloatingPoint 11 53) (fp.neg _t_35))
+(define-fun _t_1541 () Bool (= _t_36 _t_1540))
+(define-fun _t_1542 () Bool (and _t_1539 _t_1541))
+(define-fun _t_1543 () Bool (and _t_38 _t_1542))
+(define-fun _t_1544 () Bool (= _t_9 _t_24))
+(define-fun _t_1545 () Bool (and _t_1543 _t_1544))
+(define-fun _t_1546 () Bool (and _t_32 _t_1545))
+(define-fun _t_1547 () Bool (fp.leq _t_36 _t_851))
+(define-fun _t_1548 () Bool (not _t_1547))
+(define-fun _t_1549 () Bool (and _t_1546 _t_1548))
+(define-fun _t_1550 () Bool (fp.leq _t_293 _t_20))
+(define-fun _t_1551 () Bool (not _t_1550))
+(define-fun _t_1552 () Bool (and _t_1549 _t_1551))
+(define-fun _t_1553 () (_ FloatingPoint 11 53) (fp.neg _t_20))
+(define-fun _t_1554 () Bool (= _t_21 _t_1553))
+(define-fun _t_1555 () Bool (and _t_1552 _t_1554))
+(define-fun _t_1556 () Bool (and _t_23 _t_1555))
+(assert _t_1556)
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/qurt.c.25.smt2 b/UnitTests/unsat/QF_FP/qurt.c.25.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..857556ab1ab188b2b17856c012b5be2a670e0d36
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/qurt.c.25.smt2
@@ -0,0 +1,1674 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unknown)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:53
+
+(declare-fun b4876 () (_ FloatingPoint 11 53))
+(declare-fun b3997 () (_ FloatingPoint 11 53))
+(declare-fun b4695 () (_ FloatingPoint 11 53))
+(declare-fun b3907 () (_ FloatingPoint 11 53))
+(declare-fun b4725 () (_ FloatingPoint 11 53))
+(declare-fun b4780 () (_ FloatingPoint 11 53))
+(declare-fun b610 () (_ FloatingPoint 11 53))
+(declare-fun b5178 () (_ FloatingPoint 11 53))
+(declare-fun b4455 () (_ FloatingPoint 11 53))
+(declare-fun b5328 () (_ FloatingPoint 11 53))
+(declare-fun b5058 () (_ FloatingPoint 11 53))
+(declare-fun b4750 () (_ FloatingPoint 11 53))
+(declare-fun b3847 () (_ FloatingPoint 11 53))
+(declare-fun b4027 () (_ FloatingPoint 11 53))
+(declare-fun b4232 () (_ FloatingPoint 11 53))
+(declare-fun b4480 () (_ FloatingPoint 11 53))
+(declare-fun b5358 () (_ FloatingPoint 11 53))
+(declare-fun b5434 () (_ FloatingPoint 11 53))
+(declare-fun b4886 () (_ FloatingPoint 11 53))
+(declare-fun b5303 () (_ FloatingPoint 11 53))
+(declare-fun b5213 () (_ FloatingPoint 11 53))
+(declare-fun b3937 () (_ FloatingPoint 11 53))
+(declare-fun b4810 () (_ FloatingPoint 11 53))
+(declare-fun b4082 () (_ FloatingPoint 11 53))
+(declare-fun b4545 () (_ FloatingPoint 11 53))
+(declare-fun b5118 () (_ FloatingPoint 11 53))
+(declare-fun b5424 () (_ FloatingPoint 11 53))
+(declare-fun b4938 () (_ FloatingPoint 11 53))
+(declare-fun b4785 () (_ FloatingPoint 11 53))
+(declare-fun b4690 () (_ FloatingPoint 11 53))
+(declare-fun b4425 () (_ FloatingPoint 11 53))
+(declare-fun b4177 () (_ FloatingPoint 11 53))
+(declare-fun b4605 () (_ FloatingPoint 11 53))
+(declare-fun b5153 () (_ FloatingPoint 11 53))
+(declare-fun b4262 () (_ FloatingPoint 11 53))
+(declare-fun b3967 () (_ FloatingPoint 11 53))
+(declare-fun b4660 () (_ FloatingPoint 11 53))
+(declare-fun b5208 () (_ FloatingPoint 11 53))
+(declare-fun b4998 () (_ FloatingPoint 11 53))
+(declare-fun b632 () (_ FloatingPoint 11 53))
+(declare-fun b4359 () (_ FloatingPoint 11 53))
+(declare-fun b5273 () (_ FloatingPoint 11 53))
+(declare-fun b4840 () (_ FloatingPoint 11 53))
+(declare-fun b4630 () (_ FloatingPoint 11 53))
+(declare-fun b5243 () (_ FloatingPoint 11 53))
+(declare-fun b4328 () (_ FloatingPoint 11 53))
+(declare-fun b5088 () (_ FloatingPoint 11 53))
+(declare-fun b4575 () (_ FloatingPoint 11 53))
+(declare-fun b4364 () (_ FloatingPoint 11 53))
+(declare-fun b4052 () (_ FloatingPoint 11 53))
+(declare-fun b4338 () (_ FloatingPoint 11 53))
+(declare-fun b4172 () (_ FloatingPoint 11 53))
+(declare-fun b5333 () (_ FloatingPoint 11 53))
+(declare-fun b5238 () (_ FloatingPoint 11 53))
+(declare-fun b4570 () (_ FloatingPoint 11 53))
+(declare-fun b3800 () (_ FloatingPoint 11 53))
+(declare-fun b5388 () (_ FloatingPoint 11 53))
+(declare-fun b4973 () (_ FloatingPoint 11 53))
+(declare-fun b5123 () (_ FloatingPoint 11 53))
+(declare-fun b4267 () (_ FloatingPoint 11 53))
+(declare-fun b641 () (_ FloatingPoint 11 53))
+(declare-fun b4896 () (_ FloatingPoint 11 53))
+(declare-fun b5003 () (_ FloatingPoint 11 53))
+(declare-fun b4943 () (_ FloatingPoint 11 53))
+(declare-fun b4815 () (_ FloatingPoint 11 53))
+(declare-fun b4087 () (_ FloatingPoint 11 53))
+(declare-fun b4540 () (_ FloatingPoint 11 53))
+(declare-fun b644 () (_ FloatingPoint 11 53))
+(declare-fun b5183 () (_ FloatingPoint 11 53))
+(declare-fun b4450 () (_ FloatingPoint 11 53))
+(declare-fun b4420 () (_ FloatingPoint 11 53))
+(declare-fun b4755 () (_ FloatingPoint 11 53))
+(declare-fun b5363 () (_ FloatingPoint 11 53))
+(declare-fun b598 () (_ FloatingPoint 11 53))
+(declare-fun b4485 () (_ FloatingPoint 11 53))
+(declare-fun b4142 () (_ FloatingPoint 11 53))
+(declare-fun b4665 () (_ FloatingPoint 11 53))
+(declare-fun b3842 () (_ FloatingPoint 11 53))
+(declare-fun b4057 () (_ FloatingPoint 11 53))
+(declare-fun b5148 () (_ FloatingPoint 11 53))
+(declare-fun b4292 () (_ FloatingPoint 11 53))
+(declare-fun b4510 () (_ FloatingPoint 11 53))
+(declare-fun b5093 () (_ FloatingPoint 11 53))
+(declare-fun b5063 () (_ FloatingPoint 11 53))
+(declare-fun b3872 () (_ FloatingPoint 11 53))
+(declare-fun b4237 () (_ FloatingPoint 11 53))
+(declare-fun b5033 () (_ FloatingPoint 11 53))
+(declare-fun b4635 () (_ FloatingPoint 11 53))
+(declare-fun b4720 () (_ FloatingPoint 11 53))
+(declare-fun b3811 () (_ FloatingPoint 11 53))
+(declare-fun b5298 () (_ FloatingPoint 11 53))
+(declare-fun b3932 () (_ FloatingPoint 11 53))
+(declare-fun b4395 () (_ FloatingPoint 11 53))
+(declare-fun b4912 () (_ FloatingPoint 11 53))
+(declare-fun b1719 () (_ FloatingPoint 11 53))
+(declare-fun b3877 () (_ FloatingPoint 11 53))
+(declare-fun b4348 () (_ FloatingPoint 11 53))
+(declare-fun b4907 () (_ FloatingPoint 11 53))
+(declare-fun b3816 () (_ FloatingPoint 11 53))
+(declare-fun b4202 () (_ FloatingPoint 11 53))
+(declare-fun b3902 () (_ FloatingPoint 11 53))
+(declare-fun b4022 () (_ FloatingPoint 11 53))
+(declare-fun b4117 () (_ FloatingPoint 11 53))
+(declare-fun b4147 () (_ FloatingPoint 11 53))
+(declare-fun b5028 () (_ FloatingPoint 11 53))
+(declare-fun b4968 () (_ FloatingPoint 11 53))
+(declare-fun b3962 () (_ FloatingPoint 11 53))
+(declare-fun b4390 () (_ FloatingPoint 11 53))
+(declare-fun b4600 () (_ FloatingPoint 11 53))
+(declare-fun b5268 () (_ FloatingPoint 11 53))
+(declare-fun b3992 () (_ FloatingPoint 11 53))
+(declare-fun b4112 () (_ FloatingPoint 11 53))
+(declare-fun b4515 () (_ FloatingPoint 11 53))
+(declare-fun b4207 () (_ FloatingPoint 11 53))
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_9 () (_ FloatingPoint 11 53) b3800)
+(define-fun _t_10 () (_ FloatingPoint 11 53) b632)
+(define-fun _t_11 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_10))
+(define-fun _t_12 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_9 _t_9))
+(define-fun _t_13 () (_ FloatingPoint 11 53) (fp.neg _t_12))
+(define-fun _t_14 () (_ FloatingPoint 11 53) b1719)
+(define-fun _t_15 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_13 _t_14))
+(define-fun _t_16 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_15 _t_11))
+(define-fun _t_17 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_9 _t_16))
+(define-fun _t_18 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_17 _t_17))
+(define-fun _t_19 () (_ FloatingPoint 11 53) (fp.neg _t_18))
+(define-fun _t_20 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_19))
+(define-fun _t_21 () (_ FloatingPoint 11 53) b3811)
+(define-fun _t_22 () Bool (= _t_20 _t_21))
+(define-fun _t_23 () Bool (not _t_22))
+(define-fun _t_24 () (_ FloatingPoint 11 53) b3816)
+(define-fun _t_25 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_24))
+(define-fun _t_26 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_24 _t_24))
+(define-fun _t_27 () (_ FloatingPoint 11 53) (fp.neg _t_26))
+(define-fun _t_28 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_27))
+(define-fun _t_29 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_28 _t_25))
+(define-fun _t_30 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_24 _t_29))
+(define-fun _t_31 () Bool (= _t_9 _t_30))
+(define-fun _t_32 () Bool (not _t_31))
+(define-fun _t_33 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_30 _t_30))
+(define-fun _t_34 () (_ FloatingPoint 11 53) (fp.neg _t_33))
+(define-fun _t_35 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_34))
+(define-fun _t_36 () (_ FloatingPoint 11 53) b3842)
+(define-fun _t_37 () Bool (= _t_35 _t_36))
+(define-fun _t_38 () Bool (not _t_37))
+(define-fun _t_39 () (_ FloatingPoint 11 53) b3847)
+(define-fun _t_40 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_39))
+(define-fun _t_41 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_39 _t_39))
+(define-fun _t_42 () (_ FloatingPoint 11 53) (fp.neg _t_41))
+(define-fun _t_43 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_42))
+(define-fun _t_44 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_43 _t_40))
+(define-fun _t_45 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_39 _t_44))
+(define-fun _t_46 () Bool (= _t_24 _t_45))
+(define-fun _t_47 () Bool (not _t_46))
+(define-fun _t_48 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_45 _t_45))
+(define-fun _t_49 () (_ FloatingPoint 11 53) (fp.neg _t_48))
+(define-fun _t_50 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_49))
+(define-fun _t_51 () (_ FloatingPoint 11 53) b3872)
+(define-fun _t_52 () Bool (= _t_50 _t_51))
+(define-fun _t_53 () Bool (not _t_52))
+(define-fun _t_54 () (_ FloatingPoint 11 53) b3877)
+(define-fun _t_55 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_54))
+(define-fun _t_56 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_54 _t_54))
+(define-fun _t_57 () (_ FloatingPoint 11 53) (fp.neg _t_56))
+(define-fun _t_58 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_57))
+(define-fun _t_59 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_58 _t_55))
+(define-fun _t_60 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_54 _t_59))
+(define-fun _t_61 () Bool (= _t_39 _t_60))
+(define-fun _t_62 () Bool (not _t_61))
+(define-fun _t_63 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_60 _t_60))
+(define-fun _t_64 () (_ FloatingPoint 11 53) (fp.neg _t_63))
+(define-fun _t_65 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_64))
+(define-fun _t_66 () (_ FloatingPoint 11 53) b3902)
+(define-fun _t_67 () Bool (= _t_65 _t_66))
+(define-fun _t_68 () Bool (not _t_67))
+(define-fun _t_69 () (_ FloatingPoint 11 53) b3907)
+(define-fun _t_70 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_69))
+(define-fun _t_71 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_69 _t_69))
+(define-fun _t_72 () (_ FloatingPoint 11 53) (fp.neg _t_71))
+(define-fun _t_73 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_72))
+(define-fun _t_74 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_73 _t_70))
+(define-fun _t_75 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_69 _t_74))
+(define-fun _t_76 () Bool (= _t_54 _t_75))
+(define-fun _t_77 () Bool (not _t_76))
+(define-fun _t_78 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_75 _t_75))
+(define-fun _t_79 () (_ FloatingPoint 11 53) (fp.neg _t_78))
+(define-fun _t_80 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_79))
+(define-fun _t_81 () (_ FloatingPoint 11 53) b3932)
+(define-fun _t_82 () Bool (= _t_80 _t_81))
+(define-fun _t_83 () Bool (not _t_82))
+(define-fun _t_84 () (_ FloatingPoint 11 53) b3937)
+(define-fun _t_85 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_84))
+(define-fun _t_86 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_84 _t_84))
+(define-fun _t_87 () (_ FloatingPoint 11 53) (fp.neg _t_86))
+(define-fun _t_88 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_87))
+(define-fun _t_89 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_88 _t_85))
+(define-fun _t_90 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_84 _t_89))
+(define-fun _t_91 () Bool (= _t_69 _t_90))
+(define-fun _t_92 () Bool (not _t_91))
+(define-fun _t_93 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_90 _t_90))
+(define-fun _t_94 () (_ FloatingPoint 11 53) (fp.neg _t_93))
+(define-fun _t_95 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_94))
+(define-fun _t_96 () (_ FloatingPoint 11 53) b3962)
+(define-fun _t_97 () Bool (= _t_95 _t_96))
+(define-fun _t_98 () Bool (not _t_97))
+(define-fun _t_99 () (_ FloatingPoint 11 53) b3967)
+(define-fun _t_100 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_99))
+(define-fun _t_101 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_99 _t_99))
+(define-fun _t_102 () (_ FloatingPoint 11 53) (fp.neg _t_101))
+(define-fun _t_103 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_102))
+(define-fun _t_104 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_103 _t_100))
+(define-fun _t_105 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_99 _t_104))
+(define-fun _t_106 () Bool (= _t_84 _t_105))
+(define-fun _t_107 () Bool (not _t_106))
+(define-fun _t_108 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_105 _t_105))
+(define-fun _t_109 () (_ FloatingPoint 11 53) (fp.neg _t_108))
+(define-fun _t_110 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_109))
+(define-fun _t_111 () (_ FloatingPoint 11 53) b3992)
+(define-fun _t_112 () Bool (= _t_110 _t_111))
+(define-fun _t_113 () Bool (not _t_112))
+(define-fun _t_114 () (_ FloatingPoint 11 53) b3997)
+(define-fun _t_115 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_114))
+(define-fun _t_116 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_114 _t_114))
+(define-fun _t_117 () (_ FloatingPoint 11 53) (fp.neg _t_116))
+(define-fun _t_118 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_117))
+(define-fun _t_119 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_118 _t_115))
+(define-fun _t_120 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_114 _t_119))
+(define-fun _t_121 () Bool (= _t_99 _t_120))
+(define-fun _t_122 () Bool (not _t_121))
+(define-fun _t_123 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_120 _t_120))
+(define-fun _t_124 () (_ FloatingPoint 11 53) (fp.neg _t_123))
+(define-fun _t_125 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_124))
+(define-fun _t_126 () (_ FloatingPoint 11 53) b4022)
+(define-fun _t_127 () Bool (= _t_125 _t_126))
+(define-fun _t_128 () Bool (not _t_127))
+(define-fun _t_129 () (_ FloatingPoint 11 53) b4027)
+(define-fun _t_130 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_129))
+(define-fun _t_131 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_129 _t_129))
+(define-fun _t_132 () (_ FloatingPoint 11 53) (fp.neg _t_131))
+(define-fun _t_133 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_132))
+(define-fun _t_134 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_133 _t_130))
+(define-fun _t_135 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_129 _t_134))
+(define-fun _t_136 () Bool (= _t_114 _t_135))
+(define-fun _t_137 () Bool (not _t_136))
+(define-fun _t_138 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_135 _t_135))
+(define-fun _t_139 () (_ FloatingPoint 11 53) (fp.neg _t_138))
+(define-fun _t_140 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_139))
+(define-fun _t_141 () (_ FloatingPoint 11 53) b4052)
+(define-fun _t_142 () Bool (= _t_140 _t_141))
+(define-fun _t_143 () Bool (not _t_142))
+(define-fun _t_144 () (_ FloatingPoint 11 53) b4057)
+(define-fun _t_145 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_144))
+(define-fun _t_146 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_144 _t_144))
+(define-fun _t_147 () (_ FloatingPoint 11 53) (fp.neg _t_146))
+(define-fun _t_148 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_147))
+(define-fun _t_149 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_148 _t_145))
+(define-fun _t_150 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_144 _t_149))
+(define-fun _t_151 () Bool (= _t_129 _t_150))
+(define-fun _t_152 () Bool (not _t_151))
+(define-fun _t_153 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_150 _t_150))
+(define-fun _t_154 () (_ FloatingPoint 11 53) (fp.neg _t_153))
+(define-fun _t_155 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_154))
+(define-fun _t_156 () (_ FloatingPoint 11 53) b4082)
+(define-fun _t_157 () Bool (= _t_155 _t_156))
+(define-fun _t_158 () Bool (not _t_157))
+(define-fun _t_159 () (_ FloatingPoint 11 53) b4087)
+(define-fun _t_160 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_159))
+(define-fun _t_161 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_159 _t_159))
+(define-fun _t_162 () (_ FloatingPoint 11 53) (fp.neg _t_161))
+(define-fun _t_163 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_162))
+(define-fun _t_164 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_163 _t_160))
+(define-fun _t_165 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_159 _t_164))
+(define-fun _t_166 () Bool (= _t_144 _t_165))
+(define-fun _t_167 () Bool (not _t_166))
+(define-fun _t_168 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_165 _t_165))
+(define-fun _t_169 () (_ FloatingPoint 11 53) (fp.neg _t_168))
+(define-fun _t_170 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_169))
+(define-fun _t_171 () (_ FloatingPoint 11 53) b4112)
+(define-fun _t_172 () Bool (= _t_170 _t_171))
+(define-fun _t_173 () Bool (not _t_172))
+(define-fun _t_174 () (_ FloatingPoint 11 53) b4117)
+(define-fun _t_175 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_174))
+(define-fun _t_176 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_174 _t_174))
+(define-fun _t_177 () (_ FloatingPoint 11 53) (fp.neg _t_176))
+(define-fun _t_178 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_177))
+(define-fun _t_179 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_178 _t_175))
+(define-fun _t_180 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_174 _t_179))
+(define-fun _t_181 () Bool (= _t_159 _t_180))
+(define-fun _t_182 () Bool (not _t_181))
+(define-fun _t_183 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_180 _t_180))
+(define-fun _t_184 () (_ FloatingPoint 11 53) (fp.neg _t_183))
+(define-fun _t_185 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_184))
+(define-fun _t_186 () (_ FloatingPoint 11 53) b4142)
+(define-fun _t_187 () Bool (= _t_185 _t_186))
+(define-fun _t_188 () Bool (not _t_187))
+(define-fun _t_189 () (_ FloatingPoint 11 53) b4147)
+(define-fun _t_190 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_189))
+(define-fun _t_191 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_189 _t_189))
+(define-fun _t_192 () (_ FloatingPoint 11 53) (fp.neg _t_191))
+(define-fun _t_193 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_192))
+(define-fun _t_194 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_193 _t_190))
+(define-fun _t_195 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_189 _t_194))
+(define-fun _t_196 () Bool (= _t_174 _t_195))
+(define-fun _t_197 () Bool (not _t_196))
+(define-fun _t_198 () (_ FloatingPoint 11 53) b4177)
+(define-fun _t_199 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_198))
+(define-fun _t_200 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_198 _t_198))
+(define-fun _t_201 () (_ FloatingPoint 11 53) (fp.neg _t_200))
+(define-fun _t_202 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_201))
+(define-fun _t_203 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_202 _t_199))
+(define-fun _t_204 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_198 _t_203))
+(define-fun _t_205 () Bool (= _t_189 _t_204))
+(define-fun _t_206 () Bool (not _t_205))
+(define-fun _t_207 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_195 _t_195))
+(define-fun _t_208 () (_ FloatingPoint 11 53) (fp.neg _t_207))
+(define-fun _t_209 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_208))
+(define-fun _t_210 () (_ FloatingPoint 11 53) b4172)
+(define-fun _t_211 () Bool (= _t_209 _t_210))
+(define-fun _t_212 () Bool (not _t_211))
+(define-fun _t_213 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_204 _t_204))
+(define-fun _t_214 () (_ FloatingPoint 11 53) (fp.neg _t_213))
+(define-fun _t_215 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_214))
+(define-fun _t_216 () (_ FloatingPoint 11 53) b4202)
+(define-fun _t_217 () Bool (= _t_215 _t_216))
+(define-fun _t_218 () Bool (not _t_217))
+(define-fun _t_219 () (_ FloatingPoint 11 53) b4207)
+(define-fun _t_220 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_219))
+(define-fun _t_221 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_219 _t_219))
+(define-fun _t_222 () (_ FloatingPoint 11 53) (fp.neg _t_221))
+(define-fun _t_223 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_222))
+(define-fun _t_224 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_223 _t_220))
+(define-fun _t_225 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_219 _t_224))
+(define-fun _t_226 () Bool (= _t_198 _t_225))
+(define-fun _t_227 () Bool (not _t_226))
+(define-fun _t_228 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_225 _t_225))
+(define-fun _t_229 () (_ FloatingPoint 11 53) (fp.neg _t_228))
+(define-fun _t_230 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_229))
+(define-fun _t_231 () (_ FloatingPoint 11 53) b4232)
+(define-fun _t_232 () Bool (= _t_230 _t_231))
+(define-fun _t_233 () Bool (not _t_232))
+(define-fun _t_234 () (_ FloatingPoint 11 53) b4237)
+(define-fun _t_235 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_234))
+(define-fun _t_236 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_234 _t_234))
+(define-fun _t_237 () (_ FloatingPoint 11 53) (fp.neg _t_236))
+(define-fun _t_238 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_237))
+(define-fun _t_239 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_238 _t_235))
+(define-fun _t_240 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_234 _t_239))
+(define-fun _t_241 () Bool (= _t_219 _t_240))
+(define-fun _t_242 () Bool (not _t_241))
+(define-fun _t_243 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_240 _t_240))
+(define-fun _t_244 () (_ FloatingPoint 11 53) (fp.neg _t_243))
+(define-fun _t_245 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_244))
+(define-fun _t_246 () (_ FloatingPoint 11 53) b4262)
+(define-fun _t_247 () Bool (= _t_245 _t_246))
+(define-fun _t_248 () Bool (not _t_247))
+(define-fun _t_249 () (_ FloatingPoint 11 53) b4267)
+(define-fun _t_250 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_249))
+(define-fun _t_251 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_249 _t_249))
+(define-fun _t_252 () (_ FloatingPoint 11 53) (fp.neg _t_251))
+(define-fun _t_253 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_252))
+(define-fun _t_254 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_253 _t_250))
+(define-fun _t_255 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_249 _t_254))
+(define-fun _t_256 () Bool (= _t_234 _t_255))
+(define-fun _t_257 () Bool (not _t_256))
+(define-fun _t_258 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_255 _t_255))
+(define-fun _t_259 () (_ FloatingPoint 11 53) (fp.neg _t_258))
+(define-fun _t_260 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_259))
+(define-fun _t_261 () (_ FloatingPoint 11 53) b4292)
+(define-fun _t_262 () Bool (= _t_260 _t_261))
+(define-fun _t_263 () Bool (not _t_262))
+(define-fun _t_264 () (_ FloatingPoint 11 53) b641)
+(define-fun _t_265 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_14 _t_264))
+(define-fun _t_266 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_265))
+(define-fun _t_267 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_265 _t_265))
+(define-fun _t_268 () (_ FloatingPoint 11 53) (fp.neg _t_267))
+(define-fun _t_269 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_268))
+(define-fun _t_270 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_269 _t_266))
+(define-fun _t_271 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_265 _t_270))
+(define-fun _t_272 () Bool (= _t_249 _t_271))
+(define-fun _t_273 () Bool (not _t_272))
+(define-fun _t_274 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_271))
+(define-fun _t_275 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_271 _t_271))
+(define-fun _t_276 () (_ FloatingPoint 11 53) (fp.neg _t_275))
+(define-fun _t_277 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_276))
+(define-fun _t_278 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_277 _t_274))
+(define-fun _t_279 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_271 _t_278))
+(define-fun _t_280 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_279 _t_279))
+(define-fun _t_281 () (_ FloatingPoint 11 53) (fp.neg _t_280))
+(define-fun _t_282 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_14 _t_281))
+(define-fun _t_283 () (_ FloatingPoint 11 53) b4328)
+(define-fun _t_284 () Bool (= _t_282 _t_283))
+(define-fun _t_285 () Bool (not _t_284))
+(define-fun _t_286 () (_ FloatingPoint 11 53) b4338)
+(define-fun _t_287 () Bool (= _t_277 _t_286))
+(define-fun _t_288 () Bool (not _t_287))
+(define-fun _t_289 () (_ FloatingPoint 11 53) b4348)
+(define-fun _t_290 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_289))
+(define-fun _t_291 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_289 _t_289))
+(define-fun _t_292 () (_ FloatingPoint 11 53) (fp.neg _t_291))
+(define-fun _t_293 () (_ FloatingPoint 11 53) b598)
+(define-fun _t_294 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_292 _t_293))
+(define-fun _t_295 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_294 _t_290))
+(define-fun _t_296 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_289 _t_295))
+(define-fun _t_297 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_296 _t_296))
+(define-fun _t_298 () (_ FloatingPoint 11 53) (fp.neg _t_297))
+(define-fun _t_299 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_298))
+(define-fun _t_300 () (_ FloatingPoint 11 53) b4359)
+(define-fun _t_301 () Bool (= _t_299 _t_300))
+(define-fun _t_302 () Bool (not _t_301))
+(define-fun _t_303 () (_ FloatingPoint 11 53) b4364)
+(define-fun _t_304 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_303))
+(define-fun _t_305 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_303 _t_303))
+(define-fun _t_306 () (_ FloatingPoint 11 53) (fp.neg _t_305))
+(define-fun _t_307 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_306))
+(define-fun _t_308 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_307 _t_304))
+(define-fun _t_309 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_303 _t_308))
+(define-fun _t_310 () Bool (= _t_289 _t_309))
+(define-fun _t_311 () Bool (not _t_310))
+(define-fun _t_312 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_309 _t_309))
+(define-fun _t_313 () (_ FloatingPoint 11 53) (fp.neg _t_312))
+(define-fun _t_314 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_313))
+(define-fun _t_315 () (_ FloatingPoint 11 53) b4390)
+(define-fun _t_316 () Bool (= _t_314 _t_315))
+(define-fun _t_317 () Bool (not _t_316))
+(define-fun _t_318 () (_ FloatingPoint 11 53) b4395)
+(define-fun _t_319 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_318))
+(define-fun _t_320 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_318 _t_318))
+(define-fun _t_321 () (_ FloatingPoint 11 53) (fp.neg _t_320))
+(define-fun _t_322 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_321))
+(define-fun _t_323 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_322 _t_319))
+(define-fun _t_324 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_318 _t_323))
+(define-fun _t_325 () Bool (= _t_303 _t_324))
+(define-fun _t_326 () Bool (not _t_325))
+(define-fun _t_327 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_324 _t_324))
+(define-fun _t_328 () (_ FloatingPoint 11 53) (fp.neg _t_327))
+(define-fun _t_329 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_328))
+(define-fun _t_330 () (_ FloatingPoint 11 53) b4420)
+(define-fun _t_331 () Bool (= _t_329 _t_330))
+(define-fun _t_332 () Bool (not _t_331))
+(define-fun _t_333 () (_ FloatingPoint 11 53) b4425)
+(define-fun _t_334 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_333))
+(define-fun _t_335 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_333 _t_333))
+(define-fun _t_336 () (_ FloatingPoint 11 53) (fp.neg _t_335))
+(define-fun _t_337 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_336))
+(define-fun _t_338 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_337 _t_334))
+(define-fun _t_339 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_333 _t_338))
+(define-fun _t_340 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_339 _t_339))
+(define-fun _t_341 () (_ FloatingPoint 11 53) (fp.neg _t_340))
+(define-fun _t_342 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_341))
+(define-fun _t_343 () (_ FloatingPoint 11 53) b4450)
+(define-fun _t_344 () Bool (= _t_342 _t_343))
+(define-fun _t_345 () Bool (not _t_344))
+(define-fun _t_346 () (_ FloatingPoint 11 53) b4455)
+(define-fun _t_347 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_346))
+(define-fun _t_348 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_346 _t_346))
+(define-fun _t_349 () (_ FloatingPoint 11 53) (fp.neg _t_348))
+(define-fun _t_350 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_349))
+(define-fun _t_351 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_350 _t_347))
+(define-fun _t_352 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_346 _t_351))
+(define-fun _t_353 () Bool (= _t_333 _t_352))
+(define-fun _t_354 () Bool (not _t_353))
+(define-fun _t_355 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_352 _t_352))
+(define-fun _t_356 () (_ FloatingPoint 11 53) (fp.neg _t_355))
+(define-fun _t_357 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_356))
+(define-fun _t_358 () (_ FloatingPoint 11 53) b4480)
+(define-fun _t_359 () Bool (= _t_357 _t_358))
+(define-fun _t_360 () Bool (not _t_359))
+(define-fun _t_361 () (_ FloatingPoint 11 53) b4485)
+(define-fun _t_362 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_361))
+(define-fun _t_363 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_361 _t_361))
+(define-fun _t_364 () (_ FloatingPoint 11 53) (fp.neg _t_363))
+(define-fun _t_365 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_364))
+(define-fun _t_366 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_365 _t_362))
+(define-fun _t_367 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_361 _t_366))
+(define-fun _t_368 () Bool (= _t_346 _t_367))
+(define-fun _t_369 () Bool (not _t_368))
+(define-fun _t_370 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_367 _t_367))
+(define-fun _t_371 () (_ FloatingPoint 11 53) (fp.neg _t_370))
+(define-fun _t_372 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_371))
+(define-fun _t_373 () (_ FloatingPoint 11 53) b4510)
+(define-fun _t_374 () Bool (= _t_372 _t_373))
+(define-fun _t_375 () Bool (not _t_374))
+(define-fun _t_376 () (_ FloatingPoint 11 53) b4515)
+(define-fun _t_377 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_376))
+(define-fun _t_378 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_376 _t_376))
+(define-fun _t_379 () (_ FloatingPoint 11 53) (fp.neg _t_378))
+(define-fun _t_380 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_379))
+(define-fun _t_381 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_380 _t_377))
+(define-fun _t_382 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_376 _t_381))
+(define-fun _t_383 () Bool (= _t_361 _t_382))
+(define-fun _t_384 () Bool (not _t_383))
+(define-fun _t_385 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_382 _t_382))
+(define-fun _t_386 () (_ FloatingPoint 11 53) (fp.neg _t_385))
+(define-fun _t_387 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_386))
+(define-fun _t_388 () (_ FloatingPoint 11 53) b4540)
+(define-fun _t_389 () Bool (= _t_387 _t_388))
+(define-fun _t_390 () Bool (not _t_389))
+(define-fun _t_391 () (_ FloatingPoint 11 53) b4545)
+(define-fun _t_392 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_391))
+(define-fun _t_393 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_391 _t_391))
+(define-fun _t_394 () (_ FloatingPoint 11 53) (fp.neg _t_393))
+(define-fun _t_395 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_394))
+(define-fun _t_396 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_395 _t_392))
+(define-fun _t_397 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_391 _t_396))
+(define-fun _t_398 () Bool (= _t_376 _t_397))
+(define-fun _t_399 () Bool (not _t_398))
+(define-fun _t_400 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_397 _t_397))
+(define-fun _t_401 () (_ FloatingPoint 11 53) (fp.neg _t_400))
+(define-fun _t_402 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_401))
+(define-fun _t_403 () (_ FloatingPoint 11 53) b4570)
+(define-fun _t_404 () Bool (= _t_402 _t_403))
+(define-fun _t_405 () Bool (not _t_404))
+(define-fun _t_406 () (_ FloatingPoint 11 53) b4575)
+(define-fun _t_407 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_406))
+(define-fun _t_408 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_406 _t_406))
+(define-fun _t_409 () (_ FloatingPoint 11 53) (fp.neg _t_408))
+(define-fun _t_410 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_409))
+(define-fun _t_411 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_410 _t_407))
+(define-fun _t_412 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_406 _t_411))
+(define-fun _t_413 () Bool (= _t_391 _t_412))
+(define-fun _t_414 () Bool (not _t_413))
+(define-fun _t_415 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_412 _t_412))
+(define-fun _t_416 () (_ FloatingPoint 11 53) (fp.neg _t_415))
+(define-fun _t_417 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_416))
+(define-fun _t_418 () (_ FloatingPoint 11 53) b4600)
+(define-fun _t_419 () Bool (= _t_417 _t_418))
+(define-fun _t_420 () Bool (not _t_419))
+(define-fun _t_421 () (_ FloatingPoint 11 53) b4605)
+(define-fun _t_422 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_421))
+(define-fun _t_423 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_421 _t_421))
+(define-fun _t_424 () (_ FloatingPoint 11 53) (fp.neg _t_423))
+(define-fun _t_425 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_424))
+(define-fun _t_426 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_425 _t_422))
+(define-fun _t_427 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_421 _t_426))
+(define-fun _t_428 () Bool (= _t_406 _t_427))
+(define-fun _t_429 () Bool (not _t_428))
+(define-fun _t_430 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_427 _t_427))
+(define-fun _t_431 () (_ FloatingPoint 11 53) (fp.neg _t_430))
+(define-fun _t_432 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_431))
+(define-fun _t_433 () (_ FloatingPoint 11 53) b4630)
+(define-fun _t_434 () Bool (= _t_432 _t_433))
+(define-fun _t_435 () Bool (not _t_434))
+(define-fun _t_436 () (_ FloatingPoint 11 53) b4635)
+(define-fun _t_437 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_436))
+(define-fun _t_438 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_436 _t_436))
+(define-fun _t_439 () (_ FloatingPoint 11 53) (fp.neg _t_438))
+(define-fun _t_440 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_439))
+(define-fun _t_441 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_440 _t_437))
+(define-fun _t_442 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_436 _t_441))
+(define-fun _t_443 () Bool (= _t_421 _t_442))
+(define-fun _t_444 () Bool (not _t_443))
+(define-fun _t_445 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_442 _t_442))
+(define-fun _t_446 () (_ FloatingPoint 11 53) (fp.neg _t_445))
+(define-fun _t_447 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_446))
+(define-fun _t_448 () (_ FloatingPoint 11 53) b4660)
+(define-fun _t_449 () Bool (= _t_447 _t_448))
+(define-fun _t_450 () Bool (not _t_449))
+(define-fun _t_451 () (_ FloatingPoint 11 53) b4665)
+(define-fun _t_452 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_451))
+(define-fun _t_453 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_451 _t_451))
+(define-fun _t_454 () (_ FloatingPoint 11 53) (fp.neg _t_453))
+(define-fun _t_455 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_454))
+(define-fun _t_456 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_455 _t_452))
+(define-fun _t_457 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_451 _t_456))
+(define-fun _t_458 () Bool (= _t_436 _t_457))
+(define-fun _t_459 () Bool (not _t_458))
+(define-fun _t_460 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_457 _t_457))
+(define-fun _t_461 () (_ FloatingPoint 11 53) (fp.neg _t_460))
+(define-fun _t_462 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_461))
+(define-fun _t_463 () (_ FloatingPoint 11 53) b4690)
+(define-fun _t_464 () Bool (= _t_462 _t_463))
+(define-fun _t_465 () Bool (not _t_464))
+(define-fun _t_466 () Bool (= _t_318 _t_333))
+(define-fun _t_467 () Bool (not _t_466))
+(define-fun _t_468 () (_ FloatingPoint 11 53) b4695)
+(define-fun _t_469 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_468))
+(define-fun _t_470 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_468 _t_468))
+(define-fun _t_471 () (_ FloatingPoint 11 53) (fp.neg _t_470))
+(define-fun _t_472 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_471))
+(define-fun _t_473 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_472 _t_469))
+(define-fun _t_474 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_468 _t_473))
+(define-fun _t_475 () Bool (= _t_451 _t_474))
+(define-fun _t_476 () Bool (not _t_475))
+(define-fun _t_477 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_474 _t_474))
+(define-fun _t_478 () (_ FloatingPoint 11 53) (fp.neg _t_477))
+(define-fun _t_479 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_478))
+(define-fun _t_480 () (_ FloatingPoint 11 53) b4720)
+(define-fun _t_481 () Bool (= _t_479 _t_480))
+(define-fun _t_482 () Bool (not _t_481))
+(define-fun _t_483 () (_ FloatingPoint 11 53) b4725)
+(define-fun _t_484 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_483))
+(define-fun _t_485 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_483 _t_483))
+(define-fun _t_486 () (_ FloatingPoint 11 53) (fp.neg _t_485))
+(define-fun _t_487 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_486))
+(define-fun _t_488 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_487 _t_484))
+(define-fun _t_489 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_483 _t_488))
+(define-fun _t_490 () Bool (= _t_468 _t_489))
+(define-fun _t_491 () Bool (not _t_490))
+(define-fun _t_492 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_489 _t_489))
+(define-fun _t_493 () (_ FloatingPoint 11 53) (fp.neg _t_492))
+(define-fun _t_494 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_493))
+(define-fun _t_495 () (_ FloatingPoint 11 53) b4750)
+(define-fun _t_496 () Bool (= _t_494 _t_495))
+(define-fun _t_497 () Bool (not _t_496))
+(define-fun _t_498 () (_ FloatingPoint 11 53) b4755)
+(define-fun _t_499 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_498))
+(define-fun _t_500 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_498 _t_498))
+(define-fun _t_501 () (_ FloatingPoint 11 53) (fp.neg _t_500))
+(define-fun _t_502 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_501))
+(define-fun _t_503 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_502 _t_499))
+(define-fun _t_504 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_498 _t_503))
+(define-fun _t_505 () Bool (= _t_483 _t_504))
+(define-fun _t_506 () Bool (not _t_505))
+(define-fun _t_507 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_504 _t_504))
+(define-fun _t_508 () (_ FloatingPoint 11 53) (fp.neg _t_507))
+(define-fun _t_509 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_508))
+(define-fun _t_510 () (_ FloatingPoint 11 53) b4780)
+(define-fun _t_511 () Bool (= _t_509 _t_510))
+(define-fun _t_512 () Bool (not _t_511))
+(define-fun _t_513 () (_ FloatingPoint 11 53) b4785)
+(define-fun _t_514 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_513))
+(define-fun _t_515 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_513 _t_513))
+(define-fun _t_516 () (_ FloatingPoint 11 53) (fp.neg _t_515))
+(define-fun _t_517 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_516))
+(define-fun _t_518 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_517 _t_514))
+(define-fun _t_519 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_513 _t_518))
+(define-fun _t_520 () Bool (= _t_498 _t_519))
+(define-fun _t_521 () Bool (not _t_520))
+(define-fun _t_522 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_519 _t_519))
+(define-fun _t_523 () (_ FloatingPoint 11 53) (fp.neg _t_522))
+(define-fun _t_524 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_523))
+(define-fun _t_525 () (_ FloatingPoint 11 53) b4810)
+(define-fun _t_526 () Bool (= _t_524 _t_525))
+(define-fun _t_527 () Bool (not _t_526))
+(define-fun _t_528 () (_ FloatingPoint 11 53) b4815)
+(define-fun _t_529 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_528))
+(define-fun _t_530 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_528 _t_528))
+(define-fun _t_531 () (_ FloatingPoint 11 53) (fp.neg _t_530))
+(define-fun _t_532 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_531))
+(define-fun _t_533 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_532 _t_529))
+(define-fun _t_534 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_528 _t_533))
+(define-fun _t_535 () Bool (= _t_513 _t_534))
+(define-fun _t_536 () Bool (not _t_535))
+(define-fun _t_537 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_534 _t_534))
+(define-fun _t_538 () (_ FloatingPoint 11 53) (fp.neg _t_537))
+(define-fun _t_539 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_538))
+(define-fun _t_540 () (_ FloatingPoint 11 53) b4840)
+(define-fun _t_541 () Bool (= _t_539 _t_540))
+(define-fun _t_542 () Bool (not _t_541))
+(define-fun _t_543 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_293 _t_264))
+(define-fun _t_544 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_543))
+(define-fun _t_545 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_543 _t_543))
+(define-fun _t_546 () (_ FloatingPoint 11 53) (fp.neg _t_545))
+(define-fun _t_547 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_546))
+(define-fun _t_548 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_547 _t_544))
+(define-fun _t_549 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_543 _t_548))
+(define-fun _t_550 () Bool (= _t_528 _t_549))
+(define-fun _t_551 () Bool (not _t_550))
+(define-fun _t_552 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_549))
+(define-fun _t_553 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_549 _t_549))
+(define-fun _t_554 () (_ FloatingPoint 11 53) (fp.neg _t_553))
+(define-fun _t_555 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_554))
+(define-fun _t_556 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_555 _t_552))
+(define-fun _t_557 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_549 _t_556))
+(define-fun _t_558 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_557 _t_557))
+(define-fun _t_559 () (_ FloatingPoint 11 53) (fp.neg _t_558))
+(define-fun _t_560 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_293 _t_559))
+(define-fun _t_561 () (_ FloatingPoint 11 53) b4876)
+(define-fun _t_562 () Bool (= _t_560 _t_561))
+(define-fun _t_563 () Bool (not _t_562))
+(define-fun _t_564 () (_ FloatingPoint 11 53) b4886)
+(define-fun _t_565 () Bool (= _t_555 _t_564))
+(define-fun _t_566 () Bool (not _t_565))
+(define-fun _t_567 () (_ FloatingPoint 11 53) b4896)
+(define-fun _t_568 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_567))
+(define-fun _t_569 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_567 _t_567))
+(define-fun _t_570 () (_ FloatingPoint 11 53) (fp.neg _t_569))
+(define-fun _t_571 () (_ FloatingPoint 11 53) b610)
+(define-fun _t_572 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_570 _t_571))
+(define-fun _t_573 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_572 _t_568))
+(define-fun _t_574 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_567 _t_573))
+(define-fun _t_575 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_574 _t_574))
+(define-fun _t_576 () (_ FloatingPoint 11 53) (fp.neg _t_575))
+(define-fun _t_577 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_576))
+(define-fun _t_578 () (_ FloatingPoint 11 53) b4907)
+(define-fun _t_579 () Bool (= _t_577 _t_578))
+(define-fun _t_580 () Bool (not _t_579))
+(define-fun _t_581 () (_ FloatingPoint 11 53) b4912)
+(define-fun _t_582 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_581))
+(define-fun _t_583 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_581 _t_581))
+(define-fun _t_584 () (_ FloatingPoint 11 53) (fp.neg _t_583))
+(define-fun _t_585 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_584))
+(define-fun _t_586 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_585 _t_582))
+(define-fun _t_587 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_581 _t_586))
+(define-fun _t_588 () Bool (= _t_567 _t_587))
+(define-fun _t_589 () Bool (not _t_588))
+(define-fun _t_590 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_587 _t_587))
+(define-fun _t_591 () (_ FloatingPoint 11 53) (fp.neg _t_590))
+(define-fun _t_592 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_591))
+(define-fun _t_593 () (_ FloatingPoint 11 53) b4938)
+(define-fun _t_594 () Bool (= _t_592 _t_593))
+(define-fun _t_595 () Bool (not _t_594))
+(define-fun _t_596 () (_ FloatingPoint 11 53) b4943)
+(define-fun _t_597 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_596))
+(define-fun _t_598 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_596 _t_596))
+(define-fun _t_599 () (_ FloatingPoint 11 53) (fp.neg _t_598))
+(define-fun _t_600 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_599))
+(define-fun _t_601 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_600 _t_597))
+(define-fun _t_602 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_596 _t_601))
+(define-fun _t_603 () Bool (= _t_581 _t_602))
+(define-fun _t_604 () Bool (not _t_603))
+(define-fun _t_605 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_602 _t_602))
+(define-fun _t_606 () (_ FloatingPoint 11 53) (fp.neg _t_605))
+(define-fun _t_607 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_606))
+(define-fun _t_608 () (_ FloatingPoint 11 53) b4968)
+(define-fun _t_609 () Bool (= _t_607 _t_608))
+(define-fun _t_610 () Bool (not _t_609))
+(define-fun _t_611 () (_ FloatingPoint 11 53) b4973)
+(define-fun _t_612 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_611))
+(define-fun _t_613 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_611 _t_611))
+(define-fun _t_614 () (_ FloatingPoint 11 53) (fp.neg _t_613))
+(define-fun _t_615 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_614))
+(define-fun _t_616 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_615 _t_612))
+(define-fun _t_617 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_611 _t_616))
+(define-fun _t_618 () Bool (= _t_596 _t_617))
+(define-fun _t_619 () Bool (not _t_618))
+(define-fun _t_620 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_617 _t_617))
+(define-fun _t_621 () (_ FloatingPoint 11 53) (fp.neg _t_620))
+(define-fun _t_622 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_621))
+(define-fun _t_623 () (_ FloatingPoint 11 53) b4998)
+(define-fun _t_624 () Bool (= _t_622 _t_623))
+(define-fun _t_625 () Bool (not _t_624))
+(define-fun _t_626 () (_ FloatingPoint 11 53) b5003)
+(define-fun _t_627 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_626))
+(define-fun _t_628 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_626 _t_626))
+(define-fun _t_629 () (_ FloatingPoint 11 53) (fp.neg _t_628))
+(define-fun _t_630 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_629))
+(define-fun _t_631 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_630 _t_627))
+(define-fun _t_632 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_626 _t_631))
+(define-fun _t_633 () Bool (= _t_611 _t_632))
+(define-fun _t_634 () Bool (not _t_633))
+(define-fun _t_635 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_632 _t_632))
+(define-fun _t_636 () (_ FloatingPoint 11 53) (fp.neg _t_635))
+(define-fun _t_637 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_636))
+(define-fun _t_638 () (_ FloatingPoint 11 53) b5028)
+(define-fun _t_639 () Bool (= _t_637 _t_638))
+(define-fun _t_640 () Bool (not _t_639))
+(define-fun _t_641 () (_ FloatingPoint 11 53) b5033)
+(define-fun _t_642 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_641))
+(define-fun _t_643 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_641 _t_641))
+(define-fun _t_644 () (_ FloatingPoint 11 53) (fp.neg _t_643))
+(define-fun _t_645 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_644))
+(define-fun _t_646 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_645 _t_642))
+(define-fun _t_647 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_641 _t_646))
+(define-fun _t_648 () Bool (= _t_626 _t_647))
+(define-fun _t_649 () Bool (not _t_648))
+(define-fun _t_650 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_647 _t_647))
+(define-fun _t_651 () (_ FloatingPoint 11 53) (fp.neg _t_650))
+(define-fun _t_652 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_651))
+(define-fun _t_653 () (_ FloatingPoint 11 53) b5058)
+(define-fun _t_654 () Bool (= _t_652 _t_653))
+(define-fun _t_655 () Bool (not _t_654))
+(define-fun _t_656 () (_ FloatingPoint 11 53) b5063)
+(define-fun _t_657 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_656))
+(define-fun _t_658 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_656 _t_656))
+(define-fun _t_659 () (_ FloatingPoint 11 53) (fp.neg _t_658))
+(define-fun _t_660 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_659))
+(define-fun _t_661 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_660 _t_657))
+(define-fun _t_662 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_656 _t_661))
+(define-fun _t_663 () Bool (= _t_641 _t_662))
+(define-fun _t_664 () Bool (not _t_663))
+(define-fun _t_665 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_662 _t_662))
+(define-fun _t_666 () (_ FloatingPoint 11 53) (fp.neg _t_665))
+(define-fun _t_667 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_666))
+(define-fun _t_668 () (_ FloatingPoint 11 53) b5088)
+(define-fun _t_669 () Bool (= _t_667 _t_668))
+(define-fun _t_670 () Bool (not _t_669))
+(define-fun _t_671 () (_ FloatingPoint 11 53) b5093)
+(define-fun _t_672 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_671))
+(define-fun _t_673 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_671 _t_671))
+(define-fun _t_674 () (_ FloatingPoint 11 53) (fp.neg _t_673))
+(define-fun _t_675 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_674))
+(define-fun _t_676 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_675 _t_672))
+(define-fun _t_677 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_671 _t_676))
+(define-fun _t_678 () Bool (= _t_656 _t_677))
+(define-fun _t_679 () Bool (not _t_678))
+(define-fun _t_680 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_677 _t_677))
+(define-fun _t_681 () (_ FloatingPoint 11 53) (fp.neg _t_680))
+(define-fun _t_682 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_681))
+(define-fun _t_683 () (_ FloatingPoint 11 53) b5118)
+(define-fun _t_684 () Bool (= _t_682 _t_683))
+(define-fun _t_685 () Bool (not _t_684))
+(define-fun _t_686 () (_ FloatingPoint 11 53) b5123)
+(define-fun _t_687 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_686))
+(define-fun _t_688 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_686 _t_686))
+(define-fun _t_689 () (_ FloatingPoint 11 53) (fp.neg _t_688))
+(define-fun _t_690 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_689))
+(define-fun _t_691 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_690 _t_687))
+(define-fun _t_692 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_686 _t_691))
+(define-fun _t_693 () Bool (= _t_671 _t_692))
+(define-fun _t_694 () Bool (not _t_693))
+(define-fun _t_695 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_692 _t_692))
+(define-fun _t_696 () (_ FloatingPoint 11 53) (fp.neg _t_695))
+(define-fun _t_697 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_696))
+(define-fun _t_698 () (_ FloatingPoint 11 53) b5148)
+(define-fun _t_699 () Bool (= _t_697 _t_698))
+(define-fun _t_700 () Bool (not _t_699))
+(define-fun _t_701 () (_ FloatingPoint 11 53) b5153)
+(define-fun _t_702 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_701))
+(define-fun _t_703 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_701 _t_701))
+(define-fun _t_704 () (_ FloatingPoint 11 53) (fp.neg _t_703))
+(define-fun _t_705 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_704))
+(define-fun _t_706 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_705 _t_702))
+(define-fun _t_707 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_701 _t_706))
+(define-fun _t_708 () Bool (= _t_686 _t_707))
+(define-fun _t_709 () Bool (not _t_708))
+(define-fun _t_710 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_707 _t_707))
+(define-fun _t_711 () (_ FloatingPoint 11 53) (fp.neg _t_710))
+(define-fun _t_712 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_711))
+(define-fun _t_713 () (_ FloatingPoint 11 53) b5178)
+(define-fun _t_714 () Bool (= _t_712 _t_713))
+(define-fun _t_715 () Bool (not _t_714))
+(define-fun _t_716 () (_ FloatingPoint 11 53) b5183)
+(define-fun _t_717 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_716))
+(define-fun _t_718 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_716 _t_716))
+(define-fun _t_719 () (_ FloatingPoint 11 53) (fp.neg _t_718))
+(define-fun _t_720 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_719))
+(define-fun _t_721 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_720 _t_717))
+(define-fun _t_722 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_716 _t_721))
+(define-fun _t_723 () Bool (= _t_701 _t_722))
+(define-fun _t_724 () Bool (not _t_723))
+(define-fun _t_725 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_722 _t_722))
+(define-fun _t_726 () (_ FloatingPoint 11 53) (fp.neg _t_725))
+(define-fun _t_727 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_726))
+(define-fun _t_728 () (_ FloatingPoint 11 53) b5208)
+(define-fun _t_729 () Bool (= _t_727 _t_728))
+(define-fun _t_730 () Bool (not _t_729))
+(define-fun _t_731 () (_ FloatingPoint 11 53) b5213)
+(define-fun _t_732 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_731))
+(define-fun _t_733 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_731 _t_731))
+(define-fun _t_734 () (_ FloatingPoint 11 53) (fp.neg _t_733))
+(define-fun _t_735 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_734))
+(define-fun _t_736 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_735 _t_732))
+(define-fun _t_737 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_731 _t_736))
+(define-fun _t_738 () Bool (= _t_716 _t_737))
+(define-fun _t_739 () Bool (not _t_738))
+(define-fun _t_740 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_737 _t_737))
+(define-fun _t_741 () (_ FloatingPoint 11 53) (fp.neg _t_740))
+(define-fun _t_742 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_741))
+(define-fun _t_743 () (_ FloatingPoint 11 53) b5238)
+(define-fun _t_744 () Bool (= _t_742 _t_743))
+(define-fun _t_745 () Bool (not _t_744))
+(define-fun _t_746 () (_ FloatingPoint 11 53) b5243)
+(define-fun _t_747 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_746))
+(define-fun _t_748 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_746 _t_746))
+(define-fun _t_749 () (_ FloatingPoint 11 53) (fp.neg _t_748))
+(define-fun _t_750 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_749))
+(define-fun _t_751 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_750 _t_747))
+(define-fun _t_752 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_746 _t_751))
+(define-fun _t_753 () Bool (= _t_731 _t_752))
+(define-fun _t_754 () Bool (not _t_753))
+(define-fun _t_755 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_752 _t_752))
+(define-fun _t_756 () (_ FloatingPoint 11 53) (fp.neg _t_755))
+(define-fun _t_757 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_756))
+(define-fun _t_758 () (_ FloatingPoint 11 53) b5268)
+(define-fun _t_759 () Bool (= _t_757 _t_758))
+(define-fun _t_760 () Bool (not _t_759))
+(define-fun _t_761 () (_ FloatingPoint 11 53) b5273)
+(define-fun _t_762 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_761))
+(define-fun _t_763 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_761 _t_761))
+(define-fun _t_764 () (_ FloatingPoint 11 53) (fp.neg _t_763))
+(define-fun _t_765 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_764))
+(define-fun _t_766 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_765 _t_762))
+(define-fun _t_767 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_761 _t_766))
+(define-fun _t_768 () Bool (= _t_746 _t_767))
+(define-fun _t_769 () Bool (not _t_768))
+(define-fun _t_770 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_767 _t_767))
+(define-fun _t_771 () (_ FloatingPoint 11 53) (fp.neg _t_770))
+(define-fun _t_772 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_771))
+(define-fun _t_773 () (_ FloatingPoint 11 53) b5298)
+(define-fun _t_774 () Bool (= _t_772 _t_773))
+(define-fun _t_775 () Bool (not _t_774))
+(define-fun _t_776 () (_ FloatingPoint 11 53) b5303)
+(define-fun _t_777 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_776))
+(define-fun _t_778 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_776 _t_776))
+(define-fun _t_779 () (_ FloatingPoint 11 53) (fp.neg _t_778))
+(define-fun _t_780 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_779))
+(define-fun _t_781 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_780 _t_777))
+(define-fun _t_782 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_776 _t_781))
+(define-fun _t_783 () Bool (= _t_761 _t_782))
+(define-fun _t_784 () Bool (not _t_783))
+(define-fun _t_785 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_782 _t_782))
+(define-fun _t_786 () (_ FloatingPoint 11 53) (fp.neg _t_785))
+(define-fun _t_787 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_786))
+(define-fun _t_788 () (_ FloatingPoint 11 53) b5328)
+(define-fun _t_789 () Bool (= _t_787 _t_788))
+(define-fun _t_790 () Bool (not _t_789))
+(define-fun _t_791 () (_ FloatingPoint 11 53) b5333)
+(define-fun _t_792 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_791))
+(define-fun _t_793 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_791 _t_791))
+(define-fun _t_794 () (_ FloatingPoint 11 53) (fp.neg _t_793))
+(define-fun _t_795 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_794))
+(define-fun _t_796 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_795 _t_792))
+(define-fun _t_797 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_791 _t_796))
+(define-fun _t_798 () Bool (= _t_776 _t_797))
+(define-fun _t_799 () Bool (not _t_798))
+(define-fun _t_800 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_797 _t_797))
+(define-fun _t_801 () (_ FloatingPoint 11 53) (fp.neg _t_800))
+(define-fun _t_802 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_801))
+(define-fun _t_803 () (_ FloatingPoint 11 53) b5358)
+(define-fun _t_804 () Bool (= _t_802 _t_803))
+(define-fun _t_805 () Bool (not _t_804))
+(define-fun _t_806 () (_ FloatingPoint 11 53) b5363)
+(define-fun _t_807 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_806))
+(define-fun _t_808 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_806 _t_806))
+(define-fun _t_809 () (_ FloatingPoint 11 53) (fp.neg _t_808))
+(define-fun _t_810 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_809))
+(define-fun _t_811 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_810 _t_807))
+(define-fun _t_812 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_806 _t_811))
+(define-fun _t_813 () Bool (= _t_791 _t_812))
+(define-fun _t_814 () Bool (not _t_813))
+(define-fun _t_815 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_812 _t_812))
+(define-fun _t_816 () (_ FloatingPoint 11 53) (fp.neg _t_815))
+(define-fun _t_817 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_816))
+(define-fun _t_818 () (_ FloatingPoint 11 53) b5388)
+(define-fun _t_819 () Bool (= _t_817 _t_818))
+(define-fun _t_820 () Bool (not _t_819))
+(define-fun _t_821 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_571 _t_264))
+(define-fun _t_822 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_821))
+(define-fun _t_823 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_821 _t_821))
+(define-fun _t_824 () (_ FloatingPoint 11 53) (fp.neg _t_823))
+(define-fun _t_825 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_824))
+(define-fun _t_826 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_825 _t_822))
+(define-fun _t_827 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_821 _t_826))
+(define-fun _t_828 () Bool (= _t_806 _t_827))
+(define-fun _t_829 () Bool (not _t_828))
+(define-fun _t_830 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_10 _t_827))
+(define-fun _t_831 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_827 _t_827))
+(define-fun _t_832 () (_ FloatingPoint 11 53) (fp.neg _t_831))
+(define-fun _t_833 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_832))
+(define-fun _t_834 () (_ FloatingPoint 11 53) (fp.div _t_3 _t_833 _t_830))
+(define-fun _t_835 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_827 _t_834))
+(define-fun _t_836 () (_ FloatingPoint 11 53) (fp.mul _t_3 _t_835 _t_835))
+(define-fun _t_837 () (_ FloatingPoint 11 53) (fp.neg _t_836))
+(define-fun _t_838 () (_ FloatingPoint 11 53) (fp.add _t_3 _t_571 _t_837))
+(define-fun _t_839 () (_ FloatingPoint 11 53) b5424)
+(define-fun _t_840 () Bool (= _t_838 _t_839))
+(define-fun _t_841 () Bool (not _t_840))
+(define-fun _t_842 () (_ FloatingPoint 11 53) b5434)
+(define-fun _t_843 () Bool (= _t_833 _t_842))
+(define-fun _t_844 () Bool (not _t_843))
+(define-fun _t_845 () Bool (fp.leq _t_293 _t_833))
+(define-fun _t_846 () Bool (not _t_845))
+(define-fun _t_847 () (_ FloatingPoint 11 53) (fp.neg _t_833))
+(define-fun _t_848 () Bool (= _t_842 _t_847))
+(define-fun _t_849 () Bool (and _t_846 _t_848))
+(define-fun _t_850 () Bool (and _t_844 _t_849))
+(define-fun _t_851 () (_ FloatingPoint 11 53) b644)
+(define-fun _t_852 () Bool (fp.leq _t_842 _t_851))
+(define-fun _t_853 () Bool (not _t_852))
+(define-fun _t_854 () Bool (and _t_850 _t_853))
+(define-fun _t_855 () Bool (= _t_806 _t_835))
+(define-fun _t_856 () Bool (and _t_854 _t_855))
+(define-fun _t_857 () Bool (fp.leq _t_293 _t_838))
+(define-fun _t_858 () Bool (not _t_857))
+(define-fun _t_859 () Bool (and _t_856 _t_858))
+(define-fun _t_860 () (_ FloatingPoint 11 53) (fp.neg _t_838))
+(define-fun _t_861 () Bool (= _t_839 _t_860))
+(define-fun _t_862 () Bool (and _t_859 _t_861))
+(define-fun _t_863 () Bool (and _t_841 _t_862))
+(define-fun _t_864 () Bool (fp.leq _t_839 _t_851))
+(define-fun _t_865 () Bool (not _t_864))
+(define-fun _t_866 () Bool (and _t_863 _t_865))
+(define-fun _t_867 () Bool (and _t_829 _t_866))
+(define-fun _t_868 () Bool (fp.leq _t_293 _t_817))
+(define-fun _t_869 () Bool (not _t_868))
+(define-fun _t_870 () Bool (and _t_867 _t_869))
+(define-fun _t_871 () (_ FloatingPoint 11 53) (fp.neg _t_817))
+(define-fun _t_872 () Bool (= _t_818 _t_871))
+(define-fun _t_873 () Bool (and _t_870 _t_872))
+(define-fun _t_874 () Bool (and _t_820 _t_873))
+(define-fun _t_875 () Bool (= _t_791 _t_806))
+(define-fun _t_876 () Bool (and _t_874 _t_875))
+(define-fun _t_877 () Bool (fp.leq _t_818 _t_851))
+(define-fun _t_878 () Bool (not _t_877))
+(define-fun _t_879 () Bool (and _t_876 _t_878))
+(define-fun _t_880 () Bool (and _t_814 _t_879))
+(define-fun _t_881 () Bool (fp.leq _t_293 _t_802))
+(define-fun _t_882 () Bool (not _t_881))
+(define-fun _t_883 () Bool (and _t_880 _t_882))
+(define-fun _t_884 () (_ FloatingPoint 11 53) (fp.neg _t_802))
+(define-fun _t_885 () Bool (= _t_803 _t_884))
+(define-fun _t_886 () Bool (and _t_883 _t_885))
+(define-fun _t_887 () Bool (and _t_805 _t_886))
+(define-fun _t_888 () Bool (= _t_776 _t_791))
+(define-fun _t_889 () Bool (and _t_887 _t_888))
+(define-fun _t_890 () Bool (and _t_799 _t_889))
+(define-fun _t_891 () Bool (fp.leq _t_803 _t_851))
+(define-fun _t_892 () Bool (not _t_891))
+(define-fun _t_893 () Bool (and _t_890 _t_892))
+(define-fun _t_894 () Bool (fp.leq _t_293 _t_787))
+(define-fun _t_895 () Bool (not _t_894))
+(define-fun _t_896 () Bool (and _t_893 _t_895))
+(define-fun _t_897 () (_ FloatingPoint 11 53) (fp.neg _t_787))
+(define-fun _t_898 () Bool (= _t_788 _t_897))
+(define-fun _t_899 () Bool (and _t_896 _t_898))
+(define-fun _t_900 () Bool (and _t_790 _t_899))
+(define-fun _t_901 () Bool (= _t_761 _t_776))
+(define-fun _t_902 () Bool (and _t_900 _t_901))
+(define-fun _t_903 () Bool (and _t_784 _t_902))
+(define-fun _t_904 () Bool (fp.leq _t_788 _t_851))
+(define-fun _t_905 () Bool (not _t_904))
+(define-fun _t_906 () Bool (and _t_903 _t_905))
+(define-fun _t_907 () Bool (fp.leq _t_293 _t_772))
+(define-fun _t_908 () Bool (not _t_907))
+(define-fun _t_909 () Bool (and _t_906 _t_908))
+(define-fun _t_910 () (_ FloatingPoint 11 53) (fp.neg _t_772))
+(define-fun _t_911 () Bool (= _t_773 _t_910))
+(define-fun _t_912 () Bool (and _t_909 _t_911))
+(define-fun _t_913 () Bool (and _t_775 _t_912))
+(define-fun _t_914 () Bool (= _t_746 _t_761))
+(define-fun _t_915 () Bool (and _t_913 _t_914))
+(define-fun _t_916 () Bool (and _t_769 _t_915))
+(define-fun _t_917 () Bool (fp.leq _t_773 _t_851))
+(define-fun _t_918 () Bool (not _t_917))
+(define-fun _t_919 () Bool (and _t_916 _t_918))
+(define-fun _t_920 () Bool (fp.leq _t_293 _t_757))
+(define-fun _t_921 () Bool (not _t_920))
+(define-fun _t_922 () Bool (and _t_919 _t_921))
+(define-fun _t_923 () (_ FloatingPoint 11 53) (fp.neg _t_757))
+(define-fun _t_924 () Bool (= _t_758 _t_923))
+(define-fun _t_925 () Bool (and _t_922 _t_924))
+(define-fun _t_926 () Bool (and _t_760 _t_925))
+(define-fun _t_927 () Bool (= _t_731 _t_746))
+(define-fun _t_928 () Bool (and _t_926 _t_927))
+(define-fun _t_929 () Bool (and _t_754 _t_928))
+(define-fun _t_930 () Bool (fp.leq _t_758 _t_851))
+(define-fun _t_931 () Bool (not _t_930))
+(define-fun _t_932 () Bool (and _t_929 _t_931))
+(define-fun _t_933 () Bool (fp.leq _t_293 _t_742))
+(define-fun _t_934 () Bool (not _t_933))
+(define-fun _t_935 () Bool (and _t_932 _t_934))
+(define-fun _t_936 () (_ FloatingPoint 11 53) (fp.neg _t_742))
+(define-fun _t_937 () Bool (= _t_743 _t_936))
+(define-fun _t_938 () Bool (and _t_935 _t_937))
+(define-fun _t_939 () Bool (and _t_745 _t_938))
+(define-fun _t_940 () Bool (= _t_716 _t_731))
+(define-fun _t_941 () Bool (and _t_939 _t_940))
+(define-fun _t_942 () Bool (and _t_739 _t_941))
+(define-fun _t_943 () Bool (fp.leq _t_743 _t_851))
+(define-fun _t_944 () Bool (not _t_943))
+(define-fun _t_945 () Bool (and _t_942 _t_944))
+(define-fun _t_946 () Bool (fp.leq _t_293 _t_727))
+(define-fun _t_947 () Bool (not _t_946))
+(define-fun _t_948 () Bool (and _t_945 _t_947))
+(define-fun _t_949 () (_ FloatingPoint 11 53) (fp.neg _t_727))
+(define-fun _t_950 () Bool (= _t_728 _t_949))
+(define-fun _t_951 () Bool (and _t_948 _t_950))
+(define-fun _t_952 () Bool (and _t_730 _t_951))
+(define-fun _t_953 () Bool (= _t_701 _t_716))
+(define-fun _t_954 () Bool (and _t_952 _t_953))
+(define-fun _t_955 () Bool (and _t_724 _t_954))
+(define-fun _t_956 () Bool (fp.leq _t_728 _t_851))
+(define-fun _t_957 () Bool (not _t_956))
+(define-fun _t_958 () Bool (and _t_955 _t_957))
+(define-fun _t_959 () Bool (fp.leq _t_293 _t_712))
+(define-fun _t_960 () Bool (not _t_959))
+(define-fun _t_961 () Bool (and _t_958 _t_960))
+(define-fun _t_962 () (_ FloatingPoint 11 53) (fp.neg _t_712))
+(define-fun _t_963 () Bool (= _t_713 _t_962))
+(define-fun _t_964 () Bool (and _t_961 _t_963))
+(define-fun _t_965 () Bool (and _t_715 _t_964))
+(define-fun _t_966 () Bool (= _t_686 _t_701))
+(define-fun _t_967 () Bool (and _t_965 _t_966))
+(define-fun _t_968 () Bool (and _t_709 _t_967))
+(define-fun _t_969 () Bool (fp.leq _t_713 _t_851))
+(define-fun _t_970 () Bool (not _t_969))
+(define-fun _t_971 () Bool (and _t_968 _t_970))
+(define-fun _t_972 () Bool (fp.leq _t_293 _t_697))
+(define-fun _t_973 () Bool (not _t_972))
+(define-fun _t_974 () Bool (and _t_971 _t_973))
+(define-fun _t_975 () (_ FloatingPoint 11 53) (fp.neg _t_697))
+(define-fun _t_976 () Bool (= _t_698 _t_975))
+(define-fun _t_977 () Bool (and _t_974 _t_976))
+(define-fun _t_978 () Bool (and _t_700 _t_977))
+(define-fun _t_979 () Bool (= _t_671 _t_686))
+(define-fun _t_980 () Bool (and _t_978 _t_979))
+(define-fun _t_981 () Bool (and _t_694 _t_980))
+(define-fun _t_982 () Bool (fp.leq _t_698 _t_851))
+(define-fun _t_983 () Bool (not _t_982))
+(define-fun _t_984 () Bool (and _t_981 _t_983))
+(define-fun _t_985 () Bool (fp.leq _t_293 _t_682))
+(define-fun _t_986 () Bool (not _t_985))
+(define-fun _t_987 () Bool (and _t_984 _t_986))
+(define-fun _t_988 () (_ FloatingPoint 11 53) (fp.neg _t_682))
+(define-fun _t_989 () Bool (= _t_683 _t_988))
+(define-fun _t_990 () Bool (and _t_987 _t_989))
+(define-fun _t_991 () Bool (and _t_685 _t_990))
+(define-fun _t_992 () Bool (= _t_656 _t_671))
+(define-fun _t_993 () Bool (and _t_991 _t_992))
+(define-fun _t_994 () Bool (and _t_679 _t_993))
+(define-fun _t_995 () Bool (fp.leq _t_683 _t_851))
+(define-fun _t_996 () Bool (not _t_995))
+(define-fun _t_997 () Bool (and _t_994 _t_996))
+(define-fun _t_998 () Bool (fp.leq _t_293 _t_667))
+(define-fun _t_999 () Bool (not _t_998))
+(define-fun _t_1000 () Bool (and _t_997 _t_999))
+(define-fun _t_1001 () (_ FloatingPoint 11 53) (fp.neg _t_667))
+(define-fun _t_1002 () Bool (= _t_668 _t_1001))
+(define-fun _t_1003 () Bool (and _t_1000 _t_1002))
+(define-fun _t_1004 () Bool (and _t_670 _t_1003))
+(define-fun _t_1005 () Bool (= _t_641 _t_656))
+(define-fun _t_1006 () Bool (and _t_1004 _t_1005))
+(define-fun _t_1007 () Bool (and _t_664 _t_1006))
+(define-fun _t_1008 () Bool (fp.leq _t_668 _t_851))
+(define-fun _t_1009 () Bool (not _t_1008))
+(define-fun _t_1010 () Bool (and _t_1007 _t_1009))
+(define-fun _t_1011 () Bool (fp.leq _t_293 _t_652))
+(define-fun _t_1012 () Bool (not _t_1011))
+(define-fun _t_1013 () Bool (and _t_1010 _t_1012))
+(define-fun _t_1014 () (_ FloatingPoint 11 53) (fp.neg _t_652))
+(define-fun _t_1015 () Bool (= _t_653 _t_1014))
+(define-fun _t_1016 () Bool (and _t_1013 _t_1015))
+(define-fun _t_1017 () Bool (and _t_655 _t_1016))
+(define-fun _t_1018 () Bool (= _t_626 _t_641))
+(define-fun _t_1019 () Bool (and _t_1017 _t_1018))
+(define-fun _t_1020 () Bool (and _t_649 _t_1019))
+(define-fun _t_1021 () Bool (fp.leq _t_653 _t_851))
+(define-fun _t_1022 () Bool (not _t_1021))
+(define-fun _t_1023 () Bool (and _t_1020 _t_1022))
+(define-fun _t_1024 () Bool (fp.leq _t_293 _t_637))
+(define-fun _t_1025 () Bool (not _t_1024))
+(define-fun _t_1026 () Bool (and _t_1023 _t_1025))
+(define-fun _t_1027 () (_ FloatingPoint 11 53) (fp.neg _t_637))
+(define-fun _t_1028 () Bool (= _t_638 _t_1027))
+(define-fun _t_1029 () Bool (and _t_1026 _t_1028))
+(define-fun _t_1030 () Bool (and _t_640 _t_1029))
+(define-fun _t_1031 () Bool (= _t_611 _t_626))
+(define-fun _t_1032 () Bool (and _t_1030 _t_1031))
+(define-fun _t_1033 () Bool (and _t_634 _t_1032))
+(define-fun _t_1034 () Bool (fp.leq _t_638 _t_851))
+(define-fun _t_1035 () Bool (not _t_1034))
+(define-fun _t_1036 () Bool (and _t_1033 _t_1035))
+(define-fun _t_1037 () Bool (fp.leq _t_293 _t_622))
+(define-fun _t_1038 () Bool (not _t_1037))
+(define-fun _t_1039 () Bool (and _t_1036 _t_1038))
+(define-fun _t_1040 () (_ FloatingPoint 11 53) (fp.neg _t_622))
+(define-fun _t_1041 () Bool (= _t_623 _t_1040))
+(define-fun _t_1042 () Bool (and _t_1039 _t_1041))
+(define-fun _t_1043 () Bool (and _t_625 _t_1042))
+(define-fun _t_1044 () Bool (= _t_596 _t_611))
+(define-fun _t_1045 () Bool (and _t_1043 _t_1044))
+(define-fun _t_1046 () Bool (and _t_619 _t_1045))
+(define-fun _t_1047 () Bool (fp.leq _t_623 _t_851))
+(define-fun _t_1048 () Bool (not _t_1047))
+(define-fun _t_1049 () Bool (and _t_1046 _t_1048))
+(define-fun _t_1050 () Bool (fp.leq _t_293 _t_607))
+(define-fun _t_1051 () Bool (not _t_1050))
+(define-fun _t_1052 () Bool (and _t_1049 _t_1051))
+(define-fun _t_1053 () (_ FloatingPoint 11 53) (fp.neg _t_607))
+(define-fun _t_1054 () Bool (= _t_608 _t_1053))
+(define-fun _t_1055 () Bool (and _t_1052 _t_1054))
+(define-fun _t_1056 () Bool (and _t_610 _t_1055))
+(define-fun _t_1057 () Bool (= _t_581 _t_596))
+(define-fun _t_1058 () Bool (and _t_1056 _t_1057))
+(define-fun _t_1059 () Bool (and _t_604 _t_1058))
+(define-fun _t_1060 () Bool (fp.leq _t_608 _t_851))
+(define-fun _t_1061 () Bool (not _t_1060))
+(define-fun _t_1062 () Bool (and _t_1059 _t_1061))
+(define-fun _t_1063 () Bool (fp.leq _t_293 _t_592))
+(define-fun _t_1064 () Bool (not _t_1063))
+(define-fun _t_1065 () Bool (and _t_1062 _t_1064))
+(define-fun _t_1066 () (_ FloatingPoint 11 53) (fp.neg _t_592))
+(define-fun _t_1067 () Bool (= _t_593 _t_1066))
+(define-fun _t_1068 () Bool (and _t_1065 _t_1067))
+(define-fun _t_1069 () Bool (and _t_595 _t_1068))
+(define-fun _t_1070 () Bool (= _t_567 _t_581))
+(define-fun _t_1071 () Bool (and _t_1069 _t_1070))
+(define-fun _t_1072 () Bool (and _t_589 _t_1071))
+(define-fun _t_1073 () Bool (fp.leq _t_593 _t_851))
+(define-fun _t_1074 () Bool (not _t_1073))
+(define-fun _t_1075 () Bool (and _t_1072 _t_1074))
+(define-fun _t_1076 () Bool (fp.leq _t_293 _t_577))
+(define-fun _t_1077 () Bool (not _t_1076))
+(define-fun _t_1078 () Bool (and _t_1075 _t_1077))
+(define-fun _t_1079 () (_ FloatingPoint 11 53) (fp.neg _t_577))
+(define-fun _t_1080 () Bool (= _t_578 _t_1079))
+(define-fun _t_1081 () Bool (and _t_1078 _t_1080))
+(define-fun _t_1082 () Bool (and _t_580 _t_1081))
+(define-fun _t_1083 () Bool (fp.leq _t_293 _t_555))
+(define-fun _t_1084 () Bool (not _t_1083))
+(define-fun _t_1085 () Bool (and _t_1082 _t_1084))
+(define-fun _t_1086 () (_ FloatingPoint 11 53) (fp.neg _t_555))
+(define-fun _t_1087 () Bool (= _t_564 _t_1086))
+(define-fun _t_1088 () Bool (and _t_1085 _t_1087))
+(define-fun _t_1089 () Bool (and _t_566 _t_1088))
+(define-fun _t_1090 () Bool (fp.leq _t_564 _t_851))
+(define-fun _t_1091 () Bool (not _t_1090))
+(define-fun _t_1092 () Bool (and _t_1089 _t_1091))
+(define-fun _t_1093 () Bool (= _t_528 _t_557))
+(define-fun _t_1094 () Bool (and _t_1092 _t_1093))
+(define-fun _t_1095 () Bool (fp.leq _t_293 _t_560))
+(define-fun _t_1096 () Bool (not _t_1095))
+(define-fun _t_1097 () Bool (and _t_1094 _t_1096))
+(define-fun _t_1098 () (_ FloatingPoint 11 53) (fp.neg _t_560))
+(define-fun _t_1099 () Bool (= _t_561 _t_1098))
+(define-fun _t_1100 () Bool (and _t_1097 _t_1099))
+(define-fun _t_1101 () Bool (and _t_563 _t_1100))
+(define-fun _t_1102 () Bool (fp.leq _t_561 _t_851))
+(define-fun _t_1103 () Bool (not _t_1102))
+(define-fun _t_1104 () Bool (and _t_1101 _t_1103))
+(define-fun _t_1105 () Bool (and _t_551 _t_1104))
+(define-fun _t_1106 () Bool (fp.leq _t_293 _t_539))
+(define-fun _t_1107 () Bool (not _t_1106))
+(define-fun _t_1108 () Bool (and _t_1105 _t_1107))
+(define-fun _t_1109 () (_ FloatingPoint 11 53) (fp.neg _t_539))
+(define-fun _t_1110 () Bool (= _t_540 _t_1109))
+(define-fun _t_1111 () Bool (and _t_1108 _t_1110))
+(define-fun _t_1112 () Bool (and _t_542 _t_1111))
+(define-fun _t_1113 () Bool (= _t_513 _t_528))
+(define-fun _t_1114 () Bool (and _t_1112 _t_1113))
+(define-fun _t_1115 () Bool (fp.leq _t_540 _t_851))
+(define-fun _t_1116 () Bool (not _t_1115))
+(define-fun _t_1117 () Bool (and _t_1114 _t_1116))
+(define-fun _t_1118 () Bool (and _t_536 _t_1117))
+(define-fun _t_1119 () Bool (fp.leq _t_293 _t_524))
+(define-fun _t_1120 () Bool (not _t_1119))
+(define-fun _t_1121 () Bool (and _t_1118 _t_1120))
+(define-fun _t_1122 () (_ FloatingPoint 11 53) (fp.neg _t_524))
+(define-fun _t_1123 () Bool (= _t_525 _t_1122))
+(define-fun _t_1124 () Bool (and _t_1121 _t_1123))
+(define-fun _t_1125 () Bool (and _t_527 _t_1124))
+(define-fun _t_1126 () Bool (= _t_498 _t_513))
+(define-fun _t_1127 () Bool (and _t_1125 _t_1126))
+(define-fun _t_1128 () Bool (and _t_521 _t_1127))
+(define-fun _t_1129 () Bool (fp.leq _t_525 _t_851))
+(define-fun _t_1130 () Bool (not _t_1129))
+(define-fun _t_1131 () Bool (and _t_1128 _t_1130))
+(define-fun _t_1132 () Bool (fp.leq _t_293 _t_509))
+(define-fun _t_1133 () Bool (not _t_1132))
+(define-fun _t_1134 () Bool (and _t_1131 _t_1133))
+(define-fun _t_1135 () (_ FloatingPoint 11 53) (fp.neg _t_509))
+(define-fun _t_1136 () Bool (= _t_510 _t_1135))
+(define-fun _t_1137 () Bool (and _t_1134 _t_1136))
+(define-fun _t_1138 () Bool (and _t_512 _t_1137))
+(define-fun _t_1139 () Bool (= _t_483 _t_498))
+(define-fun _t_1140 () Bool (and _t_1138 _t_1139))
+(define-fun _t_1141 () Bool (and _t_506 _t_1140))
+(define-fun _t_1142 () Bool (fp.leq _t_210 _t_851))
+(define-fun _t_1143 () Bool (and _t_1141 _t_1142))
+(define-fun _t_1144 () Bool (fp.leq _t_510 _t_851))
+(define-fun _t_1145 () Bool (not _t_1144))
+(define-fun _t_1146 () Bool (and _t_1143 _t_1145))
+(define-fun _t_1147 () Bool (fp.leq _t_293 _t_494))
+(define-fun _t_1148 () Bool (not _t_1147))
+(define-fun _t_1149 () Bool (and _t_1146 _t_1148))
+(define-fun _t_1150 () (_ FloatingPoint 11 53) (fp.neg _t_494))
+(define-fun _t_1151 () Bool (= _t_495 _t_1150))
+(define-fun _t_1152 () Bool (and _t_1149 _t_1151))
+(define-fun _t_1153 () Bool (and _t_497 _t_1152))
+(define-fun _t_1154 () Bool (= _t_468 _t_483))
+(define-fun _t_1155 () Bool (and _t_1153 _t_1154))
+(define-fun _t_1156 () Bool (and _t_491 _t_1155))
+(define-fun _t_1157 () Bool (fp.leq _t_495 _t_851))
+(define-fun _t_1158 () Bool (not _t_1157))
+(define-fun _t_1159 () Bool (and _t_1156 _t_1158))
+(define-fun _t_1160 () (_ FloatingPoint 11 53) (fp.neg _t_209))
+(define-fun _t_1161 () Bool (= _t_210 _t_1160))
+(define-fun _t_1162 () Bool (and _t_1159 _t_1161))
+(define-fun _t_1163 () Bool (fp.leq _t_293 _t_479))
+(define-fun _t_1164 () Bool (not _t_1163))
+(define-fun _t_1165 () Bool (and _t_1162 _t_1164))
+(define-fun _t_1166 () (_ FloatingPoint 11 53) (fp.neg _t_479))
+(define-fun _t_1167 () Bool (= _t_480 _t_1166))
+(define-fun _t_1168 () Bool (and _t_1165 _t_1167))
+(define-fun _t_1169 () Bool (and _t_482 _t_1168))
+(define-fun _t_1170 () Bool (fp.leq _t_388 _t_851))
+(define-fun _t_1171 () Bool (and _t_1169 _t_1170))
+(define-fun _t_1172 () Bool (= _t_451 _t_468))
+(define-fun _t_1173 () Bool (and _t_1171 _t_1172))
+(define-fun _t_1174 () Bool (and _t_476 _t_1173))
+(define-fun _t_1175 () Bool (fp.leq _t_480 _t_851))
+(define-fun _t_1176 () Bool (not _t_1175))
+(define-fun _t_1177 () Bool (and _t_1174 _t_1176))
+(define-fun _t_1178 () Bool (and _t_467 _t_1177))
+(define-fun _t_1179 () Bool (= _t_318 _t_339))
+(define-fun _t_1180 () Bool (and _t_1178 _t_1179))
+(define-fun _t_1181 () Bool (fp.leq _t_293 _t_462))
+(define-fun _t_1182 () Bool (not _t_1181))
+(define-fun _t_1183 () Bool (and _t_1180 _t_1182))
+(define-fun _t_1184 () (_ FloatingPoint 11 53) (fp.neg _t_462))
+(define-fun _t_1185 () Bool (= _t_463 _t_1184))
+(define-fun _t_1186 () Bool (and _t_1183 _t_1185))
+(define-fun _t_1187 () Bool (and _t_465 _t_1186))
+(define-fun _t_1188 () Bool (= _t_436 _t_451))
+(define-fun _t_1189 () Bool (and _t_1187 _t_1188))
+(define-fun _t_1190 () Bool (and _t_459 _t_1189))
+(define-fun _t_1191 () Bool (fp.leq _t_463 _t_851))
+(define-fun _t_1192 () Bool (not _t_1191))
+(define-fun _t_1193 () Bool (and _t_1190 _t_1192))
+(define-fun _t_1194 () Bool (fp.leq _t_293 _t_447))
+(define-fun _t_1195 () Bool (not _t_1194))
+(define-fun _t_1196 () Bool (and _t_1193 _t_1195))
+(define-fun _t_1197 () (_ FloatingPoint 11 53) (fp.neg _t_447))
+(define-fun _t_1198 () Bool (= _t_448 _t_1197))
+(define-fun _t_1199 () Bool (and _t_1196 _t_1198))
+(define-fun _t_1200 () Bool (and _t_450 _t_1199))
+(define-fun _t_1201 () Bool (= _t_421 _t_436))
+(define-fun _t_1202 () Bool (and _t_1200 _t_1201))
+(define-fun _t_1203 () Bool (and _t_444 _t_1202))
+(define-fun _t_1204 () Bool (fp.leq _t_448 _t_851))
+(define-fun _t_1205 () Bool (not _t_1204))
+(define-fun _t_1206 () Bool (and _t_1203 _t_1205))
+(define-fun _t_1207 () Bool (fp.leq _t_293 _t_432))
+(define-fun _t_1208 () Bool (not _t_1207))
+(define-fun _t_1209 () Bool (and _t_1206 _t_1208))
+(define-fun _t_1210 () (_ FloatingPoint 11 53) (fp.neg _t_432))
+(define-fun _t_1211 () Bool (= _t_433 _t_1210))
+(define-fun _t_1212 () Bool (and _t_1209 _t_1211))
+(define-fun _t_1213 () Bool (and _t_435 _t_1212))
+(define-fun _t_1214 () Bool (= _t_406 _t_421))
+(define-fun _t_1215 () Bool (and _t_1213 _t_1214))
+(define-fun _t_1216 () Bool (and _t_429 _t_1215))
+(define-fun _t_1217 () Bool (fp.leq _t_433 _t_851))
+(define-fun _t_1218 () Bool (not _t_1217))
+(define-fun _t_1219 () Bool (and _t_1216 _t_1218))
+(define-fun _t_1220 () Bool (fp.leq _t_293 _t_417))
+(define-fun _t_1221 () Bool (not _t_1220))
+(define-fun _t_1222 () Bool (and _t_1219 _t_1221))
+(define-fun _t_1223 () (_ FloatingPoint 11 53) (fp.neg _t_417))
+(define-fun _t_1224 () Bool (= _t_418 _t_1223))
+(define-fun _t_1225 () Bool (and _t_1222 _t_1224))
+(define-fun _t_1226 () Bool (and _t_420 _t_1225))
+(define-fun _t_1227 () Bool (= _t_391 _t_406))
+(define-fun _t_1228 () Bool (and _t_1226 _t_1227))
+(define-fun _t_1229 () Bool (and _t_414 _t_1228))
+(define-fun _t_1230 () Bool (fp.leq _t_418 _t_851))
+(define-fun _t_1231 () Bool (not _t_1230))
+(define-fun _t_1232 () Bool (and _t_1229 _t_1231))
+(define-fun _t_1233 () Bool (fp.leq _t_293 _t_402))
+(define-fun _t_1234 () Bool (not _t_1233))
+(define-fun _t_1235 () Bool (and _t_1232 _t_1234))
+(define-fun _t_1236 () (_ FloatingPoint 11 53) (fp.neg _t_402))
+(define-fun _t_1237 () Bool (= _t_403 _t_1236))
+(define-fun _t_1238 () Bool (and _t_1235 _t_1237))
+(define-fun _t_1239 () Bool (and _t_405 _t_1238))
+(define-fun _t_1240 () Bool (= _t_376 _t_391))
+(define-fun _t_1241 () Bool (and _t_1239 _t_1240))
+(define-fun _t_1242 () Bool (and _t_399 _t_1241))
+(define-fun _t_1243 () Bool (fp.leq _t_403 _t_851))
+(define-fun _t_1244 () Bool (not _t_1243))
+(define-fun _t_1245 () Bool (and _t_1242 _t_1244))
+(define-fun _t_1246 () Bool (fp.leq _t_293 _t_387))
+(define-fun _t_1247 () Bool (not _t_1246))
+(define-fun _t_1248 () Bool (and _t_1245 _t_1247))
+(define-fun _t_1249 () (_ FloatingPoint 11 53) (fp.neg _t_387))
+(define-fun _t_1250 () Bool (= _t_388 _t_1249))
+(define-fun _t_1251 () Bool (and _t_1248 _t_1250))
+(define-fun _t_1252 () Bool (and _t_390 _t_1251))
+(define-fun _t_1253 () Bool (= _t_361 _t_376))
+(define-fun _t_1254 () Bool (and _t_1252 _t_1253))
+(define-fun _t_1255 () Bool (and _t_384 _t_1254))
+(define-fun _t_1256 () Bool (fp.leq _t_293 _t_372))
+(define-fun _t_1257 () Bool (not _t_1256))
+(define-fun _t_1258 () Bool (and _t_1255 _t_1257))
+(define-fun _t_1259 () (_ FloatingPoint 11 53) (fp.neg _t_372))
+(define-fun _t_1260 () Bool (= _t_373 _t_1259))
+(define-fun _t_1261 () Bool (and _t_1258 _t_1260))
+(define-fun _t_1262 () Bool (and _t_375 _t_1261))
+(define-fun _t_1263 () Bool (= _t_346 _t_361))
+(define-fun _t_1264 () Bool (and _t_1262 _t_1263))
+(define-fun _t_1265 () Bool (and _t_369 _t_1264))
+(define-fun _t_1266 () Bool (fp.leq _t_373 _t_851))
+(define-fun _t_1267 () Bool (not _t_1266))
+(define-fun _t_1268 () Bool (and _t_1265 _t_1267))
+(define-fun _t_1269 () Bool (fp.leq _t_293 _t_357))
+(define-fun _t_1270 () Bool (not _t_1269))
+(define-fun _t_1271 () Bool (and _t_1268 _t_1270))
+(define-fun _t_1272 () (_ FloatingPoint 11 53) (fp.neg _t_357))
+(define-fun _t_1273 () Bool (= _t_358 _t_1272))
+(define-fun _t_1274 () Bool (and _t_1271 _t_1273))
+(define-fun _t_1275 () Bool (and _t_360 _t_1274))
+(define-fun _t_1276 () Bool (= _t_333 _t_346))
+(define-fun _t_1277 () Bool (and _t_1275 _t_1276))
+(define-fun _t_1278 () Bool (and _t_354 _t_1277))
+(define-fun _t_1279 () Bool (fp.leq _t_358 _t_851))
+(define-fun _t_1280 () Bool (not _t_1279))
+(define-fun _t_1281 () Bool (and _t_1278 _t_1280))
+(define-fun _t_1282 () Bool (fp.leq _t_293 _t_342))
+(define-fun _t_1283 () Bool (not _t_1282))
+(define-fun _t_1284 () Bool (and _t_1281 _t_1283))
+(define-fun _t_1285 () (_ FloatingPoint 11 53) (fp.neg _t_342))
+(define-fun _t_1286 () Bool (= _t_343 _t_1285))
+(define-fun _t_1287 () Bool (and _t_1284 _t_1286))
+(define-fun _t_1288 () Bool (and _t_345 _t_1287))
+(define-fun _t_1289 () Bool (fp.leq _t_343 _t_851))
+(define-fun _t_1290 () Bool (not _t_1289))
+(define-fun _t_1291 () Bool (and _t_1288 _t_1290))
+(define-fun _t_1292 () Bool (fp.leq _t_293 _t_329))
+(define-fun _t_1293 () Bool (not _t_1292))
+(define-fun _t_1294 () Bool (and _t_1291 _t_1293))
+(define-fun _t_1295 () (_ FloatingPoint 11 53) (fp.neg _t_329))
+(define-fun _t_1296 () Bool (= _t_330 _t_1295))
+(define-fun _t_1297 () Bool (and _t_1294 _t_1296))
+(define-fun _t_1298 () Bool (and _t_332 _t_1297))
+(define-fun _t_1299 () Bool (= _t_303 _t_318))
+(define-fun _t_1300 () Bool (and _t_1298 _t_1299))
+(define-fun _t_1301 () Bool (fp.leq _t_330 _t_851))
+(define-fun _t_1302 () Bool (not _t_1301))
+(define-fun _t_1303 () Bool (and _t_1300 _t_1302))
+(define-fun _t_1304 () Bool (and _t_326 _t_1303))
+(define-fun _t_1305 () Bool (fp.leq _t_293 _t_314))
+(define-fun _t_1306 () Bool (not _t_1305))
+(define-fun _t_1307 () Bool (and _t_1304 _t_1306))
+(define-fun _t_1308 () (_ FloatingPoint 11 53) (fp.neg _t_314))
+(define-fun _t_1309 () Bool (= _t_315 _t_1308))
+(define-fun _t_1310 () Bool (and _t_1307 _t_1309))
+(define-fun _t_1311 () Bool (and _t_317 _t_1310))
+(define-fun _t_1312 () Bool (= _t_289 _t_303))
+(define-fun _t_1313 () Bool (and _t_1311 _t_1312))
+(define-fun _t_1314 () Bool (and _t_311 _t_1313))
+(define-fun _t_1315 () Bool (fp.leq _t_315 _t_851))
+(define-fun _t_1316 () Bool (not _t_1315))
+(define-fun _t_1317 () Bool (and _t_1314 _t_1316))
+(define-fun _t_1318 () Bool (fp.leq _t_293 _t_299))
+(define-fun _t_1319 () Bool (not _t_1318))
+(define-fun _t_1320 () Bool (and _t_1317 _t_1319))
+(define-fun _t_1321 () (_ FloatingPoint 11 53) (fp.neg _t_299))
+(define-fun _t_1322 () Bool (= _t_300 _t_1321))
+(define-fun _t_1323 () Bool (and _t_1320 _t_1322))
+(define-fun _t_1324 () Bool (and _t_302 _t_1323))
+(define-fun _t_1325 () Bool (fp.leq _t_293 _t_277))
+(define-fun _t_1326 () Bool (not _t_1325))
+(define-fun _t_1327 () Bool (and _t_1324 _t_1326))
+(define-fun _t_1328 () (_ FloatingPoint 11 53) (fp.neg _t_277))
+(define-fun _t_1329 () Bool (= _t_286 _t_1328))
+(define-fun _t_1330 () Bool (and _t_1327 _t_1329))
+(define-fun _t_1331 () Bool (and _t_288 _t_1330))
+(define-fun _t_1332 () Bool (fp.leq _t_286 _t_851))
+(define-fun _t_1333 () Bool (not _t_1332))
+(define-fun _t_1334 () Bool (and _t_1331 _t_1333))
+(define-fun _t_1335 () Bool (= _t_249 _t_279))
+(define-fun _t_1336 () Bool (and _t_1334 _t_1335))
+(define-fun _t_1337 () Bool (fp.leq _t_293 _t_282))
+(define-fun _t_1338 () Bool (not _t_1337))
+(define-fun _t_1339 () Bool (and _t_1336 _t_1338))
+(define-fun _t_1340 () (_ FloatingPoint 11 53) (fp.neg _t_282))
+(define-fun _t_1341 () Bool (= _t_283 _t_1340))
+(define-fun _t_1342 () Bool (and _t_1339 _t_1341))
+(define-fun _t_1343 () Bool (and _t_285 _t_1342))
+(define-fun _t_1344 () Bool (fp.leq _t_283 _t_851))
+(define-fun _t_1345 () Bool (not _t_1344))
+(define-fun _t_1346 () Bool (and _t_1343 _t_1345))
+(define-fun _t_1347 () Bool (and _t_273 _t_1346))
+(define-fun _t_1348 () Bool (fp.leq _t_293 _t_260))
+(define-fun _t_1349 () Bool (not _t_1348))
+(define-fun _t_1350 () Bool (and _t_1347 _t_1349))
+(define-fun _t_1351 () (_ FloatingPoint 11 53) (fp.neg _t_260))
+(define-fun _t_1352 () Bool (= _t_261 _t_1351))
+(define-fun _t_1353 () Bool (and _t_1350 _t_1352))
+(define-fun _t_1354 () Bool (and _t_263 _t_1353))
+(define-fun _t_1355 () Bool (= _t_234 _t_249))
+(define-fun _t_1356 () Bool (and _t_1354 _t_1355))
+(define-fun _t_1357 () Bool (fp.leq _t_261 _t_851))
+(define-fun _t_1358 () Bool (not _t_1357))
+(define-fun _t_1359 () Bool (and _t_1356 _t_1358))
+(define-fun _t_1360 () Bool (and _t_257 _t_1359))
+(define-fun _t_1361 () Bool (fp.leq _t_293 _t_245))
+(define-fun _t_1362 () Bool (not _t_1361))
+(define-fun _t_1363 () Bool (and _t_1360 _t_1362))
+(define-fun _t_1364 () (_ FloatingPoint 11 53) (fp.neg _t_245))
+(define-fun _t_1365 () Bool (= _t_246 _t_1364))
+(define-fun _t_1366 () Bool (and _t_1363 _t_1365))
+(define-fun _t_1367 () Bool (and _t_248 _t_1366))
+(define-fun _t_1368 () Bool (= _t_219 _t_234))
+(define-fun _t_1369 () Bool (and _t_1367 _t_1368))
+(define-fun _t_1370 () Bool (and _t_242 _t_1369))
+(define-fun _t_1371 () Bool (fp.leq _t_246 _t_851))
+(define-fun _t_1372 () Bool (not _t_1371))
+(define-fun _t_1373 () Bool (and _t_1370 _t_1372))
+(define-fun _t_1374 () Bool (fp.leq _t_293 _t_230))
+(define-fun _t_1375 () Bool (not _t_1374))
+(define-fun _t_1376 () Bool (and _t_1373 _t_1375))
+(define-fun _t_1377 () (_ FloatingPoint 11 53) (fp.neg _t_230))
+(define-fun _t_1378 () Bool (= _t_231 _t_1377))
+(define-fun _t_1379 () Bool (and _t_1376 _t_1378))
+(define-fun _t_1380 () Bool (and _t_233 _t_1379))
+(define-fun _t_1381 () Bool (= _t_198 _t_219))
+(define-fun _t_1382 () Bool (and _t_1380 _t_1381))
+(define-fun _t_1383 () Bool (and _t_227 _t_1382))
+(define-fun _t_1384 () Bool (fp.leq _t_231 _t_851))
+(define-fun _t_1385 () Bool (not _t_1384))
+(define-fun _t_1386 () Bool (and _t_1383 _t_1385))
+(define-fun _t_1387 () Bool (fp.leq _t_293 _t_215))
+(define-fun _t_1388 () Bool (not _t_1387))
+(define-fun _t_1389 () Bool (and _t_1386 _t_1388))
+(define-fun _t_1390 () (_ FloatingPoint 11 53) (fp.neg _t_215))
+(define-fun _t_1391 () Bool (= _t_216 _t_1390))
+(define-fun _t_1392 () Bool (and _t_1389 _t_1391))
+(define-fun _t_1393 () Bool (and _t_218 _t_1392))
+(define-fun _t_1394 () Bool (= _t_189 _t_198))
+(define-fun _t_1395 () Bool (and _t_1393 _t_1394))
+(define-fun _t_1396 () Bool (and _t_212 _t_1395))
+(define-fun _t_1397 () Bool (and _t_206 _t_1396))
+(define-fun _t_1398 () Bool (fp.leq _t_293 _t_209))
+(define-fun _t_1399 () Bool (not _t_1398))
+(define-fun _t_1400 () Bool (and _t_1397 _t_1399))
+(define-fun _t_1401 () Bool (fp.leq _t_216 _t_851))
+(define-fun _t_1402 () Bool (not _t_1401))
+(define-fun _t_1403 () Bool (and _t_1400 _t_1402))
+(define-fun _t_1404 () Bool (= _t_174 _t_189))
+(define-fun _t_1405 () Bool (and _t_1403 _t_1404))
+(define-fun _t_1406 () Bool (and _t_197 _t_1405))
+(define-fun _t_1407 () Bool (fp.leq _t_293 _t_185))
+(define-fun _t_1408 () Bool (not _t_1407))
+(define-fun _t_1409 () Bool (and _t_1406 _t_1408))
+(define-fun _t_1410 () (_ FloatingPoint 11 53) (fp.neg _t_185))
+(define-fun _t_1411 () Bool (= _t_186 _t_1410))
+(define-fun _t_1412 () Bool (and _t_1409 _t_1411))
+(define-fun _t_1413 () Bool (and _t_188 _t_1412))
+(define-fun _t_1414 () Bool (= _t_159 _t_174))
+(define-fun _t_1415 () Bool (and _t_1413 _t_1414))
+(define-fun _t_1416 () Bool (and _t_182 _t_1415))
+(define-fun _t_1417 () Bool (fp.leq _t_186 _t_851))
+(define-fun _t_1418 () Bool (not _t_1417))
+(define-fun _t_1419 () Bool (and _t_1416 _t_1418))
+(define-fun _t_1420 () Bool (fp.leq _t_293 _t_170))
+(define-fun _t_1421 () Bool (not _t_1420))
+(define-fun _t_1422 () Bool (and _t_1419 _t_1421))
+(define-fun _t_1423 () (_ FloatingPoint 11 53) (fp.neg _t_170))
+(define-fun _t_1424 () Bool (= _t_171 _t_1423))
+(define-fun _t_1425 () Bool (and _t_1422 _t_1424))
+(define-fun _t_1426 () Bool (and _t_173 _t_1425))
+(define-fun _t_1427 () Bool (= _t_144 _t_159))
+(define-fun _t_1428 () Bool (and _t_1426 _t_1427))
+(define-fun _t_1429 () Bool (and _t_167 _t_1428))
+(define-fun _t_1430 () Bool (fp.leq _t_171 _t_851))
+(define-fun _t_1431 () Bool (not _t_1430))
+(define-fun _t_1432 () Bool (and _t_1429 _t_1431))
+(define-fun _t_1433 () Bool (fp.leq _t_293 _t_155))
+(define-fun _t_1434 () Bool (not _t_1433))
+(define-fun _t_1435 () Bool (and _t_1432 _t_1434))
+(define-fun _t_1436 () (_ FloatingPoint 11 53) (fp.neg _t_155))
+(define-fun _t_1437 () Bool (= _t_156 _t_1436))
+(define-fun _t_1438 () Bool (and _t_1435 _t_1437))
+(define-fun _t_1439 () Bool (and _t_158 _t_1438))
+(define-fun _t_1440 () Bool (= _t_129 _t_144))
+(define-fun _t_1441 () Bool (and _t_1439 _t_1440))
+(define-fun _t_1442 () Bool (and _t_152 _t_1441))
+(define-fun _t_1443 () Bool (fp.leq _t_156 _t_851))
+(define-fun _t_1444 () Bool (not _t_1443))
+(define-fun _t_1445 () Bool (and _t_1442 _t_1444))
+(define-fun _t_1446 () Bool (fp.leq _t_293 _t_140))
+(define-fun _t_1447 () Bool (not _t_1446))
+(define-fun _t_1448 () Bool (and _t_1445 _t_1447))
+(define-fun _t_1449 () (_ FloatingPoint 11 53) (fp.neg _t_140))
+(define-fun _t_1450 () Bool (= _t_141 _t_1449))
+(define-fun _t_1451 () Bool (and _t_1448 _t_1450))
+(define-fun _t_1452 () Bool (and _t_143 _t_1451))
+(define-fun _t_1453 () Bool (= _t_114 _t_129))
+(define-fun _t_1454 () Bool (and _t_1452 _t_1453))
+(define-fun _t_1455 () Bool (and _t_137 _t_1454))
+(define-fun _t_1456 () Bool (fp.leq _t_141 _t_851))
+(define-fun _t_1457 () Bool (not _t_1456))
+(define-fun _t_1458 () Bool (and _t_1455 _t_1457))
+(define-fun _t_1459 () Bool (fp.leq _t_293 _t_125))
+(define-fun _t_1460 () Bool (not _t_1459))
+(define-fun _t_1461 () Bool (and _t_1458 _t_1460))
+(define-fun _t_1462 () (_ FloatingPoint 11 53) (fp.neg _t_125))
+(define-fun _t_1463 () Bool (= _t_126 _t_1462))
+(define-fun _t_1464 () Bool (and _t_1461 _t_1463))
+(define-fun _t_1465 () Bool (and _t_128 _t_1464))
+(define-fun _t_1466 () Bool (= _t_99 _t_114))
+(define-fun _t_1467 () Bool (and _t_1465 _t_1466))
+(define-fun _t_1468 () Bool (and _t_122 _t_1467))
+(define-fun _t_1469 () Bool (fp.leq _t_126 _t_851))
+(define-fun _t_1470 () Bool (not _t_1469))
+(define-fun _t_1471 () Bool (and _t_1468 _t_1470))
+(define-fun _t_1472 () Bool (fp.leq _t_293 _t_110))
+(define-fun _t_1473 () Bool (not _t_1472))
+(define-fun _t_1474 () Bool (and _t_1471 _t_1473))
+(define-fun _t_1475 () (_ FloatingPoint 11 53) (fp.neg _t_110))
+(define-fun _t_1476 () Bool (= _t_111 _t_1475))
+(define-fun _t_1477 () Bool (and _t_1474 _t_1476))
+(define-fun _t_1478 () Bool (and _t_113 _t_1477))
+(define-fun _t_1479 () Bool (= _t_84 _t_99))
+(define-fun _t_1480 () Bool (and _t_1478 _t_1479))
+(define-fun _t_1481 () Bool (and _t_107 _t_1480))
+(define-fun _t_1482 () Bool (fp.leq _t_111 _t_851))
+(define-fun _t_1483 () Bool (not _t_1482))
+(define-fun _t_1484 () Bool (and _t_1481 _t_1483))
+(define-fun _t_1485 () Bool (fp.leq _t_293 _t_95))
+(define-fun _t_1486 () Bool (not _t_1485))
+(define-fun _t_1487 () Bool (and _t_1484 _t_1486))
+(define-fun _t_1488 () (_ FloatingPoint 11 53) (fp.neg _t_95))
+(define-fun _t_1489 () Bool (= _t_96 _t_1488))
+(define-fun _t_1490 () Bool (and _t_1487 _t_1489))
+(define-fun _t_1491 () Bool (and _t_98 _t_1490))
+(define-fun _t_1492 () Bool (= _t_69 _t_84))
+(define-fun _t_1493 () Bool (and _t_1491 _t_1492))
+(define-fun _t_1494 () Bool (and _t_92 _t_1493))
+(define-fun _t_1495 () Bool (fp.leq _t_96 _t_851))
+(define-fun _t_1496 () Bool (not _t_1495))
+(define-fun _t_1497 () Bool (and _t_1494 _t_1496))
+(define-fun _t_1498 () Bool (fp.leq _t_293 _t_80))
+(define-fun _t_1499 () Bool (not _t_1498))
+(define-fun _t_1500 () Bool (and _t_1497 _t_1499))
+(define-fun _t_1501 () (_ FloatingPoint 11 53) (fp.neg _t_80))
+(define-fun _t_1502 () Bool (= _t_81 _t_1501))
+(define-fun _t_1503 () Bool (and _t_1500 _t_1502))
+(define-fun _t_1504 () Bool (and _t_83 _t_1503))
+(define-fun _t_1505 () Bool (= _t_54 _t_69))
+(define-fun _t_1506 () Bool (and _t_1504 _t_1505))
+(define-fun _t_1507 () Bool (and _t_77 _t_1506))
+(define-fun _t_1508 () Bool (fp.leq _t_81 _t_851))
+(define-fun _t_1509 () Bool (not _t_1508))
+(define-fun _t_1510 () Bool (and _t_1507 _t_1509))
+(define-fun _t_1511 () Bool (fp.leq _t_293 _t_65))
+(define-fun _t_1512 () Bool (not _t_1511))
+(define-fun _t_1513 () Bool (and _t_1510 _t_1512))
+(define-fun _t_1514 () (_ FloatingPoint 11 53) (fp.neg _t_65))
+(define-fun _t_1515 () Bool (= _t_66 _t_1514))
+(define-fun _t_1516 () Bool (and _t_1513 _t_1515))
+(define-fun _t_1517 () Bool (and _t_68 _t_1516))
+(define-fun _t_1518 () Bool (= _t_39 _t_54))
+(define-fun _t_1519 () Bool (and _t_1517 _t_1518))
+(define-fun _t_1520 () Bool (and _t_62 _t_1519))
+(define-fun _t_1521 () Bool (fp.leq _t_66 _t_851))
+(define-fun _t_1522 () Bool (not _t_1521))
+(define-fun _t_1523 () Bool (and _t_1520 _t_1522))
+(define-fun _t_1524 () Bool (fp.leq _t_293 _t_50))
+(define-fun _t_1525 () Bool (not _t_1524))
+(define-fun _t_1526 () Bool (and _t_1523 _t_1525))
+(define-fun _t_1527 () (_ FloatingPoint 11 53) (fp.neg _t_50))
+(define-fun _t_1528 () Bool (= _t_51 _t_1527))
+(define-fun _t_1529 () Bool (and _t_1526 _t_1528))
+(define-fun _t_1530 () Bool (and _t_53 _t_1529))
+(define-fun _t_1531 () Bool (= _t_24 _t_39))
+(define-fun _t_1532 () Bool (and _t_1530 _t_1531))
+(define-fun _t_1533 () Bool (and _t_47 _t_1532))
+(define-fun _t_1534 () Bool (fp.leq _t_51 _t_851))
+(define-fun _t_1535 () Bool (not _t_1534))
+(define-fun _t_1536 () Bool (and _t_1533 _t_1535))
+(define-fun _t_1537 () Bool (fp.leq _t_293 _t_35))
+(define-fun _t_1538 () Bool (not _t_1537))
+(define-fun _t_1539 () Bool (and _t_1536 _t_1538))
+(define-fun _t_1540 () (_ FloatingPoint 11 53) (fp.neg _t_35))
+(define-fun _t_1541 () Bool (= _t_36 _t_1540))
+(define-fun _t_1542 () Bool (and _t_1539 _t_1541))
+(define-fun _t_1543 () Bool (and _t_38 _t_1542))
+(define-fun _t_1544 () Bool (= _t_9 _t_24))
+(define-fun _t_1545 () Bool (and _t_1543 _t_1544))
+(define-fun _t_1546 () Bool (and _t_32 _t_1545))
+(define-fun _t_1547 () Bool (fp.leq _t_36 _t_851))
+(define-fun _t_1548 () Bool (not _t_1547))
+(define-fun _t_1549 () Bool (and _t_1546 _t_1548))
+(define-fun _t_1550 () Bool (fp.leq _t_293 _t_20))
+(define-fun _t_1551 () Bool (not _t_1550))
+(define-fun _t_1552 () Bool (and _t_1549 _t_1551))
+(define-fun _t_1553 () (_ FloatingPoint 11 53) (fp.neg _t_20))
+(define-fun _t_1554 () Bool (= _t_21 _t_1553))
+(define-fun _t_1555 () Bool (and _t_1552 _t_1554))
+(define-fun _t_1556 () Bool (and _t_23 _t_1555))
+(assert _t_1556)
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10252.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10252.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a203afd8743a495f740888206f3ff11ceb6efae8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10252.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.734448659971346007324655147385783493518829345703125p-314 {- 3307662711369714 -314 (-5.19688e-095)}
+; -1.734448659971346007324655147385783493518829345703125p-314 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01011000101 #b1011110000000100110100111100111100101010111111110010)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10300.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10300.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..be1f58317c4291929246fbc8a4a4e5a93ed79119
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10300.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.5532016291367181093363569743814878165721893310546875p308 {+ 2491398650840875 308 (8.09965e+092)}
+; 1.5532016291367181093363569743814878165721893310546875p308 S == 1.246275101707772225978487767861224710941314697265625p154
+; [HW: 1.246275101707772225978487767861224710941314697265625p154] 
+
+; mpf : + 1109124456281754 154
+; mpfd: + 1109124456281754 154 (2.84599e+046) class: Pos. norm. non-zero
+; hwf : + 1109124456281754 154 (2.84599e+046) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10100110011 #b1000110110011110100111110011100100111100011100101011)))
+(assert (= r (fp #b0 #b10010011001 #b0011111100001011111000101001001110100111011010011010)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10459.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10459.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cf98695dee811a0cae7d10f7f02761ddfea4564f
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10459.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.681258812012559555881807682453654706478118896484375p1021 {- 3068116931922630 1021 (-3.77798e+307)}
+; -1.681258812012559555881807682453654706478118896484375p1021 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11111111100 #b1010111001100110111110100011110110110100101011000110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1060.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1060.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e2204f68fa487d6b9deba29b6da7680caef941cb
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1060.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.5438478010523686290156319955713115632534027099609375p-200 {+ 2449272754165711 -200 (9.60739e-061)}
+; 1.5438478010523686290156319955713115632534027099609375p-200 S == 1.2425167206329132962849826071760617196559906005859375p-100
+; [HW: 1.2425167206329132962849826071760617196559906005859375p-100] 
+
+; mpf : + 1092198212673503 -100
+; mpfd: + 1092198212673503 -100 (9.80173e-031) class: Pos. norm. non-zero
+; hwf : + 1092198212673503 -100 (9.80173e-031) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01100110111 #b1000101100111001100111000000011110000101011111001111)))
+(assert (= r (fp #b0 #b01110011011 #b0011111000010101100100110110011111011001111111011111)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10636.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10636.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..00ecf8c2a8ea9a4f2786cfaee1300bfc58656bf4
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10636.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.1520700234315175425336974512902088463306427001953125p-717 {+ 684862500860405 -717 (1.67098e-216)}
+; 1.1520700234315175425336974512902088463306427001953125p-717 S == 1.5179394081658974524629002189612947404384613037109375p-359
+; [HW: 1.5179394081658974524629002189612947404384613037109375p-359] 
+
+; mpf : + 2332591725616431 -359
+; mpfd: + 2332591725616431 -359 (1.29267e-108) class: Pos. norm. non-zero
+; hwf : + 2332591725616431 -359 (1.29267e-108) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00100110010 #b0010011011101110000011111010000101010111000111110101)))
+(assert (= r (fp #b0 #b01010011000 #b1000010010010111101011010101001101100001110100101111)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10680.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10680.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3c811c59078d046d5dfe2e2cc8c9e7ef50b849a8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10680.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.80084487325237052601778486859984695911407470703125p-547 {+ 3606684672760948 -547 (3.90903e-165)}
+; 1.80084487325237052601778486859984695911407470703125p-547 S == 1.897811831163653817355907449382357299327850341796875p-274
+; [HW: 1.897811831163653817355907449382357299327850341796875p-274] 
+
+; mpf : + 4043385028277454 -274
+; mpfd: + 4043385028277454 -274 (6.25222e-083) class: Pos. norm. non-zero
+; hwf : + 4043385028277454 -274 (6.25222e-083) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00111011100 #b1100110100000100001010110110101111001001110001110100)))
+(assert (= r (fp #b0 #b01011101101 #b1110010111010110111111110000010011001111010011001110)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10729.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10729.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b85a7610838bf25ea2b8344ccaf8c1577e8c86d6
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-10729.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.7381457203433650082757822019630111753940582275390625p619 {+ 3324312791083505 619 (3.78141e+186)}
+; 1.7381457203433650082757822019630111753940582275390625p619 S == 1.8644815474245728381674780393950641155242919921875p309
+; [HW: 1.8644815474245728381674780393950641155242919921875p309] 
+
+; mpf : + 3893278774849976 309
+; mpfd: + 3893278774849976 309 (1.94458e+093) class: Pos. norm. non-zero
+; hwf : + 3893278774849976 309 (1.94458e+093) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11001101010 #b1011110011110111000111100011000010001110100111110001)))
+(assert (= r (fp #b0 #b10100110100 #b1101110101001110101010011010011000101111000110111000)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1156.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1156.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b719b50b70b48323205d3fc2dbecd8d95f1cfd2f
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1156.smt2
@@ -0,0 +1,23 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.0)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -zero {- 0 -1023 (-0)}
+; -zero S == -zero
+; [HW: -zero] 
+
+; mpf : - 0 -1023
+; mpfd: - 0 -1023 (-0) class: -0
+; hwf : - 0 -1023 (-0) class: -0
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00000000000 #b0000000000000000000000000000000000000000000000000000)))
+(assert (= r (fp #b1 #b00000000000 #b0000000000000000000000000000000000000000000000000000)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11576.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11576.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0cba63fd1f8341090914d71b656b14acd947ea08
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11576.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.3461894602752859650962591331335715949535369873046875p945 {+ 1559098724295371 945 (4.00361e+284)}
+; 1.3461894602752859650962591331335715949535369873046875p945 S == 1.64084701314612857458996586501598358154296875p472
+; [HW: 1.64084701314612857458996586501598358154296875p472] 
+
+; mpf : + 2886118369606400 472
+; mpfd: + 2886118369606400 472 (2.0009e+142) class: Pos. norm. non-zero
+; hwf : + 2886118369606400 472 (2.0009e+142) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11110110000 #b0101100010011111110111110101101000011010001011001011)))
+(assert (= r (fp #b0 #b10111010111 #b1010010000001110100011001100001100110011101100000000)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1161.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1161.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..497f7e54ae6cd913b293b18f8827fdbccfcb0173
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1161.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.085245219784321424327799832099117338657379150390625p623 {- 383910340055786 623 (-3.77759e+187)}
+; -1.085245219784321424327799832099117338657379150390625p623 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11001101110 #b0001010111010010101000010111011100011101001011101010)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11685.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11685.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1d319ebcef8cae54a5395bff1577042f3d7fab86
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-11685.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.9460153688201595745255190195166505873203277587890625p-326 {- 4260474462505233 -326 (-1.42353e-098)}
+; -1.9460153688201595745255190195166505873203277587890625p-326 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01010111001 #b1111001000101110000100000010111010011000100100010001)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1201.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1201.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f5e9b46dfa30e2acd77363edf51b12d17d87a72a
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1201.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.1263064392537069924316028846078552305698394775390625p-925 {- 568833632757489 -925 (-3.9711e-279)}
+; -1.1263064392537069924316028846078552305698394775390625p-925 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00001100010 #b0010000001010101100111100110100111011110011011110001)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12119.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12119.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a5549c85c7c605911d23737cb6a158beee1dd4ca
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12119.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.076679336655704144476430883514694869518280029296875p-787 {- 345333031989646 -787 (-1.32276e-237)}
+; -1.076679336655704144476430883514694869518280029296875p-787 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00011101100 #b0001001110100001010000011100101100110111000110001110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12400.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12400.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..40af23bdd996cb6fcce30893eefd0b7152e7ade4
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12400.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.1530455439147921925524542530183680355548858642578125p169 {- 689255854545373 169 (-8.62811e+050)}
+; -1.1530455439147921925524542530183680355548858642578125p169 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10010101000 #b0010011100101101111111100010010111101001100111011101)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12401.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12401.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c14725336358cf33ec18ddf67af6297934ac55c2
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12401.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.4629343096259532774894296380807645618915557861328125p-13 {+ 2084870784328461 -13 (0.000178581)}
+; 1.4629343096259532774894296380807645618915557861328125p-13 S == 1.7105170619587244384973701016861014068126678466796875p-7
+; [HW: 1.7105170619587244384973701016861014068126678466796875p-7] 
+
+; mpf : + 3199884375477691 -7
+; mpfd: + 3199884375477691 -7 (0.0133634) class: Pos. norm. non-zero
+; hwf : + 3199884375477691 -7 (0.0133634) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01111110010 #b0111011010000010110111001110100000001010001100001101)))
+(assert (= r (fp #b0 #b01111111000 #b1011010111100100011100100011100001011100110110111011)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12438.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12438.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e6cdca2918f7ee567da4a1b98381c89e38e98a6e
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12438.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.771564025866487757099321243003942072391510009765625p-14 {+ 3474815459384794 -14 (0.000108128)}
+; 1.771564025866487757099321243003942072391510009765625p-14 S == 1.331001136688653385675706886104308068752288818359375p-7
+; [HW: 1.331001136688653385675706886104308068752288818359375p-7] 
+
+; mpf : + 1490696595850230 -7
+; mpfd: + 1490696595850230 -7 (0.0103984) class: Pos. norm. non-zero
+; hwf : + 1490696595850230 -7 (0.0103984) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01111110001 #b1100010110000101001110000101000111011101110111011010)))
+(assert (= r (fp #b0 #b01111111000 #b0101010010111100011111011001000100000100001111110110)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12581.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12581.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6f8ce611331943f17fac382a69f91be1691951b6
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12581.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.264722843237104488167688032262958586215972900390625p664 {- 1192205698159082 664 (-9.68083e+199)}
+; -1.264722843237104488167688032262958586215972900390625p664 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11010010111 #b0100001111000100111000000101001000110101000111101010)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12799.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12799.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b02688368309af942de6ebdcf5ab8b207dddc3c3
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-12799.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.81992165710078968032803459209389984607696533203125p872 {- 3692598869392116 872 (-5.73072e+262)}
+; -1.81992165710078968032803459209389984607696533203125p872 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11101100111 #b1101000111100110011000101011111010000111101011110100)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13083.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13083.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6f6d0c106277f2accd6ca0011a23b3c40e0c7a0a
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13083.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.054986063771851778625432416447438299655914306640625p-688 {+ 247635216313482 -688 (8.21504e-208)}
+; 1.054986063771851778625432416447438299655914306640625p-688 S == 1.0271251451365854823194467826397158205509185791015625p-344
+; [HW: 1.0271251451365854823194467826397158205509185791015625p-344] 
+
+; mpf : + 122160793529497 -344
+; mpfd: + 122160793529497 -344 (2.86619e-104) class: Pos. norm. non-zero
+; hwf : + 122160793529497 -344 (2.86619e-104) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00101001111 #b0000111000010011100100010001000110100010110010001010)))
+(assert (= r (fp #b0 #b01010100111 #b0000011011110001101011000110101101000010110010011001)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13444.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13444.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e853660e5cd4ebbb923f1ba7799520dc747ab0e0
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13444.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.3963515860626676268196888486272655427455902099609375p-784 {- 1785008855299535 -784 (-1.37239e-236)}
+; -1.3963515860626676268196888486272655427455902099609375p-784 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00011101111 #b0110010101110111010011000010101111011011010111001111)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13494.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13494.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..646d8ddaa42e5620920d2cd5f796f461cde52a98
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-13494.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.5214184983635334891260981748928315937519073486328125p685 {+ 2348260154934093 685 (2.44228e+206)}
+; 1.5214184983635334891260981748928315937519073486328125p685 S == 1.7443729523032243111657635381561703979969024658203125p342
+; [HW: 1.7443729523032243111657635381561703979969024658203125p342] 
+
+; mpf : + 3352357750617477 342
+; mpfd: + 3352357750617477 342 (1.56278e+103) class: Pos. norm. non-zero
+; hwf : + 3352357750617477 342 (1.56278e+103) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11010101100 #b1000010101111011101011101100011000000000001101001101)))
+(assert (= r (fp #b0 #b10101010101 #b1011111010001111001110011100111000101011010110000101)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14096.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14096.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..15be197128c5b6970587309f985db2718e4fc260
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14096.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.328396239675327716867059280048124492168426513671875p442 {+ 1478965182631678 442 (1.50864e+133)}
+; 1.328396239675327716867059280048124492168426513671875p442 S == 1.1525607314477304132793733515427447855472564697265625p221
+; [HW: 1.1525607314477304132793733515427447855472564697265625p221] 
+
+; mpf : + 687072453299369 221
+; mpfd: + 687072453299369 221 (3.88412e+066) class: Pos. norm. non-zero
+; hwf : + 687072453299369 221 (3.88412e+066) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10110111001 #b0101010000010001110001101010010110001000111011111110)))
+(assert (= r (fp #b0 #b10011011100 #b0010011100001110001110000101100000111000110010101001)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14145.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14145.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..992b3df5c07bc6f34c2c0cba2b9f9bd547acc43c
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14145.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.512514953900226277738738644984550774097442626953125p-574 {- 2308162155406866 -574 (-2.44614e-173)}
+; -1.512514953900226277738738644984550774097442626953125p-574 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00111000001 #b1000001100110100001011100001010110110110011000010010)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14159.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14159.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1dbab920f62d8e2067000c1d3c67ff355d664c38
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14159.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.9237487514620996709169276073225773870944976806640625p-613 {- 4160194532868673 -613 (-5.65928e-185)}
+; -1.9237487514620996709169276073225773870944976806640625p-613 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00110011010 #b1110110001111010110011000101010101000000001001000001)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14731.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14731.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..bcaae8b1ced31d9a2e6f2c5588a6e3991df7edd1
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-14731.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.053338168190929291512247800710611045360565185546875p978 {+ 240213754389294 978 (2.69094e+294)}
+; 1.053338168190929291512247800710611045360565185546875p978 S == 1.0263226433197940590247299041948281228542327880859375p489
+; [HW: 1.0263226433197940590247299041948281228542327880859375p489] 
+
+; mpf : + 118546646646431 489
+; mpfd: + 118546646646431 489 (1.64041e+147) class: Pos. norm. non-zero
+; hwf : + 118546646646431 489 (1.64041e+147) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11111010001 #b0000110110100111100100011111100000000010001100101110)))
+(assert (= r (fp #b0 #b10111101000 #b0000011010111101000101001010110000110011111010011111)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-15095.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-15095.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6887ca4ed7ebd7b4888971672577fd50d998cfba
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-15095.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.13084682865533014961556546040810644626617431640625p-306 {+ 589281728774756 -306 (8.67411e-093)}
+; 1.13084682865533014961556546040810644626617431640625p-306 S == 1.063412821370576910595673325587995350360870361328125p-153
+; [HW: 1.063412821370576910595673325587995350360870361328125p-153] 
+
+; mpf : + 285585958695042 -153
+; mpfd: + 285585958695042 -153 (9.31349e-047) class: Pos. norm. non-zero
+; hwf : + 285585958695042 -153 (9.31349e-047) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01011001101 #b0010000101111111001011011000000111011100001001100100)))
+(assert (= r (fp #b0 #b01101100110 #b0001000000111011110100101001100111101111000010000010)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-16395.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-16395.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3844691669b2be8c3ba3f879ddd8cd44a1eba36e
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-16395.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.230127718291595950717010055086575448513031005859375p950 {- 1036403106345654 950 (-1.1707e+286)}
+; -1.230127718291595950717010055086575448513031005859375p950 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11110110101 #b0011101011101001101001100110111111110111001010110110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1734.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1734.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6cc3dc1357b1672df38b104424e4c144190b0aec
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1734.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.4719864598488008322618725287611596286296844482421875p283 {- 2125638044698979 283 (-2.28767e+085)}
+; -1.4719864598488008322618725287611596286296844482421875p283 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10100011010 #b0111100011010100000110101100100100110100100101100011)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-17667.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-17667.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..dc352648c2ea2240f4f60c67411aa8cef379fb99
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-17667.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.4545490368157223404210753869847394526004791259765625p-853 {+ 2047106872824905 -853 (2.42182e-257)}
+; 1.4545490368157223404210753869847394526004791259765625p-853 S == 1.705607831135705243497113769990392029285430908203125p-427
+; [HW: 1.705607831135705243497113769990392029285430908203125p-427] 
+
+; mpf : + 3177775165372466 -427
+; mpfd: + 3177775165372466 -427 (4.9212e-129) class: Pos. norm. non-zero
+; hwf : + 3177775165372466 -427 (4.9212e-129) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00010101010 #b0111010001011101010100110101111110001101010001001001)))
+(assert (= r (fp #b0 #b01001010100 #b1011010010100010101101101111111010000111100000110010)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1774.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1774.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7eddd22437ba5eb01c18b94a12f8e2a325a85ff8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1774.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.030906360631836715668896431452594697475433349609375p98 {+ 139189874224918 98 (3.26707e+029)}
+; 1.030906360631836715668896431452594697475433349609375p98 S == 1.0153355901532441496470937636331655085086822509765625p49
+; [HW: 1.0153355901532441496470937636331655085086822509765625p49] 
+
+; mpf : + 69065358099657 49
+; mpfd: + 69065358099657 49 (5.71583e+014) class: Pos. norm. non-zero
+; hwf : + 69065358099657 49 (5.71583e+014) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10001100001 #b0000011111101001011110101011000000100110111100010110)))
+(assert (= r (fp #b0 #b10000110000 #b0000001111101101000010001000001000101100010011001001)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18061.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18061.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6ff2426ebf8928f679451b95513162a71a3a731b
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18061.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.6620687066274946186439365192200057208538055419921875p438 {+ 2981692380461251 438 (1.17974e+132)}
+; 1.6620687066274946186439365192200057208538055419921875p438 S == 1.28921243657804307503056406858377158641815185546875p219
+; [HW: 1.28921243657804307503056406858377158641815185546875p219] 
+
+; mpf : + 1302497021603788 219
+; mpfd: + 1302497021603788 219 (1.08616e+066) class: Pos. norm. non-zero
+; hwf : + 1302497021603788 219 (1.08616e+066) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10110110101 #b1010100101111101010101011011001010101011100011000011)))
+(assert (= r (fp #b0 #b10011011010 #b0100101000001001110100111000010010110010111111001100)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18420.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18420.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..eafd52d542ece22a1246974391e3f44339563141
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18420.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.56644739813169397990577635937370359897613525390625p-235 {- 2551052291150884 -235 (-2.83705e-071)}
+; -1.56644739813169397990577635937370359897613525390625p-235 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100010100 #b1001000100000010101100100101100111100001010000100100)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18566.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18566.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..650e64fbb77615eaf10c5174002be497258011a8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-18566.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.3569821397817205532732032224885188043117523193359375p1 {- 1607704631698879 1 (-2.71396)}
+; -1.3569821397817205532732032224885188043117523193359375p1 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10000000000 #b0101101101100011001011100111011110011110010110111111)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1910.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1910.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4a355231a5df31d6ae0be913ed5ff8bdb49f64f9
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-1910.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = -1.7235091497004935146009074742323718965053558349609375p-573 {- 3258395536990287 -573 (-5.57476e-173)}
+; -1.7235091497004935146009074742323718965053558349609375p-573 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b00111000010 #b1011100100110111111001010100100001010010000001001111)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19127.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19127.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d1340e1aee6003870beee527300abcbe4d6bf0ce
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19127.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.14000770182974964228606040705926716327667236328125p-810 {+ 630538633789460 -810 (1.6696e-244)}
+; 1.14000770182974964228606040705926716327667236328125p-810 S == 1.06771143190927286781288785277865827083587646484375p-405
+; [HW: 1.06771143190927286781288785277865827083587646484375p-405] 
+
+; mpf : + 304945179515324 -405
+; mpfd: + 304945179515324 -405 (1.29213e-122) class: Pos. norm. non-zero
+; hwf : + 304945179515324 -405 (1.29213e-122) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00011010101 #b0010001111010111100010110111010010001100000000010100)))
+(assert (= r (fp #b0 #b01001101010 #b0001000101010101100010010101000110011101100110111100)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19987.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19987.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..0aa3b2d8beef398a21f213e9c21e22134dfe4cf2
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-19987.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.8092263289687784411086113323108293116092681884765625p-743 {+ 3644431393602185 -743 (3.91026e-224)}
+; 1.8092263289687784411086113323108293116092681884765625p-743 S == 1.902223083115531121478625209419988095760345458984375p-372
+; [HW: 1.902223083115531121478625209419988095760345458984375p-372] 
+
+; mpf : + 4063251540924166 -372
+; mpfd: + 4063251540924166 -372 (1.97744e-112) class: Pos. norm. non-zero
+; hwf : + 4063251540924166 -372 (1.97744e-112) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00100011000 #b1100111100101001011101001110100111111011101010001001)))
+(assert (= r (fp #b0 #b01010001011 #b1110011011111000000101111000101110101101011100000110)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2125.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2125.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2708f825e4d6c356d882a9b2af3c1b0fe3449243
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2125.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.207678442675763630376195578719489276409149169921875p-33 {- 935300557047454 -33 (-1.40592e-010)}
+; -1.207678442675763630376195578719489276409149169921875p-33 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01111011110 #b0011010100101010011010100001011101100000011010011110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2172.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2172.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6b4bb9679a75b786db033944865e582e4fbbdf04
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2172.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.0882019679081358365380083341733552515506744384765625p-224 {- 397226349804425 -224 (-4.03637e-068)}
+; -1.0882019679081358365380083341733552515506744384765625p-224 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01100011111 #b0001011010010100011001110111011110011011101110001001)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2410.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2410.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b7d12575b59cd094cf872760c3381c20a52314bc
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2410.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.429514937391874962457904985058121383190155029296875p16 {- 1934363311988110 16 (-93684.7)}
+; -1.429514937391874962457904985058121383190155029296875p16 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10000001111 #b0110110111110100101100001110000100111101110110001110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2728.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2728.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..fce943d0ab7a033dd7970eac248529e976e8bdf6
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-2728.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.13433910552199535004547215066850185394287109375p-351 {+ 605009545570144 -351 (2.47294e-106)}
+; 1.13433910552199535004547215066850185394287109375p-351 S == 1.5062132023866976471282441707444377243518829345703125p-176
+; [HW: 1.5062132023866976471282441707444377243518829345703125p-176] 
+
+; mpf : + 2279781589638757 -176
+; mpfd: + 2279781589638757 -176 (1.57256e-053) class: Pos. norm. non-zero
+; hwf : + 2279781589638757 -176 (1.57256e-053) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01010100000 #b0010001001100100000011000011000011001010011101100000)))
+(assert (= r (fp #b0 #b01101001111 #b1000000110010111001100000011110100001101111001100101)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3309.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3309.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..346352b99590dc7ae00668db04dcf4c1fb17b042
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3309.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.0057886050272741851330238205264322459697723388671875p895 {+ 26069559443827 895 (2.65676e+269)}
+; 1.0057886050272741851330238205264322459697723388671875p895 S == 1.4183008178995557546642203305964358150959014892578125p447
+; [HW: 1.4183008178995557546642203305964358150959014892578125p447] 
+
+; mpf : + 1883859407621213 447
+; mpfd: + 1883859407621213 447 (5.15438e+134) class: Pos. norm. non-zero
+; hwf : + 1883859407621213 447 (5.15438e+134) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11101111110 #b0000000101111011010111001010110101001000000101110011)))
+(assert (= r (fp #b0 #b10110111110 #b0110101100010101110000110010110011000100110001011101)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3640.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3640.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a09e36a95149fc099e4e1fb8ce14663b004d4195
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-3640.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.7590026414423791667474006317206658422946929931640625p566 {- 3418244013173121 566 (-4.24858e+170)}
+; -1.7590026414423791667474006317206658422946929931640625p566 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11000110101 #b1100001001001101111111110100001010010010100110000001)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4522.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4522.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2e5dedb7690f614b1eee88fb40c89c771ed3eea8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4522.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.5123558079432040113232460498693399131298065185546875p-919 {+ 2307445425734123 -919 (3.41262e-277)}
+; 1.5123558079432040113232460498693399131298065185546875p-919 S == 1.7391698065129832517783370349206961691379547119140625p-460
+; [HW: 1.7391698065129832517783370349206961691379547119140625p-460] 
+
+; mpf : + 3328924865175393 -460
+; mpfd: + 3328924865175393 -460 (5.84176e-139) class: Pos. norm. non-zero
+; hwf : + 3328924865175393 -460 (5.84176e-139) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00001101000 #b1000001100101001110000000000111100001000000111101011)))
+(assert (= r (fp #b0 #b01000110011 #b1011110100111010001110111000000100101001111101100001)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4749.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4749.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..28b3f522158357c701cdde4c13e4b3eacaa31556
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-4749.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.339512508826819381368977701640687882900238037109375p731 {- 1529028408240086 731 (-1.51312e+220)}
+; -1.339512508826819381368977701640687882900238037109375p731 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11011011010 #b0101011011101010010010101011000111111110011111010110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5573.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5573.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cbb4a6485c7d8818abdd8f0e63d0b48a98fbeed9
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5573.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.9322458900747940813147351946099661290645599365234375p-79 {+ 4198462243158519 -79 (3.19663e-024)}
+; 1.9322458900747940813147351946099661290645599365234375p-79 S == 1.965831066025152562559696889366023242473602294921875p-40
+; [HW: 1.965831066025152562559696889366023242473602294921875p-40] 
+
+; mpf : + 4349716429053726 -40
+; mpfd: + 4349716429053726 -40 (1.78791e-012) class: Pos. norm. non-zero
+; hwf : + 4349716429053726 -40 (1.78791e-012) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b01110110000 #b1110111010100111101010101010100110110011100111110111)))
+(assert (= r (fp #b0 #b01111010111 #b1111011101000000101101000110101000001001111100011110)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5601.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5601.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b439e7401643bfb1bfd1d960d48c327a3367d3c2
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-5601.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.763871296527660614827937024529092013835906982421875p569 {+ 3440170486400990 569 (3.40827e+171)}
+; 1.763871296527660614827937024529092013835906982421875p569 S == 1.8782285784896686209322069771587848663330078125p284
+; [HW: 1.8782285784896686209322069771587848663330078125p284] 
+
+; mpf : + 3955189898832192 284
+; mpfd: + 3955189898832192 284 (5.83804e+085) class: Pos. norm. non-zero
+; hwf : + 3955189898832192 284 (5.83804e+085) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11000111000 #b1100001110001101000100011011110011110000011111011110)))
+(assert (= r (fp #b0 #b10100011011 #b1110000011010011100101101000111100000110100101000000)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6056.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6056.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c8b6613bb9ff5c98e14ca7f53cfbedae5d6c93f8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6056.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = -1.760444188802023912643335279426537454128265380859375p-34 {- 3424736165324854 -34 (-1.02471e-010)}
+; -1.760444188802023912643335279426537454128265380859375p-34 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b01111011101 #b1100001010101100011110000110100101010110100000110110)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6302.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6302.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..598203fb2385cb11a614fe7536b95d97d247192e
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6302.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.7228888158382906770071940627531148493289947509765625p658 {+ 3255601801639625 658 (2.0606e+198)}
+; 1.7228888158382906770071940627531148493289947509765625p658 S == 1.3125885935198013942937222964246757328510284423828125p329
+; [HW: 1.3125885935198013942937222964246757328510284423828125p329] 
+
+; mpf : + 1407773873296045 329
+; mpfd: + 1407773873296045 329 (1.43548e+099) class: Pos. norm. non-zero
+; hwf : + 1407773873296045 329 (1.43548e+099) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b11010010001 #b1011100100001111001111011100111010101011011011001001)))
+(assert (= r (fp #b0 #b10101001000 #b0101000000000101110011100101101001000101001010101101)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6397.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6397.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e3c44d9903fec0c1357fe6cb3c58cec7a2c52b2a
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6397.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.4439198408440299115085281300707720220088958740234375p200 {+ 1999237229807543 200 (2.32029e+060)}
+; 1.4439198408440299115085281300707720220088958740234375p200 S == 1.2016321570447547895099660308915190398693084716796875p100
+; [HW: 1.2016321570447547895099660308915190398693084716796875p100] 
+
+; mpf : + 908070507332667 100
+; mpfd: + 908070507332667 100 (1.52325e+030) class: Pos. norm. non-zero
+; hwf : + 908070507332667 100 (1.52325e+030) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10011000111 #b0111000110100100101110110000111001111000011110110111)))
+(assert (= r (fp #b0 #b10001100011 #b0011001110011110001010100100000001010100010000111011)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6470.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6470.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f25c355b62fff29bb2da4d5f6056b1e6a91d3de8
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6470.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = -1.0433705507712784932294880491099320352077484130859375p558 {- 195323596292383 558 (-9.8441e+167)}
+; -1.0433705507712784932294880491099320352077484130859375p558 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b11000101101 #b0000101100011010010101010001100100101100000100011111)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6590.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6590.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..e2cb0cc1b169ac6eeb340a4e3cefcc29e62b06ef
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6590.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = -1.7151631772805007170035196395474486052989959716796875p372 {- 3220808618709563 372 (-1.64992e+112)}
+; -1.7151631772805007170035196395474486052989959716796875p372 S == NaN
+; [HW: NaN] 
+
+; mpf : + 4503599627370495 1024
+; mpfd: + 4503599627370495 1024 (1.#QNAN) class: NaN
+; hwf : - 2251799813685248 1024 (-1.#IND) class: NaN
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b1 #b10101110011 #b1011011100010100111011110001100110111001001000111011)))
+(assert (= r (_ NaN 11 53)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-667.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-667.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..1e7cc94b08346aa62a3fbfb9aab955271538b97c
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-667.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.0258320450380191690697984086000360548496246337890625p263 {+ 116337188407441 263 (1.52043e+079)}
+; 1.0258320450380191690697984086000360548496246337890625p263 S == 1.432363113905143148230081351357512176036834716796875p131
+; [HW: 1.432363113905143148230081351357512176036834716796875p131] 
+
+; mpf : + 1947190358671950 131
+; mpfd: + 1947190358671950 131 (3.89926e+039) class: Pos. norm. non-zero
+; hwf : + 1947190358671950 131 (3.89926e+039) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10100000110 #b0000011010011100111011011100110010100000100010010001)))
+(assert (= r (fp #b0 #b10010000010 #b0110111010101111010110010101101000111000001001001110)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6693.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6693.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2d37bef65b68c1460aa019113fde396b815e4877
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-6693.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: nearest, ties to even
+; Precision: double (11/53)
+; X = 1.1419933510931101761087802515248768031597137451171875p-803 {+ 639481203072019 -803 (2.1408e-242)}
+; 1.1419933510931101761087802515248768031597137451171875p-803 S == 1.5112864394899532261007379929651506245136260986328125p-402
+; [HW: 1.5112864394899532261007379929651506245136260986328125p-402] 
+
+; mpf : + 2302629418366541 -402
+; mpfd: + 2302629418366541 -402 (1.46315e-121) class: Pos. norm. non-zero
+; hwf : + 2302629418366541 -402 (1.46315e-121) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00011011100 #b0010010001011001101011010001111100110001110000010011)))
+(assert (= r (fp #b0 #b01001101101 #b1000001011100011101010110000100001111111011001001101)))
+(assert  (not (= (fp.sqrt roundNearestTiesToEven x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8277.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8277.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9b466873ec3e7df4ee1b938660d57e03e7ef8917
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8277.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to negative
+; Precision: double (11/53)
+; X = 1.21130410561237855660010609426535665988922119140625p-758 {+ 951629091297764 -758 (7.98944e-229)}
+; 1.21130410561237855660010609426535665988922119140625p-758 S == 1.10059261564503430008699069730937480926513671875p-379
+; [HW: 1.10059261564503430008699069730937480926513671875p-379] 
+
+; mpf : + 453028866335200 -379
+; mpfd: + 453028866335200 -379 (8.93837e-115) class: Pos. norm. non-zero
+; hwf : + 453028866335200 -379 (8.93837e-115) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00100001001 #b0011011000011000000001101001111100011101100111100100)))
+(assert (= r (fp #b0 #b01010000100 #b0001100111000000011100000000101001101010000111100000)))
+(assert  (not (= (fp.sqrt roundTowardNegative x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8937.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8937.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..62e7c4d7962c523971352b43793cd6bfa70e9faf
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-8937.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to zero
+; Precision: double (11/53)
+; X = 1.520255229161409094018608811893500387668609619140625p276 {+ 2343021256188874 276 (1.84585e+083)}
+; 1.520255229161409094018608811893500387668609619140625p276 S == 1.2329863053421998841940876445733010768890380859375p138
+; [HW: 1.2329863053421998841940876445733010768890380859375p138] 
+
+; mpf : + 1049277037921560 138
+; mpfd: + 1049277037921560 138 (4.29633e+041) class: Pos. norm. non-zero
+; hwf : + 1049277037921560 138 (4.29633e+041) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b10100010011 #b1000010100101111011100100101101011010010001111001010)))
+(assert (= r (fp #b0 #b10010001001 #b0011101110100100111111011001000111011100010100011000)))
+(assert  (not (= (fp.sqrt roundTowardZero x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-9497.smt2 b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-9497.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8c915a1f64b12380153a74b4050c1a5d6b701d03
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/sqrt-has-no-other-solution-9497.smt2
@@ -0,0 +1,24 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+(set-info :category "crafted")
+(set-info :source |Christoph M. Wintersteiger (cwinter@microsoft.com). Randomly generated floating-point testcases.|)
+; Rounding mode: to positive
+; Precision: double (11/53)
+; X = 1.9000057718251930349850908896769396960735321044921875p-534 {+ 4053265658623235 -534 (3.3786e-161)}
+; 1.9000057718251930349850908896769396960735321044921875p-534 S == 1.378406968868481019541150089935399591922760009765625p-267
+; [HW: 1.378406968868481019541150089935399591922760009765625p-267] 
+
+; mpf : + 1704193483990490 -267
+; mpfd: + 1704193483990490 -267 (5.81258e-081) class: Pos. norm. non-zero
+; hwf : + 1704193483990490 -267 (5.81258e-081) class: Pos. norm. non-zero
+
+(set-logic QF_FP)
+(set-info :status unsat)
+(define-sort FPN () (_ FloatingPoint 11 53))
+(declare-fun x () FPN)
+(declare-fun r () FPN)
+(assert (= x (fp #b0 #b00111101001 #b1110011001100110110001110011110000110011010100000011)))
+(assert (= r (fp #b0 #b01011110100 #b0110000011011111010001110111001111011110010111011010)))
+(assert  (not (= (fp.sqrt roundTowardPositive x) r)))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/test_v3_r8_vr10_c1_s18214.smt2 b/UnitTests/unsat/QF_FP/test_v3_r8_vr10_c1_s18214.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..77faba57bbfc74b8ac5a434f1a0ebfc05c71f7bf
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/test_v3_r8_vr10_c1_s18214.smt2
@@ -0,0 +1,128 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FP)
+(set-info :category "crafted")
+(set-info :source |Alberto Griggio <griggio@fbk.eu>. These benchmarks were used for the evaluation in the following paper: L. Haller, A. Griggio, M. Brain, D. Kroening: Deciding floating-point logic with systematic abstraction. FMCAD 2012. Real-numbered literals have been automatically translated by MathSAT|)
+(set-info :status unsat)
+;; MathSAT API call trace
+;; generated on 05/20/15 17:24:55
+
+(declare-fun x0 () (_ FloatingPoint 8 24))
+(declare-fun x1 () (_ FloatingPoint 8 24))
+(declare-fun x2 () (_ FloatingPoint 8 24))
+(define-fun _t_10 () (_ FloatingPoint 8 24) (fp #b0 #b10000010 #b01000000000000000000000))
+(define-fun _t_12 () (_ FloatingPoint 8 24) (fp #b1 #b10000010 #b01000000000000000000000))
+(define-fun _t_13 () (_ FloatingPoint 8 24) x0)
+(define-fun _t_14 () Bool (fp.leq _t_12 _t_13))
+(define-fun _t_15 () Bool (fp.leq _t_13 _t_10))
+(define-fun _t_16 () Bool (and _t_14 _t_15))
+(assert _t_16)
+(define-fun _t_17 () (_ FloatingPoint 8 24) x1)
+(define-fun _t_18 () Bool (fp.leq _t_12 _t_17))
+(define-fun _t_19 () Bool (fp.leq _t_17 _t_10))
+(define-fun _t_20 () Bool (and _t_18 _t_19))
+(assert _t_20)
+(define-fun _t_21 () (_ FloatingPoint 8 24) x2)
+(define-fun _t_22 () Bool (fp.leq _t_12 _t_21))
+(define-fun _t_23 () Bool (fp.leq _t_21 _t_10))
+(define-fun _t_24 () Bool (and _t_22 _t_23))
+(assert _t_24)
+(define-fun _t_3 () RoundingMode RNE)
+(define-fun _t_26 () (_ FloatingPoint 8 24) (fp #b0 #b00000000 #b00000000000000000000000))
+(define-fun _t_28 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b00101000111101011100001))
+(define-fun _t_30 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b11010100111111011111001))
+(define-fun _t_31 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_30))
+(define-fun _t_32 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_31))
+(define-fun _t_34 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b11101011100001010001111))
+(define-fun _t_35 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_34))
+(define-fun _t_36 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_32 _t_35))
+(define-fun _t_38 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b01101000011100101011000))
+(define-fun _t_39 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_38))
+(define-fun _t_40 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_36 _t_39))
+(define-fun _t_41 () Bool (fp.leq _t_28 _t_40))
+(assert _t_41)
+(define-fun _t_43 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b01100110011001100110010))
+(define-fun _t_45 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00100000110001001001110))
+(define-fun _t_46 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_45))
+(define-fun _t_47 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_46))
+(define-fun _t_50 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01100011010100111111100))
+(define-fun _t_51 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_50))
+(define-fun _t_52 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_47 _t_51))
+(define-fun _t_55 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10100110111010010111100))
+(define-fun _t_56 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_55))
+(define-fun _t_57 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_52 _t_56))
+(define-fun _t_58 () Bool (fp.leq _t_57 _t_43))
+(assert _t_58)
+(define-fun _t_60 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b00011000100100110111001))
+(define-fun _t_63 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01000110001001001101110))
+(define-fun _t_64 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_63))
+(define-fun _t_65 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_64))
+(define-fun _t_67 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b10010001011010000111001))
+(define-fun _t_68 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_67))
+(define-fun _t_69 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_65 _t_68))
+(define-fun _t_72 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11101111100111011011001))
+(define-fun _t_73 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_72))
+(define-fun _t_74 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_69 _t_73))
+(define-fun _t_75 () Bool (fp.leq _t_60 _t_74))
+(assert _t_75)
+(define-fun _t_78 () (_ FloatingPoint 8 24) (fp #b1 #b01111011 #b10010001011010000111000))
+(define-fun _t_80 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11000000100000110001001))
+(define-fun _t_81 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_80))
+(define-fun _t_82 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_81))
+(define-fun _t_84 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b11000010100011110101101))
+(define-fun _t_85 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_84))
+(define-fun _t_86 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_82 _t_85))
+(define-fun _t_89 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b11000010000011000100100))
+(define-fun _t_90 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_89))
+(define-fun _t_91 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_86 _t_90))
+(define-fun _t_92 () Bool (fp.leq _t_91 _t_78))
+(assert _t_92)
+(define-fun _t_95 () (_ FloatingPoint 8 24) (fp #b1 #b01111010 #b01000111101011100001001))
+(define-fun _t_97 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b10010000011000100100110))
+(define-fun _t_98 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_97))
+(define-fun _t_99 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_98))
+(define-fun _t_101 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b11100000010000011000100))
+(define-fun _t_102 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_101))
+(define-fun _t_103 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_99 _t_102))
+(define-fun _t_105 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b01101010011111101111100))
+(define-fun _t_106 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_105))
+(define-fun _t_107 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_103 _t_106))
+(define-fun _t_108 () Bool (fp.leq _t_95 _t_107))
+(assert _t_108)
+(define-fun _t_110 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b11100001010001111010110))
+(define-fun _t_112 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b00001100010010011011100))
+(define-fun _t_113 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_112))
+(define-fun _t_114 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_113))
+(define-fun _t_116 () (_ FloatingPoint 8 24) (fp #b0 #b01111110 #b01011001100110011001100))
+(define-fun _t_117 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_116))
+(define-fun _t_118 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_114 _t_117))
+(define-fun _t_121 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00111101111100111011011))
+(define-fun _t_122 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_121))
+(define-fun _t_123 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_118 _t_122))
+(define-fun _t_124 () Bool (fp.leq _t_110 _t_123))
+(assert _t_124)
+(define-fun _t_127 () (_ FloatingPoint 8 24) (fp #b1 #b01111001 #b01101000011100101010111))
+(define-fun _t_130 () (_ FloatingPoint 8 24) (fp #b1 #b01111101 #b10000001000001100010010))
+(define-fun _t_131 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_130))
+(define-fun _t_132 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_131))
+(define-fun _t_135 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00001001001101110100110))
+(define-fun _t_136 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_135))
+(define-fun _t_137 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_132 _t_136))
+(define-fun _t_139 () (_ FloatingPoint 8 24) (fp #b0 #b01111100 #b00110001001001101110101))
+(define-fun _t_140 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_139))
+(define-fun _t_141 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_137 _t_140))
+(define-fun _t_142 () Bool (fp.leq _t_141 _t_127))
+(assert _t_142)
+(define-fun _t_145 () (_ FloatingPoint 8 24) (fp #b1 #b01111010 #b10010001011010000111000))
+(define-fun _t_148 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b01010110000001000001100))
+(define-fun _t_149 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_13 _t_148))
+(define-fun _t_150 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_26 _t_149))
+(define-fun _t_152 () (_ FloatingPoint 8 24) (fp #b0 #b01111101 #b00001110010101100000010))
+(define-fun _t_153 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_17 _t_152))
+(define-fun _t_154 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_150 _t_153))
+(define-fun _t_157 () (_ FloatingPoint 8 24) (fp #b1 #b01111110 #b00011010100111111011110))
+(define-fun _t_158 () (_ FloatingPoint 8 24) (fp.mul _t_3 _t_21 _t_157))
+(define-fun _t_159 () (_ FloatingPoint 8 24) (fp.add _t_3 _t_154 _t_158))
+(define-fun _t_160 () Bool (fp.leq _t_159 _t_145))
+(assert _t_160)
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/zeros_consistent_1.smt2 b/UnitTests/unsat/QF_FP/zeros_consistent_1.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..b06a8649f2efdf429875c862c2ebbf272566100a
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/zeros_consistent_1.smt2
@@ -0,0 +1,14 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+;;; Processed by pysmt to remove constant-real bitvector literals
+(set-logic QF_FP)
+(set-info :source |SPARK inspired floating point problems by Florian Schanda|)
+(set-info :category "crafted")
+(set-info :status unsat)
+(declare-fun rm1 () RoundingMode)
+(declare-fun rm2 () RoundingMode)
+(define-fun a () Float32 ((_ to_fp 8 24) rm1 0.0))
+(define-fun b () Float32 ((_ to_fp 8 24) rm2 0.0))
+(assert (distinct a b))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FP/zeros_consistent_3.smt2 b/UnitTests/unsat/QF_FP/zeros_consistent_3.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a2dbb642c59010628cdc30e0a5f9be97179aaf85
--- /dev/null
+++ b/UnitTests/unsat/QF_FP/zeros_consistent_3.smt2
@@ -0,0 +1,14 @@
+(set-info :status unsat)
+(set-info :smt-lib-version 2.6)
+;;; Processed by pysmt to remove constant-real bitvector literals
+(set-logic QF_FP)
+(set-info :source |SPARK inspired floating point problems by Florian Schanda|)
+(set-info :category "crafted")
+(set-info :status unsat)
+(declare-fun rm1 () RoundingMode)
+(declare-fun rm2 () RoundingMode)
+(define-fun a () Float32 ((_ to_fp 8 24) rm1 0.0))
+(define-fun b () Float32 ((_ to_fp 8 24) rm2 (_ bv0 32)))
+(assert (distinct a b))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FPLRA/propExpLn2.smt2 b/UnitTests/unsat/QF_FPLRA/propExpLn2.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f7eab7d84ed4add44f80267c7592cdd7989afd6f
--- /dev/null
+++ b/UnitTests/unsat/QF_FPLRA/propExpLn2.smt2
@@ -0,0 +1,118 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FPLRA)
+(set-info :source |
+Generated by: Matthias Güdemann
+Generated on: 2019-03-10
+Generator: SBV
+Application: Numerical Approximation of Elementary Functions
+Target Solver: z3
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+; --- uninterpreted sorts ---
+; --- literal constants ---
+(define-fun s_2 () Bool false)
+(define-fun s_1 () Bool true)
+(define-fun s1 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7378697629483821.0 73786976294838206464.0)))
+(define-fun s3 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1.0 1.0)))
+(define-fun s7 () (_ FloatingPoint 11 53) (_ +zero 11 53))
+(define-fun s14 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 2.0 1.0)))
+(define-fun s18 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6.0 1.0)))
+(define-fun s22 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 24.0 1.0)))
+(define-fun s26 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 120.0 1.0)))
+(define-fun s30 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 720.0 1.0)))
+(define-fun s34 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 5040.0 1.0)))
+(define-fun s38 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 40320.0 1.0)))
+(define-fun s42 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 362880.0 1.0)))
+(define-fun s75 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1725329017245637.0 2251799813685248.0)))
+(define-fun s79 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6743802672015265.0 1125899906842624.0)))
+(define-fun s80 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 8479827738375907.0 2251799813685248.0)))
+(define-fun s89 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7737125245533627.0 77371252455336267181195264.0)))
+; --- skolem constants ---
+(declare-fun s0 () (_ FloatingPoint 11 53))
+; --- constant tables ---
+; --- skolemized tables ---
+; --- arrays ---
+; --- uninterpreted constants ---
+; --- user given axioms ---
+; --- formula ---
+(define-fun s2 () Bool (fp.gt s0 s1))
+(define-fun s4 () Bool (fp.lt s0 s3))
+(define-fun s5 () Bool (and s2 s4))
+(define-fun s6 () Bool (not s5))
+(define-fun s8 () Bool (fp.lt s0 s7))
+(define-fun s9 () (_ FloatingPoint 11 53) (fp.neg s0))
+(define-fun s10 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s3 s9))
+(define-fun s11 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s10 s3))
+(define-fun s12 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s3 s11))
+(define-fun s13 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s10))
+(define-fun s15 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s13 s14))
+(define-fun s16 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s12 s15))
+(define-fun s17 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s13))
+(define-fun s19 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s17 s18))
+(define-fun s20 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s16 s19))
+(define-fun s21 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s17))
+(define-fun s23 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s21 s22))
+(define-fun s24 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s20 s23))
+(define-fun s25 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s21))
+(define-fun s27 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s25 s26))
+(define-fun s28 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s24 s27))
+(define-fun s29 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s25))
+(define-fun s31 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s29 s30))
+(define-fun s32 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s28 s31))
+(define-fun s33 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s29))
+(define-fun s35 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s33 s34))
+(define-fun s36 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s32 s35))
+(define-fun s37 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s33))
+(define-fun s39 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s37 s38))
+(define-fun s40 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s36 s39))
+(define-fun s41 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s37))
+(define-fun s43 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s41 s42))
+(define-fun s44 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s40 s43))
+(define-fun s45 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s3 s44))
+(define-fun s46 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s3))
+(define-fun s47 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s46 s3))
+(define-fun s48 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s3 s47))
+(define-fun s49 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s46))
+(define-fun s50 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s49 s14))
+(define-fun s51 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s48 s50))
+(define-fun s52 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s49))
+(define-fun s53 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s52 s18))
+(define-fun s54 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s51 s53))
+(define-fun s55 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s52))
+(define-fun s56 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s55 s22))
+(define-fun s57 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s54 s56))
+(define-fun s58 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s55))
+(define-fun s59 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s58 s26))
+(define-fun s60 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s57 s59))
+(define-fun s61 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s58))
+(define-fun s62 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s61 s30))
+(define-fun s63 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s60 s62))
+(define-fun s64 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s61))
+(define-fun s65 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s64 s34))
+(define-fun s66 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s63 s65))
+(define-fun s67 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s64))
+(define-fun s68 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s67 s38))
+(define-fun s69 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s66 s68))
+(define-fun s70 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s67))
+(define-fun s71 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s70 s42))
+(define-fun s72 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s69 s71))
+(define-fun s73 () (_ FloatingPoint 11 53) (ite s8 s45 s72))
+(define-fun s74 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s73 s3))
+(define-fun s76 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s74 s75))
+(define-fun s77 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s18 s76))
+(define-fun s78 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s74 s77))
+(define-fun s81 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s74 s80))
+(define-fun s82 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s79 s81))
+(define-fun s83 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s78 s82))
+(define-fun s84 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s83))
+(define-fun s85 () Bool (fp.lt s84 s7))
+(define-fun s86 () (_ FloatingPoint 11 53) (fp.neg s84))
+(define-fun s87 () (_ FloatingPoint 11 53) (ite s85 s86 s84))
+(define-fun s88 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s87 s0))
+(define-fun s90 () Bool (fp.leq s88 s89))
+(define-fun s91 () Bool (or s6 s90))
+(assert (not s91))
+(check-sat)
+(exit)
diff --git a/UnitTests/unsat/QF_FPLRA/propExpLn3.smt2 b/UnitTests/unsat/QF_FPLRA/propExpLn3.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6888ee95f46c28becb574630fc67aa9f6af8e909
--- /dev/null
+++ b/UnitTests/unsat/QF_FPLRA/propExpLn3.smt2
@@ -0,0 +1,119 @@
+(set-info :smt-lib-version 2.6)
+(set-logic QF_FPLRA)
+(set-info :source |
+Generated by: Matthias Güdemann
+Generated on: 2019-03-10
+Generator: SBV
+Application: Numerical Approximation of Elementary Functions
+Target Solver: z3
+|)
+(set-info :license "https://creativecommons.org/licenses/by/4.0/")
+(set-info :category "industrial")
+(set-info :status unknown)
+; --- uninterpreted sorts ---
+; --- literal constants ---
+(define-fun s_2 () Bool false)
+(define-fun s_1 () Bool true)
+(define-fun s1 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7378697629483821.0 73786976294838206464.0)))
+(define-fun s3 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 5764607523034235.0 576460752303423488.0)))
+(define-fun s7 () (_ FloatingPoint 11 53) (_ +zero 11 53))
+(define-fun s9 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1.0 1.0)))
+(define-fun s15 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 2.0 1.0)))
+(define-fun s19 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6.0 1.0)))
+(define-fun s23 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 24.0 1.0)))
+(define-fun s27 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 120.0 1.0)))
+(define-fun s31 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 720.0 1.0)))
+(define-fun s35 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 5040.0 1.0)))
+(define-fun s39 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 40320.0 1.0)))
+(define-fun s43 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 362880.0 1.0)))
+(define-fun s76 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 1725329017245637.0 2251799813685248.0)))
+(define-fun s80 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 6743802672015265.0 1125899906842624.0)))
+(define-fun s81 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 8479827738375907.0 2251799813685248.0)))
+(define-fun s90 () (_ FloatingPoint 11 53) ((_ to_fp 11 53) roundNearestTiesToEven (/ 7737125245533627.0 77371252455336267181195264.0)))
+; --- skolem constants ---
+(declare-fun s0 () (_ FloatingPoint 11 53))
+; --- constant tables ---
+; --- skolemized tables ---
+; --- arrays ---
+; --- uninterpreted constants ---
+; --- user given axioms ---
+; --- formula ---
+(define-fun s2 () Bool (fp.gt s0 s1))
+(define-fun s4 () Bool (fp.lt s0 s3))
+(define-fun s5 () Bool (and s2 s4))
+(define-fun s6 () Bool (not s5))
+(define-fun s8 () Bool (fp.lt s0 s7))
+(define-fun s10 () (_ FloatingPoint 11 53) (fp.neg s0))
+(define-fun s11 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s9 s10))
+(define-fun s12 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s11 s9))
+(define-fun s13 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s9 s12))
+(define-fun s14 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s11))
+(define-fun s16 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s14 s15))
+(define-fun s17 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s13 s16))
+(define-fun s18 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s14))
+(define-fun s20 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s18 s19))
+(define-fun s21 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s17 s20))
+(define-fun s22 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s18))
+(define-fun s24 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s22 s23))
+(define-fun s25 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s21 s24))
+(define-fun s26 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s22))
+(define-fun s28 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s26 s27))
+(define-fun s29 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s25 s28))
+(define-fun s30 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s26))
+(define-fun s32 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s30 s31))
+(define-fun s33 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s29 s32))
+(define-fun s34 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s30))
+(define-fun s36 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s34 s35))
+(define-fun s37 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s33 s36))
+(define-fun s38 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s34))
+(define-fun s40 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s38 s39))
+(define-fun s41 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s37 s40))
+(define-fun s42 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s10 s38))
+(define-fun s44 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s42 s43))
+(define-fun s45 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s41 s44))
+(define-fun s46 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s9 s45))
+(define-fun s47 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s9))
+(define-fun s48 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s47 s9))
+(define-fun s49 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s9 s48))
+(define-fun s50 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s47))
+(define-fun s51 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s50 s15))
+(define-fun s52 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s49 s51))
+(define-fun s53 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s50))
+(define-fun s54 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s53 s19))
+(define-fun s55 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s52 s54))
+(define-fun s56 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s53))
+(define-fun s57 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s56 s23))
+(define-fun s58 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s55 s57))
+(define-fun s59 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s56))
+(define-fun s60 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s59 s27))
+(define-fun s61 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s58 s60))
+(define-fun s62 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s59))
+(define-fun s63 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s62 s31))
+(define-fun s64 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s61 s63))
+(define-fun s65 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s62))
+(define-fun s66 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s65 s35))
+(define-fun s67 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s64 s66))
+(define-fun s68 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s65))
+(define-fun s69 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s68 s39))
+(define-fun s70 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s67 s69))
+(define-fun s71 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s0 s68))
+(define-fun s72 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s71 s43))
+(define-fun s73 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s70 s72))
+(define-fun s74 () (_ FloatingPoint 11 53) (ite s8 s46 s73))
+(define-fun s75 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s74 s9))
+(define-fun s77 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s75 s76))
+(define-fun s78 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s19 s77))
+(define-fun s79 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s75 s78))
+(define-fun s82 () (_ FloatingPoint 11 53) (fp.mul roundNearestTiesToEven s75 s81))
+(define-fun s83 () (_ FloatingPoint 11 53) (fp.add roundNearestTiesToEven s80 s82))
+(define-fun s84 () (_ FloatingPoint 11 53) (fp.div roundNearestTiesToEven s79 s83))
+(define-fun s85 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s0 s84))
+(define-fun s86 () Bool (fp.lt s85 s7))
+(define-fun s87 () (_ FloatingPoint 11 53) (fp.neg s85))
+(define-fun s88 () (_ FloatingPoint 11 53) (ite s86 s87 s85))
+(define-fun s89 () (_ FloatingPoint 11 53) (fp.sub roundNearestTiesToEven s88 s0))
+(define-fun s91 () Bool (fp.leq s89 s90))
+(define-fun s92 () Bool (or s6 s91))
+(assert (not s92))
+(check-sat)
+(exit)
diff --git a/tests/sat/acosP_1_sat.smt2 b/tests/sat/acosP_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4c58a96f24ad893cf8332f07a066992534bec185
--- /dev/null
+++ b/tests/sat/acosP_1_sat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) 1.0))
+(check-sat)
diff --git a/tests/sat/acos_0_sat.smt2 b/tests/sat/acos_0_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..831c60f1e7b5bb2b9a97ee6ecc838664636d8848
--- /dev/null
+++ b/tests/sat/acos_0_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) (/ pi 2.0)))
+(check-sat)
+(get-value (X (/ pi 2.0)))
diff --git a/tests/sat/acos_1_sat.smt2 b/tests/sat/acos_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..68068cb5db692f990bddce4dbae992cf7ad13c62
--- /dev/null
+++ b/tests/sat/acos_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) 0.0))
+(check-sat)
+(get-value (X))
diff --git a/tests/sat/acos_m1_sat.smt2 b/tests/sat/acos_m1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..457c55266b76eda491e2346bfee0846d1adca0cb
--- /dev/null
+++ b/tests/sat/acos_m1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (= (colibri_acos X) pi))
+(check-sat)
+(get-value (X pi))
diff --git a/tests/sat/asinN_m1_sat.smt2 b/tests/sat/asinN_m1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..24e1a0667158ad9078c87029f87ae4fd3f738fc6
--- /dev/null
+++ b/tests/sat/asinN_m1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (<= (- 1.0) X) (<= X 0.0)))
+(assert (= (colibri_asin X) (- (/ pi 2.0))))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (colibri_asin X)))
diff --git a/tests/sat/asinP_1_sat.smt2 b/tests/sat/asinP_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..05eecd465207dc1962dc5d977945673238552a0f
--- /dev/null
+++ b/tests/sat/asinP_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (< 0.0 X) (<= X 1.0)))
+(assert (= (colibri_asin X) (/ pi 2.0)))
+(check-sat)
+(get-value (X (/ pi 2.0) (colibri_asin X)))
diff --git a/tests/sat/asinZ_sat.smt2 b/tests/sat/asinZ_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5fb0827785363bf3ee21cdca02669bd8b837d6c9
--- /dev/null
+++ b/tests/sat/asinZ_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (< (- 1.0) X) (< X 1.0)))
+(assert (= (colibri_asin X) 0.0))
+(check-sat)
+(get-value (X (colibri_asin X)))
diff --git a/tests/sat/atan_0_sat.smt2 b/tests/sat/atan_0_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..9af64ffa06586945620b8b40c3116ae90c827907
--- /dev/null
+++ b/tests/sat/atan_0_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- (/ pi 2.0)) X (/ pi 2.0)))
+(assert (= (colibri_atan X) 0.0))
+(check-sat)
+(get-value (X (/ pi 2.0)))
diff --git a/tests/sat/cos_eq_sin_p_pid2_sat.smt2 b/tests/sat/cos_eq_sin_p_pid2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a3afa49d5d4b606017647d78993c19a14bd4db46
--- /dev/null
+++ b/tests/sat/cos_eq_sin_p_pid2_sat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin+pid2 ((X Real)) Real (sin (+ (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (= (colibri_abs_real (- (cos X) (sin+pid2 X))) 0.0))
+(check-sat)
+
diff --git a/tests/sat/cos_eq_sin_pid2_m_X_sat.smt2 b/tests/sat/cos_eq_sin_pid2_m_X_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8ae9df49a2d892cfe8aee19489f13f8a6051b16f
--- /dev/null
+++ b/tests/sat/cos_eq_sin_pid2_m_X_sat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin_pid2-X ((X Real)) Real (sin (- (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (= (colibri_abs_real (- (cos X) (sin_pid2-X X))) 0.0))
+(check-sat)
+
diff --git a/tests/sat/cos_pi_sat.smt2 b/tests/sat/cos_pi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3d2086c0506c8253054a5740aa0e8cab182a330b
--- /dev/null
+++ b/tests/sat/cos_pi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (= (colibri_cos X) 0.0))
+(check-sat)
+(get-value (X (- pi) pi))
diff --git a/tests/sat/cos_pid2_sat.smt2 b/tests/sat/cos_pid2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a9ce64d052be4f6c12efb161e7de5a6794ce787b
--- /dev/null
+++ b/tests/sat/cos_pid2_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (= (colibri_cos X) (- 1.0)))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (/ pi 2.0)))
diff --git a/tests/sat/diff_sqrt_real_double_sat.smt2 b/tests/sat/diff_sqrt_real_double_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..f90271455e72a907b3e46190db28d35232c4f0ce
--- /dev/null
+++ b/tests/sat/diff_sqrt_real_double_sat.smt2
@@ -0,0 +1,34 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status sat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float64)
+
+(define-fun fp.isFinite ((x Float64)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+(define-fun diff () Real
+  (- (colibri_sqrt (fp.to_real x))
+     (fp.to_real (fp.sqrt RNE x))))
+
+(assert (fp.isFinite x))
+(assert (<= 0.0 (fp.to_real x) 2.0))
+;(assert (>= diff 0.0)) ; impossible ?
+
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (ite (>= diff 0.0)
+	  diff
+	  (- diff))
+;    0.0003)))) ; UNSAT: less than 5s, the time grows very fast if more accurate
+     (/ 1.0 9007199254740992.0))))) ; SAT: 2e-53, ulp for 2.0 in Float64
+
+(check-sat)
+
+(get-value (x (fp.to_real x) diff))
diff --git a/tests/sat/faulty.smt2 b/tests/sat/faulty.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..ab4a23bf480f04aee128cbd2516e3610aab477b5
--- /dev/null
+++ b/tests/sat/faulty.smt2
@@ -0,0 +1,31 @@
+;; produced by colibri.drv ;;
+(set-option :produce-proofs true)
+(set-logic ALL)
+(set-info :smt-lib-version 2.6)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+
+(declare-sort character 0)
+;(declare-fun c1 () character)
+;(declare-fun c2 () character)
+;; "mk"
+(declare-fun mk (Int) Int)
+
+;; "__t'mk"
+(declare-fun us_tqtmk ((Array Int character) Int) Int)
+
+;; "Literal_190"
+(declare-fun Literal_190 (Int) (Array Int character))
+
+;; "Literal_193"
+(declare-fun Literal_193 (Int) (Array Int character))
+
+;; Goal "def'vc"
+;; File "main.adb", line 1, characters 0-0
+(assert
+  (not
+  (= (us_tqtmk (Literal_190 0) (mk 0))
+     (us_tqtmk (Literal_193 0) (mk 0)))))
+
+(check-sat)
diff --git a/tests/sat/heron_sqrt_sat.smt2 b/tests/sat/heron_sqrt_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2d991af71589d57a5eb98de96c6781d2bcd0f391
--- /dev/null
+++ b/tests/sat/heron_sqrt_sat.smt2
@@ -0,0 +1,43 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status sat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float32)
+
+(define-fun fp.isFinite ((x Float32)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+
+;; Assume
+(assert (fp.isFinite x))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp #b0 #b01111110 #b01100110011001100110011) (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000))))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)) (fp #b0 #b01111111 #b11001100110011001100110)))
+
+;; Goal def'vc
+;; File "heron.ads", line 11, characters 0-0
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (let ((diff (+ (colibri_sqrt (fp.to_real x))
+		    (- (fp.to_real (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)))))))
+       (ite (>= diff 0.0)
+	    diff
+	    (- diff)))
+     0.1))))
+;     (+ (/ 1.0 4.0) (/ 3.0 8388608.0))))))
+
+(check-sat)
+
diff --git a/tests/sat/interlog_sat.smt2 b/tests/sat/interlog_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..fdd1f4f131afff71826c85463f8efcd4d5a3fcef
--- /dev/null
+++ b/tests/sat/interlog_sat.smt2
@@ -0,0 +1,29 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(declare-fun T () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun SZ () Real (colibri_sin Z))
+(define-fun CZ () Real (colibri_cos Z))
+(define-fun ST () Real (colibri_sin T))
+(define-fun CT () Real (colibri_cos T))
+
+(assert (<= (- pi) Z pi))
+(assert (<= (- pi) T pi))
+
+(assert (= 4.0 (+ (* X Y) (- T (* 2.0 Z)))))
+
+(assert (= 0.0 (+ (* X SZ) (* Y CT))))
+
+(assert (let ((CZ2 (* CZ CZ))
+              (ST2 (* ST ST)))
+        (= ST2 (+ (- X Y) CZ2))))
+
+(assert (= (* X Y Z) (* 2.0 T)))
+
+(check-sat)
+(get-value (X Y Z T))
diff --git a/tests/sat/sin2_cos2_sat.smt2 b/tests/sat/sin2_cos2_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..adaab4f8b6bc14e06f13ae25d322cdbae00767c3
--- /dev/null
+++ b/tests/sat/sin2_cos2_sat.smt2
@@ -0,0 +1,15 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin2 ((X Real)) Real (* (colibri_sin X) (colibri_sin X)))
+(define-fun cos2 ((X Real)) Real (* (colibri_cos X) (colibri_cos X)))
+(define-fun sin2+cos2 ((X Real)) Real (+ (sin2 X) (cos2 X)))
+
+(assert (<= (- pi) X pi))
+(assert (<= 0.99 (sin2+cos2 X) 1.01))
+(check-sat)
+(get-value (X (sin2+cos2 X)))
+
diff --git a/tests/sat/sinN_eq_cos_sat.smt2 b/tests/sat/sinN_eq_cos_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5f88be1fe68970155ac539c2c6e3adb096ac4aee
--- /dev/null
+++ b/tests/sat/sinN_eq_cos_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (= (colibri_sin X) (colibri_cos X)))
+(check-sat)
+(get-value (X (- (* 3.0 (/ pi 4.0))) (colibri_sin X) (colibri_cos X)))
diff --git a/tests/sat/sinP_eq_cos_sat.smt2 b/tests/sat/sinP_eq_cos_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..96db2db15eb573abb7f6392a525a6011fef11c94
--- /dev/null
+++ b/tests/sat/sinP_eq_cos_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (= (colibri_sin X) (colibri_cos X)))
+(check-sat)
+(get-value (X (/ pi 4.0) (colibri_sin X) (colibri_cos X)))
diff --git a/tests/sat/sin_mpi_sat.smt2 b/tests/sat/sin_mpi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..287a760e4e77236fa5124e112770624975be763c
--- /dev/null
+++ b/tests/sat/sin_mpi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (and (distinct X 0.0) (= (colibri_sin X) 0.0)))
+(check-sat)
+(get-value (X (- pi)))
diff --git a/tests/sat/sin_pi_sat.smt2 b/tests/sat/sin_pi_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..8acc12b1ad7a8d209d63e9ffca6ccf0838acbcc4
--- /dev/null
+++ b/tests/sat/sin_pi_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (and (distinct X 0.0) (= (colibri_sin X) 0.0)))
+(check-sat)
+(get-value (X pi))
diff --git a/tests/sat/tanN_eq_1_sat.smt2 b/tests/sat/tanN_eq_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..6cdf574cc6c4e762053613dd4a3ac2648e6c2642
--- /dev/null
+++ b/tests/sat/tanN_eq_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X 0.0))
+(assert (= (colibri_tan X) (- 1.0)))
+(check-sat)
+(get-value (X (* (- 3.0) (/ pi 4.0)) (colibri_sin X) (colibri_cos X)))
diff --git a/tests/sat/tanN_undef_sat.smt2 b/tests/sat/tanN_undef_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c6e963524c45b3bae67a5f39aa24e9406a33a8f3
--- /dev/null
+++ b/tests/sat/tanN_undef_sat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun optpid4 () Real (- (* 3 (/ pi 4.0))))
+
+(assert (<= (- pi) X 0.0))
+(assert (and (distinct X optpid4) (= (colibri_tan X) 1.0)))
+(check-sat)
+(get-value (X (- (/ pi 2.0)) (colibri_cos X)))
diff --git a/tests/sat/tanP_eq_1_sat.smt2 b/tests/sat/tanP_eq_1_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..81216c1fa44108fbd3f52f8ac3092f5dddfff713
--- /dev/null
+++ b/tests/sat/tanP_eq_1_sat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X pi))
+(assert (= (colibri_tan X) 1.0))
+(check-sat)
+(get-value (X (/ pi 4.0) (colibri_sin X) (colibri_cos X)))
diff --git a/tests/sat/tanP_undef_sat.smt2 b/tests/sat/tanP_undef_sat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..616394d37e566dd6aa4ee3ace7c57225c126eebd
--- /dev/null
+++ b/tests/sat/tanP_undef_sat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status sat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid4 () Real (/ pi 4.0))
+
+(assert (<= 0.0 X pi))
+(assert (and (distinct X pid4) (= (colibri_tan X) 1.0)))
+(check-sat)
+(get-value (X (/ pi 2.0) (colibri_cos X)))
diff --git a/tests/unsat/acos_0_unsat.smt2 b/tests/unsat/acos_0_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7e5cd0d85bc632143caa91e824d9e89025c21dfb
--- /dev/null
+++ b/tests/unsat/acos_0_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 0.0) (= (colibri_acos X) (/ pi 2.0))))
+(check-sat)
diff --git a/tests/unsat/acos_1_unsat.smt2 b/tests/unsat/acos_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c39ce21eacd47a88f044a17011c6e1fe4f90e9a5
--- /dev/null
+++ b/tests/unsat/acos_1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 1.0) (= (colibri_acos X) 0.0)))
+(check-sat)
diff --git a/tests/unsat/acos_m1_unsat.smt2 b/tests/unsat/acos_m1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..3e5c4d2dfd900c8967a5b4c2f01c84b1058b345c
--- /dev/null
+++ b/tests/unsat/acos_m1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X (- 1.0)) (= (colibri_acos X) pi)))
+(check-sat)
diff --git a/tests/unsat/asinN_m1_unsat.smt2 b/tests/unsat/asinN_m1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a10c8e78483e8b277efb7b08a2dc78c73eb550ab
--- /dev/null
+++ b/tests/unsat/asinN_m1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 0.0))
+(assert (and (distinct X (- 1.0)) (= (colibri_asin X) (/ pi 2.0))))
+(check-sat)
diff --git a/tests/unsat/asinP_1_unsat.smt2 b/tests/unsat/asinP_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..dbd75347da1a1dbabde0789375887ac794df286f
--- /dev/null
+++ b/tests/unsat/asinP_1_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= 0.0 X 1.0))
+(assert (and (distinct X 1.0) (= (colibri_asin X) (/ pi 2.0))))
+(check-sat)
diff --git a/tests/unsat/asinZ_unsat.smt2 b/tests/unsat/asinZ_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..a04ed854a884cf78e5d294f58c55699426efb796
--- /dev/null
+++ b/tests/unsat/asinZ_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- 1.0) X 1.0))
+(assert (and (distinct X 0.0) (= (colibri_asin X) 0.0)))
+(check-sat)
diff --git a/tests/unsat/atan_0_unsat.smt2 b/tests/unsat/atan_0_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..65e5d5dfdddbfec2f1357d4998bd257401c6f02f
--- /dev/null
+++ b/tests/unsat/atan_0_unsat.smt2
@@ -0,0 +1,9 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (and (distinct X 0.0) (= (colibri_atan X) 0.0)))
+(check-sat)
diff --git a/tests/unsat/atan_inf_unsat.smt2 b/tests/unsat/atan_inf_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7b70d6185df1e1bd53a8c3a7fb247c999d2e0cb5
--- /dev/null
+++ b/tests/unsat/atan_inf_unsat.smt2
@@ -0,0 +1,9 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (= (colibri_atan X) (/ pi 2.0)))
+(check-sat)
diff --git a/tests/unsat/atan_minf_unsat.smt2 b/tests/unsat/atan_minf_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..049278ecf87aaea2f33f8285bed148f9c924aa65
--- /dev/null
+++ b/tests/unsat/atan_minf_unsat.smt2
@@ -0,0 +1,9 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (= (colibri_atan X) (- (/ pi 2.0))))
+(check-sat)
diff --git a/tests/unsat/cos_eq_sin_p_pid2_unsat.smt2 b/tests/unsat/cos_eq_sin_p_pid2_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..5c810950678f1113ce01f4c9a0d03e3d16a9c7fe
--- /dev/null
+++ b/tests/unsat/cos_eq_sin_p_pid2_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin+pid2 ((X Real)) Real (sin (+ (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= (colibri_abs_real (- (cos X) (sin+pid2 X))) 0.01)))
+(check-sat)
+
diff --git a/tests/unsat/cos_eq_sin_pid2_m_X_unsat.smt2 b/tests/unsat/cos_eq_sin_pid2_m_X_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..32c64cddb237c86c670d0027fbe4440b486b9989
--- /dev/null
+++ b/tests/unsat/cos_eq_sin_pid2_m_X_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin ((X Real)) Real (colibri_sin X))
+(define-fun sin_pid2-X ((X Real)) Real (sin (- (/ pi 2.0) X)))
+(define-fun cos ((X Real)) Real (colibri_cos X))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= (colibri_abs_real (- (cos X) (sin_pid2-X X))) 0.01)))
+(check-sat)
+
diff --git a/tests/unsat/cos_pi_unsat.smt2 b/tests/unsat/cos_pi_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..7cb245f878372e1646c67aa091f390ed77bb6215
--- /dev/null
+++ b/tests/unsat/cos_pi_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (and (distinct (- (/ pi 2.0)) X (/ pi 2.0)) (= (colibri_cos X) 0.0)))
+(check-sat)
diff --git a/tests/unsat/diff_sqrt_real_double_unsat.smt2 b/tests/unsat/diff_sqrt_real_double_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..c693b2a2e5b14deacfb5bfde1c2436379b02e03f
--- /dev/null
+++ b/tests/unsat/diff_sqrt_real_double_unsat.smt2
@@ -0,0 +1,34 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status unsat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float64)
+
+(define-fun fp.isFinite ((x Float64)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+(define-fun diff () Real
+  (- (colibri_sqrt (fp.to_real x))
+     (fp.to_real (fp.sqrt RNE x))))
+
+(assert (fp.isFinite x))
+(assert (<= 0.0 (fp.to_real x) 2.0))
+;(assert (>= diff 0.0)) ; impossible ?
+
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (ite (>= diff 0.0)
+	  diff
+	  (- diff))
+     0.0003)))) ; UNSAT: less than 5s, the time grows very fast if more accurate
+;     (/ 1.0 9007199254740992.0))))) ; SAT: 2e-53, ulp for 2.0 in Float64
+
+(check-sat)
+
+(get-value (x (fp.to_real x) diff))
diff --git a/tests/unsat/div_real_rel_neg.smt2 b/tests/unsat/div_real_rel_neg.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..397b0177dd9a0fc2eb4cf8becf4aad520bbd4de7
--- /dev/null
+++ b/tests/unsat/div_real_rel_neg.smt2
@@ -0,0 +1,21 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(assert (= X C))
+(assert (= Y A))
+(assert (= Z B))
+(assert (ite (< Y X)
+	     (<= Y 0.0)
+	     (and (< Y 0.0) (<= Y X))))
+(assert (<= X 0.0))
+(assert (= (/ X Y) Z))
+; X = Y * Z
+(assert (not (<= 0.0 Z 1.0)))
+(check-sat)
+(exit)
diff --git a/tests/unsat/div_real_rel_pos.smt2 b/tests/unsat/div_real_rel_pos.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2d73766685976cdeeccb6d32070a570796f9f6b6
--- /dev/null
+++ b/tests/unsat/div_real_rel_pos.smt2
@@ -0,0 +1,21 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(assert (= X C))
+(assert (= Y A))
+(assert (= Z B))
+(assert (ite (> Y X)
+	     (>= Y 0.0)
+	     (and (> Y 0.0) (>= Y X))))
+(assert (>= X 0.0))
+(assert (= (/ X Y) Z))
+; X = Y * Z
+(assert (not (<= 0.0 Z 1.0)))
+(check-sat)
+(exit)
diff --git a/tests/unsat/heron_sqrt_unsat.smt2 b/tests/unsat/heron_sqrt_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..cb94935bc5a81f79709fdade0b188b19b26aaa4c
--- /dev/null
+++ b/tests/unsat/heron_sqrt_unsat.smt2
@@ -0,0 +1,43 @@
+;; produced by aern2.drv ;;
+(set-info :smt-lib-version 2.6)
+(set-logic ALL)
+(set-info :status unsat)
+;;; generated by SMT-LIB2 driver
+;;; SMT-LIB2 driver: bit-vectors, common part
+;;; SMT-LIB2: integer arithmetic
+;;; SMT-LIB2: real arithmetic
+
+(declare-const x Float32)
+
+(define-fun fp.isFinite ((x Float32)) Bool (not (or (fp.isInfinite x) (fp.isNaN x))))
+
+;; Assume
+(assert (fp.isFinite x))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp #b0 #b01111110 #b01100110011001100110011) (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000))))
+
+;; LoopInvariant
+(assert
+  (fp.leq (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE 
+  x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)) (fp #b0 #b01111111 #b11001100110011001100110)))
+
+;; Goal def'vc
+;; File "heron.ads", line 11, characters 0-0
+(assert
+  (not
+  (=>
+    (>= (fp.to_real x) 0.0)
+    (<=
+     (let ((diff (+ (colibri_sqrt (fp.to_real x))
+		    (- (fp.to_real (fp.div RNE (fp.add RNE (fp #b0 #b01111111 #b00000000000000000000000) (fp.div RNE x (fp #b0 #b01111111 #b00000000000000000000000))) (fp #b0 #b10000000 #b00000000000000000000000)))))))
+       (ite (>= diff 0.0)
+	    diff
+	    (- diff)))
+;     0.1))))
+     (+ (/ 1.0 4.0) (/ 3.0 8388608.0))))))
+
+(check-sat)
+
diff --git a/tests/unsat/interlog_unsat.smt2 b/tests/unsat/interlog_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..23e2db684ba6f0b28f7032e1dc193f66edd44a7a
--- /dev/null
+++ b/tests/unsat/interlog_unsat.smt2
@@ -0,0 +1,30 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(declare-fun Y () Real)
+(declare-fun Z () Real)
+(declare-fun T () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun SZ () Real (colibri_sin Z))
+(define-fun CZ () Real (colibri_cos Z))
+(define-fun ST () Real (colibri_sin T))
+(define-fun CT () Real (colibri_cos T))
+
+(assert (<= 0.0 X 10000.0))
+(assert (<= 0.0 Y 10000.0))
+(assert (<= 0.0 Z 2.0))
+(assert (<= 0.0 T 2.0))
+
+(assert (= 4.0 (+ (* X Y) (- T (* 2.0 Z)))))
+
+(assert (= 0.0 (+ (* X SZ) (* Y CT))))
+
+(assert (let ((CZ2 (* CZ CZ))
+              (ST2 (* ST ST)))
+        (= ST2 (+ (- X Y) CZ2))))
+
+(assert (= (* X Y Z) (* 2.0 T)))
+
+(check-sat)
diff --git a/tests/unsat/mult_real_rel_neg.smt2 b/tests/unsat/mult_real_rel_neg.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..17bdc33e8772fdd399c497038c259d3dcd2a46f8
--- /dev/null
+++ b/tests/unsat/mult_real_rel_neg.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(assert (ite (< A C)
+	     (<= A 0.0)
+	     (and (< A 0.0) (<= A C))))
+(assert (<= C 0.0))
+(assert (= (* A B) C))
+(assert (not (<= 0.0 B 1.0)))
+(check-sat)
+(exit)
diff --git a/tests/unsat/mult_real_rel_pos.smt2 b/tests/unsat/mult_real_rel_pos.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4f6c49567c044619bf3836539f000d62e90e0a56
--- /dev/null
+++ b/tests/unsat/mult_real_rel_pos.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+(declare-fun A () Real)
+(declare-fun B () Real)
+(declare-fun C () Real)
+(assert (ite (> A C)
+	     (>= A 0.0)
+	     (and (> A 0.0) (>= A C))))
+(assert (>= C 0.0))
+(assert (= (* A B) C))
+(assert (not (<= 0.0 B 1.0)))
+(check-sat)
+(exit)
diff --git a/tests/unsat/sin2_cos2_unsat.smt2 b/tests/unsat/sin2_cos2_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..dba31cb99799566554cb3e92d6013168dae5ce59
--- /dev/null
+++ b/tests/unsat/sin2_cos2_unsat.smt2
@@ -0,0 +1,14 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun sin2 ((X Real)) Real (* (colibri_sin X) (colibri_sin X)))
+(define-fun cos2 ((X Real)) Real (* (colibri_cos X) (colibri_cos X)))
+(define-fun sin2+cos2 ((X Real)) Real (+ (sin2 X) (cos2 X)))
+
+(assert (<= (- pi) X pi))
+(assert (not (<= 0.99 (sin2+cos2 X) 1.01)))
+(check-sat)
+
diff --git a/tests/unsat/sin_eq_cos_unsat.smt2 b/tests/unsat/sin_eq_cos_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..4002d88c78c8f2c1a415932b5dd1eacb2c39db73
--- /dev/null
+++ b/tests/unsat/sin_eq_cos_unsat.smt2
@@ -0,0 +1,11 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi) X pi))
+(assert (and (distinct X (/ pi 4.0) (- (* 3.0 (/ pi 4.0))))
+	     (= (colibri_sin X) (colibri_cos X))))
+(check-sat)
diff --git a/tests/unsat/sin_pi_unsat.smt2 b/tests/unsat/sin_pi_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..2551f08dc14a318c2c28b6cc4f4a36a0adbb9303
--- /dev/null
+++ b/tests/unsat/sin_pi_unsat.smt2
@@ -0,0 +1,10 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+
+(assert (<= (- pi)  X pi))
+(assert (and (distinct X 0.0 pi (- pi)) (= (colibri_sin X) 0.0)))
+(check-sat)
diff --git a/tests/unsat/tanN_eq_1_unsat.smt2 b/tests/unsat/tanN_eq_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..d9526ca18819682d2d9abaa630d588eba1a62429
--- /dev/null
+++ b/tests/unsat/tanN_eq_1_unsat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid2 () Real (/ colibri_pi 2.0))
+(define-fun optpid4 () Real (- (* 3 (/ pi 4.0))))
+
+(assert (< (- pid2) X 0.0))
+(assert (and (distinct X optpid4) (= (colibri_tan X) 1.0)))
+(check-sat)
diff --git a/tests/unsat/tanP_eq_1_unsat.smt2 b/tests/unsat/tanP_eq_1_unsat.smt2
new file mode 100644
index 0000000000000000000000000000000000000000..82e8c779a04af04fd0d2b19ac8b94809173394c3
--- /dev/null
+++ b/tests/unsat/tanP_eq_1_unsat.smt2
@@ -0,0 +1,12 @@
+(set-info :smt-lib-version 2.6)
+(set-info :status unsat)
+(set-logic ALL)
+
+(declare-fun X () Real)
+(define-fun pi () Real colibri_pi)
+(define-fun pid2 () Real (/ colibri_pi 2.0))
+(define-fun pid4 () Real (/ pi 4.0))
+
+(assert (< 0.0 X pid2))
+(assert (and (distinct X pid4) (= (colibri_tan X) 1.0)))
+(check-sat)