(float (vNum_TCC1 0
(vNum_TCC1-1 nil 3321636413 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )) nil ))
(radix_div_vNum 0
(radix_div_vNum-1 nil 3319366647
("" (judgement-tcc)
((""
(case-replace
"expt(radix, Prec(b!1)) / radix=expt(radix, Prec(b!1)-1)" )
(("1" (grind-reals) nil nil )
("2" (hide 2)
(("2" (rewrite "expt_minus_aux" )
(("2" (rewrite "expt_x1_aux" ) nil nil )) nil ))
nil ))
nil ))
nil )
((int_minus_int_is_int application-judgement "int" integers
nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(expt def-decl "real" exponentiation nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(Format type-eq-decl nil float nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(expt_minus_aux formula-decl nil exponentiation nil )
(expt_x1_aux formula-decl nil exponentiation nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(^ const-decl "real" exponentiation nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(vNum const-decl "posnat" float nil ))
nil ))
(radix_less_vNum 0
(radix_less_vNum-1 nil 3319366647
("" (judgement-tcc)
(("" (lemma "both_sides_expt_gt1_ge_aux" )
(("" (inst -1 "radix" "Prec(b!1)-1" "0" )
(("" (grind-reals)
(("" (rewrite "expt_x1_aux" -1) (("" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((both_sides_expt_gt1_ge_aux formula-decl nil exponentiation
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int"
integers nil )
(expt_x1_aux formula-decl nil exponentiation nil )
(Format type-eq-decl nil float nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(^ const-decl "real" exponentiation nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(vNum const-decl "posnat" float nil ))
nil ))
(FtoR_TCC1 0
(FtoR_TCC1-1 nil 3318615387 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )) nil ))
(float_int_def 0
(float_int_def-1 nil 3544780855 ("" (grind) nil nil )
((float_int const-decl "float" float nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(FtoR const-decl "real" float nil ))
shostak))
(Fplus_TCC1 0
(Fplus_TCC1-1 nil 3319889173 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil ))
nil ))
(Fplus_TCC2 0
(Fplus_TCC2-1 nil 3319889173 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil ))
nil ))
(Fplus_TCC3 0
(Fplus_TCC3-1 nil 3319889173 ("" (subtype-tcc) nil nil )
((^ const-decl "real" exponentiation nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals
nil ))
nil ))
(Fminus_TCC1 0
(Fminus_TCC1-1 nil 3319889173 ("" (subtype-tcc) nil nil )
((^ const-decl "real" exponentiation nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals
nil ))
nil ))
(sum_float_commutes 0
(sum_float_commutes-1 nil 3545039871 ("" (grind) nil nil )
((mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(expt def-decl "real" exponentiation nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(^ const-decl "real" exponentiation nil )
(Fplus const-decl "float" float nil )
(+ const-decl "float" float nil ))
shostak))
(mult_float_commutes 0
(mult_float_commutes-1 nil 3545039902 ("" (grind) nil nil )
((Fmult const-decl "float" float nil )
(* const-decl "float" float nil ))
shostak))
(FexptCorrect_TCC1 0
(FexptCorrect_TCC1-1 nil 3545396627 ("" (subtype-tcc) nil nil )
((nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(FtoR const-decl "real" float nil ))
nil ))
(FexptCorrect 0
(FexptCorrect-1 nil 3545396632
("" (skeep)
(("" (expand "^" )
(("" (expand "Fexpt" )
(("" (expand "FtoR" )
(("" (lemma "mult_expt" )
(("" (case "n = 0" )
(("1" (replace -1)
(("1" (hide -) (("1" (grind) nil nil )) nil )) nil )
("2" (inst - "n" _ _)
(("2" (expand "^" - 1)
(("2" (rewrite -1)
(("1" (lemma "expt_times" )
(("1" (inst - "Fexp(f)" "n" "radix" )
(("1"
(replace -1 :dir rl)
(("1"
(hide -)
(("1"
(expand "^" + 2)
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (flatten)
(("2" (replace -1)
(("2"
(expand "expt" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((^ const-decl "real" exponentiation nil )
(^ const-decl "float" float nil )
(FtoR const-decl "real" float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(rat_expt application-judgement "rat" exponentiation nil )
(minus_int_is_int application-judgement "int" integers nil )
(expt def-decl "real" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation
nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(nat_expt application-judgement "nat" exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(expt_times formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(f skolem-const-decl "float" float nil )
(float type-eq-decl nil float nil )
(/= const-decl "boolean" notequal nil )
(int_exp application-judgement "int" exponentiation nil )
(mult_expt formula-decl nil exponentiation nil )
(Fexpt const-decl "float" float nil ))
nil ))
(sigma_TCC1 0
(sigma_TCC1-1 nil 3544869888 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(sigma_TCC2 0
(sigma_TCC2-1 nil 3544869888 ("" (termination-tcc) nil nil ) nil
nil ))
(FDivInt_TCC1 0
(FDivInt_TCC1-1 nil 3544783712
("" (skeep)
(("" (typepred "i" )
(("" (case "radix = mod(radix,i) + i * floor(radix / i)" )
(("1" (replace -3)
(("1" (assert )
(("1" (replace -1)
(("1" (assert )
(("1"
(case "FORALL (ii,jj:int): integer_pred(ii*jj)" )
(("1" (inst - "Fnum(f)" "floor(radix/i)" )
(("1" (assert )
(("1" (hide-all-but (-1 1))
(("1" (grind :exclude "floor" ) nil nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "mod" ) (("2" (propax) nil nil )) nil ))
nil ))
nil ))
nil )
((radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(mod const-decl "{k | abs(k) < abs(j)}" mod nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(nonzero_integer nonempty-type-eq-decl nil integers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nzint nonempty-type-eq-decl nil integers nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(/= const-decl "boolean" notequal nil )
(number nonempty-type-decl nil numbers nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(float type-eq-decl nil float nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(integer nonempty-type-from-decl nil integers nil )
(<= const-decl "bool" reals nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil ))
nil ))
(FDivInt_def 0
(FDivInt_def-1 nil 3544783715
("" (skeep)
(("" (expand "mod" )
(("" (name "k" "floor(radix/i)" )
(("" (case "k = radix/i" )
(("1" (expand "FDivInt" )
(("1" (replace -1 :dir rl)
(("1" (expand "FtoR" )
(("1" (lemma "expt_plus" )
(("1" (inst - "Fexp(f)-1" "1" "radix" )
(("1" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (replace -1) (("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mod const-decl "{k | abs(k) < abs(j)}" mod nil )
(expt_plus formula-decl nil exponentiation nil )
(expt_x1 formula-decl nil exponentiation nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(float type-eq-decl nil float nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(FtoR const-decl "real" float nil )
(FDivInt const-decl "float" float nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(integer nonempty-type-from-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(nzint nonempty-type-eq-decl nil integers nil ))
shostak))
(hathatln_TCC1 0
(hathatln_TCC1-1 nil 3318954543
("" (grind-reals)
(("" (wrap-formula -1 "exp" )
(("1" (rewrite "exp_ln" -1) (("1" (grind-reals) nil nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil )
((number nonempty-type-decl nil numbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(exp const-decl "{py | x = ln(py)}" ln_exp "lnexp_fnd/" )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(exp_0 formula-decl nil ln_exp "lnexp_fnd/" )
(exp_ln formula-decl nil ln_exp "lnexp_fnd/" ))
nil ))
(hathatln_TCC2 0
(hathatln_TCC2-1 nil 3318954543 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(/= const-decl "boolean" notequal nil )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(real_div_nzreal_is_real application-judgement "real" reals
nil ))
nil ))
(hathatln 0
(hathatln-1 nil 3318954554
("" (skeep)
(("" (expand "^^" )
(("" (case "radix=0" )
(("1" (assert ) nil nil )
("2" (assert )
(("2"
(case-replace
"-(ln(r) / ln(radix)) * ln(radix) = -ln(r)" )
(("1" (hide -1)
(("1" (rewrite "exp_neg" )
(("1" (rewrite "exp_ln" ) nil nil )) nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_div_nzreal_is_real application-judgement "real" reals
nil )
(minus_real_is_real application-judgement "real" reals nil )
(^^ const-decl "nnreal" expt "lnexp_fnd/" )
(posreal_div_posreal_is_posreal application-judgement
"posreal" real_types nil )
(real_times_real_is_real application-judgement "real" reals
nil )
(exp_ln formula-decl nil ln_exp "lnexp_fnd/" )
(exp_neg formula-decl nil ln_exp "lnexp_fnd/" )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil ))
shostak))
(hathat_int_TCC1 0
(hathat_int_TCC1-1 nil 3319195930 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(hathat_int_TCC2 0
(hathat_int_TCC2-1 nil 3545651010 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(hathat_int 0
(hathat_int-1 nil 3319197088
("" (skeep)
(("" (expand "^" )
(("" (case "e1 >= 0" )
(("1" (grind-reals)
(("1" (rewrite "hathat_nat" )
(("1" (expand "^" ) (("1" (propax) nil nil )) nil ))
nil ))
nil )
("2" (grind-reals)
(("2" (lemma "hathat_diff" )
(("2" (inst -1 "radix" "-e1" "0" )
(("2" (case-replace "0--e1=e1" )
(("1" (rewrite -2)
(("1" (rewrite "hathat_nat" )
(("1" (expand "^" )
(("1" (grind-reals) nil nil )) nil ))
nil ))
nil )
("2" (hide -1 2 3) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((^ const-decl "real" exponentiation nil )
(div_cancel4 formula-decl nil real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(hathat_to_0 formula-decl nil expt "lnexp_fnd/" )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(div_cancel2 formula-decl nil real_props nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(hathat_diff formula-decl nil expt "lnexp_fnd/" )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(hathat_nat formula-decl nil expt "lnexp_fnd/" )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil ))
shostak))
(Fsucc_TCC1 0
(Fsucc_TCC1-1 nil 3321636413
("" (skeep)
(("" (lemma "radix_div_vNum" ) (("" (inst?) nil nil )) nil ))
nil )
((radix_div_vNum formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil ))
nil ))
(Fpred_TCC1 0
(Fpred_TCC1-1 nil 3319211903
("" (skeep)
(("" (case-replace "-vNum(b) / radix = -(vNum(b)/radix)" )
(("1" (hide -1)
(("1" (lemma "integers.closed_neg" )
(("1" (inst?)
(("1" (hide 2)
(("1" (lemma "radix_div_vNum" )
(("1" (inst -1 "b" ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2) (("2" (assert ) nil nil )) nil ))
nil ))
nil )
((nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(radix formal-const-decl "above(1)" float nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(closed_neg formula-decl nil integers nil )
(radix_div_vNum formula-decl nil float nil )
(b skolem-const-decl "Format" float nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil ))
nil ))
(Fnormalize_TCC1 0
(Fnormalize_TCC1-1 nil 3318871237 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fbounded? const-decl "bool" float nil )
(^ const-decl "real" exponentiation nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(vNum const-decl "posnat" float nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
nil ))
(Fnormalize_TCC2 0
(Fnormalize_TCC2-1 nil 3318871237 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(^ const-decl "real" exponentiation nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(vNum const-decl "posnat" float nil )
(Fbounded? const-decl "bool" float nil )
(Fnormal? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(FtoR const-decl "real" float nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
nil ))
(Fnormalize_TCC3 0
(Fnormalize_TCC3-1 nil 3318871237 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fbounded? const-decl "bool" float nil )
(^ const-decl "real" exponentiation nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(vNum const-decl "posnat" float nil )
(Fnormal? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil ))
nil ))
(Fnormalize_TCC4 0
(Fnormalize_TCC4-1 nil 3318871237 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(^ const-decl "real" exponentiation nil )
(vNum const-decl "posnat" float nil )
(Fbounded? const-decl "bool" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil ))
nil ))
(Fnormalize_TCC5 0
(Fnormalize_TCC5-1 nil 3318871660
("" (skosimp)
(("" (grind-reals)
(("" (expand "abs" 4 2)
(("" (wrap-formula 2 "abs" )
(("" (expand "abs" 1 2)
(("" (cancel-by 4 "abs(Fnum(f!1))" )
(("" (hide-all-but (-1 3)) (("" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((both_sides_minus_lt2 formula-decl nil real_props nil )
(abs_mult formula-decl nil real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(float type-eq-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(Format type-eq-decl nil float nil )
(Fbounded? const-decl "bool" float nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(bijective? const-decl "bool" functions nil )
(id const-decl "(bijective?[T, T])" identity nil )
(TRUE const-decl "bool" booleans nil )
(abs_abs formula-decl nil real_props nil )
(div_cancel1 formula-decl nil real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(< const-decl "bool" reals nil )
(pos_div_ge formula-decl nil real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(/= const-decl "boolean" notequal nil )
(b!1 skolem-const-decl "Format" float nil )
(f!1 skolem-const-decl "(Fbounded?(b!1))" float nil )
(CBD_1 skolem-const-decl
"{n: nonneg_real | n >= Fnum(f!1) AND n >= -Fnum(f!1)}"
float nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil ))
nil ))
(Fnormalize_TCC6 0
(Fnormalize_TCC6-1 nil 3319287157
("" (skosimp)
(("" (split)
(("1"
(typepred
"v!1(b!1)((# Fnum := radix * Fnum(f!1), Fexp := Fexp(f!1) - 1 #))" )
(("1" (replaces -2)
(("1" (expand "FtoR" )
(("1" (rewrite "expt_div" :dir rl)
(("1" (rewrite "expt_x1" ) (("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(typepred
"v!1(b!1)((# Fnum := radix * Fnum(f!1), Fexp := Fexp(f!1) - 1 #))" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil )
((nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(expt_div formula-decl nil exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(expt_x1 formula-decl nil exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fcanonic? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(FtoR const-decl "real" float nil )
(<= const-decl "bool" reals nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(radix formal-const-decl "above(1)" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil ))
nil ))
(Fulp_TCC1 0
(Fulp_TCC1-1 nil 3318887371 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fbounded? const-decl "bool" float nil )
(vNum const-decl "posnat" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(FcanonicOpp 0
(FcanonicOpp-1 nil 3319221457
("" (skeep)
(("" (split)
(("1" (skosimp*)
(("1" (expand "Fcanonic?" )
(("1" (split)
(("1" (case "Fnormal?(b)(Fopp(f))" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fnormal?" "Fbounded?" "Fopp" )
(("2" (flatten)
(("2" (split)
(("1"
(case-replace
"abs(-(Fnum(f)))=abs(Fnum(f))" )
(("1"
(hide -1 -2 -3 2)
(("1"
(expand "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil )
("3"
(case-replace
"abs(radix * -(Fnum(f)))=abs(radix * Fnum(f))" )
(("3"
(hide -1 -2 -3 2)
(("3"
(expand "abs" )
(("3"
(grind-reals)
(("1"
(case "-(radix * (Fnum(f))) > 0" )
(("1" (grind-reals) nil nil )
("2"
(hide -1)
(("2"
(cancel-by 1 "radix" )
nil
nil ))
nil ))
nil )
("2"
(flip-ineq 2)
(("2"
(hide 2)
(("2"
(cancel-by 1 "radix" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (case "Fsubnormal?(b)(Fopp(f))" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fopp" "Fsubnormal?" "Fbounded?" )
(("2" (flatten)
(("2" (split)
(("1"
(case-replace
"abs(-(Fnum(f)))=abs(Fnum(f))" )
(("1"
(hide -1 -2 -3 -4 2)
(("1"
(expand "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil )
("3" (propax) nil nil )
("4"
(case-replace
"abs(radix * -(Fnum(f)))=abs(radix * Fnum(f))" )
(("4"
(hide -1 -2 -3 -4 2)
(("4"
(expand "abs" )
(("4"
(grind-reals)
(("1"
(flip-ineq -1)
(("1"
(cancel-by 1 "radix" )
nil
nil ))
nil )
("2"
(flip-ineq 2)
(("2"
(hide 2)
(("2"
(cancel-by 1 "radix" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (expand "Fcanonic?" )
(("2" (split)
(("1" (case "Fnormal?(b)(f)" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fnormal?" "Fopp" "Fbounded?" )
(("2" (flatten)
(("2" (split)
(("1"
(case-replace
"abs(Fnum(f))=abs(-(Fnum(f)))" )
(("1"
(hide -1 -2 -3 2)
(("1"
(expand "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil )
("3"
(case-replace
"abs(radix * (Fnum(f)))=abs(radix * -(Fnum(f)))" )
(("3"
(hide -1 -2 -3 2)
(("3"
(expand "abs" )
(("3"
(grind-reals)
(("1"
(flip-ineq -2)
(("1"
(cancel-by 1 "radix" )
nil
nil ))
nil )
("2"
(flip-ineq 1)
(("2"
(cancel-by 1 "radix" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (case " Fsubnormal?(b)(f)" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fsubnormal?" "Fopp" "Fbounded?" )
(("2" (flatten)
(("2" (split)
(("1"
(case-replace
"abs(Fnum(f))=abs(-(Fnum(f)))" )
(("1"
(hide -1 -2 -3 -4 2)
(("1"
(expand "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil )
("3" (propax) nil nil )
("4"
(case-replace
"abs(radix * (Fnum(f)))=abs(radix * -(Fnum(f)))" )
(("4"
(hide -1 -2 -3 -4 2)
(("4"
(expand "abs" )
(("4"
(grind-reals)
(("1"
(flip-ineq -2)
(("1"
(cancel-by 1 "radix" )
nil
nil ))
nil )
("2"
(flip-ineq 1)
(("2"
(cancel-by 1 "radix" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fcanonic? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fopp const-decl "float" float nil )
(Fnormal? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(Fbounded? const-decl "bool" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(neg_lt formula-decl nil real_props nil )
(neg_times_lt formula-decl nil real_props nil )
(radix formal-const-decl "above(1)" float nil )
(> const-decl "bool" reals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil ))
shostak))
(FcanonicBounded 0
(FcanonicBounded-1 nil 3319221336
("" (skeep)
(("" (expand * "Fcanonic?" "Fnormal?" "Fsubnormal?" )
(("" (split)
(("1" (flatten) nil nil ) ("2" (flatten) nil nil )) nil ))
nil ))
nil )
((Fnormal? const-decl "bool" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(Fsubnormal? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil ))
shostak))
(FpredCanonic 0
(FpredCanonic-1 nil 3319212045
("" (skeep)
(("" (expand "Fpred" )
(("" (grind-reals)
(("1" (expand "Fcanonic?" 1 1)
(("1"
(case "Fnormal?(b)((# Fnum := -(vNum(b) / radix), Fexp := 1 + Fexp(f) #))" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fnormal?" "Fbounded?" )
(("2" (split)
(("1" (expand "abs" 1 1)
(("1" (lift-if)
(("1" (split 1)
(("1"
(flatten)
(("1"
(real-props :simple? t)
(("1"
(cancel-by 1 "vNum(b)" )
nil
nil ))
nil ))
nil )
("2"
(flatten)
(("2" (field 2) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (grind) nil nil ) ("3" (grind) nil nil ))
nil ))
nil ))
nil )
("3" (hide -1 -2 2)
(("3" (rewrite "integers.closed_neg" )
(("3" (rewrite "radix_div_vNum" ) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 1)
(("2"
(case "Fnormal?(b)((# Fnum := vNum(b) - 1, Fexp := Fexp(f) - 1 #))" )
(("1" (expand "Fcanonic?" ) (("1" (assert ) nil nil ))
nil )
("2" (hide 2)
(("2" (expand * "Fnormal?" "Fbounded?" )
(("2" (split)
(("1" (expand "abs" 1 1)
(("1" (grind-reals) nil nil )) nil )
("2" (case "vNum(b) * radix - radix >=0" )
(("1" (expand "abs" 1 1)
(("1" (grind-reals)
(("1"
(isolate 1 r 1)
(("1"
(case "vNum(b) >= radix" )
(("1"
(case
"vNum(b) + radix <= vNum(b) * 2" )
(("1"
(case
"vNum(b) * 2 <= vNum(b) * radix" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 -2 -3 -4 2)
(("2"
(cancel-by 1 "vNum(b)" )
nil
nil ))
nil ))
nil )
("2"
(hide -2 -3 2)
(("2" (grind-reals) nil nil ))
nil ))
nil )
("2"
(hide -1 -2 2)
(("2"
(case
"integer_pred(vNum(b) / radix)" )
(("1"
(case "vNum(b)>=1" )
(("1"
(grind-reals)
(("1"
(lemma "div_simple" )
(("1"
(inst
-1
"vNum(b)"
"radix" )
(("1"
(grind-reals)
(("1"
(cancel-by 1 "radix" )
(("1"
(grind-reals)
(("1"
(hide 1 -3 -2 -1)
(("1"
(case
"k!1 >= 1 OR k!1 <=0" )
(("1"
(split)
(("1"
(propax)
nil
nil )
("2"
(case
"k!1 * radix <= 0" )
(("1"
(grind-reals)
nil
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil )
("2"
(assert )
(("2"
(rewrite "radix_div_vNum" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 2)
(("2" (cancel-by 1 "radix" ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (flip-ineq 2)
(("3"
(case "abs(radix*(Fnum(f) - 1))< vNum(b) OR abs(radix*(Fnum(f) - 1)) >= vNum(b)" )
(("1" (split)
(("1"
(case "Fsubnormal?(b)((# Fnum := Fnum(f) - 1, Fexp := Fexp(f) #))" )
(("1" (expand "Fcanonic?" )
(("1" (assert ) nil nil )) nil )
("2" (hide 2 3)
(("2" (expand * "Fsubnormal?" "Fbounded?" )
(("2" (split)
(("1" (mult-by 1 "radix" )
(("1"
(case-replace
"abs(Fnum(f) - 1) * radix=abs(radix * (Fnum(f) - 1))" )
(("1"
(case " vNum(b) <=vNum(b) * radix" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 -2 -3 -4 2)
(("2"
(div-by 1 "vNum(b)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2"
(hide -1 -2 -3 2)
(("2"
(rewrite "abs_mult" )
(("2"
(expand "abs" 1 2)
(("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (case "Fbounded?(b)(f)" )
(("1"
(expand "Fbounded?" )
(("1" (flatten) nil nil ))
nil )
("2"
(rewrite "FcanonicBounded" )
nil
nil ))
nil )
("3" (case "Fbounded?(b)(f)" )
(("1"
(expand "Fbounded?" )
(("1"
(flatten)
(("1" (grind-reals) nil nil ))
nil ))
nil )
("2"
(rewrite "FcanonicBounded" )
nil
nil ))
nil )
("4" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case "Fnormal?(b)((# Fnum := Fnum(f) - 1, Fexp := Fexp(f) #))" )
(("1" (expand "Fcanonic?" )
(("1" (assert ) nil nil )) nil )
("2" (hide 3)
(("2" (expand * "Fnormal?" "Fbounded?" )
(("2" (split)
(("1" (case "Fbounded?(b)(f)" )
(("1"
(expand "Fbounded?" )
(("1"
(flatten)
(("1"
(hide -2 -3 -4 -5)
(("1"
(expand * "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(rewrite "FcanonicBounded" )
nil
nil ))
nil )
("2" (case "Fbounded?(b)(f)" )
(("1"
(expand "Fbounded?" )
(("1" (flatten) nil nil ))
nil )
("2"
(rewrite "FcanonicBounded" )
nil
nil ))
nil )
("3" (hide -2 -3 2)
(("3" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 2 3) (("2" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("4" (case "Fbounded?(b)(f)" )
(("1" (expand "Fbounded?" )
(("1" (flatten)
(("1" (split-ineq -2)
(("1"
(case "abs(radix*(Fnum(f) - 1))< vNum(b) OR abs(radix*(Fnum(f) - 1)) >= vNum(b)" )
(("1" (split)
(("1"
(case "Fsubnormal?(b)((# Fnum := Fnum(f) - 1, Fexp := Fexp(f) #))" )
(("1" (expand "Fcanonic?" )
(("1" (assert ) nil nil )) nil )
("2" (hide 4)
(("2"
(expand * "Fsubnormal?" "Fbounded?" )
(("2"
(split)
(("1"
(case
" abs(Fnum(f) - 1) <= abs(radix * (Fnum(f) - 1))" )
(("1" (grind-reals) nil nil )
("2"
(rewrite "abs_mult" )
(("2"
(expand "abs" 1 2)
(("2"
(div-by 1 "abs(Fnum(f) - 1)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case "Fnormal?(b)((# Fnum := Fnum(f) - 1, Fexp := Fexp(f) #))" )
(("1" (expand "Fcanonic?" )
(("1" (assert ) nil nil )) nil )
("2" (hide 4)
(("2"
(expand * "Fnormal?" "Fbounded?" )
(("2"
(split)
(("1"
(hide -1 -2 -4 -4 3)
(("1"
(expand * "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (grind-reals) nil nil ))
nil )
("2"
(case "Fnormal?(b)((# Fnum := Fnum(f) - 1, Fexp := Fexp(f) #))" )
(("1" (expand "Fcanonic?" )
(("1" (assert ) nil nil )) nil )
("2" (hide 5)
(("2" (case "Fnormal?(b)(f)" )
(("1" (expand * "Fnormal?" "Fbounded?" )
(("1"
(split)
(("1"
(hide -1 -3 -4 2 4)
(("1"
(expand * "abs" )
(("1" (grind-reals) nil nil ))
nil ))
nil )
("2"
(hide -3 -4 2)
(("2"
(expand * "abs" )
(("2"
(grind-reals)
(("1"
(case "Fnum(f) <=0" )
(("1" (grind-reals) nil nil )
("2"
(case "Fnum(f) < 1" )
(("1" (grind-reals) nil nil )
("2"
(mult-by 1 "radix" )
(("2"
(hide -2 2 3 4 5 6)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"vNum(b) = radix * Fnum(f) OR vNum(b) < radix * Fnum(f)" )
(("1"
(split)
(("1" (assert ) nil nil )
("2"
(hide -2 1 3 4 5)
(("2"
(div-by -1 "radix" )
(("2"
(div-by 1 "radix" )
(("2"
(case-replace
"(Fnum(f) * radix - radix) / radix=Fnum(f)-1" )
(("1"
(hide -1)
(("1"
(lemma
"div_simple" )
(("1"
(inst
-1
"vNum(b)"
"radix" )
(("1"
(case
"(EXISTS (k:int): vNum(b) = k * radix)" )
(("1"
(skosimp*)
(("1"
(case-replace
"vNum(b) / radix=k!1" )
(("1"
(hide
-1
-2
-3)
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil )
("2"
(grind-reals)
(("2"
(rewrite
"radix_div_vNum" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(field)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2 4 5)
(("2"
(expand "Fcanonic?" )
(("2"
(split)
(("1" (propax) nil nil )
("2"
(expand "Fsubnormal?" )
(("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (rewrite "FcanonicBounded" ) nil nil ))
nil ))
nil ))
nil ))
nil )
((int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(div_cancel3 formula-decl nil real_props nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(times_div_cancel2 formula-decl nil extra_real_props nil )
(f skolem-const-decl "float" float nil )
(times_div_cancel1 formula-decl nil extra_real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(div_simp formula-decl nil real_props nil )
(both_sides_div_pos_le1 formula-decl nil real_props nil )
(abs_mult formula-decl nil real_props nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(FcanonicBounded formula-decl nil float nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(<= const-decl "bool" reals nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(div_simple formula-decl nil integer_props nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(neg_times_le formula-decl nil real_props nil )
(div_cancel2 formula-decl nil real_props nil )
(both_sides_times_pos_ge1 formula-decl nil real_props nil )
(nzint nonempty-type-eq-decl nil integers nil )
(int_times_even_is_even application-judgement "even_int"
integers nil )
(both_sides_times_pos_le1 formula-decl nil real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(div_cancel1 formula-decl nil real_props nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(Fcanonic? const-decl "bool" float nil )
(radix_div_vNum formula-decl nil float nil )
(closed_neg formula-decl nil integers nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(times_div1 formula-decl nil real_props nil )
(times_div2 formula-decl nil real_props nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(div_mult_pos_ge2 formula-decl nil real_props nil )
(div_mult_pos_ge1 formula-decl nil real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(< const-decl "bool" reals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(neg_neg formula-decl nil extra_tegies nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(Fsubnormal? const-decl "bool" float nil )
(neg_times_lt formula-decl nil real_props nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(neg_lt formula-decl nil real_props nil )
(zero_times1 formula-decl nil real_props nil )
(nzrat_abs_is_pos application-judgement
"{r: posrat | r >= q}" real_defs nil )
(minus_rat_is_rat application-judgement "rat" rationals nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(Fbounded? const-decl "bool" float nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fnormal? const-decl "bool" float nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(radix formal-const-decl "above(1)" float nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_int_is_int application-judgement "int" integers nil )
(div_cancel4 formula-decl nil real_props nil ))
shostak))
(RND_log_compute_TCC1 0
(RND_log_compute_TCC1-1 nil 3543227658
("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )
(minus_int_is_int application-judgement "int" integers nil ))
nil ))
(RND_log_compute_TCC2 0
(RND_log_compute_TCC2-1 nil 3543227658
("" (skeep)
(("" (assert )
(("" (case "x*radix/vNum(b) > 0" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (cross-mult 1)
(("2" (lemma "posreal_times_posreal_is_posreal" )
(("2" (inst?) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_times_real_is_real application-judgement "real" reals
nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posreal_times_posreal_is_posreal judgement-tcc nil
real_types nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(div_mult_pos_gt1 formula-decl nil extra_real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(Format type-eq-decl nil float nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil ))
nil ))
(RND_log_compute_TCC3 0
(RND_log_compute_TCC3-1 nil 3543227658
("" (skosimp*) (("" (assert ) nil nil )) nil )
((minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(RND_log_compute_TCC4 0
(RND_log_compute_TCC4-1 nil 3543227658
("" (skeep)
(("" (expand "vNum" )
(("" (rewrite "expt_plus" :dir rl)
(("" (mult-by -1 "radix ^ (1 + dExp(b) - Prec(b))" )
(("" (rewrite "expt_plus" :dir rl) nil nil )) nil ))
nil ))
nil ))
nil )
((vNum const-decl "posnat" float nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(expt_x0 formula-decl nil exponentiation nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(radix formal-const-decl "above(1)" float nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_plus formula-decl nil exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil ))
nil ))
(RND_log_compute 0
(RND_log_compute-1 nil 3543227662
(""
(case "FORALL (b: Format, x: nnreal):
x >= radix ^ (-dExp(b) - 1) * vNum(b) IMPLIES
floor(ln(x * radix / vNum(b)) / ln(radix)) =
log_nat(x * radix ^ (1 + dExp(b) - Prec(b)), radix)`1 - dExp(b)")
(("1" (skeep)
(("1" (inst - "b" "x" )
(("1" (assert ) nil nil )
("2" (expand "vNum" )
(("2" (typepred "radix^(Prec(b)-dExp(b)-1)" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (skeep)
(("2" (expand "vNum" )
(("2" (rewrite "expt_plus" :dir rl)
(("2" (name "yy" "x*radix^(dExp(b) - Prec(b) + 1)" )
(("2" (case "NOT yy>=1" )
(("1" (hide 2)
(("1" (expand "yy" +)
(("1"
(mult-by 1
"radix ^ (Prec(b) - 1 + -dExp(b))" )
(("1" (lemma "expt_plus" )
(("1"
(inst
-
"1 + dExp(b) - Prec(b)"
"Prec(b) - 1 + -dExp(b)"
"radix" )
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case "NOT x = yy*radix ^ (Prec(b) - 1 + -dExp(b))" )
(("1" (hide 2)
(("1" (expand "yy" +)
(("1" (rewrite "expt_plus" :dir rl)
(("1" (assert ) nil nil )) nil ))
nil ))
nil )
("2" (replace -1 +)
(("2" (rewrite "ln_div" )
(("1"
(case "radix ^ (Prec(b) - 1 + -dExp(b)) * radix = radix ^ (Prec(b) + -dExp(b))" )
(("1"
(replace -1)
(("1"
(hide -1)
(("1"
(rewrite "ln_mult" )
(("1"
(rewrite "expt_plus" +)
(("1"
(rewrite "ln_mult" )
(("1"
(assert )
(("1"
(case
"(ln(radix ^ -dExp(b)) + ln(yy)) / ln(radix) = (ln(yy)/ln(radix))-dExp(b)" )
(("1"
(replace -1)
(("1"
(hide -1)
(("1"
(lemma
"floor_eq_log_nat_ge_1" )
(("1"
(inst
-
"yy"
"radix" )
(("1"
(case
"floor((ln(yy) / ln(radix)) - dExp(b)) = floor(ln(yy) / ln(radix)) - dExp(b)" )
(("1"
(assert )
nil
nil )
("2"
(hide-all-but
1)
(("2"
(lemma
"floor_plus_int" )
(("2"
(inst
-
"-dExp(b)"
"ln(yy)/ln(radix)" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"ln(radix^(-dExp(b)))/ln(radix) = -dExp(b)" )
(("1" (assert ) nil nil )
("2"
(hide (2 3))
(("2"
(cross-mult 1)
(("2"
(rewrite "ln_expt" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"Prec(b)-1+-dExp(b)"
"1"
"radix" )
(("2"
(expand "^" - 3)
(("2"
(expand "expt" )
(("2"
(expand "expt" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2"
(lemma
"posreal_times_posreal_is_posreal" )
(("2" (inst?) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (hide 2)
(("3" (skeep)
(("3" (expand "vNum" )
(("3" (mult-by 1 "radix ^ (Prec(b) - 1 + -dExp(b))" )
(("3" (lemma "expt_plus" )
(("3"
(inst - "1 + dExp(b) - Prec(b)"
"Prec(b) - 1 + -dExp(b)" "radix" )
(("3" (assert )
(("3" (replace -1 :dir rl)
(("3" (lemma "expt_plus" )
(("3"
(inst - "Prec(b)" "-dExp(b)-1" "radix" )
(("3" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("4" (hide 2) (("4" (skeep) (("4" (assert ) nil nil )) nil ))
nil )
("5" (hide 2)
(("5" (skeep)
(("5" (assert )
(("5" (lemma "exp_ln" )
(("5" (inst?)
(("5" (replace -3) (("5" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("6" (hide 2)
(("6" (skeep)
(("6" (cross-mult 1)
(("6" (assert )
(("6" (lemma "posreal_times_posreal_is_posreal" )
(("6" (inst?) (("6" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil )
("7" (hide 2) (("7" (skeep) (("7" (assert ) nil nil )) nil ))
nil ))
nil )
((div_mult_pos_gt1 formula-decl nil extra_real_props nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(exp_0 formula-decl nil ln_exp "lnexp_fnd/" )
(exp_ln formula-decl nil ln_exp "lnexp_fnd/" )
(b skolem-const-decl "Format" float nil )
(ln_div formula-decl nil ln_exp "lnexp_fnd/" )
(real_minus_real_is_real application-judgement "real" reals
nil )
(expt def-decl "real" exponentiation nil )
(ln_mult formula-decl nil ln_exp "lnexp_fnd/" )
(minus_odd_is_odd application-judgement "odd_int" integers
nil )
(real_plus_real_is_real application-judgement "real" reals
nil )
(floor_plus_int formula-decl nil floor_ceil nil )
(floor_eq_log_nat_ge_1 formula-decl nil ln_approx
"lnexp_fnd/" )
(ln_expt formula-decl nil ln_exp "lnexp_fnd/" )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(div_cancel3 formula-decl nil real_props nil )
(posreal_times_posreal_is_posreal judgement-tcc nil
real_types nil )
(both_sides_times_pos_ge1 formula-decl nil real_props nil )
(expt_x0 formula-decl nil exponentiation nil )
(yy skolem-const-decl "nnreal" float nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(expt_plus formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(real_times_real_is_real application-judgement "real" reals
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(x skolem-const-decl "real" float nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nnreal type-eq-decl nil real_types nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(> const-decl "bool" reals nil )
(radix formal-const-decl "above(1)" float nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(integer nonempty-type-from-decl nil integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(log_nat def-decl "[n: nat, {y | y < p AND x = p ^ n * y}]"
log_nat "reals/" ))
nil ))
(RND_aux_TCC1 0
(RND_aux_TCC1-1 nil 3318940757 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(nat_exp application-judgement "nat" exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(hat_02n formula-decl nil power_series "series/" )
(/= const-decl "boolean" notequal nil )
(vNum const-decl "posnat" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
nil ))
(RND_aux_TCC2 0
(RND_aux_TCC2-1 nil 3318940757
("" (skeep)
(("" (expand "Fcanonic?" )
((""
(case "Fsubnormal?(b)
((# Fnum := floor(x * radix ^ (dExp(b))),
Fexp := -dExp(b) #))")
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fsubnormal?" )
(("2"
(case "abs(radix * floor(x * radix ^ (dExp(b)))) < vNum(b)" )
(("1" (expand "Fbounded?" )
(("1" (split)
(("1" (rewrite "abs_mult" -1)
(("1" (expand "abs" -1 1)
(("1" (mult-by 1 "radix" )
(("1"
(swap
"abs(floor(x * radix ^ (dExp(b))))"
*
"radix" )
(("1"
(case "vNum(b)<=vNum(b) * radix" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 -2 2)
(("2"
(div-by 1 "vNum(b)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil ))
nil ))
nil )
("2" (hide 2)
(("2" (rewrite "abs_mult" )
(("2" (expand "abs" 1 1)
(("2" (div-by 1 "radix" )
(("2"
(case "floor(x * radix ^ (dExp(b))) >=0" )
(("1"
(expand "abs" 1 1)
(("1"
(case
"x * radix ^ (dExp(b)) < vNum(b) / radix" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 2)
(("2"
(lemma "expt_inverse" )
(("2"
(inst -1 "dExp(b)+1" "radix" )
(("2"
(case-replace
"-(dExp(b) + 1)=-dExp(b) - 1" )
(("1"
(rewrite -2 -3)
(("1"
(rewrite "expt_plus" -3)
(("1"
(grind-reals)
nil
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fcanonic? const-decl "bool" float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(times_div_cancel1 formula-decl nil extra_real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(div_simp formula-decl nil real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(both_sides_div_pos_le1 formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(abs_mult formula-decl nil real_props nil )
(Fbounded? const-decl "bool" float nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(times_div2 formula-decl nil real_props nil )
(neg_times_le formula-decl nil real_props nil )
(neg_times_lt formula-decl nil real_props nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(expt_x1 formula-decl nil exponentiation nil )
(expt_plus formula-decl nil exponentiation nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(expt_inverse formula-decl nil exponentiation nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nonneg_floor_is_nat application-judgement "nat" floor_ceil
nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fsubnormal? const-decl "bool" float nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(integer nonempty-type-from-decl nil integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(> const-decl "bool" reals nil )
(radix formal-const-decl "above(1)" float nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
nil ))
(RND_aux_TCC3 0
(RND_aux_TCC3-2 "" 3318950531
("" (skeep) (("" (assert ) nil nil )) nil )
((minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil ))
shostak)
(RND_aux_TCC3-1 nil 3318940757
("" (skeep)
(("" (expand "Fcanonic?" )
((""
(case "Fsubnormal?(b)
((# Fnum := floor(x * radix ^ (dExp(b))),
Fexp := -dExp(b) #))")
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand * "Fsubnormal?" )
(("2"
(case "abs(radix * floor(x * radix ^ (dExp(b)))) < vNum(b)" )
(("1" (expand "Fbounded?" )
(("1" (split)
(("1" (rewrite "abs_mult" -1)
(("1" (expand "abs" -1 1)
(("1" (mult-by 1 "radix" )
(("1"
(swap
"abs(floor(x * radix ^ (dExp(b))))"
*
"radix" )
(("1"
(case "vNum(b)<=vNum(b) * radix" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 -2 2)
(("2"
(div-by 1 "vNum(b)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (propax) nil nil ))
nil ))
nil )
("2" (hide 2)
(("2" (rewrite "abs_mult" )
(("2" (expand "abs" 1 1)
(("2" (expand "abs" 1 1)
(("2" (div-by 1 "radix" )
(("2"
(case
"x * radix ^ (dExp(b)) < vNum(b) / radix" )
(("1"
(grind-reals)
(("1" (postpone) nil nil )
("2" (postpone) nil nil ))
nil )
("2"
(hide 2)
(("2"
(div-by 1 "radix ^ (dExp(b))" )
(("2"
(case
"radix ^ (-dExp(b) - 1)=1/radix ^ (dExp(b)+1)" )
(("1"
(rewrite -1 -2)
(("1"
(rewrite "expt_plus" )
(("1"
(rewrite "expt_x1" )
(("1"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil nil ))
(RND_aux_TCC4 0
(RND_aux_TCC4-1 nil 3318940757
("" (skeep)
(("" (expand "vNum" )
(("" (rewrite "expt_plus" :dir rl)
(("" (mult-by 2 "radix ^ (Prec(b) - 1 + -dExp(b))" )
(("" (assert )
(("" (rewrite "expt_plus" :dir rl)
(("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((vNum const-decl "posnat" float nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(both_sides_times_pos_ge1 formula-decl nil real_props nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(expt_x0 formula-decl nil exponentiation nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(radix formal-const-decl "above(1)" float nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_plus formula-decl nil exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil ))
nil ))
(RND_aux_TCC5 0
(RND_aux_TCC5-1 nil 3318940757
("" (skeep)
(("" (expand "vNum" )
(("" (rewrite "expt_plus" :dir rl)
(("" (mult-by 1 "radix ^ (1 + dExp(b) - Prec(b))" )
(("" (rewrite "expt_plus" :dir rl)
(("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((vNum const-decl "posnat" float nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(< const-decl "bool" reals nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(expt_x0 formula-decl nil exponentiation nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_int_is_int application-judgement "int" integers nil )
(radix formal-const-decl "above(1)" float nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_plus formula-decl nil exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
nil ))
(RND_aux_TCC6 0
(owre "fix" 3399983082
("" (skeep)
(("" (lemma "RND_log_compute" )
(("" (inst?)
(("" (assert )
(("" (replace -1 :dir rl)
(("" (hide -1)
(("" (skosimp)
(("" (expand "Fcanonic?" )
(("" (assert )
(("" (flatten)
(("" (typepred "e!1" )
((""
(replace -2 :hide? t)
((""
(name
"AA"
"floor(ln(x * radix / vNum(b)) / ln(radix))" )
((""
(replace -1)
((""
(expand "Fnormal?" )
((""
(expand "Fbounded?" )
((""
(split)
(("1"
(case
"0<= floor(x * radix ^ (-AA))" )
(("1"
(expand "abs" 1 1)
(("1"
(grind-reals)
(("1"
(case
"x * radix ^ (-AA) < vNum(b)" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide 2 -1)
(("2"
(case
"x * radix ^ (-AA)=x * radix ^^ (-AA)" )
(("1"
(replace -1)
(("1"
(case
"x * radix ^^ (-AA) < x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)-1))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1)) <= vNum(b)" )
(("1"
(hide
-3
-4)
(("1"
(name-replace
"WW"
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1))" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide
2
-1
-2
-3)
(("2"
(case-replace
"(ln(x * radix / vNum(b)) / ln(radix) - 1)=ln(x / vNum(b)) / ln(radix)" )
(("1"
(field)
(("1"
(rewrite
"hathatln" )
(("1"
(field)
nil
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(rewrite
"ln_div" )
(("2"
(rewrite
"ln_div" )
(("2"
(rewrite
"ln_mult" )
(("2"
(field)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2"
(cancel-by
1
"x" )
(("2"
(hide
-1
2)
(("2"
(expand
"^^" )
(("2"
(lemma
"exp_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(rewrite
-1)
(("2"
(hide
-1
2)
(("2"
(field)
(("2"
(case
"(ln(x * radix / vNum(b)) / ln(radix) - 1) < AA" )
(("1"
(rewrite
"ln_div" )
(("1"
(rewrite
"ln_mult" )
(("1"
(field)
(("1"
(mult-by
-1
"ln(radix)" )
(("1"
(field
-1)
nil
nil )
("2"
(hide
-1
-2
2)
(("2"
(case
"ln(radix) > 0" )
(("1"
(split)
(("1"
(grind-reals)
nil
nil )
("2"
(propax)
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
2)
(("2"
(case
"x>0" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide
2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 -2 2)
(("2"
(rewrite
"hathat_int" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"0 <= x * radix ^ (-AA)" )
(("1"
(hide -2 -3 2)
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(hide -1 -2 2 3)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(case
"-dExp(b) <= ln(x * radix / vNum(b)) / ln(radix)" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide -2 2)
(("2"
(mult-by
1
"ln(radix)"
+)
(("1"
(both-sides-f
1
"exp" )
(("1"
(case-replace
"exp(-dExp(b) * ln(radix))=radix^^(-dExp(b))" )
(("1"
(rewrite
"exp_ln" )
(("1"
(div-by
1
"radix" )
(("1"
(mult-by
1
"vNum(b)" )
(("1"
(case-replace
" radix ^ (-dExp(b)) / radix=radix ^ (-dExp(b) - 1)" )
(("1"
(field)
(("1"
(rewrite
"hathat_int" )
(("1"
(div-by
1
"radix" )
(("1"
(hide
-1
-2
-4)
(("1"
(case-replace
"(vNum(b) * radix ^ (-dExp(b))) / radix =radix ^ (-dExp(b) - 1) * vNum(b)" )
(("1"
(hide
-2
2)
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(hide
2
-1
-2)
(("2"
(lemma
"expt_plus" )
(("2"
(inst
-1
"-dExp(b)"
"-1"
"radix" )
(("2"
(grind-reals)
(("2"
(expand
"^"
1
2)
(("2"
(grind-reals)
(("2"
(rewrite
"expt_x1_aux" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2
-1
-2)
(("2"
(cross-mult
1)
(("2"
(case
"radix^(-dExp(b)-1)*radix = radix^(-dExp(b)-1)*radix^1" )
(("1"
(replace
-1)
(("1"
(hide
-1)
(("1"
(rewrite
"expt_plus"
:dir
rl)
nil
nil ))
nil ))
nil )
("2"
(expand
"^"
1)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2"
(expand "^^" )
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil )
("2"
(lemma
"ln_increasing" )
(("2"
(expand
"increasing?" )
(("2"
(lemma
"ln_exp" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2 -1)
(("2"
(case
"ln(radix) > 0" )
(("1"
(split)
(("1"
(assert )
nil
nil )
("2"
(propax)
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(expand "abs" 1 1)
(("3"
(grind-reals)
(("3"
(cancel-by 1 "radix" )
(("3"
(hide -1 1)
(("3"
(case
"vNum(b) / radix <= x * radix ^ (-AA)" )
(("1"
(case
"integer_pred(vNum(b) / radix)" )
(("1"
(hide -3 -4)
(("1"
(lemma
"div_simple" )
(("1"
(inst
-1
"vNum(b)"
"radix" )
(("1"
(case
"(EXISTS (k:int): vNum(b) = k * radix)" )
(("1"
(skosimp*)
(("1"
(case-replace
" vNum(b) / radix=k!1" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide
-2
-3
-4
2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
-3
2)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide-all-but
1)
(("2"
(rewrite
"radix_div_vNum" )
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(case
"vNum(b) / radix <= x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix))) <= x * radix ^ (-AA)" )
(("1"
(name-replace
"A1"
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)))" )
(("1"
(name-replace
"A2"
"vNum(b) / radix" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide 2 -1)
(("2"
(cancel-by
1
"x" )
(("2"
(hide
-1
1)
(("2"
(case-replace
"radix ^ (-AA)=radix ^^ (-AA)" )
(("1"
(expand
"^^" )
(("1"
(lemma
"exp_increasing" )
(("1"
(expand
"increasing?" )
(("1"
(rewrite
-1)
(("1"
(hide
-1
-2
-3
2)
(("1"
(div-by
1
"-ln(radix)"
-)
(("1"
(field)
nil
nil )
("2"
(case
"ln(radix)>0" )
(("1"
(assert )
nil
nil )
("2"
(hide
-1
2
3)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
2)
(("2"
(rewrite
"hathat_int" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
2)
(("2"
(rewrite
"hathatln" )
(("2"
(field)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((RND_log_compute formula-decl nil float nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(Fcanonic? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(nnrat_div_posrat_is_nnrat application-judgement "nonneg_rat"
rationals nil )
(radix_div_vNum formula-decl nil float nil )
(nzint nonempty-type-eq-decl nil integers nil )
(div_simple formula-decl nil integer_props nil )
(neg_ge formula-decl nil real_props nil )
(pos_times_ge formula-decl nil real_props nil )
(cross_mult formula-decl nil real_props nil )
(negreal nonempty-type-eq-decl nil real_types nil )
(nonpos_real nonempty-type-eq-decl nil real_types nil )
(both_sides_div_neg_le1 formula-decl nil real_props nil )
(exp_increasing formula-decl nil ln_exp "lnexp_fnd/" )
(nzreal_times_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(CBD_10 skolem-const-decl "nonneg_real" float nil )
(div_mult_pos_ge1 formula-decl nil real_props nil )
(both_sides_times_pos_le2 formula-decl nil real_props nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(nonzero_times3 formula-decl nil real_props nil )
(div_div1 formula-decl nil real_props nil )
(div_mult_pos_le2 formula-decl nil real_props nil )
(neg_times_lt formula-decl nil real_props nil )
(both_sides_times_pos_le1 formula-decl nil real_props nil )
(div_cancel2 formula-decl nil real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(ln_increasing formula-decl nil ln_exp "lnexp_fnd/" )
(ln_exp formula-decl nil ln_exp "lnexp_fnd/" )
(increasing? const-decl "bool" real_fun_preds "reals/" )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(expt_x1_aux formula-decl nil exponentiation nil )
(times_div2 formula-decl nil real_props nil )
(both_sides_times2 formula-decl nil real_props nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(div_cancel3 formula-decl nil real_props nil )
(expt_plus formula-decl nil exponentiation nil )
(times_div_cancel2 formula-decl nil extra_real_props nil )
(expt def-decl "real" exponentiation nil )
(exp_ln formula-decl nil ln_exp "lnexp_fnd/" )
(exp const-decl "{py | x = ln(py)}" ln_exp "lnexp_fnd/" )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(hathat_int formula-decl nil float nil )
(exp_strict_increasing formula-decl nil ln_exp "lnexp_fnd/" )
(div_cancel1 formula-decl nil real_props nil )
(ln_1 formula-decl nil ln_exp "lnexp_fnd/" )
(ln_strict_increasing formula-decl nil ln_exp "lnexp_fnd/" )
(strict_increasing? const-decl "bool" real_fun_preds
"reals/" )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(both_sides_div_pos_le1 formula-decl nil real_props nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(CBD_6 skolem-const-decl "nonneg_real" float nil )
(pos_div_ge formula-decl nil real_props nil )
(both_sides_times_pos_lt2 formula-decl nil real_props nil )
(neg_times_le formula-decl nil real_props nil )
(ge_times_ge_pos formula-decl nil real_props nil )
(times_div1 formula-decl nil real_props nil )
(bijective? const-decl "bool" functions nil )
(id const-decl "(bijective?[T, T])" identity nil )
(TRUE const-decl "bool" booleans nil )
(pos_div_gt formula-decl nil real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(hathatln formula-decl nil float nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(pos_times_gt formula-decl nil real_props nil )
(ln_div formula-decl nil ln_exp "lnexp_fnd/" )
(ln_mult formula-decl nil ln_exp "lnexp_fnd/" )
(minus_odd_is_odd application-judgement "odd_int" integers
nil )
(real_plus_real_is_real application-judgement "real" reals
nil )
(div_cancel4 formula-decl nil real_props nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(minus_real_is_real application-judgement "real" reals nil )
(^^ const-decl "nnreal" expt "lnexp_fnd/" )
(nnreal type-eq-decl nil real_types nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(Fnormal? const-decl "bool" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(integer nonempty-type-from-decl nil integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(radix formal-const-decl "above(1)" float nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(nonneg_floor_is_nat application-judgement "nat" floor_ceil
nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(real_times_real_is_real application-judgement "real" reals
nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
shostak)
(RND_aux_TCC6-2 nil 3399983047
(";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(skeep)
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(skosimp)
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(expand "Fcanonic?" )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(assert )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(flatten)
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(typepred "e!1" )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(replace -3 :hide? t)
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(name "AA"
"floor(ln(x * radix / vNum(b)) / ln(radix))" )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(replace -1)
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(expand "Fnormal?" )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(expand "Fbounded?" )
((";;; Proof RND_aux_TCC6-2 for formula float.RND_aux_TCC6"
(split)
(("1"
(case "0<= floor(x * radix ^ (-AA))" )
(("1"
(expand "abs" 1 1)
(("1"
(grind-reals)
(("1"
(case
"x * radix ^ (-AA) < vNum(b)" )
(("1" (grind-reals) nil )
("2"
(hide 2 -1)
(("2"
(case
"x * radix ^ (-AA)=x * radix ^^ (-AA)" )
(("1"
(replace -1)
(("1"
(case
"x * radix ^^ (-AA) < x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)-1))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1)) <= vNum(b)" )
(("1"
(hide -3 -4)
(("1"
(name-replace
"WW"
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1))" )
(("1"
(assert )
nil )))))
("2"
(hide 2 -1 -2 -3)
(("2"
(case-replace
"(ln(x * radix / vNum(b)) / ln(radix) - 1)=ln(x / vNum(b)) / ln(radix)" )
(("1"
(field)
(("1"
(rewrite
"hathatln" )
(("1"
(field)
nil )))))
("2"
(hide 2)
(("2"
(rewrite
"ln_div" )
(("2"
(rewrite
"ln_div" )
(("2"
(rewrite
"ln_mult" )
(("2"
(field)
nil )))))))))))))))
("2"
(hide -1 2)
(("2"
(cancel-by 1 "x" )
(("2"
(hide -1 2)
(("2"
(expand "^^" )
(("2"
(lemma
"exp_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(rewrite
-1)
(("2"
(hide
-1
2)
(("2"
(field)
(("2"
(case
"(ln(x * radix / vNum(b)) / ln(radix) - 1) < AA" )
(("1"
(rewrite
"ln_div" )
(("1"
(rewrite
"ln_mult" )
(("1"
(field)
(("1"
(mult-by
-1
"ln(radix)" )
(("1"
(field
-1)
nil )
("2"
(hide
-1
-2
2)
(("2"
(case
"ln(radix) > 0" )
(("1"
(split)
(("1"
(grind-reals)
nil )
("2"
(propax)
nil )))
("2"
(hide
2)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil )))))))))))))))))))
("2"
(hide
-1
-2
2)
(("2"
(case
"x>0" )
(("1"
(grind-reals)
nil )
("2"
(hide
2)
(("2"
(grind-reals)
nil )))))))))
("2"
(hide
2)
(("2"
(grind-reals)
nil )))))))))))))))))))))))))))
("2"
(hide -1 -2 2)
(("2"
(rewrite "hathat_int" )
nil )))))))))))))
("2"
(case "0 <= x * radix ^ (-AA)" )
(("1"
(hide -2 -3 2)
(("1" (grind-reals) nil )))
("2"
(hide -1 -2 2 3)
(("2" (grind-reals) nil )))))))
("2"
(case
"-dExp(b) <= ln(x * radix / vNum(b)) / ln(radix)" )
(("1" (grind-reals) nil )
("2"
(hide -2 2)
(("2"
(mult-by 1 "ln(radix)" +)
(("1"
(wrap-formula 1 "exp" )
(("1"
(case-replace
"exp(-dExp(b) * ln(radix))=radix^^(-dExp(b))" )
(("1"
(rewrite "exp_ln" )
(("1"
(div-by 1 "radix" )
(("1"
(mult-by 1 "vNum(b)" )
(("1"
(case-replace
" radix ^ (-dExp(b)) / radix=radix ^ (-dExp(b) - 1)" )
(("1"
(field)
(("1"
(rewrite
"hathat_int" )
(("1"
(div-by
1
"radix" )
(("1"
(hide
-1
-2
-4)
(("1"
(case-replace
"(vNum(b) * radix ^ (-dExp(b))) / radix =radix ^ (-dExp(b) - 1) * vNum(b)" )
(("1"
(hide
-2
2)
(("1"
(grind-reals)
nil )))
("2"
(hide
2
-1
-2)
(("2"
(lemma
"expt_plus" )
(("2"
(inst
-1
"-dExp(b)"
"-1"
"radix" )
(("2"
(grind-reals)
(("2"
(expand
"^"
1
2)
(("2"
(grind-reals)
(("2"
(rewrite
"expt_x1_aux" )
nil )))))))))))))))))))))))
("2"
(hide 2 -1 -2)
(("2"
(lemma
"expt_plus" )
(("2"
(inst
-1
"-dExp(b)"
"-1"
"radix" )
(("2"
(grind-reals)
(("2"
(expand
"^"
1
2)
(("2"
(grind-reals)
(("2"
(rewrite
"expt_x1_aux" )
nil )))))))))))))))))))))
("2"
(hide -1 2)
(("2"
(expand "^^" )
(("2" (propax) nil )))))))
("2"
(lemma "ln_increasing" )
(("2"
(expand "increasing?" )
(("2"
(lemma "ln_exp" )
(("2"
(grind-reals)
nil )))))))))
("2"
(hide 2 -1)
(("2"
(case "ln(radix) > 0" )
(("1"
(split)
(("1" (assert ) nil )
("2" (propax) nil )))
("2"
(hide 2)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst -1 "1" "radix" )
(("2"
(grind-reals)
nil )))))))))))))))))))
("3"
(expand "abs" 1 1)
(("3"
(grind-reals)
(("3"
(cancel-by 1 "radix" )
(("3"
(hide -1 1)
(("3"
(case
"vNum(b) / radix <= x * radix ^ (-AA)" )
(("1"
(case
"integer_pred(vNum(b) / radix)" )
(("1"
(hide -3 -4)
(("1"
(lemma "div_simple" )
(("1"
(inst
-1
"vNum(b)"
"radix" )
(("1"
(case
"(EXISTS (k:int): vNum(b) = k * radix)" )
(("1"
(skosimp*)
(("1"
(case-replace
" vNum(b) / radix=k!1" )
(("1"
(grind-reals)
nil )
("2"
(hide
-2
-3
-4
2)
(("2"
(grind-reals)
nil )))))))
("2"
(hide -3 2)
(("2"
(assert )
nil )))))))))))
("2"
(assert )
(("2"
(hide-all-but 1)
(("2"
(rewrite
"radix_div_vNum" )
nil )))))))
("2"
(hide 2)
(("2"
(case
"vNum(b) / radix <= x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix))) <= x * radix ^ (-AA)" )
(("1" (assert ) nil )
("2"
(hide 2 -1)
(("2"
(cancel-by 1 "x" )
(("2"
(hide -1 1)
(("2"
(case-replace
"radix ^ (-AA)=radix ^^ (-AA)" )
(("1"
(expand "^^" )
(("1"
(lemma
"exp_increasing" )
(("1"
(expand
"increasing?" )
(("1"
(rewrite
-1)
(("1"
(hide
-1
-2
-3
2)
(("1"
(div-by
1
"-ln(radix)"
-)
(("1"
(field)
nil )
("2"
(case
"ln(radix)>0" )
(("1"
(assert )
nil )
("2"
(hide
-1
2
3)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil )))))))))))))))))))))))
("2"
(hide
-1
-2
2)
(("2"
(rewrite
"hathat_int" )
nil )))))))))))))
("2"
(hide -1 -2 2)
(("2"
(rewrite "hathatln" )
(("2"
(field)
nil ))))))))))))))))))))))))))))))))))))))))))
";;; developed with shostak decision procedures")
((increasing? const-decl "bool" real_fun_preds "reals/" )
(strict_increasing? const-decl "bool" real_fun_preds
"reals/" ))
nil )
(RND_aux_TCC6-1 nil 3318940757
("" (skeep)
((""
(case "Fnormal?(b)
((# Fnum
:= floor(x *
radix ^
(-floor(ln(x * radix / vNum(b))
/
ln(radix)))),
Fexp := floor(ln(x * radix / vNum(b)) / ln(radix)) #))")
(("1" (expand "Fcanonic?" ) (("1" (assert ) nil nil )) nil )
("2" (hide 3)
(("2"
(name "AA"
"floor(ln(x * radix / vNum(b)) / ln(radix))" )
(("2" (replace -1 1)
(("2" (case "radix ^ (-dExp(b) - 1) * vNum(b) <= x" )
(("1" (hide 2)
(("1" (expand * "Fnormal?" "Fbounded?" )
(("1" (split)
(("1" (case "0<= floor(x * radix ^ (-AA))" )
(("1" (expand "abs" 1 1)
(("1"
(grind-reals)
(("1"
(case "x * radix ^ (-AA) < vNum(b)" )
(("1" (grind-reals) nil nil )
("2"
(hide 2 -1)
(("2"
(case
"x * radix ^ (-AA)=x * radix ^^ (-AA)" )
(("1"
(replace -1)
(("1"
(case
"x * radix ^^ (-AA) < x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)-1))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1)) <= vNum(b)" )
(("1"
(hide -3 -4)
(("1"
(name-replace
"WW"
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix) - 1))" )
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide 2 -1 -2 -3)
(("2"
(case-replace
"(ln(x * radix / vNum(b)) / ln(radix) - 1)=ln(x / vNum(b)) / ln(radix)" )
(("1"
(field)
(("1"
(rewrite
"hathatln" )
(("1"
(field)
nil
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(rewrite "ln_div" )
(("2"
(rewrite
"ln_div" )
(("2"
(rewrite
"ln_mult" )
(("2"
(field)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2"
(cancel-by 1 "x" )
(("2"
(hide -1 2)
(("2"
(expand "^^" )
(("2"
(lemma
"exp_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(rewrite -1)
(("2"
(hide -1 2)
(("2"
(field)
(("2"
(case
"(ln(x * radix / vNum(b)) / ln(radix) - 1) < AA" )
(("1"
(rewrite
"ln_div" )
(("1"
(rewrite
"ln_mult" )
(("1"
(field)
(("1"
(mult-by
-1
"ln(radix)" )
(("1"
(field
-1)
nil
nil )
("2"
(hide
-1
-2
2)
(("2"
(case
"ln(radix) > 0" )
(("1"
(split)
(("1"
(grind-reals)
nil
nil )
("2"
(propax)
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
-1
-2
2)
(("2"
(case
"x>0" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide
2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 -2 2)
(("2"
(rewrite "hathat_int" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (case "0 <= x * radix ^ (-AA)" )
(("1"
(hide -2 -3 2)
(("1" (grind-reals) nil nil ))
nil )
("2"
(hide -1 -2 2 3)
(("2" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2"
(case "-dExp(b) <= ln(x * radix / vNum(b)) / ln(radix)" )
(("1" (grind-reals) nil nil )
("2" (hide -2 2)
(("2"
(mult-by 1 "ln(radix)" +)
(("1"
(wrap-formula 1 "exp" )
(("1"
(case-replace
"exp(-dExp(b) * ln(radix))=radix^^(-dExp(b))" )
(("1"
(rewrite "exp_ln" )
(("1"
(div-by 1 "radix" )
(("1"
(mult-by 1 "vNum(b)" )
(("1"
(case-replace
" radix ^ (-dExp(b)) / radix=radix ^ (-dExp(b) - 1)" )
(("1"
(field)
(("1"
(rewrite "hathat_int" )
(("1"
(div-by 1 "radix" )
(("1"
(hide -1 -2 -4)
(("1"
(case-replace
"(vNum(b) * radix ^ (-dExp(b))) / radix =radix ^ (-dExp(b) - 1) * vNum(b)" )
(("1"
(hide -2 2)
(("1"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2 -1 -2)
(("2"
(lemma "expt_plus" )
(("2"
(inst
-1
"-dExp(b)"
"-1"
"radix" )
(("2"
(grind-reals)
(("2"
(expand "^" 1 2)
(("2"
(grind-reals)
(("2"
(rewrite
"expt_x1_aux" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 2)
(("2"
(expand "^^" )
(("2" (propax) nil nil ))
nil ))
nil ))
nil )
("2"
(lemma "ln_increasing" )
(("2"
(expand "increasing?" )
(("2"
(lemma "ln_exp" )
(("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2 -1)
(("2"
(case "ln(radix) > 0" )
(("1"
(split)
(("1" (assert ) nil nil )
("2" (propax) nil nil ))
nil )
("2"
(hide 2)
(("2"
(lemma "ln_strict_increasing" )
(("2"
(expand "strict_increasing?" )
(("2"
(inst -1 "1" "radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (expand "abs" 1 1)
(("3" (grind-reals)
(("3"
(cancel-by 1 "radix" )
(("3"
(hide -1 1)
(("3"
(case
"vNum(b) / radix <= x * radix ^ (-AA)" )
(("1"
(case
"integer_pred(vNum(b) / radix)" )
(("1"
(hide -3 -4)
(("1"
(lemma "div_simple" )
(("1"
(inst -1 "vNum(b)" "radix" )
(("1"
(case
"(EXISTS (k:int): vNum(b) = k * radix)" )
(("1"
(skosimp*)
(("1"
(case-replace
" vNum(b) / radix=k!1" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide -2 -3 -4 2)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide -3 2)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide-all-but 1)
(("2"
(rewrite "radix_div_vNum" )
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(case
"vNum(b) / radix <= x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix)))" )
(("1"
(case
"x * radix ^^ (-(ln(x * radix / vNum(b)) / ln(radix))) <= x * radix ^ (-AA)" )
(("1" (assert ) nil nil )
("2"
(hide 2 -1)
(("2"
(cancel-by 1 "x" )
(("2"
(hide -1 1)
(("2"
(case-replace
"radix ^ (-AA)=radix ^^ (-AA)" )
(("1"
(expand "^^" )
(("1"
(lemma
"exp_increasing" )
(("1"
(expand
"increasing?" )
(("1"
(rewrite -1)
(("1"
(hide
-1
-2
-3
2)
(("1"
(div-by
1
"-ln(radix)"
-)
(("1"
(field)
nil
nil )
("2"
(case
"ln(radix)>0" )
(("1"
(assert )
nil
nil )
("2"
(hide
-1
2
3)
(("2"
(lemma
"ln_strict_increasing" )
(("2"
(expand
"strict_increasing?" )
(("2"
(inst
-1
"1"
"radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 -2 2)
(("2"
(rewrite
"hathat_int" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide -1 -2 2)
(("2"
(rewrite "hathatln" )
(("2" (field) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("3" (hide 2 3) (("3" (grind-reals) nil nil )) nil ))
nil ))
nil )
((increasing? const-decl "bool" real_fun_preds "reals/" )
(strict_increasing? const-decl "bool" real_fun_preds
"reals/" ))
nil ))
(RND_aux_alt_TCC1 0
(RND_aux_alt_TCC1-1 nil 3544343150
("" (skeep)
(("" (case "x>=0" )
(("1" (split-ineq -1) nil nil ) ("2" (assert ) nil nil ))
nil ))
nil )
((nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil ))
nil ))
(RND_aux_alt_TCC2 0
(RND_aux_alt_TCC2-1 nil 3544343150
("" (skosimp*)
(("" (case "radix = 1" )
(("1" (replace -1) (("1" (assert ) nil nil )) nil )
("2" (assert )
(("2" (lemma "ln_eq_0" )
(("2" (inst?) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil )
((radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil ))
nil ))
(RND_aux_alt_TCC3 0
(RND_aux_alt_TCC3-1 nil 3544343150
("" (skeep)
(("" (lemma "RND_aux_TCC6" )
(("" (inst?)
(("" (assert )
(("" (skosimp*)
(("" (inst - "e!1" )
(("" (ground)
(("" (lemma "RND_log_compute" )
(("" (inst?) (("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((RND_aux_TCC6 subtype-tcc nil float nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(integer nonempty-type-from-decl nil integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(ln const-decl "real" ln_exp "lnexp_fnd/" )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(radix formal-const-decl "above(1)" float nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(< const-decl "bool" reals nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(RND_log_compute formula-decl nil float nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nonneg_floor_is_nat application-judgement "nat" floor_ceil
nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(minus_int_is_int application-judgement "int" integers nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
nil ))
(RND_aux_alt_def 0
(RND_aux_alt_def-1 nil 3544343151
("" (decompose-equality)
(("" (decompose-equality)
(("" (expand "RND_aux" )
(("" (expand "RND_aux_alt" )
(("" (lift-if)
(("" (ground)
(("" (lemma "RND_log_compute" )
(("" (inst - "x!1" "x!2" ) (("" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nonneg_floor_is_nat application-judgement "nat" floor_ceil
nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(RND_log_compute formula-decl nil float nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fcanonic? const-decl "bool" float nil )
(RND_aux_alt const-decl "(Fcanonic?(b))" float nil )
(RND_aux const-decl "(Fcanonic?(b))" float nil ))
shostak))
(RND_Min_TCC1 0
(RND_Min_TCC1-1 nil 3319384410 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(RND_Min_TCC2 0
(RND_Min_TCC2-1 nil 3319384410 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(minus_real_is_real application-judgement "real" reals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(RND_Min_TCC3 0
(RND_Min_TCC3-1 nil 3319384410
("" (skeep)
(("" (lemma "FcanonicOpp" )
(("" (inst -1 "b" "RND_aux(b)(-x)" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil ))
nil )
((FcanonicOpp formula-decl nil float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(RND_aux const-decl "(Fcanonic?(b))" float nil )
(Fcanonic? const-decl "bool" float nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(x skolem-const-decl "real" float nil )
(minus_real_is_real application-judgement "real" reals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
nil ))
(RND_Min_TCC4 0
(RND_Min_TCC4-1 nil 3319384410
("" (skeep)
(("" (rewrite "FpredCanonic" )
(("" (lemma "FcanonicOpp" )
(("" (inst -1 "b" "RND_aux(b)(-x)" )
(("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
((real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_real_is_real application-judgement "real" reals nil )
(FpredCanonic formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fopp const-decl "float" float nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(Fcanonic? const-decl "bool" float nil )
(RND_aux const-decl "(Fcanonic?(b))" float nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(FcanonicOpp formula-decl nil float nil ))
nil ))
(RND_Max_TCC1 0
(RND_Max_TCC1-1 nil 3319894713
("" (skeep)
(("" (lemma "FcanonicOpp" )
(("" (inst -1 "b" "RND_Min(b)(-x)" ) (("" (assert ) nil nil ))
nil ))
nil ))
nil )
((FcanonicOpp formula-decl nil float nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(RND_Min const-decl "(Fcanonic?(b))" float nil )
(Fcanonic? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(minus_real_is_real application-judgement "real" reals nil ))
nil ))
(Exp_incr_1_TCC1 0
(Exp_incr_1_TCC1-1 nil 3318763952 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(Exp_incr_1 0
(Exp_incr_1-1 nil 3318763991
("" (skeep)
(("" (use "both_sides_expt_gt1_lt" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
((both_sides_expt_gt1_lt formula-decl nil exponentiation nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
shostak))
(Exp_incr_2 0
(Exp_incr_2-1 nil 3318865674
("" (skeep)
(("" (use " both_sides_expt_gt1_lt" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
((both_sides_expt_gt1_lt formula-decl nil exponentiation nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
shostak))
(Exp_increq_1_TCC1 0
(Exp_increq_1_TCC1-1 nil 3318783146 ("" (subtype-tcc) nil nil )
((boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(/= const-decl "boolean" notequal nil ))
nil ))
(Exp_increq_1 0
(Exp_increq_1-1 nil 3318865769
("" (skeep)
(("" (use "both_sides_expt_gt1_le" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
((both_sides_expt_gt1_le formula-decl nil exponentiation nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
shostak))
(Exp_increq_2 0
(Exp_increq_2-1 nil 3318865818
("" (skeep)
(("" (use "both_sides_expt_gt1_le" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
((both_sides_expt_gt1_le formula-decl nil exponentiation nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
shostak))
(Exp_1 0
(Exp_1-1 nil 3318698220
("" (skeep)
(("" (case "0 <= e1" )
(("1" (case "e1 <= 0" )
(("1" (grind) nil nil )
("2" (rewrite "Exp_increq_2" )
(("2" (rewrite "expt_x0" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (rewrite "Exp_increq_2" )
(("2" (rewrite "expt_x0" ) (("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
((int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(<= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_x0 formula-decl nil exponentiation nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(Exp_increq_2 formula-decl nil float nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
shostak))
(EqExpEq 0
(EqExpEq-1 nil 3318696278
("" (skeep)
(("" (case "e1 <= e2" )
(("1" (case "e2 <= e1" )
(("1" (grind) nil nil )
("2" (rewrite "Exp_increq_2" ) nil nil ))
nil )
("2" (rewrite "Exp_increq_2" ) nil nil ))
nil ))
nil )
((int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(<= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(Exp_increq_2 formula-decl nil float nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil ))
shostak))
(expt_odd_TCC1 0
(expt_odd_TCC1-1 nil 3319544683 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )) nil ))
(expt_odd 0
(expt_odd-1 nil 3319544683
("" (induct "n" )
(("1" (grind-reals) (("1" (rewrite "expt_x1" ) nil nil )) nil )
("2" (rewrite "expt_x1" ) (("2" (grind-reals) nil nil )) nil )
("3" (skeep)
(("3" (split 1)
(("1" (skosimp*)
(("1" (rewrite "expt_plus" )
(("1" (rewrite "expt_x1" )
(("1" (grind-reals)
(("1" (rewrite "odd_times_odd_is_odd" ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (rewrite "expt_plus" )
(("2" (rewrite "expt_x1" )
(("2" (lemma "even_or_odd" )
(("2" (inst -1 "radix" )
(("2" (flatten)
(("2" (case "even?(radix)" )
(("1" (hide -2 -3 1)
(("1"
(lemma "even_iff_not_odd" )
(("1"
(inst -1 "(radix ^ (1 + j)) * radix" )
(("1"
(flatten)
(("1"
(case
"even?((radix ^ (1 + j)) * radix)" )
(("1" (assert ) nil nil )
("2"
(rewrite
"int_times_even_is_even" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((even_or_odd formula-decl nil naturalnumbers nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(int_times_even_is_even judgement-tcc nil integers nil )
(even_int nonempty-type-eq-decl nil integers nil )
(even_iff_not_odd formula-decl nil naturalnumbers nil )
(even? const-decl "bool" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_times_odd_is_odd judgement-tcc nil integers nil )
(odd_int nonempty-type-eq-decl nil integers nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(expt_plus formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(even_plus_odd_is_odd application-judgement "odd_int"
integers nil )
(expt_x1 formula-decl nil exponentiation nil )
(nat_induction formula-decl nil naturalnumbers nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(odd? const-decl "bool" integers nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
shostak))
(expt_even 0
(expt_even-1 nil 3319562624
("" (induct "n" )
(("1" (grind-reals) (("1" (rewrite "expt_x1" ) nil nil )) nil )
("2" (grind-reals) (("2" (rewrite "expt_x1" ) nil nil )) nil )
("3" (skeep)
(("3" (rewrite 1 "expt_plus" )
(("1"
(rewrite "expt_plus" :subst
("n0x" "radix" "i" "j+1" "j" "1" ))
(("1" (rewrite "expt_x1" )
(("1" (split 1)
(("1" (skosimp*)
(("1" (split -2)
(("1" (rewrite "even_times_int_is_even" ) nil
nil )
("2" (propax) nil nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (case-replace "1+j=j+1" )
(("1" (hide -1)
(("1"
(case-replace
"even?((radix ^ (j + 1)) * radix)=NOT odd?((radix ^ (1 + j)) * radix)" )
(("1"
(case-replace
"even?(radix)=NOT odd?(radix)" )
(("1"
(rewrite "odd_times_odd_is_odd" )
(("1"
(lemma
"odd_or_even_int"
:subst
("x" "radix ^ (1 + j)" ))
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma
"even_iff_not_odd"
:subst
("x" "radix" ))
(("2" (grind-reals) nil nil ))
nil ))
nil )
("2" (case-replace "1+j=j+1" )
(("1"
(lemma
"even_iff_not_odd"
:subst
("x" "((radix ^ (j + 1)) * radix)" ))
(("1" (grind-reals) nil nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (hide 2)
(("2" (case-replace "even?(radix)=NOT odd?(radix)" )
(("1"
(case-replace
"even?(radix^(1+j))=NOT odd?(radix^(1+j))" )
(("1" (case "odd?(radix ^ (1 + j))" )
(("1"
(case-replace
"even?(radix^(2+j))=NOT odd?(radix^(2+j))" )
(("1" (case-replace "2+j=1+(1+j)" )
(("1" (rewrite "expt_plus" )
(("1"
(rewrite "expt_x1" )
(("1"
(rewrite "odd_times_odd_is_odd" )
nil
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil )
("2"
(lemma "even_iff_not_odd" :subst
("x" "radix ^ (2 + j)" ))
(("2" (grind-reals) nil nil )) nil ))
nil )
("2" (assert ) nil nil ))
nil )
("2"
(lemma "even_iff_not_odd" :subst
("x" "radix ^ (1 + j)" ))
(("2" (grind-reals) nil nil )) nil ))
nil )
("2"
(lemma "even_iff_not_odd" :subst ("x" "radix" ))
(("2" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((nzreal nonempty-type-eq-decl nil reals nil )
(expt_plus formula-decl nil exponentiation nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(odd_or_even_int formula-decl nil naturalnumbers nil )
(odd_times_odd_is_odd judgement-tcc nil integers nil )
(odd_int nonempty-type-eq-decl nil integers nil )
(even_iff_not_odd formula-decl nil naturalnumbers nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(odd? const-decl "bool" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(even_int nonempty-type-eq-decl nil integers nil )
(even_times_int_is_even judgement-tcc nil integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int"
integers nil )
(expt_x1 formula-decl nil exponentiation nil )
(nat_induction formula-decl nil naturalnumbers nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(even? const-decl "bool" integers nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
shostak))
(FoppCorrect 0
(FoppCorrect-1 nil 3319368570
("" (skeep)
(("" (expand * "FtoR" "Fopp" ) (("" (grind-reals) nil nil ))
nil ))
nil )
((Fopp const-decl "float" float nil )
(FtoR const-decl "real" float nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(minus_int_is_int application-judgement "int" integers nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(minus_rat_is_rat application-judgement "rat" rationals nil ))
shostak))
(FoppFopp 0
(FoppFopp-1 nil 3545043329
("" (grind) (("" (decompose-equality) nil nil )) nil )
((int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(float type-eq-decl nil float nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(minus_int_is_int application-judgement "int" integers nil )
(Fopp const-decl "float" float nil ))
shostak))
(Fopp_mult_left 0
(Fopp_mult_left-1 nil 3545043536
("" (skeep) (("" (grind) nil nil )) nil )
((minus_int_is_int application-judgement "int" integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(* const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(- const-decl "float" float nil )
(Fopp const-decl "float" float nil ))
shostak))
(Fopp_mult_right 0
(Fopp_mult_right-1 nil 3545043574 ("" (grind) nil nil )
((Fopp const-decl "float" float nil )
(- const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(* const-decl "float" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(minus_int_is_int application-judgement "int" integers nil ))
shostak))
(FabsCorrect 0
(FabsCorrect-1 nil 3319889181
("" (skeep)
(("" (expand * "Fabs" "FtoR" )
(("" (rewrite "abs_mult" )
(("" (expand "abs" 1 3) (("" (propax) nil nil )) nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(Fabs const-decl "float" float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(nzrat_abs_is_pos application-judgement
"{r: posrat | r >= q}" real_defs nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(^ const-decl "real" exponentiation nil )
(>= const-decl "bool" reals nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(abs_mult formula-decl nil real_props nil ))
shostak))
(FplusCorrect 0
(FplusCorrect-1 nil 3319889234
("" (skeep)
(("" (expand * "Fplus" "FtoR" )
(("" (rewrite "expt_div" :dir rl)
(("" (rewrite "expt_div" :dir rl) (("" (field) nil nil ))
nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(Fplus const-decl "float" float nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(>= const-decl "bool" reals nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_odd_is_odd application-judgement "odd_int" integers
nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(<= const-decl "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_div formula-decl nil exponentiation nil ))
shostak))
(FplusAssociative 0
(FplusAssociative-1 nil 3545564973
("" (expand "associative?" )
(("" (skeep)
(("" (expand "Fplus" + 2)
(("" (assert )
(("" (expand "min" )
(("" (assert )
(("" (lift-if)
(("" (ground)
(("1" (expand "Fplus" + 3)
(("1" (expand "min" )
(("1" (lift-if)
(("1"
(split +)
(("1"
(flatten)
(("1"
(assert )
(("1"
(expand "Fplus" + 1)
(("1"
(expand "min" )
(("1"
(assert )
(("1"
(expand "Fplus" + 1)
(("1"
(expand "min" )
(("1"
(assert )
(("1"
(lemma "expt_plus" )
(("1"
(inst
-
"Fexp(x)-Fexp(y)"
"Fexp(y)-Fexp(z)"
"radix" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(flatten)
(("2"
(assert )
(("2"
(expand "Fplus" 2 1)
(("2"
(expand "min" )
(("2"
(assert )
(("2"
(expand "Fplus" 2 1)
(("2"
(expand "min" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "Fplus" 2 3)
(("2" (expand "min" )
(("2" (lift-if)
(("2"
(ground)
(("1"
(expand "Fplus" 1 1)
(("1"
(expand "min" )
(("1"
(lift-if)
(("1"
(ground)
(("1"
(expand "Fplus" )
(("1"
(assert )
(("1"
(expand "min" )
(("1"
(assert )
(("1"
(lemma "expt_plus" )
(("1"
(inst
-
"Fexp(x)-Fexp(z)"
"Fexp(y)-Fexp(x)"
"radix" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(expand "Fplus" )
(("2"
(expand "min" )
(("2"
(assert )
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"Fexp(y)-Fexp(z)"
"Fexp(z)-Fexp(x)"
"radix" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "Fplus" 2 1)
(("2"
(expand "min" )
(("2"
(assert )
(("2"
(expand "Fplus" 2 1)
(("2"
(expand "min" )
(("2"
(assert )
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"Fexp(y)-Fexp(x)"
"Fexp(z)-Fexp(y)"
"radix" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((int_minus_int_is_int application-judgement "int" integers
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(expt_x0 formula-decl nil exponentiation nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(float type-eq-decl nil float nil )
(/= const-decl "boolean" notequal nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(expt_plus formula-decl nil exponentiation nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(Fplus const-decl "float" float nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil )
(associative? const-decl "bool" operator_defs nil ))
shostak))
(FmultAssociative 0
(FmultAssociative-1 nil 3545572260 ("" (grind) nil nil )
((mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(associative? const-decl "bool" operator_defs nil )
(Fmult const-decl "float" float nil ))
shostak))
(FminusCorrect 0
(FminusCorrect-1 nil 3319889348
("" (skeep)
(("" (expand * "Fminus" "FtoR" )
(("" (rewrite "expt_div" :dir rl)
(("" (rewrite "expt_div" :dir rl) (("" (field) nil nil ))
nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(int_min application-judgement "{k: int | k <= i AND k <= j}"
real_defs nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(Fminus const-decl "float" float nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(>= const-decl "bool" reals nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_odd_is_odd application-judgement "odd_int" integers
nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(<= const-decl "bool" reals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_div formula-decl nil exponentiation nil ))
shostak))
(FmultCorrect 0
(FmultCorrect-1 nil 3319889392
("" (skeep)
(("" (expand * "Fmult" "FtoR" )
(("" (rewrite "expt_plus" ) (("" (field) nil nil )) nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(Fmult const-decl "float" float nil )
(>= const-decl "bool" reals nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_plus formula-decl nil exponentiation nil ))
shostak))
(Fmult_1_r 0
(Fmult_1_r-1 nil 3545401225
("" (grind)
(("" (decompose-equality)
(("" (expand "divides" )
(("" (expand "divides" )
(("" (inst + "1" ) (("" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil )
((f!1 skolem-const-decl "float" float nil )
(float type-eq-decl nil float nil )
(divides const-decl "bool" divides nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(divides const-decl "bool" divides nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(* const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(float_int const-decl "float" float nil ))
shostak))
(Fmult_1_l 0
(Fmult_1_l-1 nil 3545401264
("" (grind) (("" (decompose-equality) nil nil )) nil )
((divides const-decl "bool" divides nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(float type-eq-decl nil float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(* const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(float_int const-decl "float" float nil ))
nil ))
(Fmult_2_r 0
(Fmult_2_r-1 nil 3545401333 ("" (grind) nil nil )
((float_int const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(* const-decl "float" float nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(Fplus const-decl "float" float nil )
(+ const-decl "float" float nil ))
shostak))
(Fmult_2_l 0
(Fmult_2_l-1 nil 3545401340 ("" (grind) nil nil )
((float_int const-decl "float" float nil )
(Fmult const-decl "float" float nil )
(* const-decl "float" float nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(Fplus const-decl "float" float nil )
(+ const-decl "float" float nil ))
shostak))
(FDivKexpt_TCC1 0
(FDivKexpt_TCC1-1 nil 3545654182 ("" (subtype-tcc) nil nil )
((/= const-decl "boolean" notequal nil )) nil ))
(FDivKexpt_TCC2 0
(FDivKexpt_TCC2-1 nil 3545654182 ("" (subtype-tcc) nil nil ) nil
nil ))
(FDivKexpt_TCC3 0
(FDivKexpt_TCC3-1 nil 3545654182
("" (skeep)
(("" (case "FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1" (inst?)
(("1" (hide 2)
(("1"
(case "FORALL (rp:nat): integer_pred((radix^rp)/(k^rp))" )
(("1" (inst?) nil nil )
("2" (hide 2)
(("2" (induct "rp" )
(("1" (grind) nil nil )
("2" (skeep)
(("2"
(case "FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1"
(case "(radix^(j+1))/(k^(j+1)) = (radix/k)*((radix^j/k^j))" )
(("1" (replaces -1)
(("1"
(inst?)
(("1"
(hide 2)
(("1"
(typepred "k" )
(("1"
(expand "mod" )
(("1"
(case
"floor(radix/k) = radix/k" )
(("1"
(replace -1 :dir rl)
(("1" (assert ) nil nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "^" +)
(("2"
(expand "expt" + 1)
(("2"
(expand "expt" + 2)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (grind) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1) (("2" (grind) nil nil )) nil ))
nil ))
nil )
((* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(j skolem-const-decl "nat" float nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(integer nonempty-type-from-decl nil integers nil )
(<= const-decl "bool" reals nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(nzint_times_nzint_is_nzint application-judgement "nzint"
integers nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(expt def-decl "real" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation
nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pred type-eq-decl nil defined_types nil )
(i skolem-const-decl "nat" float nil )
(k skolem-const-decl "{k: nzint | mod(radix, k) = 0}" float
nil )
(mod const-decl "{k | abs(k) < abs(j)}" mod nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(< const-decl "bool" reals nil )
(nonzero_integer nonempty-type-eq-decl nil integers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nzint nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(^ const-decl "real" exponentiation nil )
(>= const-decl "bool" reals nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(float type-eq-decl nil float nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil ))
nil ))
(FDivKexpt_def 0
(FDivKexpt_def-1 nil 3545651846
("" (induct "i" )
(("1" (assert )
(("1" (skeep)
(("1" (expand "FDivKexpt" )
(("1" (assert )
(("1" (assert )
(("1" (expand "FtoR" ) (("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skeep)
(("2" (skeep)
(("2"
(case "NOT FORALL (zd:nat): integer_pred((radix ^ (zd)) / (k ^ (zd)))" )
(("1" (hide (-1 2))
(("1" (induct "zd" )
(("1" (grind) nil nil )
("2" (skolem 1 "rk" )
(("2" (flatten)
(("2"
(case "FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1"
(inst - "(radix ^ rk) / (k ^ rk)"
"radix/k" )
(("1" (expand "^" )
(("1"
(expand "expt" +)
(("1" (assert ) nil nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2"
(typepred "k" )
(("2"
(expand "mod" )
(("2"
(case "floor(radix/k) = radix/k" )
(("1"
(assert )
(("1"
(replace -1 :dir rl)
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(flatten)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (grind) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (label "hyp1" -1)
(("2" (hide "hyp1" )
(("2" (inst - "f" "k" )
(("2" (expand "FDivKexpt" )
(("2" (mult-by 1 "k" )
(("1"
(case "FtoR(f) / k ^ (1 + j) * k = FtoR(f)/k^j" )
(("1" (replace -1)
(("1"
(hide -1)
(("1"
(replace -1 :dir rl)
(("1"
(hide -1)
(("1"
(lemma "float_int_def" )
(("1"
(inst - "k" )
(("1"
(case
"FORALL (aa:real): aa*k = aa*FtoR(float_int(k))" )
(("1"
(rewrite -1)
(("1"
(hide -1)
(("1"
(lemma "FmultCorrect" )
(("1"
(rewrite -1 :dir rl)
(("1"
(hide -1)
(("1"
(assert )
(("1"
(expand "FtoR" )
(("1"
(expand
"Fmult" )
(("1"
(real-props)
(("1"
(assert )
(("1"
(expand
"float_int" )
(("1"
(case
"k^(1+j) = k*(k^j)" )
(("1"
(replace
-1)
(("1"
(hide
-1)
(("1"
(lemma
"expt_plus" )
(("1"
(inst-cp
-
"1+j"
"Fexp(f)-1-j"
"radix" )
(("1"
(assert )
(("1"
(mult-by
-2
"Fnum(f) * (k ^ j)" )
(("1"
(replace
-1
:dir
rl)
(("1"
(hide
-1)
(("1"
(assert )
(("1"
(inst
-
"Fexp(f)-j"
"j"
"radix" )
(("1"
(mult-by
-1
"Fnum(f) * (k ^ j)" )
(("1"
(replace
-1
:dir
rl)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but
1)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+
1)
(("2"
(propax)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal "hyp1" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(case
"FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1"
(inst?)
nil
nil )
("2"
(hide-all-but
1)
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(reveal "hyp1" )
(("2"
(inst?)
(("2"
(assert )
(("2"
(case
"FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1"
(inst?)
nil
nil )
("2"
(hide-all-but 1)
(("2"
(grind)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(lemma "float_int_def" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "^" )
(("2"
(expand "expt" + 1)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (reveal "hyp1" )
(("2" (inst?)
(("2"
(assert )
(("2"
(case
"FORALL (ik,jk:int): integer_pred(ik*jk)" )
(("1" (inst?) nil nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((NOT const-decl "[bool -> bool]" booleans nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzreal_expt application-judgement "nzreal" exponentiation
nil )
(int_expt application-judgement "int" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(rk skolem-const-decl "nat" float nil )
(k skolem-const-decl "{k: nzint | mod(radix, k) = 0}" float
nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(nzint_times_nzint_is_nzint application-judgement "nzint"
integers nil )
(integer nonempty-type-from-decl nil integers nil )
(<= const-decl "bool" reals nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(floor const-decl "{i | i <= x & x < i + 1}" floor_ceil nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(real_times_real_is_real application-judgement "real" reals
nil )
(FmultCorrect formula-decl nil float nil )
(cross_mult formula-decl nil real_props nil )
(times_div1 formula-decl nil real_props nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(expt_plus formula-decl nil exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(both_sides_times1_imp formula-decl nil extra_real_props nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(Fmult const-decl "float" float nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(float_int const-decl "float" float nil )
(float_int_def formula-decl nil float nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(f skolem-const-decl "float" float nil )
(j skolem-const-decl "nat" float nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(both_sides_times1 formula-decl nil real_props nil )
(expt_x0 formula-decl nil exponentiation nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(real_div_nzreal_is_real application-judgement "real" reals
nil )
(nat_induction formula-decl nil naturalnumbers nil )
(^ const-decl "real" exponentiation nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(FDivKexpt const-decl "float" float nil )
(FtoR const-decl "real" float nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(mod const-decl "{k | abs(k) < abs(j)}" mod nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(< const-decl "bool" reals nil )
(nonzero_integer nonempty-type-eq-decl nil integers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nzint nonempty-type-eq-decl nil integers nil )
(/= const-decl "boolean" notequal nil )
(float type-eq-decl nil float nil )
(pred type-eq-decl nil defined_types nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation
nil ))
nil ))
(FoppBounded 0
(FoppBounded-1 nil 3319899604
("" (skeep)
(("" (expand * "Fbounded?" "Fopp" )
(("" (flatten)
(("" (split)
(("1" (expand "abs" ) (("1" (grind-reals) nil nil )) nil )
("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil )
((Fopp const-decl "float" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(Fbounded? const-decl "bool" float nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil ))
shostak))
(FabsBounded 0
(FabsBounded-1 nil 3320082424
("" (skeep)
(("" (expand * "Fbounded?" "Fabs" )
(("" (flatten)
(("" (split)
(("1" (grind-reals) nil nil ) ("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil )
((Fabs const-decl "float" float nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(Fbounded? const-decl "bool" float nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(abs_abs formula-decl nil real_props nil ))
shostak))
(FabsCanonic 0
(FabsCanonic-1 nil 3320082549
("" (skeep)
(("" (expand "Fcanonic?" )
(("" (split)
(("1" (case "Fnormal?(b)(Fabs(f))" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand "Fnormal?" )
(("2" (flatten)
(("2" (split)
(("1" (rewrite "FabsBounded" ) nil nil )
("2" (expand "Fabs" )
(("2" (expand "abs" )
(("2" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (case "Fsubnormal?(b)(Fabs(f))" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (expand "Fsubnormal?" )
(("2" (flatten)
(("2" (split)
(("1" (rewrite "FabsBounded" ) nil nil )
("2" (expand "Fabs" ) (("2" (propax) nil nil ))
nil )
("3" (expand "Fabs" )
(("3" (expand "abs" )
(("3" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fcanonic? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fabs const-decl "float" float nil )
(Fnormal? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(FabsBounded formula-decl nil float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(neg_times_lt formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil ))
shostak))
(LeR0Fnum 0
(LeR0Fnum-1 nil 3318679671
("" (skeep)
(("" (expand "FtoR" ) (("" (grind-reals) nil nil )) nil )) nil )
((FtoR const-decl "real" float nil )
(pos_times_le formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil ))
shostak))
(LeFnumZERO 0
(LeFnumZERO-1 nil 3318680805
("" (skosimp*)
(("" (expand "FtoR" ) (("" (grind-reals) nil nil )) nil )) nil )
((FtoR const-decl "real" float nil )
(pos_times_le formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil ))
shostak))
(FleCorrect 0
(FleCorrect-1 nil 3319904574
("" (skeep)
(("" (split)
(("1" (skosimp*)
(("1" (expand "Fle?" )
(("1" (case "FtoR(p) - FtoR(q) <= 0" )
(("1" (assert ) nil nil )
("2" (rewrite "FminusCorrect" :dir rl)
(("2" (expand "FtoR" ) (("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (expand "Fle?" )
(("2" (case "FtoR(Fminus(p, q)) <= 0" )
(("1" (expand "FtoR" ) (("1" (grind-reals) nil nil ))
nil )
("2" (rewrite "FminusCorrect" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fle? const-decl "bool" float nil )
(FminusCorrect formula-decl nil float nil )
(minus_odd_is_odd application-judgement "odd_int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(neg_times_le formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(<= const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(FtoR const-decl "real" float nil )
(Fminus const-decl "float" float nil ))
shostak))
(FltCorrect 0
(FltCorrect-1 nil 3319904922
("" (skeep)
(("" (split)
(("1" (skosimp*)
(("1" (expand "Flt?" )
(("1" (case "FtoR(Fminus(p, q)) < 0" )
(("1" (rewrite "FminusCorrect" )
(("1" (assert ) nil nil )) nil )
("2" (expand "FtoR" ) (("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (skosimp*)
(("2" (case "FtoR(Fminus(p, q)) < 0" )
(("1" (expand "FtoR" )
(("1" (expand "Flt?" ) (("1" (grind-reals) nil nil ))
nil ))
nil )
("2" (rewrite "FminusCorrect" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((Flt? const-decl "bool" float nil )
(neg_times_lt formula-decl nil real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(FminusCorrect formula-decl nil float nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(< const-decl "bool" reals nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(FtoR const-decl "real" float nil )
(Fminus const-decl "float" float nil ))
shostak))
(FminCorrect 0
(FminCorrect-1 nil 3320169103
("" (skeep)
(("" (expand "Fmin" )
(("" (lemma "FleCorrect" )
(("" (inst -1 "p" "q" )
(("" (rewrite -1)
(("" (expand "min" ) (("" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fmin const-decl "float" float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(min const-decl "{p: real | p <= m AND p <= n}" real_defs
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(FleCorrect formula-decl nil float nil ))
shostak))
(FmaxCorrect 0
(FmaxCorrect-1 nil 3320169183
("" (skeep)
(("" (expand "Fmax" )
(("" (lemma "FleCorrect" :subst ("p" "p" "q" "q" ))
(("" (rewrite -1)
(("" (expand "max" ) (("" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((Fmax const-decl "float" float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs
nil )
(FleCorrect formula-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil ))
shostak))
(FsubnormalUnique 0
(FsubnormalUnique-1 nil 3318681540
("" (skosimp*)
(("" (expand "FtoR" )
(("" (expand "Fsubnormal?" )
(("" (flatten)
(("" (decompose-equality) (("" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(abs_mult formula-decl nil real_props nil )
(both_sides_times1 formula-decl nil real_props nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(Fsubnormal? const-decl "bool" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil ))
shostak))
(FnormalUnique 0
(FnormalUnique-1 nil 3318683813
("" (skeep)
(("" (expand * "Fnormal?" "Fbounded?" "FtoR" )
(("" (flatten)
(("" (case-replace "Fexp(p)=Fexp(q)" )
(("1" (decompose-equality)
(("1" (grind-reals) nil nil )) nil )
("2" (hide 2)
(("2" (case "Fexp(p)<Fexp(q)+1" )
(("1" (case "Fexp(q)<Fexp(p)+1" )
(("1" (hide -3 -4 -5 -6 -7 -8 -9)
(("1" (grind) nil nil )) nil )
("2" (hide -1 2)
(("2" (rewrite "Exp_incr_2" )
(("2" (hide 2)
(("2" (mult-by 1 "abs(Fnum(q))" )
(("2"
(case-replace
"abs(Fnum(q)) * radix ^ Fexp(q)=abs(Fnum(p)) * radix ^ Fexp(p)" )
(("1"
(rewrite "expt_plus" )
(("1"
(cancel-by 1 "radix ^ Fexp(p)" )
(("1"
(rewrite "abs_mult" -8)
(("1"
(expand "abs" -8 1)
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2 -1 -2 -3 -4 -5 -6)
(("2"
(wrap-formula -1 "abs" )
(("2"
(rewrite * ("abs_mult" ))
(("2"
(expand "abs" -1 (2 4))
(("2"
(rewrite * ("abs_mult" ))
(("2"
(expand "abs" -1 3)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (rewrite "Exp_incr_2" )
(("2" (hide 2)
(("2" (mult-by 1 "abs(Fnum(p))" )
(("2"
(case-replace
"abs(Fnum(p)) * radix ^ Fexp(p)=abs(Fnum(q)) * radix ^ Fexp(q)" )
(("1"
(rewrite "expt_plus" )
(("1"
(cancel-by 1 "radix ^ Fexp(q)" )
(("1"
(rewrite "abs_mult" -5)
(("1"
(expand "abs" -5 1)
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but (-7 1))
(("2"
(wrap-formula -1 "abs" )
(("2"
(rewrite * ("abs_mult" ))
(("2"
(expand "abs" -1 (2 4))
(("2"
(rewrite * ("abs_mult" ))
(("2"
(expand "abs" -1 3)
(("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fbounded? const-decl "bool" float nil )
(FtoR const-decl "real" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(Fnormal? const-decl "bool" float nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(both_sides_times1 formula-decl nil real_props nil )
(abs_mult formula-decl nil real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(expt_x1 formula-decl nil exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(expt_plus formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(rat_abs_is_nonneg application-judgement
"{r: nonneg_rat | r >= q}" real_defs nil )
(nzrat_abs_is_pos application-judgement
"{r: posrat | r >= q}" real_defs nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(Exp_incr_2 formula-decl nil float nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil ))
shostak))
(NormalAndSubNormalNotEq 0
(NormalAndSubNormalNotEq-1 nil 3318856796
("" (skeep)
(("" (case "abs(FtoR(q)) < abs (FtoR(p))" )
(("1" (assert ) nil nil )
("2" (expand * "FtoR" "Fnormal?" "Fsubnormal?" )
(("2" (flatten)
(("2" (hide -6)
(("2" (rewrite "abs_mult" )
(("2" (expand "abs" 1 2)
(("2" (rewrite "abs_mult" )
(("2" (expand "abs" 1 3)
(("2" (mult-by 1 "radix" )
(("2"
(swap-group "abs(Fnum(q))" *
"radix ^ (Fexp(q))" "radix" r)
(("2"
(swap-group
"abs(Fnum(p))"
*
"radix ^ (Fexp(p))"
"radix"
r)
(("2"
(case
"abs(Fnum(q)) * radix < abs(Fnum(p)) * radix"
"radix ^ Fexp(q) <= radix ^ Fexp(p)" )
(("1" (grind-reals) nil nil )
("2"
(hide -1 2)
(("2"
(expand "Fbounded?" )
(("2"
(flatten)
(("2"
(rewrite -6)
(("2"
(rewrite "Exp_increq_1" )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("3"
(hide 2)
(("3"
(rewrite "abs_mult" -2)
(("3"
(rewrite "abs_mult" -5)
(("3"
(expand "abs" -2 1)
(("3"
(expand "abs" -5 1)
(("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(< const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(abs_mult formula-decl nil real_props nil )
(nzrat_abs_is_pos application-judgement
"{r: posrat | r >= q}" real_defs nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(Format type-eq-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(Exp_increq_1 formula-decl nil float nil )
(minus_int_is_int application-judgement "int" integers nil )
(Fbounded? const-decl "bool" float nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(lt_times_lt_pos2 formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(<= const-decl "bool" reals nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(Fsubnormal? const-decl "bool" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(Fnormal? const-decl "bool" float nil ))
shostak))
(FcanonicUnique 0
(FcanonicUnique-1 nil 3318616280
("" (skeep)
(("" (expand "Fcanonic?" )
(("" (split)
(("1" (split)
(("1" (use "FnormalUnique" ) (("1" (assert ) nil nil ))
nil )
("2" (use "NormalAndSubNormalNotEq" )
(("2" (assert ) nil nil )) nil ))
nil )
("2" (split)
(("1" (lemma "NormalAndSubNormalNotEq" )
(("1" (inst -1 "b" "q" "p" ) (("1" (assert ) nil nil ))
nil ))
nil )
("2" (use "FsubnormalUnique" ) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fcanonic? const-decl "bool" float nil )
(FsubnormalUnique formula-decl nil float nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(FnormalUnique formula-decl nil float nil )
(NormalAndSubNormalNotEq formula-decl nil float nil ))
shostak))
(FnormalizeCorrect 0
(FnormalizeCorrect-1 nil 3319283991
("" (skeep) (("" (assert ) nil nil )) nil ) nil shostak))
(FulpCanonic_TCC1 0
(FulpCanonic_TCC1-1 nil 3319375218 ("" (subtype-tcc) nil nil )
((vNum const-decl "posnat" float nil )
(Fbounded? const-decl "bool" float nil )
(Fnormal? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil ))
nil ))
(FulpCanonic 0
(FulpCanonic-1 nil 3319375218
("" (skeep)
(("" (expand "Fulp" )
(("" (case-replace "Fnormalize(b)(p)=p" )
(("" (hide 2)
(("" (lemma "FcanonicUnique" )
(("" (inst -1 "b" "Fnormalize(b)(p)" "p" )
(("" (rewrite -1) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fulp const-decl "real" float nil )
(FcanonicUnique formula-decl nil float nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(<= const-decl "bool" reals nil )
(FtoR const-decl "real" float nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number nonempty-type-decl nil numbers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(Fcanonic? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil ))
shostak))
(Lexico 0
(Lexico-1 nil 3319234645
("" (skeep)
(("" (case "0<= Fnum(p)" )
(("1" (case "0<= Fnum(q)" )
(("1" (expand "Fcanonic?" )
(("1" (split)
(("1" (split)
(("1" (case "Fexp(p) < Fexp(q)+1" )
(("1" (grind-reals) nil nil )
("2" (hide 2)
(("2" (expand * "Fnormal?" "Fbounded?" )
(("2" (flatten)
(("2" (hide -2 -3 -4 -5)
(("2"
(rewrite "abs_mult" -2)
(("2"
(expand * "abs" )
(("2"
(grind-reals)
(("2"
(rewrite "Exp_incr_2" )
(("2"
(hide 2)
(("2"
(mult-by 1 "Fnum(p)" )
(("2"
(case-replace
"radix ^ Fexp(p) * Fnum(p)= FtoR(p)" )
(("1"
(case
"FtoR(q)<radix ^ (1 + Fexp(q)) * Fnum(p)" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide 2)
(("2"
(expand "FtoR" )
(("2"
(rewrite
"expt_plus" )
(("2"
(rewrite
"expt_x1" )
(("2"
(div-by
1
"radix ^ (Fexp(q))" )
(("2"
(case-replace
"radix * radix ^ Fexp(q) * Fnum(p) / radix ^ (Fexp(q))=radix * Fnum(p)" )
(("1"
(grind-reals)
nil
nil )
("2"
(hide 2)
(("2"
(field)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "FtoR" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand * "Fnormal?" "Fsubnormal?" "Fbounded?" )
(("2" (flatten)
(("2" (rewrite "abs_mult" )
(("2" (rewrite "abs_mult" )
(("2" (expand * "abs" )
(("2"
(grind-reals)
(("2"
(flip-ineq -11)
(("2"
(hide 2)
(("2"
(case "FtoR(q) < FtoR(p)" )
(("1" (grind-reals) nil nil )
("2"
(hide 2 -10)
(("2"
(expand "FtoR" )
(("2"
(case
"Fnum(q) * radix ^ (Fexp(q)) <= Fnum(q) * radix ^ (Fexp(p))" )
(("1"
(case
"Fnum(q) * radix ^ (Fexp(p)) < Fnum(p) * radix ^ (Fexp(p))" )
(("1"
(hide-all-but
(-1 -2 1))
(("1"
(name-replace
"AA"
"Fnum(q) * radix ^ (Fexp(q))" )
(("1"
(name-replace
"BB"
"Fnum(q) * radix ^ (Fexp(p))" )
(("1"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(cancel-by
1
"radix ^ (Fexp(p))" )
(("2"
(mult-by 1 "radix" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cancel-by 1 "Fnum(q)" )
(("2"
(rewrite
"Exp_increq_1" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand * "Fsubnormal?" "Fnormal?" "Fbounded?" )
(("2" (flatten) (("2" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -3 2)
(("2" (mult-by 1 "radix^Fexp(q)" )
(("1" (expand "FtoR" ) (("1" (grind-reals) nil nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil ))
nil )
("2" (hide -1 -2 -4 2)
(("2" (expand "FtoR" ) (("2" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil )
((float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(<= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(q skolem-const-decl "float" float nil )
(Fcanonic? const-decl "bool" float nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(abs_mult formula-decl nil real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(minus_int_is_int application-judgement "int" integers nil )
(FtoR const-decl "real" float nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(expt_plus formula-decl nil exponentiation nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(expt_x1 formula-decl nil exponentiation nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(div_cancel3 formula-decl nil real_props nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div_cancel2 formula-decl nil extra_real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(^ const-decl "real" exponentiation nil )
(/= const-decl "boolean" notequal nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(both_sides_times_pos_ge1_imp formula-decl nil
extra_real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(Exp_incr_2 formula-decl nil float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(Fnormal? const-decl "bool" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(Fbounded? const-decl "bool" float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(< const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(lt_times_lt_pos2 formula-decl nil real_props nil )
(both_sides_times_pos_ge1 formula-decl nil real_props nil )
(both_sides_div_pos_ge1 formula-decl nil real_props nil )
(neg_times_le formula-decl nil real_props nil )
(ge_times_ge_pos formula-decl nil real_props nil )
(both_sides_times_pos_le1 formula-decl nil real_props nil )
(times_div1 formula-decl nil real_props nil )
(bijective? const-decl "bool" functions nil )
(id const-decl "(bijective?[T, T])" identity nil )
(TRUE const-decl "bool" booleans nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(rat nonempty-type-eq-decl nil rationals nil )
(Exp_increq_1 formula-decl nil float nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(CBD_14 skolem-const-decl "int" float nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(pos_div_gt formula-decl nil real_props nil )
(div_mult_pos_ge1 formula-decl nil real_props nil )
(zero_times1 formula-decl nil real_props nil )
(both_sides_times_pos_le2 formula-decl nil real_props nil )
(Fsubnormal? const-decl "bool" float nil )
(pos_times_le formula-decl nil real_props nil ))
shostak))
(CanonicLeastExp 0
(CanonicLeastExp-1 nil 3319282878
("" (skeep)
(("" (case-replace "p=Fnormalize(b)(q)" )
(("1" (hide -1 -2 -4) (("1" (assert ) nil nil )) nil )
("2" (hide 2)
(("2" (lemma "FcanonicUnique" )
(("2" (inst -1 "b" "p" "Fnormalize(b)(q)" )
(("2" (rewrite -1) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fbounded? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(FtoR const-decl "real" float nil )
(<= const-decl "bool" reals nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(FcanonicUnique formula-decl nil float nil ))
shostak))
(Fast_canonic 0
(Fast_canonic-1 nil 3319890253
("" (skeep)
(("" (split)
(("1" (case "vNum(b) <= abs(radix * Fnum(p))" )
(("1" (expand * "Fcanonic?" "Fnormal?" )
(("1" (assert ) nil nil )) nil )
("2" (expand * "Fcanonic?" "Fsubnormal?" )
(("2" (assert ) nil nil )) nil ))
nil )
("2" (expand * "Fcanonic?" "Fnormal?" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil )
((Fsubnormal? const-decl "bool" float nil )
(Fnormal? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(minus_int_is_int application-judgement "int" integers nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(<= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(radix formal-const-decl "above(1)" float nil )
(float type-eq-decl nil float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil ))
shostak))
(FulpOpp_TCC1 0
(FulpOpp_TCC1-1 nil 3319817879
("" (skeep) (("" (rewrite "FoppBounded" ) nil nil )) nil )
((FoppBounded formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil ))
nil ))
(FulpOpp 0
(FulpOpp-1 nil 3319817880
("" (skeep)
(("" (expand "Fulp" )
(("" (case "Fnormalize(b)(Fopp(f))=Fopp(Fnormalize(b)(f))" )
(("1" (rewrite -1)
(("1" (expand "Fopp" ) (("1" (propax) nil nil )) nil ))
nil )
("2" (rewrite "FcanonicUnique" :subst ("b" "b" ))
(("1"
(case "FtoR(Fnormalize(b)(Fopp(f)))= FtoR(Fopp(f))" )
(("1" (rewrite -1)
(("1" (rewrite "FoppCorrect" )
(("1" (rewrite "FoppCorrect" )
(("1" (assert ) nil nil )) nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil )
("2" (lemma "FcanonicOpp" )
(("2" (inst -1 "b" "Fnormalize(b)(f)" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((Fulp const-decl "real" float nil )
(FcanonicUnique formula-decl nil float nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(minus_real_is_real application-judgement "real" reals nil )
(FoppCorrect formula-decl nil float nil )
(FcanonicOpp formula-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fbounded? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(FtoR const-decl "real" float nil )
(<= const-decl "bool" reals nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(Fopp const-decl "float" float nil ))
shostak))
(FulpAbs_TCC1 0
(FulpAbs_TCC1-1 nil 3320082088
("" (skeep) (("" (rewrite "FabsBounded" ) nil nil )) nil )
((FabsBounded formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil ))
nil ))
(FulpAbs 0
(FulpAbs-1 nil 3320082088
("" (skeep)
(("" (expand "Fabs" )
(("" (expand "abs" )
(("" (grind-reals)
(("1"
(case-replace
"(# Fnum := -Fnum(f), Fexp := Fexp(f) #)=Fopp(f)" )
(("1" (rewrite "FulpOpp" ) nil nil )
("2" (expand "Fopp" ) (("2" (propax) nil nil )) nil ))
nil )
("2"
(case-replace
"(# Fnum := Fnum(f), Fexp := Fexp(f) #)=f" )
(("2" (decompose-equality) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((Fabs const-decl "float" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(FulpOpp formula-decl nil float nil )
(Fopp const-decl "float" float nil )
(float type-eq-decl nil float nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil ))
shostak))
(FulpMonotone 0
(FulpMonotone-1 nil 3320081916
("" (skeep)
(("" (expand "Fulp" )
(("" (rewrite "Exp_increq_1" )
(("" (rewrite "Lexico" :subst ("b" "b" )) nil nil )) nil ))
nil ))
nil )
((Fulp const-decl "real" float nil )
(Lexico formula-decl nil float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(<= const-decl "bool" reals nil )
(FtoR const-decl "real" float nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(Fcanonic? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(float type-eq-decl nil float nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(Exp_increq_1 formula-decl nil float nil ))
shostak))
(FulpMonotoneAbs 0
(FulpMonotoneAbs-1 nil 3320082046
("" (skeep)
(("" (rewrite "FulpAbs" :dir rl)
(("" (rewrite "FulpAbs" :dir rl :subst ("f" "q" ))
(("" (rewrite "FulpMonotone" )
(("1" (rewrite "FabsCorrect" )
(("1" (rewrite "FabsCorrect" ) nil nil )) nil )
("2" (rewrite "FabsCorrect" ) (("2" (assert ) nil nil ))
nil )
("3" (rewrite "FabsBounded" ) nil nil )
("4" (rewrite "FabsBounded" ) nil nil ))
nil ))
nil ))
nil ))
nil )
((FulpAbs formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(FulpMonotone formula-decl nil float nil )
(Fabs const-decl "float" float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(FabsCorrect formula-decl nil float nil )
(FabsBounded formula-decl nil float nil ))
shostak))
(FloatPlusUlpBounded 0
(FloatPlusUlpBounded-1 nil 3319810465
("" (skeep)
((""
(case "FORALL (b: Format, p: float):
Fcanonic?(b)(p) =>
(EXISTS (f: (Fbounded?(b))): FtoR(f) = FtoR(p) + Fulp(b)(p))")
(("1" (inst -1 "b" "Fnormalize(b)(p)" )
(("1" (split)
(("1" (skosimp*)
(("1" (inst 1 "f!1" )
(("1" (case "FtoR(Fnormalize(b)(p))=FtoR(p)" )
(("1"
(case " Fulp(b)(Fnormalize(b)(p))=Fulp(b)(p)" )
(("1" (assert ) nil nil )
("2" (hide -1 -2 2)
(("2" (expand "Fulp" )
(("2"
(rewrite "FcanonicUnique" :subst
("b"
"b"
"p"
"Fnormalize(b)(Fnormalize(b)(p))"
"q"
"Fnormalize(b)(p)" ))
nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil )
("2" (hide 2 -1)
(("2" (skosimp*)
(("2"
(case "Fnum(p!1) = vNum(b!1)-1 OR Fnum(p!1) <= vNum(b!1)-2" )
(("1" (split)
(("1"
(inst 1
"(# Fnum:=vNum(b!1)/radix, Fexp:=Fexp(p!1)+1 #)" )
(("1" (rewrite "FulpCanonic" )
(("1" (expand "FtoR" )
(("1" (rewrite "expt_plus" )
(("1" (rewrite "expt_x1" )
(("1" (field) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (expand "Fbounded?" )
(("2" (case "Fbounded?(b!1)(p!1)" )
(("1" (expand "Fbounded?" )
(("1" (flatten)
(("1"
(split)
(("1"
(expand "abs" )
(("1"
(grind-reals)
(("1"
(div-by 1 "vNum(b!1)" )
(("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (rewrite "FcanonicBounded" ) nil nil ))
nil ))
nil )
("3" (lemma "radix_div_vNum" )
(("3" (inst -1 "b!1" ) nil nil )) nil ))
nil )
("2"
(inst 1
"(# Fnum:=Fnum(p!1)+1, Fexp:=Fexp(p!1) #)" )
(("1" (rewrite "FulpCanonic" )
(("1" (expand "FtoR" ) (("1" (propax) nil nil ))
nil ))
nil )
("2" (expand "Fbounded?" )
(("2" (case "Fbounded?(b!1)(p!1)" )
(("1" (expand "Fbounded?" )
(("1" (flatten)
(("1"
(split)
(("1"
(expand "abs" )
(("1" (grind-reals) nil nil ))
nil )
("2" (propax) nil nil ))
nil ))
nil ))
nil )
("2" (rewrite "FcanonicBounded" ) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (case "Fbounded?(b!1)(p!1)" )
(("1" (expand "Fbounded?" )
(("1" (flatten) (("1" (grind-reals) nil nil ))
nil ))
nil )
("2" (rewrite "FcanonicBounded" ) nil nil ))
nil ))
nil ))
nil ))
nil )
("3" (skosimp*)
(("3" (rewrite "FcanonicBounded" ) nil nil )) nil ))
nil ))
nil )
((Fulp const-decl "real" float nil )
(+ const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(FtoR const-decl "real" float nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(Fbounded? const-decl "bool" float nil )
(Fcanonic? const-decl "bool" float nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(real_plus_real_is_real application-judgement "real" reals
nil )
(FcanonicUnique formula-decl nil float nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(p skolem-const-decl "float" float nil )
(b skolem-const-decl "Format" float nil )
(radix_div_vNum formula-decl nil float nil )
(FcanonicBounded formula-decl nil float nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(zero_times1 formula-decl nil real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(times_div_cancel1 formula-decl nil extra_real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(div_simp formula-decl nil real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(FulpCanonic formula-decl nil float nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(expt_plus formula-decl nil exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(expt_x1 formula-decl nil exponentiation nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals
nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(^ const-decl "real" exponentiation nil )
(p!1 skolem-const-decl "float" float nil )
(radix formal-const-decl "above(1)" float nil )
(b!1 skolem-const-decl "Format" float nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(>= const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil ))
shostak))
(FloatMinusUlpBounded 0
(FloatMinusUlpBounded-1 nil 3319814672
("" (skeep)
(("" (lemma "FloatPlusUlpBounded" )
(("" (inst -1 "b" "Fopp(p)" )
(("" (split)
(("1" (skosimp*)
(("1" (inst 1 "Fopp(f!1)" )
(("1" (rewrite "FoppCorrect" )
(("1" (rewrite "FoppCorrect" )
(("1" (rewrite -1)
(("1" (case "Fulp(b)(Fopp(p))=Fulp(b)(p)" )
(("1" (assert ) nil nil )
("2" (hide -1 2)
(("2"
(expand "Fulp" )
(("2"
(case
"Fnormalize(b)(Fopp(p))=Fopp(Fnormalize(b)(p))" )
(("1"
(rewrite -1)
(("1"
(expand "Fopp" )
(("1" (propax) nil nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(rewrite
"FcanonicUnique"
:subst
("b" "b" ))
(("1"
(case
"FtoR(Fnormalize(b)(Fopp(p)))=FtoR(Fopp(p))" )
(("1"
(rewrite -1)
(("1"
(rewrite "FoppCorrect" )
(("1"
(rewrite "FoppCorrect" )
(("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil )
("2"
(lemma "FcanonicOpp" )
(("2"
(inst
-1
"b"
"Fnormalize(b)(p)" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (rewrite "FoppBounded" ) nil nil ))
nil ))
nil )
("2" (rewrite "FoppBounded" ) nil nil ))
nil ))
nil ))
nil ))
nil )
((FloatPlusUlpBounded formula-decl nil float nil )
(f!1 skolem-const-decl "(Fbounded?(b))" float nil )
(b skolem-const-decl "Format" float nil )
(Fbounded? const-decl "bool" float nil )
(bool nonempty-type-eq-decl nil booleans nil )
(boolean nonempty-type-decl nil booleans nil )
(Fulp const-decl "real" float nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(number nonempty-type-decl nil numbers nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(FcanonicOpp formula-decl nil float nil )
(FcanonicUnique formula-decl nil float nil )
(Fnormalize def-decl
"{x: (Fcanonic?(b)) | FtoR(x) = FtoR(f):: real AND Fexp(x) <= Fexp(f)}"
float nil )
(<= const-decl "bool" reals nil )
(FtoR const-decl "real" float nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(Fcanonic? const-decl "bool" float nil )
(real_plus_real_is_real application-judgement "real" reals
nil )
(minus_real_is_real application-judgement "real" reals nil )
(FoppCorrect formula-decl nil float nil )
(FoppBounded formula-decl nil float nil )
(Fopp const-decl "float" float nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil ))
shostak))
(FpredFoppFsucc 0
(FpredFoppFsucc-1 nil 3319211967
("" (skeep)
(("" (expand * "Fpred" "Fopp" "Fsucc" )
(("" (grind-reals) nil nil )) nil ))
nil )
((Fopp const-decl "float" float nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(Fsucc const-decl "float" float nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_cancel4 formula-decl nil real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(int_plus_int_is_int application-judgement "int" integers
nil ))
shostak))
(FsuccFoppFpred 0
(FsuccFoppFpred-1 nil 3319212016
("" (skeep)
(("" (expand * "Fsucc" "Fopp" "Fpred" )
(("" (grind-reals) nil nil )) nil ))
nil )
((Fopp const-decl "float" float nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(Fsucc const-decl "float" float nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_cancel4 formula-decl nil real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(int_plus_int_is_int application-judgement "int" integers
nil ))
shostak))
(FsuccFpred 0
(FsuccFpred-1 nil 3319298166
("" (skeep)
(("" (expand * "Fpred" "Fsucc" )
(("" (grind-reals)
(("1" (lemma "radix_less_vNum" :subst ("b" "b" ))
(("1" (hide -2 -3) (("1" (field -2) nil nil )) nil ))
nil )
("2" (apply-extensionality :hide? t) nil nil )
("3"
(expand * "Fcanonic?" "Fnormal?" "Fsubnormal?"
"Fbounded?" )
nil nil )
("4" (decompose-equality 2)
(("1" (rewrite "div_cancel4" ) (("1" (grind) nil nil ))
nil )
("2" (rewrite "div_cancel4" )
(("2" (replace -2 :dir rl :hide? t)
(("2" (grind) nil nil )) nil ))
nil ))
nil )
("5"
(expand * "Fcanonic?" "Fnormal?" "Fsubnormal?"
"Fbounded?" )
(("5" (rewrite -2) (("5" (grind-reals) nil nil )) nil ))
nil )
("6" (decompose-equality 3) nil nil )
("7"
(expand * "Fcanonic?" "Fnormal?" "Fsubnormal?"
"Fbounded?" )
(("7" (rewrite -2) (("7" (grind-reals) nil nil )) nil ))
nil )
("8"
(expand * "Fcanonic?" "Fnormal?" "Fsubnormal?"
"Fbounded?" )
(("8" (flatten)
(("8" (case-replace "Fnum(f)=1-(vNum(b) / radix)" )
(("1" (hide-all-but -3)
(("1" (rewrite "abs_mult" )
(("1" (expand "abs" )
(("1" (grind-reals)
(("1"
(lemma "radix_less_vNum" :subst
("b" "b" ))
(("1" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil )
("9" (decompose-equality 3) nil nil ))
nil ))
nil ))
nil )
((Fsucc const-decl "float" float nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals
nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(abs_mult formula-decl nil real_props nil )
(rat_abs_is_nonneg application-judgement
"{r: nonneg_rat | r >= q}" real_defs nil )
(nnrat_times_nnrat_is_nnrat application-judgement
"nonneg_rat" rationals nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(minus_rat_is_rat application-judgement "rat" rationals nil )
(div_cancel2 formula-decl nil real_props nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(f skolem-const-decl "float" float nil )
(radix formal-const-decl "above(1)" float nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(both_sides_times_pos_lt2 formula-decl nil real_props nil )
(both_sides_times_pos_le2 formula-decl nil real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(Fcanonic? const-decl "bool" float nil )
(Fnormal? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(float type-eq-decl nil float nil )
(vNum const-decl "posnat" float nil )
(posnat nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(radix_less_vNum formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(minus_int_is_int application-judgement "int" integers nil )
(div_cancel3 formula-decl nil real_props nil )
(div_cancel4 formula-decl nil real_props nil ))
shostak))
(FpredFsucc 0
(FpredFsucc-1 nil 3319299927
("" (skeep)
(("" (case "f=Fopp(Fopp(f))" )
(("1" (rewrite -1 :target-fnums 1)
(("1" (rewrite "FsuccFoppFpred" )
(("1"
(rewrite "FpredFoppFsucc" :subst
("f" "(Fpred(b)(Fopp(f)))" ))
(("1" (rewrite "FsuccFpred" )
(("1" (lemma "FcanonicOpp" )
(("1" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide -1 2)
(("2" (expand "Fopp" )
(("2" (decompose-equality) nil nil )) nil ))
nil ))
nil ))
nil )
((Fopp const-decl "float" float nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(FsuccFoppFpred formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(FsuccFpred formula-decl nil float nil )
(FcanonicOpp formula-decl nil float nil )
(FpredFoppFsucc formula-decl nil float nil )
(Fpred const-decl "float" float nil )
(minus_int_is_int application-judgement "int" integers nil )
(number nonempty-type-decl nil numbers nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil ))
shostak))
(FpredBounded 0
(FpredBounded-1 nil 3320428258
("" (skeep)
(("" (expand * "Fbounded?" "Fpred" )
(("" (grind-reals)
(("1" (expand "abs" 1)
(("1" (field 1)
(("1" (div-by 1 "vNum(b)" ) (("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (expand "abs" 2) (("2" (assert ) nil nil )) nil )
("3" (expand "abs" ) (("3" (grind-reals) nil nil )) nil )
("4" (expand "abs" ) (("4" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil )
((Fpred const-decl "float" float nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(Fbounded? const-decl "bool" float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(radix formal-const-decl "above(1)" float nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(vNum const-decl "posnat" float nil )
(posnat nonempty-type-eq-decl nil integers nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(>= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(div_simp formula-decl nil real_props nil )
(/= const-decl "boolean" notequal nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div_cancel1 formula-decl nil extra_real_props nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(nzint_abs_is_pos application-judgement
"{j: posint | j >= i}" real_defs nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nzrat_abs_is_pos application-judgement
"{r: posrat | r >= q}" real_defs nil )
(abs_div formula-decl nil real_props nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_cancel4 formula-decl nil real_props nil ))
shostak))
(FsuccBounded 0
(FsuccBounded-1 nil 3320428394
("" (skeep)
(("" (case-replace "Fsucc(b)(f)=Fopp(Fopp(Fsucc(b)(f)))" )
(("1" (rewrite "FoppBounded" )
(("1" (rewrite "FpredFoppFsucc" :dir rl)
(("1" (rewrite "FpredBounded" )
(("1" (rewrite "FoppBounded" ) nil nil )) nil ))
nil ))
nil )
("2" (expand "Fopp" )
(("2" (decompose-equality 1) nil nil )) nil ))
nil ))
nil )
((int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(Fsucc const-decl "float" float nil )
(Fopp const-decl "float" float nil )
(FpredFoppFsucc formula-decl nil float nil )
(FpredBounded formula-decl nil float nil )
(FoppBounded formula-decl nil float nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number nonempty-type-decl nil numbers nil )
(minus_int_is_int application-judgement "int" integers nil ))
shostak))
(FsuccCanonic 0
(FsuccCanonic-1 nil 3319233185
("" (skeep)
(("" (lemma "FcanonicOpp" )
(("" (inst-cp -1 "b" "Fsucc(b)(f)" )
(("" (flatten)
(("" (rewrite -3)
(("" (hide -2 -3 2)
(("" (lemma "FpredFoppFsucc" )
(("" (inst -1 "b" "f" )
(("" (case "Fcanonic?(b)(Fpred(b)(Fopp(f)))" )
(("1" (assert ) nil nil )
("2" (rewrite "FpredCanonic" )
(("2" (hide 2 3 -1)
(("2"
(inst -1 "b" "f" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((FcanonicOpp formula-decl nil float nil )
(FpredCanonic formula-decl nil float nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fcanonic? const-decl "bool" float nil )
(Fpred const-decl "float" float nil )
(Fopp const-decl "float" float nil )
(FpredFoppFsucc formula-decl nil float nil )
(Fsucc const-decl "float" float nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil ))
shostak))
(FpredPos 0
(FpredPos-1 nil 3319306101
("" (skeep)
(("" (expand "FtoR" )
(("" (div-by -2 "radix ^ (Fexp(p))" )
(("" (case-replace "0 / radix ^ (Fexp(p))=0" )
(("1" (hide -1)
(("1" (expand "Fpred" ) (("1" (grind-reals) nil nil ))
nil ))
nil )
("2" (grind-reals) nil nil ))
nil ))
nil ))
nil ))
nil )
((FtoR const-decl "real" float nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(nnrat_div_posrat_is_nnrat application-judgement "nonneg_rat"
rationals nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(pos_times_le formula-decl nil real_props nil )
(div_cancel4 formula-decl nil real_props nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div_cancel2 formula-decl nil extra_real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(int nonempty-type-eq-decl nil integers nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(above nonempty-type-eq-decl nil integers nil )
(radix formal-const-decl "above(1)" float nil )
(float type-eq-decl nil float nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(* const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil ))
shostak))
(FsuccPos 0
(FsuccPos-1 nil 3319462089
("" (skeep)
(("" (case "0 <=Fnum(p)" )
(("1" (case "0 < Fnum(Fsucc(b)(p))" )
(("1" (expand "FtoR" 1) (("1" (grind-reals) nil nil ))
nil )
("2" (hide 2)
(("2" (expand "Fsucc" )
(("2" (lift-if)
(("2" (split +)
(("1" (flatten) (("1" (cross-mult 1) nil nil ))
nil )
("2" (flatten)
(("2" (split 2)
(("1" (flatten) (("1" (grind) nil nil )) nil )
("2" (flatten) (("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "FtoR" -2) (("2" (grind-reals) nil nil ))
nil ))
nil ))
nil )
((float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(<= const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(Fcanonic? const-decl "bool" float nil )
(Fsubnormal? const-decl "bool" float nil )
(Fnormal? const-decl "bool" float nil )
(Fbounded? const-decl "bool" float nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}"
real_defs nil )
(^ const-decl "real" exponentiation nil )
(expt def-decl "real" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(posnat_expt application-judgement "posnat" exponentiation
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(int_abs_is_nonneg application-judgement
"{j: nonneg_int | j >= i}" real_defs nil )
(>= const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(radix formal-const-decl "above(1)" float nil )
(nonneg_int nonempty-type-eq-decl nil integers nil )
(posnat nonempty-type-eq-decl nil integers nil )
(vNum const-decl "posnat" float nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(even_times_int_is_even application-judgement "even_int"
integers nil )
(nnint_times_nnint_is_nnint application-judgement
"nonneg_int" integers nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(FtoR const-decl "real" float nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(pos_times_lt formula-decl nil real_props nil )
(< const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(Fsucc const-decl "float" float nil )
(pos_times_le formula-decl nil real_props nil ))
shostak))
(FpredDiff_TCC1 0
(FpredDiff_TCC1-1 nil 3319375218
("" (skeep)
(("" (rewrite "FcanonicBounded" )
(("" (rewrite "FpredCanonic" ) nil nil )) nil ))
nil )
((FcanonicBounded formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fpred const-decl "float" float nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(FpredCanonic formula-decl nil float nil ))
nil ))
(FpredDiff 0
(FpredDiff-1 nil 3319375376
("" (skeep)
(("" (rewrite "FulpCanonic" )
(("1" (expand * "FtoR" "Fpred" )
(("1" (grind-reals)
(("1" (rewrite "expt_div" :dir rl)
(("1" (rewrite "expt_x1" )
(("1" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (rewrite "FpredCanonic" ) nil nil ))
nil ))
nil )
((FulpCanonic formula-decl nil float nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(above nonempty-type-eq-decl nil integers nil )
(Format type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(float type-eq-decl nil float nil )
(Fpred const-decl "float" float nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_cancel4 formula-decl nil real_props nil )
(pos_times_lt formula-decl nil real_props nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals
nil )
(minus_int_is_int application-judgement "int" integers nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals
nil )
(times_div1 formula-decl nil real_props nil )
(expt_x1 formula-decl nil exponentiation nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(expt_div formula-decl nil exponentiation nil )
(number nonempty-type-decl nil numbers nil )
(boolean nonempty-type-decl nil booleans nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(real nonempty-type-from-decl nil reals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(rational nonempty-type-from-decl nil rationals nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(/= const-decl "boolean" notequal nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(> const-decl "bool" reals nil )
(radix formal-const-decl "above(1)" float nil )
(FtoR const-decl "real" float nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(int_minus_int_is_int application-judgement "int" integers
nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(FpredCanonic formula-decl nil float nil ))
shostak))
(FsuccDiff 0
(FsuccDiff-1 nil 3319461787
("" (skeep)
(("" (case "f=Fpred(b)(Fsucc(b)(f))" )
(("1" (case-replace "FtoR(f)=FtoR(Fpred(b)(Fsucc(b)(f)))" )
(("1"
(case-replace
"Fulp(b)(f)=Fulp(b)(Fpred(b)(Fsucc(b)(f)))" )
(("1" (rewrite "FpredDiff" )
(("1" (hide -1 -2 2)
(("1" (rewrite "FsuccPos" ) nil nil )) nil )
("2" (rewrite "FsuccCanonic" ) nil nil ))
nil )
("2" (grind-reals) nil nil )
("3" (rewrite -2 :dir rl)
(("3" (rewrite "FcanonicBounded" ) nil nil )) nil ))
nil )
("2" (grind-reals) nil nil ))
nil )
("2" (rewrite "FpredFsucc" ) nil nil ))
nil ))
nil )
((Fsucc const-decl "float" float nil )
(Fpred const-decl "float" float nil )
(Format type-eq-decl nil float nil )
(above nonempty-type-eq-decl nil integers nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(boolean nonempty-type-decl nil booleans nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(bool nonempty-type-eq-decl nil booleans nil )
(Fbounded? const-decl "bool" float nil )
(Fulp const-decl "real" float nil )
(FsuccCanonic formula-decl nil float nil )
(FsuccPos formula-decl nil float nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_minus_real_is_real application-judgement "real" reals
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(FpredDiff formula-decl nil float nil )
(FcanonicBounded formula-decl nil float nil )
(FtoR const-decl "real" float nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(number nonempty-type-decl nil numbers nil )
(FpredFsucc formula-decl nil float nil ))
shostak))
(FpredLt 0
(FpredLt-1 nil 3319233508
("" (skeep)
(("" (expand "Fpred" )
(("" (grind-reals)
(("1" (expand "FtoR" )
(("1" (rewrite "expt_plus" )
(("1" (rewrite "expt_x1" )
(("1" (rewrite -1) (("1" (field) nil nil )) nil ))
nil ))
nil ))
nil )
("2" (expand "FtoR" )
(("2"
(case-replace
"radix ^ (Fexp(f) - 1)=radix ^ (Fexp(f))/radix" )
(("1" (hide -1 -3 1)
(("1" (field) (("1" (grind-reals) nil nil )) nil ))
nil )
("2" (hide -1 -2 2 3)
(("2" (lemma "expt_div" )
(("2" (inst -1 "Fexp(f)" "1" "radix" )
(("2" (rewrite "expt_x1" -1)
(("2" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("3" (hide 1 2)
(("3" (expand "FtoR" ) (("3" (grind-reals) nil nil ))
nil ))
nil )
("4" (expand "FtoR" )
(("4" (hide 1 2) (("4" (grind-reals) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((int_minus_int_is_int application-judgement "int" integers
nil )
(Fpred const-decl "float" float nil )
(div_cancel3 formula-decl nil real_props nil )
(expt_div formula-decl nil exponentiation nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals
nil )
(rat_div_nzrat_is_rat application-judgement "rat" rationals
nil )
(div_distributes_minus formula-decl nil real_props nil )
(times_div1 formula-decl nil real_props nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields
nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]"
number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(^ const-decl "real" exponentiation nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(FtoR const-decl "real" float nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(rat_times_rat_is_rat application-judgement "rat" rationals
nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(>= const-decl "bool" reals nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(times_div2 formula-decl nil real_props nil )
(expt_x1 formula-decl nil exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation
nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation
nil )
(radix formal-const-decl "above(1)" float nil )
(above nonempty-type-eq-decl nil integers nil )
(> const-decl "bool" reals nil )
(bool nonempty-type-eq-decl nil booleans nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(/= const-decl "boolean" notequal nil )
(float type-eq-decl nil float nil )
(int nonempty-type-eq-decl nil integers nil )
(integer_pred const-decl "[rational -> boolean]" integers
nil )
(rational nonempty-type-from-decl nil rationals nil )
(rational_pred const-decl "[real -> boolean]" rationals nil )
(real nonempty-type-from-decl nil reals nil )
(real_pred const-decl "[number_field -> boolean]" reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(number_field_pred const-decl "[number -> boolean]"
number_fields nil )
(boolean nonempty-type-decl nil booleans nil )
(number nonempty-type-decl nil numbers nil )
(expt_plus formula-decl nil exponentiation nil )
(int_plus_int_is_int application-judgement "int" integers
nil )
(minus_nzint_is_nzint application-judgement "nzint" integers
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat"
rationals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(mult_divides2 application-judgement "(divides(m))" divides
nil )
(mult_divides1 application-judgement "(divides(n))" divides
nil )
(minus_int_is_int application-judgement "int" integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_cancel4 formula-decl nil real_props nil ))
shostak))
(FpredLe_aux 0
(FpredLe_aux-1 nil 3319391212
("" (skeep)
((""
(case-replace
"FtoR(Fpred(b)(p))=FtoR(p)-Fulp(b)(Fpred(b)(p))" )
(("1"
(case-replace
"FtoR(Fpred(b)(q))=FtoR(q)-Fulp(b)(Fpred(b)(q))" )
(("1" (rewrite "FulpCanonic" )
(("1" (rewrite "FulpCanonic" )
(("1" (hide -1 -2)
(("1" (case "0<Fnum(p)" )
(("1" (case "0<Fnum(q)" )
(("1" (case "Fexp(p) <= Fexp(q)" )
(("1" (expand "Fpred" )
(("1" (grind-reals)
(("1"
(expand * "FtoR" )
(("1"
(rewrite "expt_div" :dir rl)
(("1"
(rewrite "expt_div" :dir rl)
(("1"
(rewrite "expt_x1" )
(("1"
(field)
(("1"
(div-by 1 "vNum(b)-1" )
(("1"
(case-replace
"Fnum(p)=vNum(b)/radix" )
(("1"
(case-replace
"Fnum(q)=vNum(b)/radix" )
(("1"
(case-replace
"(vNum(b) / radix * (radix ^ Fexp(p)) * radix - (radix ^ Fexp(p))) /
(vNum(b) - 1)=radix ^ Fexp(p)")
(("1"
(case-replace
"(vNum(b) / radix * (radix ^ Fexp(q)) * radix - (radix ^ Fexp(q))) /
(vNum(b) - 1)=radix ^ Fexp(q)")
(("1"
(rewrite
"Exp_increq_1" )
nil
nil )
("2"
(field)
nil
nil ))
nil )
("2"
(field 1)
nil
nil ))
nil )
("2"
(flatten)
(("2"
(grind-reals)
nil
nil ))
nil ))
nil )
("2"
(expand "Fcanonic?" )
(("2"
(split)
(("1"
(expand "Fnormal?" )
(("1"
(flatten)
(("1"
(rewrite
"abs_mult"
-2)
(("1"
(expand
"abs"
-2)
(("1"
(mult-by
2
"radix" )
(("1"
(field 2)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case-replace
" Fnum(p) * (radix ^ Fexp(p)) * radix - (radix ^ Fexp(p))
= (vNum(b)-1)*radix ^ Fexp(p)")
(("1"
(case
"(vNum(b) - 1) * radix ^ Fexp(p) <= (vNum(b) - 1) * radix ^ Fexp(q)" )
(("1"
(case
"(vNum(b) - 1) * radix ^ Fexp(q) <= Fnum(q) * radix ^ (Fexp(q)) * radix - radix ^ Fexp(q) * radix" )
(("1"
(grind-reals)
nil
nil )
("2"
(cancel-by
1
"radix ^ Fexp(q)" )
nil
nil ))
nil )
("2"
(hide-all-but
(-5 2 3))
(("2"
(case
"vNum(b) = radix * Fnum(q) OR vNum(b) < radix * Fnum(q)" )
(("1"
(split)
(("1"
(grind-reals)
nil
nil )
("2"
(lemma
"radix_div_vNum" )
(("2"
(inst
-1
"b" )
(("2"
(rewrite
"div_simple"
-1
:dir
rl)
(("2"
(skosimp*)
(("2"
(div-by
-2
"radix" )
(("2"
(case-replace
"vNum(b) / radix=k!1" )
(("1"
(case
"k!1 <= Fnum(q)-1" )
(("1"
(mult-by
-1
"radix" )
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil )
("2"
(div-by
1
"vNum(b) - 1" )
(("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "Fcanonic?" -5)
(("2"
(split)
(("1"
(expand "Fnormal?" )
(("1"
(flatten)
(("1"
(rewrite "abs_mult" -2)
(("1"
(expand "abs" -2)
(("1"
(expand "FtoR" 2)
(("1"
(rewrite
"expt_div"
:dir
rl)
(("1"
(rewrite "expt_x1" )
(("1"
(mult-by 2 "radix" )
(("1"
(field 2)
(("1"
(case-replace
" Fnum(p) * (radix ^ Fexp(p)) * radix - (radix ^ Fexp(p))
= (vNum(b)-1)*radix ^ Fexp(p)")
(("1"
(case
"(vNum(b) - 1) * radix ^ Fexp(p) <= (vNum(b) - 1) * radix ^ Fexp(q)" )
(("1"
(case
"(vNum(b) - 1) * radix ^ Fexp(q) <= Fnum(q) * radix ^ (Fexp(q)) * radix - radix ^ Fexp(q) * radix" )
(("1"
(grind-reals)
nil
nil )
("2"
(cancel-by
1
"radix ^ Fexp(q)" )
(("2"
(hide-all-but
(-5
2
3))
(("2"
(case
"vNum(b) = radix * Fnum(q) OR vNum(b) < radix * Fnum(q)" )
(("1"
(split)
(("1"
(grind-reals)
nil
nil )
("2"
(lemma
"radix_div_vNum" )
(("2"
(inst
-1
"b" )
(("2"
(rewrite
"div_simple"
-1
:dir
rl)
(("2"
(skosimp*)
(("2"
(div-by
-2
"radix" )
(("2"
(case-replace
"vNum(b) / radix=k!1" )
(("1"
(case
"k!1 <= Fnum(q)-1" )
(("1"
(mult-by
-1
"radix" )
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(div-by
1
"vNum(b) - 1" )
(("2"
(rewrite
"Exp_increq_1" )
nil
nil ))
nil ))
nil )
("2"
(grind-reals)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "Fsubnormal?" )
(("2" (propax) nil nil ))
nil ))
nil ))
nil )
("3"
(case "Fbounded?(b)(p)" )
(("1"
(expand "Fbounded?" )
(("1"
(flatten)
(("1"
(case "-dExp(b) = Fexp(p)" )
(("1"
(expand "abs" -2)
(("1"
(expand "FtoR" 2)
(("1"
(case
"(vNum(b)-2)*radix ^ Fexp(p) <= Fnum(q) * radix ^ (Fexp(q)) - radix ^ (Fexp(q) - 1)" )
(("1"
(case
"Fnum(p) * radix ^ (Fexp(p)) - radix ^ Fexp(p) <= (vNum(b) - 2) * radix ^ Fexp(p)" )
(("1"
(grind-reals)
nil
nil )
("2"
(div-by
1
"radix ^ (Fexp(p))" )
(("2"
(case-replace
"(Fnum(p) * radix ^ (Fexp(p)) - radix ^ Fexp(p)) / radix ^ (Fexp(p))
= Fnum(p)-1")
(("1"
(grind-reals)
nil
nil )
("2"
(field 1)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide 2 3)
(("2"
(case
--> --------------------
--> maximum size reached
--> --------------------
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.1.128Bemerkung:
(vorverarbeitet am 2026-04-28)
¤
*Bot Zugriff