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)