Quellcode-Bibliothek atan_approx.prf
Sprache: Lisp
(atan_approx
(atan_pos_le1_ub_lt 0
(atan_pos_le1_ub_lt-1 nil 3392566953
("" (skeep)
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_series_n" )
(("" (expand "sigma" 1 1)
(("" (expand "sigma" 1 1)
(("" (move-terms 1 r 1)
(("" (assert )
(("" (expand "atan_series_term" )
(("" (expand "atan_series_coef" )
(("" (lemma "not_even_m1_pow" )
(("" (inst?)
(("" (split -1)
(("1" (replaces -1)
(("1" (lemma "even_m1_pow" )
(("1"
(inst?)
(("1"
(split -1)
(("1"
(replaces -1)
(("1"
(case
"(x ^ (5 + 4 * n)) * (1 / (5 + 4 * n)) < (x ^ (5 + 4 * n)) / (3 + 4 * n)" )
(("1"
(case
"(x ^ (5 + 4 * n)) / (3 + 4 * n) <= (x ^ (3 + 4 * n)) / (3 + 4 * n)" )
(("1" (assert ) nil nil )
("2"
(hide -1 2)
(("2"
(grind-reals)
(("2"
(rewrite
"both_sides_expt_lt1_le" )
(("2"
(case "x=1" )
(("1"
(replaces -1)
(("1"
(grind)
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(case "x ^ (5+4 *n) > 0" )
(("1"
(name-replace
"aa"
"x^(5+4*n)" )
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(rewrite "expt_pos" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but -1)
(("2" (grind) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((atan_pos_le1_ub const-decl "real" atan_approx 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 )
(sigma def-decl "real" sigma "reals/" )
(real_plus_real_is_real application-judgement "real" reals nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(IFF 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 )
(< 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 )
(int nonempty-type-eq-decl nil integers nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(T_low type-eq-decl nil sigma "reals/" )
(T_high type-eq-decl nil sigma "reals/" )
(- const-decl "[numfield, numfield -> numfield]" number_fields 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 )
(not_even_m1_pow formula-decl nil exponentiation nil )
(even_m1_pow formula-decl nil exponentiation nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields 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 )
(posreal nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_expt_lt1_le formula-decl nil exponentiation nil )
(posint_exp application-judgement "posint" exponentiation nil )
(posnat_expt application-judgement "posnat" exponentiation nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(even_minus_odd_is_odd application-judgement "odd_int" integers
nil )
(le_times_le_pos formula-decl nil real_props nil )
(expt def-decl "real" exponentiation nil )
(nonzero_times1 formula-decl nil real_props nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(both_sides_div_pos_le1 formula-decl nil real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(times_div1 formula-decl nil real_props nil )
(lt_div_lt_pos1 formula-decl nil real_props nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(expt_pos formula-decl nil exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(real_times_real_is_real application-judgement "real" reals nil )
(even? const-decl "bool" integers nil )
(atan_series_coef const-decl "rat" atan nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(atan_series_n const-decl "real" atan nil ))
shostak))
(atan_pos_le1_lb_lt 0
(atan_pos_le1_lb_lt-1 nil 3392570203
("" (skeep)
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_series_n" )
(("" (expand "sigma" 1 2)
(("" (expand "sigma" 1 2)
(("" (move-terms 1 r 3)
(("" (assert )
(("" (expand "atan_series_term" )
(("" (expand "atan_series_coef" )
(("" (lemma "not_even_m1_pow" )
(("" (inst -1 "3+2*n" )
(("" (split -1)
(("1" (replaces -1)
(("1" (lemma "even_m1_pow" )
(("1"
(inst?)
(("1"
(split -1)
(("1"
(replaces -1)
(("1"
(case
"(x ^ (5 + 4 * n))/(7 + 4 * n) < (x ^ (5 + 4 * n)) * (1 / (5 + 4 * n))" )
(("1"
(case
"(x ^ (7 + 4 * n))/(7+4*n) <= (x ^ (5 + 4 * n))/(7+4*n)" )
(("1" (assert ) nil nil )
("2"
(hide -1 2)
(("2"
(grind-reals)
(("2"
(rewrite
"both_sides_expt_lt1_le" )
(("2"
(case-replace "x=1" )
(("1" (grind) nil nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(case "x ^ (5+4*n) > 0" )
(("1"
(name-replace
"aa"
"x^(5+4*n)" )
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(rewrite "expt_pos" )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but -1)
(("2" (grind) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((atan_pos_le1_lb const-decl "real" atan_approx 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 )
(sigma def-decl "real" sigma "reals/" )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(boolean nonempty-type-decl nil booleans nil )
(bool nonempty-type-eq-decl nil booleans nil )
(IFF 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 )
(< 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 )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(<= const-decl "bool" reals nil )
(T_low type-eq-decl nil sigma "reals/" )
(T_high type-eq-decl nil sigma "reals/" )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields 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 )
(not_even_m1_pow formula-decl nil exponentiation nil )
(even_m1_pow formula-decl nil exponentiation nil )
(real_div_nzreal_is_real application-judgement "real" reals 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 "real" exponentiation 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 )
(posreal nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_expt_lt1_le formula-decl nil exponentiation nil )
(nonzero_times1 formula-decl nil real_props nil )
(expt def-decl "real" exponentiation nil )
(le_times_le_pos formula-decl nil real_props nil )
(even_minus_odd_is_odd application-judgement "odd_int" integers
nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(posnat_expt application-judgement "posnat" exponentiation nil )
(posint_exp application-judgement "posint" exponentiation nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(both_sides_div_pos_le1 formula-decl nil real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(times_div1 formula-decl nil real_props nil )
(lt_div_lt_pos1 formula-decl nil real_props nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(expt_pos formula-decl nil exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(real_times_real_is_real application-judgement "real" reals nil )
(even? const-decl "bool" integers nil )
(atan_series_coef const-decl "rat" atan nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(atan_series_n const-decl "real" atan nil ))
shostak))
(atan_pos_le1_bounds 0
(atan_pos_le1_bounds-1 nil 3295292840
("" (skosimp)
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_pos_le1_ub" )
(("" (case "FORALL (n:posnat): 0 < x!1^n/n" )
(("1"
(case "FORALL (n,m:posnat): n < m => x!1^m/m < x!1^n/n" )
(("1"
(case-replace
"atan_series_n(x!1, 1 + 2 * n!1) < atan(x!1)" )
(("1" (lemma "atan_series" ("x" "x!1" "n" "1+2*n!1" ))
(("1" (rewrite "abs_expt" -1 :dir rl)
(("1" (expand "abs" -1)
(("1" (assert )
(("1" (expand "atan_series_n" )
(("1" (expand "sigma" -1)
(("1"
(name-replace "UB"
"sigma(0, 2 * n!1, atan_series_term(x!1))" )
(("1" (hide -2)
(("1"
(expand "atan_series_term" )
(("1"
(expand "atan_series_coef" )
(("1"
(lemma
"not_even_m1_pow"
("i" "1+2*n!1" ))
(("1"
(split -1)
(("1"
(replace -1)
(("1"
(inst - "3+4*n!1" "5+4*n!1" )
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(hide-all-but -1)
(("2"
(expand "even?" )
(("2" (propax) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (lemma "atan_series" ("x" "x!1" "n" "2+2*n!1" ))
(("2" (rewrite "abs_expt" -1 :dir rl)
(("2" (expand "abs" )
(("2" (assert )
(("2" (expand "atan_series_n" )
(("2" (expand "sigma" -1)
(("2"
(name-replace "LB"
"sigma(0, 1 + 2 * n!1, atan_series_term(x!1))" )
(("2"
(expand "atan_series_term" )
(("2"
(expand "atan_series_coef" )
(("2"
(lemma
"even_m1_pow"
("i" "2+2*n!1" ))
(("2"
(split -1)
(("1"
(replace -1)
(("1"
(hide -1)
(("1"
(inst
-
"5 + 4 * n!1"
"7 + 4 * n!1" )
(("1"
(assert )
(("1"
(inst-cp
-
"7 + 4 * n!1" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(expand "even?" )
(("2"
(inst + "n!1+1" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (skosimp)
(("2" (case-replace "x!1=1" )
(("1" (rewrite "expt_1i" )
(("1" (rewrite "expt_1i" )
(("1" (lemma "both_sides_div_pos_lt2" )
(("1" (inst - "m!1" "n!2" "1" )
(("1" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
("2"
(lemma "both_sides_expt_lt1_lt"
("lt1x" "x!1" "i" "m!1" "j" "n!2" ))
(("1" (assert )
(("1"
(lemma "lt_div_lt_pos1"
("px" "x!1 ^ m!1" "y" "x!1 ^ n!2" "pz" "n!2"
"w" "m!1" ))
(("1" (assert ) nil nil )
("2" (lemma "expt_pos" ("px" "x!1" "i" "m!1" ))
(("2" (assert ) nil nil )) nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (skosimp)
(("2" (lemma "expt_pos" ("px" "x!1" "i" "n!2" ))
(("1" (rewrite "div_mult_pos_lt2" )
(("1" (assert ) nil nil )) nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
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 )
(atan_pos_le1_lb const-decl "real" atan_approx 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 )
(/= const-decl "boolean" notequal nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(< const-decl "bool" reals 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 )
(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 )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(both_sides_div_pos_lt2 formula-decl nil real_props nil )
(posint_exp application-judgement "posint" exponentiation nil )
(expt_1i formula-decl nil exponentiation nil )
(expt_pos formula-decl nil exponentiation nil )
(lt_div_lt_pos1 formula-decl nil real_props 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 )
(both_sides_expt_lt1_lt formula-decl nil exponentiation nil )
(atan const-decl "real_abs_lt_pi2" atan nil )
(real_abs_lt_pi2 nonempty-type-eq-decl nil atan nil )
(pi const-decl "posreal" atan nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(atan_series_n const-decl "real" atan nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(abs_expt formula-decl nil exponentiation nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nnreal_exp application-judgement "nnreal" exponentiation nil )
(sigma def-decl "real" sigma "reals/" )
(int_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(atan_series_coef const-decl "rat" atan nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(even? const-decl "bool" integers nil )
(not_even_m1_pow formula-decl nil exponentiation nil )
(real_times_real_is_real application-judgement "real" reals nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(<= const-decl "bool" reals nil )
(T_low type-eq-decl nil sigma "reals/" )
(T_high type-eq-decl nil sigma "reals/" )
(atan_series_term const-decl "[nat -> real]" atan nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(atan_series formula-decl nil atan nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(even_m1_pow formula-decl nil exponentiation nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil ))
shostak))
(atan_pos_le1_lb_inc 0
(atan_pos_le1_lb_inc-2 nil 3403980230
(""
(case "FORALL (n: nat, px: posreal):
px <= 1 => atan_pos_le1_lb(n, px) < atan_pos_le1_lb(n+1, px)")
(("1"
(case "FORALL (n: nat,pn:posnat, px: posreal):
px <= 1 => atan_pos_le1_lb(n, px) < atan_pos_le1_lb(n+pn, px)")
(("1" (skosimp)
(("1" (inst - "n!1" "m!1-n!1" "px!1" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
("2" (hide 2)
(("2" (induct "pn" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )
("3" (skosimp*)
(("3" (case-replace "j!1=0" )
(("1" (assert )
(("1" (hide -1 -2 -3)
(("1" (inst - "n!1" "px!1" ) (("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (inst - "n!1" "px!1" )
(("2" (assert )
(("2" (inst - "j!1+n!1" "px!1" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (skosimp)
(("2" (expand "atan_pos_le1_lb" )
(("2" (expand "atan_series_n" )
(("2" (expand "sigma" 1 2)
(("2" (expand "sigma" 1 2)
(("2"
(name-replace "SUM"
"sigma(0, 1 + 2 * n!1, atan_series_term(px!1))" )
(("2" (expand "atan_series_term" )
(("2" (expand "atan_series_coef" )
(("2" (expand "^" )
(("2" (expand "expt" 1 3)
(("2" (expand "expt" 1 3)
(("2" (expand "expt" 1 4)
(("2"
(case-replace
"expt((-1), 2 + 2 * n!1)=1" )
(("1"
(typepred "expt(px!1, 5 + 4 * n!1)" )
(("1"
(hide -1 -3)
(("1"
(name-replace
"PX"
"expt(px!1, 5 + 4 * n!1)" )
(("1"
(lemma
"posreal_times_posreal_is_posreal"
("px"
"PX"
"py"
"1 / (5 + 4 * n!1)-sq(px!1)/(7 + 4 * n!1)" ))
(("1"
(expand "sq" )
(("1" (assert ) nil nil ))
nil )
("2"
(hide 2)
(("2"
(lemma
"div_mult_pos_lt1"
("py"
"7+4*n!1"
"z"
"sq(px!1)"
"x"
"1/(5+4*n!1)" ))
(("2"
(lemma
"sq_nz_pos"
("nz" "px!1" ))
(("2"
(lemma
"div_mult_pos_lt2"
("py"
"5 + 4 * n!1"
"z"
"7 + 4 * n!1"
"x"
"1" ))
(("2"
(lemma
"sq_le"
("nna"
"px!1"
"nnb"
"1" ))
(("2"
(rewrite "sq_1" )
(("2"
(assert )
(("2"
(name-replace
"LHS"
"sq(px!1) / (7 + 4 * n!1)" )
(("2"
(name-replace
"RHS"
"1 / (5 + 4 * n!1)" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(lemma
"expt_times"
("n0x" "-1" "i" "2" "j" "1+n!1" ))
(("2"
(expand "^" -1 1)
(("2"
(expand "^" -1 1)
(("2"
(replace -1)
(("2"
(hide -1)
(("2"
(expand "expt" )
(("2"
(expand "expt" )
(("2"
(expand "expt" )
(("2"
(rewrite "sq_rew" )
(("2"
(rewrite
"sq_neg" )
(("2"
(assert )
(("2"
(rewrite
"sq_1" )
(("2"
(rewrite
"expt_1i" )
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 ))
nil ))
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 )
(sigma def-decl "real" sigma "reals/" )
(atan_series_term const-decl "[nat -> real]" atan nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(T_high type-eq-decl nil sigma "reals/" )
(T_low type-eq-decl nil sigma "reals/" )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(int_exp application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(atan_series_coef const-decl "rat" atan nil )
(nzreal_times_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(expt def-decl "real" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(expt_1i formula-decl nil exponentiation nil )
(posint_exp application-judgement "posint" exponentiation nil )
(expt_times formula-decl nil exponentiation nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(odd_times_odd_is_odd application-judgement "odd_int" integers nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(sq_nz_pos judgement-tcc nil sq "reals/" )
(nzreal nonempty-type-eq-decl nil reals nil )
(sq_le formula-decl nil sq "reals/" )
(nnrat_times_nnrat_is_nnrat application-judgement "nonneg_rat"
rationals nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(sq_1 formula-decl nil sq "reals/" )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(nprat_div_posrat_is_nprat application-judgement "nprat" rationals
nil )
(sq_nz_pos application-judgement "posreal" sq "reals/" )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(sq const-decl "nonneg_real" sq "reals/" )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(posreal_times_posreal_is_posreal judgement-tcc nil real_types nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(^ const-decl "real" exponentiation nil )
(posreal_expt application-judgement "posreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(posreal_exp application-judgement "posreal" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(atan_series_n const-decl "real" atan nil )
(posnat nonempty-type-eq-decl nil integers nil )
(nonneg_int nonempty-type-eq-decl nil 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_minus_int_is_int application-judgement "int" integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(m!1 skolem-const-decl "nat" atan_approx nil )
(n!1 skolem-const-decl "nat" atan_approx 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 )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
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 )
(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 )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil ) (< const-decl "bool" reals nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields
nil ))
nil )
(atan_pos_le1_lb_inc-1 nil 3403980073 ("" (postpone) nil nil ) nil
shostak))
(atan_pos_le1_ub_dec 0
(atan_pos_le1_ub_dec-1 nil 3403980306
(""
(case "FORALL (n: nat, px: posreal):
px <= 1 => atan_pos_le1_ub(n, px) > atan_pos_le1_ub(n+1, px)")
(("1"
(case "FORALL (n: nat,pn:posnat, px: posreal):
px <= 1 => atan_pos_le1_ub(n, px) > atan_pos_le1_ub(n+pn, px)")
(("1" (skosimp)
(("1" (inst - "n!1" "m!1-n!1" "px!1" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
("2" (hide 2)
(("2" (induct "pn" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )
("3" (skosimp*)
(("3" (case-replace "j!1=0" )
(("1" (assert )
(("1" (hide -1 -2 -3)
(("1" (inst - "n!1" "px!1" ) (("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (assert )
(("2" (inst - "n!1" "px!1" )
(("2" (assert )
(("2" (inst - "j!1+n!1" "px!1" )
(("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2" (skosimp)
(("2" (expand "atan_pos_le1_ub" )
(("2" (expand "atan_series_n" )
(("2" (expand "sigma" 1 2)
(("2" (expand "sigma" 1 2)
(("2"
(name-replace "SUM"
"sigma(0, 2 * n!1, atan_series_term(px!1))" )
(("2" (move-terms 1 l)
(("2" (assert )
(("2" (expand "atan_series_term" )
(("2" (expand "atan_series_coef" )
(("2" (expand "^" )
(("2" (expand "expt" 1 3)
(("2"
(expand "expt" 1 3)
(("2"
(expand "expt" 1 4)
(("2"
(case-replace
"expt((-1), 1 + 2 * n!1)= -1" )
(("1"
(hide -1)
(("1"
(cancel-by
1
"expt(px!1, 3 + 4 * n!1)" )
(("1"
(hide -1 2)
(("1"
(case
"5 > 3 * (px!1 * px!1)" )
(("1"
(case
"4 * n!1 >= 4 * (n!1 * px!1 * px!1)" )
(("1"
(assert )
(("1"
(grind-reals)
nil
nil ))
nil )
("2"
(hide -1 2)
(("2"
(cancel-by 1 "n!1" )
(("2"
(cancel-by 2 "4" )
(("2"
(rewrite
"sq"
:dir
rl)
(("2"
(lemma "sq_le" )
(("2"
(inst?)
(("2"
(rewrite
"sq_1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(rewrite "sq" :dir rl)
(("2"
(lemma "sq_le" )
(("2"
(inst?)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(lemma "not_even_m1_pow" )
(("2"
(inst -1 "1+2*n!1" )
(("2"
(split -1)
(("1"
(expand "^" -1 1)
(("1" (propax) nil nil ))
nil )
("2"
(hide 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
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 )
(sigma def-decl "real" sigma "reals/" )
(atan_series_term const-decl "[nat -> real]" atan nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(T_high type-eq-decl nil sigma "reals/" )
(T_low type-eq-decl nil sigma "reals/" )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(int_exp application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(atan_series_coef const-decl "rat" atan nil )
(nzreal_times_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(expt def-decl "real" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(even? const-decl "bool" integers nil )
(not_even_m1_pow formula-decl nil exponentiation nil )
(ge_times_ge_pos formula-decl nil real_props nil )
(minus_div1 formula-decl nil real_props nil )
(neg_div_gt formula-decl nil real_props nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(CBD_2 skolem-const-decl "nat" atan_approx nil )
(both_sides_times_pos_ge1 formula-decl nil real_props 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 )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(sq const-decl "nonneg_real" sq "reals/" )
(sq_nz_pos application-judgement "posreal" sq "reals/" )
(sq_1 formula-decl nil sq "reals/" )
(sq_le formula-decl nil sq "reals/" )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint nonempty-type-eq-decl nil integers nil )
(add_neg formula-decl nil extra_tegies nil )
(neg_div formula-decl nil extra_tegies nil )
(zero_div formula-decl nil extra_tegies nil )
(minus_nzrat_is_nzrat application-judgement "nzrat" rationals nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnreal_div_posreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(both_sides_times_pos_le1_imp formula-decl nil extra_real_props
nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(real_times_real_is_real application-judgement "real" reals nil )
(nnreal_times_nnreal_is_nnreal application-judgement "nnreal"
real_types nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(bijective? const-decl "bool" functions nil )
(id const-decl "(bijective?[T, T])" identity nil )
(TRUE const-decl "bool" booleans nil )
(odd_times_odd_is_odd application-judgement "odd_int" integers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(^ const-decl "real" exponentiation nil )
(posreal_expt application-judgement "posreal" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(posreal_exp application-judgement "posreal" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(atan_series_n const-decl "real" atan nil )
(posnat nonempty-type-eq-decl nil integers nil )
(nonneg_int nonempty-type-eq-decl nil 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_minus_int_is_int application-judgement "int" integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(m!1 skolem-const-decl "nat" atan_approx nil )
(n!1 skolem-const-decl "nat" atan_approx 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 )
(nnint_plus_nnint_is_nnint application-judgement "nonneg_int"
integers nil )
(pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
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 )
(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 )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(> const-decl "bool" reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(IMPLIES const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields
nil ))
nil ))
(pi_lbn_lt 0
(pi_lbn_lt-1 nil 3392596237
("" (skeep)
(("" (expand "pi_lbn" :assert ? none)
(("" (div-by 1 "4" )
(("" (lemma "atan_pos_le1_lb_lt" )
(("" (inst?)
(("" (lemma "atan_pos_le1_ub_lt" )
(("" (inst?) (("" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_lbn const-decl "real" atan_approx nil )
(atan_pos_le1_lb_lt formula-decl nil atan_approx nil )
(atan_pos_le1_ub_lt formula-decl nil atan_approx 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_minus_int_is_int application-judgement "int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div_cancel1 formula-decl nil extra_real_props nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
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 )
(numfield nonempty-type-eq-decl nil number_fields nil )
(* const-decl "[numfield, 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 )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(both_sides_div_pos_lt1 formula-decl nil real_props nil )
(real_times_real_is_real application-judgement "real" reals nil ))
shostak))
(pi_lbn_LT 0
(pi_lbn_LT-1 nil 3404043396
("" (skeep)
(("" (case "forall(i,n:nat):pi_lbn(n) < pi_lbn(n+1+i)" )
(("1" (inst -1 "k-n-1" "n" ) (("1" (assert ) nil nil )) nil )
("2" (hide 2)
(("2" (induct "i" )
(("1" (skosimp)
(("1" (assert ) (("1" (rewrite "pi_lbn_lt" ) nil nil )) nil ))
nil )
("2" (skeep)
(("2" (skosimp)
(("2" (inst -1 "n!1+1" )
(("2" (lemma "pi_lbn_lt" )
(("2" (inst -1 "n!1" ) (("2" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(pi_lbn const-decl "real" atan_approx nil )
(< const-decl "bool" reals 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 )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(int_plus_int_is_int application-judgement "int" integers 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 )
(above nonempty-type-eq-decl nil integers nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pi_lbn_lt formula-decl nil atan_approx nil ))
nil ))
(pi_bounds 0
(pi_bounds-3 "closer bounds" 3307959333
("" (skosimp)
(("" (expand "pi_lbn" )
(("" (expand "pi_ubn" )
(("" (lemma "atan_1" )
(("" (lemma "atan_pos_le1_bounds" ("x" "1/5" "n" "n!1" ))
(("" (lemma "atan_pos_le1_bounds" ("x" "1/239" "n" "n!1" ))
(("" (assert )
(("" (flatten)
(("" (rewrite "pi_value" ) (("" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_times_real_is_real application-judgement "real" reals nil )
(pi_lbn const-decl "real" atan_approx nil )
(atan_1 formula-decl nil atan nil )
(pi_value formula-decl nil atan nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
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 )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(atan_pos_le1_bounds formula-decl nil atan_approx 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 )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers 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 )
(pi_ubn const-decl "real" atan_approx nil ))
shostak)
(pi_bounds-2 nil 3307959315
("" (skosimp)
(("" (expand "pi_lbn" )
(("" (expand "pi_ubn" )
(("" (lemma "atan_1" )
(("" (lemma "atan_pos_le1_bounds" ("x" "1/5" "n" "n!1" ))
(("" (lemma "atan_pos_le1_bounds" ("x" "1/239" "n" "n!1" ))
(("" (assert )
(("" (flatten)
(("" (expand "pi" )
(("" (assert ) nil ))))))))))))))))))
nil )
((pi const-decl "posreal" atan nil )
(atan_1 formula-decl nil atan nil ))
nil )
(pi_bounds-1 nil 3295296628
("" (skosimp)
(("" (expand "pi_lb" )
(("" (expand "pi_ub" )
(("" (lemma "atan_1" )
(("" (lemma "atan_pos_le1_bounds" ("x" "1/5" "n" "n!1" ))
(("" (lemma "atan_pos_le1_bounds" ("x" "1/239" "n" "n!1" ))
(("" (assert )
(("" (flatten)
(("" (expand "pi" ) (("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((atan_1 formula-decl nil atan nil )
(pi const-decl "posreal" atan nil ))
shostak))
(pi_lb_pos 0
(pi_lb_pos-1 nil 3392568685
("" (skeep)
(("" (case "pi_lbn(n) > 0" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (case "pi_lbn(0) > 0" )
(("1" (lemma "pi_lbn_LT" )
(("1" (inst -1 "0" "n" )
(("1" (assert ) nil nil ) ("2" (assert ) nil nil )) nil ))
nil )
("2" (hide 2) (("2" (grind) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((pi_lbn const-decl "real" atan_approx nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals 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 )
(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 )
(n skolem-const-decl "nat" atan_approx nil )
(above nonempty-type-eq-decl nil integers nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(pi_lbn_LT formula-decl nil atan_approx nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(atan_series_coef const-decl "rat" atan nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(sigma def-decl "real" sigma "reals/" )
(atan_series_n const-decl "real" atan nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil ))
nil ))
(pi_ub_pos 0
(pi_ub_pos-1 nil 3392568935
("" (skeep)
(("" (case "pi_ubn(n) > 0" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (lemma "pi_bounds" )
(("2" (inst?)
(("2" (flatten)
(("2" (lemma "pi_lb_pos" )
(("2" (inst?) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_ubn const-decl "real" atan_approx nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals 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 )
(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 )
(pi_bounds formula-decl nil atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(pi_lb_pos judgement-tcc nil atan_approx nil ))
nil ))
(pi_bounds0 0
(pi_bounds0-1 nil 3403980370 ("" (grind) nil nil )
((pi_lbn const-decl "real" atan_approx nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(atan_series_coef const-decl "rat" atan nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(sigma def-decl "real" sigma "reals/" )
(atan_series_n const-decl "real" atan nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(pi_ubn const-decl "real" atan_approx nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil ))
shostak))
(pi_bounds2 0
(pi_bounds2-1 nil 3295359235 ("" (grind) nil nil )
((pi_lb const-decl "posreal" atan_approx nil )
(pi_lbn const-decl "real" atan_approx nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(expt def-decl "real" exponentiation nil )
(^ const-decl "real" exponentiation nil )
(atan_series_coef const-decl "rat" atan nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(sigma def-decl "real" sigma "reals/" )
(atan_series_n const-decl "real" atan nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(pi_ubn const-decl "real" atan_approx nil )
(pi_ub const-decl "posreal" atan_approx nil )
(mult_divides2 application-judgement "(divides(m))" divides nil )
(mult_divides1 application-judgement "(divides(n))" divides nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(int_expt application-judgement "int" exponentiation nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil ))
shostak))
(pi_bound 0
(pi_bound-2 nil 3307959374
("" (lemma "pi_bounds2" )
(("" (flatten)
(("" (lemma "pi_bounds" )
(("" (inst?) (("" (flatten) (("" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
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 )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(pi_bounds formula-decl nil atan_approx nil )
(pi_bounds2 formula-decl nil atan_approx nil ))
nil )
(pi_bound-1 nil 3307959056 ("" (judgement-tcc) nil nil ) nil nil ))
(pi_lb_inc 0
(pi_lb_inc-1 nil 3403980535
("" (skosimp)
(("" (expand "pi_lbn" )
((""
(lemma "atan_pos_le1_ub_dec"
("n" "n!1" "m" "m!1" "px" "1/239" ))
((""
(lemma "atan_pos_le1_lb_inc"
("n" "n!1" "m" "m!1" "px" "1/5" ))
(("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil )
((pi_lbn const-decl "real" atan_approx nil )
(atan_pos_le1_lb_inc formula-decl nil atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(atan_pos_le1_ub_dec formula-decl nil atan_approx 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 )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers 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 )
(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 ))
nil ))
(pi_ub_dec 0
(pi_ub_dec-1 nil 3403980556
("" (skosimp)
(("" (expand "pi_ubn" )
(("" (assert )
((""
(lemma "atan_pos_le1_lb_inc"
("px" "1/239" "n" "n!1" "m" "m!1" ))
((""
(lemma "atan_pos_le1_ub_dec"
("px" "1/5" "n" "n!1" "m" "m!1" ))
(("" (assert ) nil nil )) nil ))
nil ))
nil ))
nil ))
nil )
((pi_ubn const-decl "real" atan_approx nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(numfield nonempty-type-eq-decl nil number_fields 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 )
(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 )
(atan_pos_le1_lb_inc formula-decl nil atan_approx nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(atan_pos_le1_ub_dec formula-decl nil atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil ))
nil ))
(atan_pos_bounds_TCC1 0
(atan_pos_bounds_TCC1-1 nil 3295358904 ("" (grind) 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_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil ))
shostak))
(atan_pos_bounds 0
(atan_pos_bounds-1 nil 3295360144
("" (skosimp)
(("" (expand "atan_pos_lb" )
(("" (expand "atan_pos_ub" )
(("" (case-replace "x!1<=1" )
(("1" (lemma "atan_pos_le1_bounds" ("x" "x!1" "n" "n!1" ))
(("1" (assert ) nil nil )) nil )
("2" (assert )
(("2" (lemma "atan_inv" ("px" "x!1" ))
(("2" (lemma "pi_bounds" ("n" "n!1" ))
(("2"
(lemma "atan_pos_le1_bounds" ("x" "1/x!1" "n" "n!1" ))
(("2" (rewrite "div_mult_pos_lt2" -1)
(("2" (rewrite "div_mult_pos_le1" -1)
(("2" (flatten)
(("2" (assert )
(("2" (expand "max" )
(("2" (lift-if)
(("2"
(assert )
(("2"
(lift-if)
(("2"
(assert )
(("2"
(ground)
(("1"
(expand "atan_pos_le1_lb" )
(("1"
(lemma
"atan_strict_increasing" )
(("1"
(expand
"strict_increasing?" )
(("1"
(inst - "1" "x!1" )
(("1"
(assert )
(("1"
(assert )
(("1"
(invoke
(case "%1 <= %2" )
(! 1 1)
(! -1 1))
(("1"
(assert )
nil
nil )
("2"
(hide-all-but 1)
(("2"
(lemma
"atan_pos_le1_bounds" )
(("2"
(expand
"atan_pos_le1_lb" )
(("2"
(inst
-
"n!1"
"1" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(lift-if)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_lb_pos application-judgement "posreal" atan_approx nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(atan_pos_lb const-decl "real" atan_approx 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 )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx 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 )
(atan_pos_le1_bounds formula-decl nil atan_approx 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 )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(atan_inv formula-decl nil atan 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 )
(AND const-decl "[bool, bool -> bool]" booleans 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 )
(div_mult_pos_le1 formula-decl nil real_props nil )
(atan_strict_increasing formula-decl nil atan nil )
(atan_series_n const-decl "real" atan nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(< const-decl "bool" reals nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(pi const-decl "posreal" atan nil )
(real_abs_lt_pi2 nonempty-type-eq-decl nil atan nil )
(atan const-decl "real_abs_lt_pi2" atan nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers 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 )
(strict_increasing? const-decl "bool" real_fun_preds "reals/" )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(real_times_real_is_real application-judgement "real" reals nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(pi_bounds formula-decl nil atan_approx nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(atan_pos_ub const-decl "real" atan_approx nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil ))
shostak))
(atan_lb_TCC1 0
(atan_lb_TCC1-1 nil 3295360690 ("" (grind) 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_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil ))
shostak))
(atan_lb_TCC2 0
(atan_lb_TCC2-1 nil 3295360690 ("" (grind) 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_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil ))
shostak))
(atan_bounds 0
(atan_bounds-1 nil 3295360768
("" (skosimp)
(("" (expand "atan_lb" )
(("" (expand "atan_ub" )
(("" (case-replace "x!1>0" )
(("1" (lemma "atan_pos_bounds" ("n" "n!1" "x" "x!1" ))
(("1" (assert )
(("1" (flatten) (("1" (assert ) nil nil )) nil )) nil ))
nil )
("2" (case-replace "x!1=0" )
(("1" (rewrite "atan_0" ) (("1" (assert ) nil nil )) nil )
("2" (lemma "atan_pos_bounds" ("n" "n!1" "x" "-x!1" ))
(("2" (assert )
(("2" (rewrite "atan_neg" )
(("2" (flatten) (("2" (assert ) nil nil )) nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((atan_lb const-decl "real" atan_approx 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 )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx 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 )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(atan_pos_bounds formula-decl nil atan_approx 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 )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(minus_real_is_real application-judgement "real" reals nil )
(atan_neg formula-decl nil atan nil )
(atan_0 formula-decl nil atan nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(atan_ub const-decl "real" atan_approx nil ))
shostak))
(atan_lb_increasing 0
(atan_lb_increasing-1 nil 3559564948
("" (skeep)
(("" (expand "increasing?" )
(("" (skolem 1 ("xx" "yy" ))
(("" (flatten)
(("" (expand "atan_lb" )
(("" (assert )
(("" (expand "atan_pos_lb" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_pos_ub" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
(("" (lift-if)
(("" (lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(assert )
((""
(ground)
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst?)
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst - "1+2*n" "xx" "1" )
(("2" (assert ) nil nil ))
nil ))
nil )
("3"
(lemma
"atan_series_n_increasing" )
(("3"
(inst
-
"2*n"
"1/yy"
"1/xx" )
(("1"
(ground)
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("4"
(lemma
"atan_series_n_increasing" )
(("4"
(inst
-
"1+2*n"
"xx"
"yy" )
(("4"
(assert )
(("4"
(replace -4)
(("4"
(rewrite
"atan_series_n_a0" )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("5"
(lemma
"atan_series_n_increasing" )
(("5"
(inst - "1+2*n" "xx" "1" )
(("5"
(assert )
(("5"
(replace -3)
(("5"
(rewrite
"atan_series_n_a0" )
(("5"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("6"
(lemma
"atan_series_n_increasing" )
(("6"
(inst-cp
-
"2*n"
"0"
"-xx" )
(("6"
(inst
-
"1+2*n"
"0"
"yy" )
(("6"
(assert )
(("6"
(rewrite
"atan_series_n_a0" )
(("6"
(rewrite
"atan_series_n_a0" )
(("6"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("7"
(lemma
"atan_series_n_increasing" )
(("7"
(inst-cp
-
"2*n"
"0"
"-xx" )
(("7"
(inst
-
"1+2*n"
"0"
"1" )
(("7"
(assert )
(("7"
(rewrite
"atan_series_n_a0" )
(("7"
(rewrite
"atan_series_n_a0" )
(("7"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("8"
(lemma
"atan_series_n_increasing" )
(("8"
(inst-cp
-
"2*n"
"0"
"-xx" )
(("8"
(assert )
(("8"
(rewrite
"atan_series_n_a0" )
(("8"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("9"
(lemma
"atan_series_n_increasing" )
(("9"
(inst
-
"2*n"
"-yy"
"-xx" )
(("9" (assert ) nil nil ))
nil ))
nil )
("10"
(invoke
(case
"%1 >= %2 AND %3 >= 0" )
(! 1 1 1 2 1)
(! 1 1 1 2 2)
(! 1 2))
(("1"
(flatten)
(("1" (assert ) nil nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst
-
"1+2*n"
"1/(-xx)"
"1" )
(("1"
(assert )
(("1"
(ground)
(("1"
(lemma
"atan_bounds" )
(("1"
(inst
-
"1+2*n"
"1" )
(("1"
(flatten)
(("1"
(expand
"atan_lb"
-1)
(("1"
(expand
"atan_pos_lb" )
(("1"
(expand
"atan_pos_le1_lb" )
(("1"
(invoke
(case
"%1 <= %2" )
(!
-3
2)
(!
1
1))
(("1"
(assert )
nil
nil )
("2"
(hide-all-but
1)
(("2"
(lemma
"atan_bounds" )
(("2"
(inst
-
"n"
"1" )
(("2"
(flatten)
(("2"
(case
"NOT atan(1) = pi/4" )
(("1"
(hide-all-but
1)
(("1"
(expand
"pi" )
(("1"
(expand
"atan" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(expand
"atan_lb" )
(("2"
(expand
"atan_pos_lb" )
(("2"
(expand
"atan_pos_le1_lb" )
(("2"
(case
"atan(1) <= pi/2" )
(("1"
(assert )
(("1"
(lemma
"pi_bounds" )
(("1"
(inst
-
"n" )
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst
-
"1+2*n"
"0"
"yy" )
(("2"
(assert )
(("2"
(rewrite
"atan_series_n_a0" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("11"
(invoke
(case
"%1 >= 0 AND %2 >= 0" )
(! 2 1 1)
(! 2 2 1))
(("1"
(flatten)
(("1" (assert ) nil nil ))
nil )
("2"
(hide 3)
(("2"
(split +)
(("1"
(assert )
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst
-
"2*n"
"0"
"1" )
(("1"
(assert )
(("1"
(rewrite
"atan_series_n_a0" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst
-
"1+2*n"
"0"
"1" )
(("2"
(assert )
(("2"
(rewrite
"atan_series_n_a0" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("12"
(lemma
"atan_series_n_increasing" )
(("12"
(inst
-
"1+2*n"
"1/(-xx)"
"1" )
(("1"
(assert )
(("1"
(ground)
(("1"
(lemma
"atan_bounds" )
(("1"
(inst - "n" "1" )
(("1"
(expand
"atan_lb" )
(("1"
(expand
"atan_pos_lb" )
(("1"
(expand
"atan_pos_le1_lb" )
(("1"
(flatten)
(("1"
(lemma
"pi_bounds" )
(("1"
(inst
-
"n" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("13"
(lemma
"atan_series_n_increasing" )
(("13"
(inst - "2*n" "-yy" "1" )
(("13" (assert ) nil nil ))
nil ))
nil )
("14"
(neg-formula 2)
(("14"
(lemma
"atan_series_n_increasing" )
(("14"
(inst
-
"1+2*n"
"1/-xx"
"1/-yy" )
(("1"
(ground)
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
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 )
((increasing? const-decl "bool" real_fun_preds "reals/" )
(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 )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(minus_real_is_real application-judgement "real" reals nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil )
(atan_pos_ub const-decl "real" atan_approx nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnreal type-eq-decl nil real_types nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields 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 )
(>= 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 )
(atan_series_n_increasing formula-decl nil atan nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(yy skolem-const-decl "real" atan_approx nil )
(xx skolem-const-decl "real" atan_approx nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(div_mult_pos_le2 formula-decl nil real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(times_div2 formula-decl nil real_props nil )
(nonzero_real nonempty-type-eq-decl nil 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 )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_mult_pos_ge1 formula-decl nil real_props nil )
(atan_series_n_a0 formula-decl nil atan nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(atan_bounds formula-decl nil atan_approx nil )
(<= const-decl "bool" reals nil )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx nil )
(pi_bounds formula-decl nil atan_approx nil )
(atan const-decl "real_abs_lt_pi2" atan nil )
(real_abs_lt_pi2 nonempty-type-eq-decl nil atan nil )
(pi const-decl "posreal" atan nil ) (< const-decl "bool" reals nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(atan_series_n const-decl "real" atan nil )
(pi_ubn const-decl "real" atan_approx nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(negreal nonempty-type-eq-decl nil real_types nil )
(nonpos_real nonempty-type-eq-decl nil real_types nil )
(both_sides_times_neg_le1 formula-decl nil real_props nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(div_neg formula-decl nil extra_tegies nil )
(neg_neg formula-decl nil extra_tegies nil )
(mult_neg formula-decl nil extra_tegies nil )
(atan_pos_le1_lb const-decl "real" atan_approx 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 )
(atan_pos_lb const-decl "real" atan_approx nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(atan_lb const-decl "real" atan_approx nil ))
shostak))
(atan_ub_increasing 0
(atan_ub_increasing-1 nil 3559667287
("" (skeep)
(("" (expand "increasing?" )
(("" (skolem 1 ("xx" "yy" ))
(("" (flatten)
(("" (expand "atan_ub" )
(("" (assert )
(("" (expand "atan_pos_ub" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_pos_lb" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
(("" (lift-if)
(("" (lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(lift-if)
((""
(assert )
((""
(ground)
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst?)
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst - "2*n" "xx" "1" )
(("2" (assert ) nil nil ))
nil ))
nil )
("3"
(lemma
"atan_series_n_increasing" )
(("3"
(inst
-
"1+2*n"
"1/yy"
"1/xx" )
(("1"
(ground)
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("4"
(lemma
"atan_series_n_increasing" )
(("4"
(inst - "2*n" "xx" "yy" )
(("4"
(assert )
(("4"
(replace -4)
(("4"
(rewrite
"atan_series_n_a0" )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("5"
(lemma
"atan_series_n_increasing" )
(("5"
(inst - "2*n" "xx" "1" )
(("5"
(assert )
(("5"
(replace -3)
(("5"
(rewrite
"atan_series_n_a0" )
(("5"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("6"
(lemma
"atan_series_n_increasing" )
(("6"
(inst-cp
-
"1+2*n"
"0"
"-xx" )
(("6"
(inst - "2*n" "0" "yy" )
(("6"
(assert )
(("6"
(rewrite
"atan_series_n_a0" )
(("6"
(rewrite
"atan_series_n_a0" )
(("6"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("7"
(lemma
"atan_series_n_increasing" )
(("7"
(inst-cp
-
"1+2*n"
"0"
"-xx" )
(("7"
(inst - "2*n" "0" "1" )
(("7"
(assert )
(("7"
(rewrite
"atan_series_n_a0" )
(("7"
(rewrite
"atan_series_n_a0" )
(("7"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("8"
(lemma
"atan_series_n_increasing" )
(("8"
(inst-cp
-
"1+2*n"
"0"
"-xx" )
(("8"
(assert )
(("8"
(rewrite
"atan_series_n_a0" )
(("8"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("9"
(lemma
"atan_series_n_increasing" )
(("9"
(inst
-
"1+2*n"
"-yy"
"-xx" )
(("9" (assert ) nil nil ))
nil ))
nil )
("10"
(invoke
(case
"%1 >=0 AND %2 >= 0" )
(! 1 1 1 1)
(! 1 2))
(("1"
(flatten)
(("1" (assert ) nil nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst
-
"1+2*n"
"0"
"1" )
(("1"
(assert )
(("1"
(rewrite
"atan_series_n_a0" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst
-
"2*n"
"0"
"yy" )
(("2"
(assert )
(("2"
(rewrite
"atan_series_n_a0" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("11"
(invoke
(case
"%1 >= 0 AND %2 >= 0" )
(! 2 1 1)
(! 2 2 1))
(("1"
(flatten)
(("1" (assert ) nil nil ))
nil )
("2"
(hide 3)
(("2"
(split +)
(("1"
(assert )
(("1"
(lemma
"atan_series_n_increasing" )
(("1"
(inst
-
"1+2*n"
"0"
"1" )
(("1"
(assert )
(("1"
(rewrite
"atan_series_n_a0" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(lemma
"atan_series_n_increasing" )
(("2"
(inst
-
"2*n"
"0"
"1" )
(("2"
(assert )
(("2"
(rewrite
"atan_series_n_a0" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("12"
(lemma
"atan_series_n_increasing" )
(("12"
(inst - "1+2*n" "0" "1" )
(("12"
(assert )
(("12"
(rewrite
"atan_series_n_a0" )
(("12"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("13"
(lemma
"atan_series_n_increasing" )
(("13"
(inst
-
"1+2*n"
"-yy"
"1" )
(("13" (assert ) nil nil ))
nil ))
nil )
("14"
(neg-formula 2)
(("14"
(lemma
"atan_series_n_increasing" )
(("14"
(inst
-
"2*n"
"1/-xx"
"1/-yy" )
(("1"
(ground)
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
nil
nil ))
nil )
("2"
(cross-mult 1)
nil
nil )
("3"
(cross-mult 1)
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 )
((increasing? const-decl "bool" real_fun_preds "reals/" )
(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 )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(minus_real_is_real application-judgement "real" reals nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(atan_pos_lb const-decl "real" atan_approx nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nzreal_div_nzreal_is_nzreal application-judgement "nzreal"
real_types nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nnreal type-eq-decl nil real_types 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 )
(>= 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 )
(atan_series_n_increasing formula-decl nil atan nil )
(/= const-decl "boolean" notequal nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(yy skolem-const-decl "real" atan_approx nil )
(xx skolem-const-decl "real" atan_approx nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(div_mult_pos_le2 formula-decl nil real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(times_div2 formula-decl nil real_props nil )
(nonzero_real nonempty-type-eq-decl nil 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 )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(div_mult_pos_ge1 formula-decl nil real_props nil )
(atan_series_n_a0 formula-decl nil atan nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(atan_series_n const-decl "real" atan nil )
(pi_lbn const-decl "real" atan_approx nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(TRUE const-decl "bool" booleans nil )
(id const-decl "(bijective?[T, T])" identity nil )
(bijective? const-decl "bool" functions nil )
(negreal nonempty-type-eq-decl nil real_types nil )
(< const-decl "bool" reals nil )
(nonpos_real nonempty-type-eq-decl nil real_types nil )
(<= const-decl "bool" reals nil )
(both_sides_times_neg_le1 formula-decl nil real_props nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(div_neg formula-decl nil extra_tegies nil )
(neg_neg formula-decl nil extra_tegies nil )
(mult_neg formula-decl nil extra_tegies nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(atan_pos_le1_lb const-decl "real" atan_approx 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 )
(atan_pos_ub const-decl "real" atan_approx nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil )
(atan_ub const-decl "real" atan_approx nil ))
nil ))
(atan_pos_lb_inc 0
(atan_pos_lb_inc-1 nil 3403980658
("" (skosimp)
(("" (expand "atan_pos_lb" )
(("" (case-replace "px!1 <= 1" )
(("1"
(lemma "atan_pos_le1_lb_inc"
("px" "px!1" "n" "n!1" "m" "m!1" ))
(("1" (assert ) nil nil )) nil )
("2" (assert )
(("2" (case "1<px!1" )
(("1" (hide 1)
(("1"
(lemma "div_mult_pos_lt1"
("py" "px!1" "z" "1" "x" "1" ))
(("1" (assert )
(("1"
(lemma "atan_pos_le1_ub_dec"
("px" "1/px!1" "n" "n!1" "m" "m!1" ))
(("1" (assert )
(("1" (lemma "pi_lb_inc" ("n" "n!1" "m" "m!1" ))
(("1" (assert )
(("1" (lemma "atan_pos_le1_lb_inc" )
(("1" (inst - "m!1" "n!1" "1" )
(("1"
(assert )
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_lb_pos application-judgement "posreal" atan_approx nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(atan_pos_lb const-decl "real" atan_approx nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(pi_lb_inc formula-decl nil atan_approx nil )
(atan_pos_le1_ub_dec formula-decl nil atan_approx 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 )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(< const-decl "bool" reals 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 )
(atan_pos_le1_lb_inc formula-decl nil atan_approx 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 )
(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 ) (<= 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 ))
nil ))
(atan_pos_ub_dec 0
(atan_pos_ub_dec-1 nil 3403980715
("" (skosimp)
(("" (expand "atan_pos_ub" )
(("" (case-replace "px!1 <= 1" )
(("1"
(lemma "atan_pos_le1_ub_dec"
("px" "px!1" "n" "n!1" "m" "m!1" ))
(("1" (assert ) nil nil )) nil )
("2" (assert )
(("2" (case "1<px!1" )
(("1" (hide 1)
(("1"
(lemma "div_mult_pos_lt1"
("py" "px!1" "z" "1" "x" "1" ))
(("1" (assert )
(("1"
(lemma "atan_pos_le1_lb_inc"
("px" "1/px!1" "n" "n!1" "m" "m!1" ))
(("1" (assert )
(("1" (lemma "pi_ub_dec" ("n" "n!1" "m" "m!1" ))
(("1" (lemma "atan_pos_le1_ub_dec" )
(("1" (inst - "m!1" "n!1" "1" )
(("1" (assert )
(("1"
(expand "max" )
(("1"
(lift-if)
(("1"
(lift-if)
(("1"
(lift-if)
(("1" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_ub_pos application-judgement "posreal" atan_approx nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(atan_pos_ub const-decl "real" atan_approx nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(max const-decl "{p: real | p >= m AND p >= n}" real_defs nil )
(pi_ub_dec formula-decl nil atan_approx nil )
(atan_pos_le1_lb_inc formula-decl nil atan_approx 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 )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(< const-decl "bool" reals 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 )
(atan_pos_le1_ub_dec formula-decl nil atan_approx 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 )
(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 ) (<= 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 ))
nil ))
(pi_lb_pi 0
(pi_lb_pi-1 nil 3403980748
("" (skosimp)
(("" (expand "pi_lbn" )
(("" (rewrite "pi_value" )
(("" (rewrite "atan_1" )
(("" (lemma "atan_pos_le1_bounds" ("x" "1/5" "n" "n!1" ))
(("" (lemma "atan_pos_le1_bounds" ("x" "1/239" "n" "n!1" ))
(("" (assert )
(("" (flatten)
(("" (hide -1 -4)
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
((""
(lemma "atan_series"
("x" "1/5" "n" "2*n!1+1" ))
(("" (expand "abs" -1 1)
(("" (assert )
((""
(lemma
"atan_series"
("x" "1/239" "n" "2*n!1" ))
((""
(expand "abs" -1 1)
((""
(lemma
"expt_pos"
("px" "1/5" "i" "5+4*n!1" ))
((""
(lemma
"posreal_div_posreal_is_posreal"
("px"
"(1 / 5) ^ (5 + 4 * n!1)"
"py"
"5 + 4 * n!1" ))
((""
(expand "abs" -4)
((""
(lemma
"expt_pos"
("px"
"1/239"
"i"
"3+4*n!1" ))
((""
(lemma
"posreal_div_posreal_is_posreal"
("px"
"(1 / 239) ^ (3 + 4 * n!1)"
"py"
"3 + 4 * n!1" ))
((""
(expand "abs" -5)
(("" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
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 )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(pi_lbn const-decl "real" atan_approx nil )
(atan_1 formula-decl nil atan nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(atan_series formula-decl nil atan nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nzrat_abs_is_pos application-judgement "{r: posrat | r >= q}"
real_defs nil )
(posreal_div_posreal_is_posreal judgement-tcc nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(minus_real_is_real application-judgement "real" reals 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 )
(expt_pos formula-decl nil exponentiation nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(posrat_plus_nnrat_is_posrat application-judgement "posrat"
rationals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(numfield nonempty-type-eq-decl nil number_fields 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 )
(atan_pos_le1_bounds formula-decl nil atan_approx nil )
(pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx nil )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(minus_even_is_even application-judgement "even_int" integers nil )
(minus_nzint_is_nzint application-judgement "nzint" integers nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(pi_value formula-decl nil atan nil ))
nil ))
(pi_ub_pi 0
(pi_ub_pi-1 nil 3403980777
("" (skosimp)
(("" (expand "pi_ubn" )
(("" (rewrite "pi_value" )
(("" (rewrite "atan_1" )
(("" (lemma "atan_pos_le1_bounds" ("x" "1/5" "n" "n!1" ))
(("" (lemma "atan_pos_le1_bounds" ("x" "1/239" "n" "n!1" ))
(("" (assert )
(("" (flatten)
(("" (hide -2 -3)
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_pos_le1_lb" )
((""
(lemma "atan_series"
("x" "1/239" "n" "2*n!1+1" ))
(("" (expand "abs" -1 1)
(("" (assert )
((""
(lemma
"atan_series"
("x" "1/5" "n" "2*n!1" ))
((""
(expand "abs" -1 1)
((""
(lemma
"expt_pos"
("px" "1/239" "i" "5+4*n!1" ))
((""
(lemma
"posreal_div_posreal_is_posreal"
("px"
"(1 / 239) ^ (5 + 4 * n!1)"
"py"
"5 + 4 * n!1" ))
((""
(expand "abs" -4)
((""
(lemma
"expt_pos"
("px" "1/5" "i" "3+4*n!1" ))
((""
(lemma
"posreal_div_posreal_is_posreal"
("px"
"(1 / 5) ^ (3 + 4 * n!1)"
"py"
"3 + 4 * n!1" ))
((""
(expand "abs" -5)
(("" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx 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 )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(pi_ubn const-decl "real" atan_approx nil )
(atan_1 formula-decl nil atan nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(atan_series formula-decl nil atan nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nzrat_abs_is_pos application-judgement "{r: posrat | r >= q}"
real_defs nil )
(posreal_div_posreal_is_posreal judgement-tcc nil real_types nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(minus_real_is_real application-judgement "real" reals 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 )
(expt_pos formula-decl nil exponentiation nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(posrat_plus_nnrat_is_posrat application-judgement "posrat"
rationals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(atan_pos_le1_bounds formula-decl nil atan_approx 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 )
(bool nonempty-type-eq-decl nil booleans nil )
(>= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers 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 )
(minus_nzreal_is_nzreal application-judgement "nzreal" real_types
nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(pi_value formula-decl nil atan nil ))
nil ))
(pi_lb_diff 0
(pi_lb_diff-1 nil 3403980807
("" (skosimp)
(("" (expand "pi_lbn" )
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_series_n" )
((""
(name "SUM1"
"sigma(0, 1 + 2 * n!1, atan_series_term(1 / 5))" )
(("" (replace -1)
((""
(name "SUM2"
"sigma(0, 2 * n!1, atan_series_term(1 / 239))" )
(("" (replace -1)
(("" (expand "sigma" 1)
(("" (expand "sigma" 1)
(("" (replace -1)
(("" (replace -2)
(("" (assert )
((""
(expand "atan_series_term" )
((""
(expand "atan_series_coef" )
((""
(hide -1 -2)
((""
(lemma
"expt_times"
("n0x"
"-1"
"i"
"2"
"j"
"n!1+1" ))
((""
(expand "^" -1 2)
((""
(expand "expt" -1)
((""
(expand "expt" -1)
((""
(expand "expt" -1)
((""
(rewrite "sq_rew" )
((""
(rewrite "sq_neg" )
((""
(rewrite "expt_1i" )
((""
(replace -1)
((""
(assert )
((""
(lemma
"expt_plus"
("n0x"
"-1"
"i"
"2+2*n!1"
"j"
"1" ))
((""
(replace
-2)
((""
(rewrite
"expt_x1" )
((""
(replace
-1)
((""
(lemma
"expt_plus"
("n0x"
"-1"
"i"
"1"
"j"
"2*n!1" ))
((""
(rewrite
"expt_x1" )
((""
(lemma
"expt_times"
("n0x"
"-1"
"i"
"2"
"j"
"n!1" ))
((""
(expand
"^"
-1
2)
((""
(expand
"expt"
-1)
((""
(expand
"expt"
-1)
((""
(expand
"expt"
-1)
((""
(rewrite
"sq_rew" )
((""
(rewrite
"sq_neg" )
((""
(rewrite
"expt_1i" )
((""
(replace
-1)
((""
(replace
-2)
((""
(hide-all-but
1)
((""
(lemma
"expt_plus"
("n0x"
"1/5"
"i"
"2"
"j"
"5+4*n!1" ))
((""
(lemma
"expt_plus"
("n0x"
"1/239"
"i"
"2"
"j"
"3+4*n!1" ))
((""
(expand
"^"
-1
2)
((""
(expand
"^"
-2
2)
((""
(expand
"expt" )
((""
(expand
"expt" )
((""
(expand
"expt" )
((""
(replace
-1)
((""
(replace
-2)
((""
(hide
-1
-2)
((""
(assert )
((""
(name-replace
"DRL1"
"(1 / 239) ^ (3 + 4 * n!1)" )
((""
(name-replace
"DRL2"
"(1 / 5) ^ (5 + 4 * n!1)" )
((""
(assert )
((""
(case-replace
"16 * ((1 / 5 * (1 / 5) * (-1 / (7 + 4 * n!1))) * DRL2) = -16*(DRL2 * (1 / (175 + 100 * n!1)))" )
(("1"
(hide
-1)
(("1"
(assert )
(("1"
(case-replace
"-4 * (DRL1 * (-1 / (3 + 4 * n!1))) = 4 * (DRL1 * (1 / (3 + 4 * n!1)))" )
(("1"
(hide
-1)
(("1"
(assert )
(("1"
(assert )
(("1"
(lemma
"both_sides_times1"
("n0z"
"DRL1"
"x"
"-4 * ((1 / 239 * (1 / 239) * (1 / (5 + 4 * n!1))))"
"y"
"-4*(1 / (285605 + 228484 * n!1))" ))
(("1"
(replace
-1
1)
(("1"
(hide
-1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(assert )
(("2"
(grind)
(("2"
(lemma
"both_sides_times1"
("n0z"
"DRL2"
"x"
"16 * ((1 / 5 * (1 / 5) * (-1 / (7 + 4 * n!1))))"
"y"
"-16 *(1 / (175 + 100 * n!1))" ))
(("2"
(replace
-1
1)
(("2"
(hide
-1)
(("2"
(assert )
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 ))
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 ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
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_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(pi_lbn const-decl "real" atan_approx nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/= const-decl "boolean" notequal nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(sigma def-decl "real" sigma "reals/" )
(T_high type-eq-decl nil sigma "reals/" )
(T_low type-eq-decl nil sigma "reals/" )
(<= const-decl "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(>= const-decl "bool" reals nil )
(OR const-decl "[bool, bool -> bool]" booleans 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 )
(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_exp application-judgement "int" exponentiation nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(atan_series_coef const-decl "rat" atan nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(expt_times formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(expt def-decl "real" exponentiation nil )
(expt_plus formula-decl nil exponentiation nil )
(expt_x1 formula-decl nil exponentiation nil )
(odd_times_odd_is_odd application-judgement "odd_int" integers nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(> const-decl "bool" reals nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(both_sides_times1 formula-decl nil real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(minus_nzint_is_nzint application-judgement "nzint" integers nil )
(minus_even_is_even application-judgement "even_int" integers nil )
(nprat_div_posrat_is_nprat application-judgement "nprat" rationals
nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(odd_minus_odd_is_even application-judgement "even_int" integers
nil )
(even_minus_odd_is_odd application-judgement "odd_int" integers
nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals nil )
(expt_1i formula-decl nil exponentiation nil )
(^ const-decl "real" exponentiation nil )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals nil )
(posrat_plus_nnrat_is_posrat application-judgement "posrat"
rationals nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(real_plus_real_is_real application-judgement "real" reals nil )
(real_times_real_is_real application-judgement "real" reals nil )
(atan_series_n const-decl "real" atan nil )
(atan_pos_le1_lb const-decl "real" atan_approx nil ))
nil ))
(pi_ub_diff 0
(pi_ub_diff-1 nil 3555079683
("" (skeep)
(("" (invoke (name "K1" "%1" ) (! 1 2))
(("" (replaces -1)
(("" (expand "pi_ubn" )
(("" (expand "atan_pos_le1_lb" )
(("" (expand "atan_pos_le1_ub" )
(("" (expand "atan_series_n" )
(("" (expand "sigma" + 1)
(("" (expand "sigma" + 1)
(("" (expand "sigma" + 2)
(("" (expand "sigma" + 2)
(("" (expand "atan_series_term" )
(("" (expand "atan_series_coef" )
((""
(case "FORALL (nn:nat): (-1)^(2*nn+1) = -1 AND (-1)^(2*nn)=1" )
(("1"
(inst-cp - "n+1" )
(("1"
(flatten)
(("1"
(assert )
(("1"
(replaces -2)
(("1"
(replaces -2)
(("1"
(inst - "n" )
(("1"
(flatten)
(("1"
(replaces -1)
(("1"
(replaces -1)
(("1"
(assert )
(("1"
(expand "K1" )
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(induct "nn" )
(("1" (grind) nil nil )
("2" (grind) nil nil )
("3"
(skeep)
(("3"
(expand "^" )
(("3"
(expand "expt" +)
(("3"
(expand "expt" +)
(("3" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(rat_minus_rat_is_rat application-judgement "rat" 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 )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real nonempty-type-from-decl nil reals nil )
(number_field nonempty-type-from-decl nil number_fields nil )
(real_pred const-decl "[number_field -> boolean]" 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 )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(>= const-decl "bool" reals nil )
(^ const-decl "real" exponentiation nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(rat nonempty-type-eq-decl nil rationals nil )
(pi_ubn const-decl "real" atan_approx nil )
(atan_pos_le1_ub const-decl "real" atan_approx nil )
(sigma def-decl "real" sigma "reals/" )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(atan_series_term const-decl "[nat -> real]" atan nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(- const-decl "[numfield -> numfield]" number_fields nil )
(K1 skolem-const-decl "rat" atan_approx nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(nzreal_expt application-judgement "nzreal" exponentiation nil )
(int_expt application-judgement "int" exponentiation nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(nzint_times_nzint_is_nzint application-judgement "nzint" integers
nil )
(expt def-decl "real" exponentiation nil )
(atan_series_coef const-decl "rat" atan nil )
(nzrat_times_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(nzreal_exp application-judgement "nzreal" exponentiation nil )
(int_exp application-judgement "int" exponentiation nil )
(atan_series_n const-decl "real" atan nil )
(atan_pos_le1_lb const-decl "real" atan_approx 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 )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil ))
nil ))
(pi_lb_diff_bounds 0
(pi_lb_diff_bounds-1 nil 3552315150
("" (skeep)
(("" (skoletin 1)
(("" (label "xdiffname" -1)
(("" (rewrite "pi_lb_diff" )
(("" (name "A1" "(1/5)^(4*n+5)" )
(("" (name "A2" "(1/239)^(4*n+3)" )
(("" (replace -2)
(("" (replace -1)
(("" (name "B1" "1/(4*n+5)" )
(("" (replace -1)
(("" (name "B2" "1/(4*n+3)" )
(("" (replace -1)
(("" (name "C1" "1/(25*(4*n+7))" )
(("" (replace -1)
((""
(name "C2" "1/(57121*(4*n+5))" )
((""
(replace -1)
((""
(name "D1" "B1-C1" )
((""
(name "D2" "B2-C2" )
((""
(case
"A1 > 0 AND A2 > 0 AND B1 > 0 AND B2 > 0 AND C1 > 0 AND C2 > 0 AND B1 > 0 AND B2 > 0 AND A1 > 0 AND A2 > 0 AND D1 > 0 AND D2 > 0" )
(("1"
(label "tps" -1)
(("1"
(hide "tps" )
(("1"
(case
"NOT xdiff = 16*A1*D1 + 4*A2*D2" )
(("1"
(assert )
(("1"
(replaces -1 :dir rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(replaces
-1
:dir
rl)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(replace -1)
(("2"
(hide "xdiffname" )
(("2"
(hide -1)
(("2"
(reveal "tps" )
(("2"
(flatten)
(("2"
(split)
(("1"
(case
"16*A1*D1 > 14 * (1 / 5) ^ (5 * n + 5) AND 4*A2*D2 > 0" )
(("1"
(ground)
nil
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(case
"A1*D1 > (1 / 5) ^ (5 * n + 5)" )
(("1"
(assert )
nil
nil )
("2"
(hide
2)
(("2"
(case
"D1 > (1/5)^n" )
(("1"
(mult-by
-1
"A1" )
(("1"
(expand
"A1"
(-1
1))
(("1"
(rewrite
"expt_plus"
:dir
rl)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(expand
"D1" )
(("2"
(expand
"B1"
+)
(("2"
(expand
"C1"
+)
(("2"
(rewrite
"div_expt" )
(("2"
(case
"1^n=1" )
(("1"
(replace
-1)
(("1"
(case
"(1/2)*(1/(5+4*n)) > 1/5^n AND 1 / (175 + 100 * n) < (1/2)*(1/(5+4*n))" )
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(split)
(("1"
(cross-mult
1)
(("1"
(case
"FORALL (nk:nat): 5^(nk+5) > 10+8*(nk+5)" )
(("1"
(inst
-
"n-5" )
(("1"
(assert )
nil
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(induct
"nk" )
(("1"
(assert )
(("1"
(hide-all-but
1)
(("1"
(grind)
nil
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(assert )
(("2"
(expand
"^" )
(("2"
(expand
"expt"
1)
(("2"
(mult-by
-1
"5" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(case
"FORALL (nk:nat): 1^nk = 1" )
(("1"
(inst?)
nil
nil )
("2"
(induct
"nk" )
(("1"
(hide-all-but
1)
(("1"
(grind)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(lemma
"posreal_times_posreal_is_posreal" )
(("2"
(inst
-
"A2"
"D2" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(case
"A2*D2 < (1 / 5) ^ (3 + 4 * n) AND A1*D1 < (1/25)*(1 / 5) ^ (3 + 4 * n)" )
(("1"
(flatten)
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(split)
(("1"
(expand
"D2"
+)
(("1"
(lemma
"posreal_times_posreal_is_posreal" )
(("1"
(inst
-
"A2"
"C2" )
(("1"
(case
"A2*B2 < (1 / 5) ^ (3 + 4 * n)" )
(("1"
(assert )
nil
nil )
("2"
(hide
(-1
2))
(("2"
(case
"A2 < (1 / 5) ^ (3 + 4 * n)" )
(("1"
(case
"B2 < 1" )
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide
2)
(("2"
(expand
"B2"
+)
(("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(expand
"A2"
+)
(("2"
(rewrite
"div_expt" )
(("2"
(rewrite
"div_expt" )
(("2"
(case
"1^(3+4*n) = 1" )
(("1"
(replaces
-1)
(("1"
(cross-mult
1)
(("1"
(lemma
"both_sides_expt_pos_lt_aux" )
(("1"
(inst
-
"2+4*n"
_
_)
(("1"
(inst
-
"5"
"239" )
(("1"
(expand
"^" )
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"FORALL (nk:nat): 1^nk = 1" )
(("1"
(inst?)
nil
nil )
("2"
(hide-all-but
1)
(("2"
(induct
"nk" )
(("1"
(expand
"^" )
(("1"
(expand
"expt" )
(("1"
(propax)
nil
nil ))
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"A1 <= (1/25) * (1 / 5) ^ (3 + 4 * n) AND D1 < 1" )
(("1"
(flatten)
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide
2)
(("2"
(split)
(("1"
(expand
"A1"
+)
(("1"
(expand
"^" )
(("1"
(expand
"expt"
+
1)
(("1"
(expand
"expt"
+
1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(case
"B1 < 1" )
(("1"
(assert )
nil
nil )
("2"
(hide
2)
(("2"
(expand
"B1"
+)
(("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(expand "A1" +)
(("1"
(rewrite "expt_pos" )
nil
nil ))
nil )
("2"
(expand "A2" +)
(("2"
(rewrite "expt_pos" )
nil
nil ))
nil )
("3"
(expand "B1" +)
(("3"
(cross-mult 1)
nil
nil ))
nil )
("4"
(expand "B2" +)
(("4"
(cross-mult 1)
nil
nil ))
nil )
("5"
(expand "C1" +)
(("5"
(cross-mult 1)
nil
nil ))
nil )
("6"
(expand "C2" +)
(("6"
(cross-mult 1)
nil
nil ))
nil )
("7"
(expand "B1" +)
(("7"
(cross-mult 1)
nil
nil ))
nil )
("8"
(expand "B2" +)
(("8"
(cross-mult 1)
nil
nil ))
nil )
("9"
(expand "A1" +)
(("9"
(cross-mult 1)
nil
nil ))
nil )
("10"
(expand "A2" +)
(("10"
(rewrite "expt_pos" )
nil
nil ))
nil )
("11"
(case "B1 > C1" )
(("1" (assert ) nil nil )
("2"
(expand "B1" +)
(("2"
(expand "C1" +)
(("2"
(cross-mult 1)
nil
nil ))
nil ))
nil ))
nil )
("12"
(case "B2 > C2" )
(("1" (assert ) nil nil )
("2"
(expand "B2" +)
(("2"
(expand "C2" +)
(("2"
(cross-mult 1)
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 )
((IFF const-decl "[bool, bool -> bool]" booleans nil )
(pi_lb_pos application-judgement "posreal" atan_approx 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 )
(- const-decl "[numfield, numfield -> numfield]" 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 )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(pi_lbn const-decl "real" atan_approx nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(< const-decl "bool" reals nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(even_times_int_is_even application-judgement "even_int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation 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 )
(pi_lb_diff formula-decl nil atan_approx nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(odd_times_odd_is_odd application-judgement "odd_int" integers nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals nil )
(rat_times_rat_is_rat application-judgement "rat" rationals nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals nil )
(C2 skolem-const-decl "posrat" atan_approx nil )
(expt_pos formula-decl nil exponentiation nil )
(NOT const-decl "[bool -> bool]" booleans nil )
(minus_odd_is_odd application-judgement "odd_int" integers 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 )
(posreal_times_posreal_is_posreal judgement-tcc nil real_types nil )
(A1 skolem-const-decl "posrat" atan_approx nil )
(expt_plus formula-decl nil exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(both_sides_times_pos_gt1 formula-decl nil real_props nil )
(D1 skolem-const-decl "rat" atan_approx nil )
(C1 skolem-const-decl "posrat" atan_approx nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(n skolem-const-decl "nat" atan_approx nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(expt def-decl "real" exponentiation nil )
(posnat_expt application-judgement "posnat" exponentiation nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pred type-eq-decl nil defined_types nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(div_mult_pos_gt2 formula-decl nil extra_real_props nil )
(int_times_even_is_even application-judgement "even_int" integers
nil )
(times_div2 formula-decl nil real_props nil )
(div_mult_pos_gt1 formula-decl nil extra_real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div1 formula-decl nil real_props nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(posint_exp application-judgement "posint" exponentiation nil )
(div_expt formula-decl nil exponentiation nil )
(B1 skolem-const-decl "posrat" atan_approx nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(B2 skolem-const-decl "posrat" atan_approx nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(lt_times_lt_any1 formula-decl nil extra_real_props nil )
(A2 skolem-const-decl "posrat" atan_approx nil )
(both_sides_expt_pos_lt_aux formula-decl nil exponentiation nil )
(D2 skolem-const-decl "rat" atan_approx nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(<= const-decl "bool" reals nil )
(rat nonempty-type-eq-decl nil rationals nil )
(posrat_plus_nnrat_is_posrat application-judgement "posrat"
rationals nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(> const-decl "bool" reals nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil ))
shostak))
(pi_lb_quot_bounds 0
(pi_lb_quot_bounds-1 nil 3554119553
(""
(case "NOT FORALL (nb6:below(6)): LET xquot = pi_lbn(nb6) / pi_lbn(nb6 + 1) IN
1 - 14.5 * (1 / 5) ^ (4 * nb6 + 3) <= xquot AND xquot <= 1")
(("1" (hide 2) (("1" (eval-formula) nil nil )) nil )
("2" (skeep)
(("2" (case "NOT n>5" )
(("1" (inst - "n" ) (("1" (assert ) nil nil )) nil )
("2" (hide -2)
(("2" (skoletin 1)
(("2" (name "xdiff" "pi_lbn(n+1)-pi_lbn(n)" )
(("2" (case "NOT xquot = 1 - xdiff/pi_lbn(n+1)" )
(("1" (assert )
(("1" (replace -2)
(("1" (replace -1 :dir rl) (("1" (assert ) nil nil ))
nil ))
nil ))
nil )
("2" (case "xquot <= 1" )
(("1" (assert )
(("1"
(case "xdiff/pi_lbn(n+1) <= 14.5 * (1 / 5) ^ (3 + 4 * n)" )
(("1" (assert ) nil nil )
("2" (hide 2)
(("2" (lemma "pi_lb_diff_bounds" )
(("2" (inst?)
(("2" (assert )
(("2"
(replace -4)
(("2"
(flatten)
(("2"
(case "25/8 <= pi_lbn(1+n)" )
(("1"
(cross-mult 1)
(("1"
(mult-ineq -1 -3)
(("1" (assert ) nil nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(case
"FORALL (kk:nat): 25/8 <= pi_lbn(kk)" )
(("1" (inst?) nil nil )
("2"
(hide 2)
(("2"
(induct "kk" )
(("1"
(eval-formula)
nil
nil )
("2"
(skeep)
(("2"
(lemma "pi_lb_inc" )
(("2"
(inst - "j+1" "j" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (lemma "pi_lb_inc" )
(("2" (inst - "n+1" "n" )
(("2" (assert )
(("2" (expand "xquot" 1)
(("2" (cross-mult 1) nil nil )) nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((real_minus_real_is_real application-judgement "real" reals nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(pi_lb_diff_bounds formula-decl nil atan_approx nil )
(real_ge_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(pi_lb_inc formula-decl nil atan_approx nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pred type-eq-decl nil defined_types nil )
(times_div2 formula-decl nil real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(div_mult_pos_le2 formula-decl nil real_props nil )
(real_times_real_is_real application-judgement "real" reals nil )
(lt_times_lt_any1 formula-decl nil extra_real_props nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(xquot skolem-const-decl "posreal" atan_approx nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(real_div_nzreal_is_real application-judgement "real" reals nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers 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 )
(nnrat_exp application-judgement "nnrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(IFF const-decl "[bool, bool -> bool]" booleans nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(n skolem-const-decl "nat" atan_approx nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(bijective? const-decl "bool" functions nil )
(id const-decl "(bijective?[T, T])" identity nil )
(TRUE const-decl "bool" booleans nil )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals 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 "bool" reals nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(< const-decl "bool" reals nil )
(below type-eq-decl nil naturalnumbers 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 )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" 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 )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(pi_lbn const-decl "real" atan_approx nil ))
shostak))
(pi_ub_diff_bounds 0
(pi_ub_diff_bounds-3 nil 3566172731
("" (skeep)
(("" (skoletin 1)
(("" (label "xdiffname" -1)
(("" (rewrite "pi_ub_diff" )
(("" (case "(1/5)^(5+4*n) = (1/25)*(1/5)^(3+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1"
(case "(1/239)^(7+4*n) = (1/239^2)*(1/239)^(5+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1" (invoke (name "K1" "%1" ) (! -1 2 1))
(("1" (invoke (name "K2" "%1" ) (! -2 2 2))
(("1" (invoke (name "K3" "%1" ) (! -3 2 3))
(("1" (invoke (name "K4" "%1" ) (! -4 2 4))
(("1"
(replace -1)
(("1"
(replace -2)
(("1"
(replace -3)
(("1"
(replace -4)
(("1"
(case
"K1/2 >= 32 * (1 / 5) ^ (3 + 5 * n)" )
(("1"
(case "K2 < K1" )
(("1"
(case
"2*K1 < (7/5) * (1 / 5) ^ (3 + 4 * n)" )
(("1"
(assert )
(("1"
(case "K4 < K2/2" )
(("1"
(case "K3 < K1/2" )
(("1"
(assert )
(("1"
(case
"K1 > 0 AND K2 > 0 AND K4 > 0 AND K3 > 0" )
(("1"
(flatten)
(("1"
(case
"K1 + K2 - K4 - K3 >= K1/2" )
(("1"
(case
"K1 + K2 - K4 - K3 < 2*K1" )
(("1"
(assert )
(("1"
(replace
"xdiffname"
:dir
rl)
(("1"
(assert )
(("1"
(grind
:exclude
"^" )
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide
(-1
-2
-3
-4
-5
-6
2))
(("2"
(hide
(-1 -2 -3))
(("2"
(expand "K1" )
(("2"
(expand
"K3" )
(("2"
(case
"1/(5+4*n) < 1/(3+4*n)" )
(("1"
(case
"16 * ((1 / 5) ^ (3 + 4 * n) * (1 / 25)) <
16 * (((1 / 5) ^ (3 + 4 * n)) ) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5))
(("2"
(hide (-1 -2 -3))
(("2"
(expand "K4" )
(("2"
(expand "K2" )
(("2"
(case
"1/(7+4*n) < 1/(5+4*n)" )
(("1"
(case
"4 * ((1 / 239) ^ (5 + 4 * n) * (1 / 239 ^ 2)) <
4 * (((1 / 239) ^ (5 + 4 * n))) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
(("2"
(expand
"^"
+
2)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(hide -1)
(("2"
(hide -1)
(("2"
(expand "K1" )
(("2"
(case
"1/(3+4*n) <= 1/23" )
(("1"
(mult-by
-1
"(1/5)^(3+4*n)" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(case
"EXISTS (kk:nat): n = kk+5" )
(("1"
(skeep -1)
(("1"
(replaces
-1)
(("1"
(cross-mult
1)
nil
nil ))
nil ))
nil )
("2"
(inst
+
"n-5" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5 -6 2))
(("2"
(expand "K1" )
(("2"
(expand "K2" )
(("2"
(case
"(1/239)^(4*n+5) < (1/5)^(3+4*n) AND 1/(5+4*n) < 1/(3+4*n)" )
(("1"
(flatten)
(("1"
(mult-ineq -1 -2)
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(lemma
"both_sides_expt_pos_lt_aux" )
(("1"
(inst
-
"2+4*n"
"1/239"
"1/5" )
(("1"
(assert )
(("1"
(expand
"^" )
(("1"
(expand
"expt"
+
1)
(("1"
(expand
"expt"
+
1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(expand "K1" )
(("2"
(assert )
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"3+4*n"
"n"
"1/5" )
(("2"
(assert )
(("2"
(replace -1)
(("2"
(case
"(1/(3+4*n)) > 4*(1/5)^n" )
(("1"
(mult-by
-1
"8 * (((1 / 5) ^ (3 + 4 * n)))" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide-all-but
(-2 1))
(("2"
(case
"FORALL (kk:nat): 1/(3+4*(kk+5)) > 4*(1/5)^(kk+5)" )
(("1"
(inst
-
"n-5" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(induct
"kk" )
(("1"
(assert )
(("1"
(grind)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+)
(("2"
(assert )
(("2"
(case
"(23+4*j)/(27+4*j) > 4/5" )
(("1"
(cross-mult
-2)
(("1"
(cross-mult
1)
nil
nil ))
nil )
("2"
(cross-mult
1)
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 ))
nil ))
nil )
("2" (hide (-1 2))
(("2" (lemma "expt_plus" )
(("2" (inst - "2" "5+4*n" "1/239" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2"
(rewrite "div_expt" )
(("2"
(assert )
(("2"
(case "1^2 = 1" )
(("1" (assert ) nil nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (lemma "expt_plus" )
(("2" (inst - "3+4*n" "2" "1/5" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2" (rewrite "div_expt" )
(("2" (case "FORALL (kk:nat): 1^kk = 1" )
(("1" (inst?)
(("1"
(replaces -1)
(("1"
(case "1^2 = 1" )
(("1"
(replaces -1)
(("1"
(assert )
(("1"
(case "5^2 = 25" )
(("1"
(replaces -1)
(("1" (assert ) nil nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2"
(induct "kk" )
(("1" (grind) nil nil )
("2"
(skeep)
(("2"
(expand "^" )
(("2"
(expand "expt" 1)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((IFF const-decl "[bool, bool -> bool]" booleans nil )
(pi_ub_pos application-judgement "posreal" atan_approx 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 )
(- const-decl "[numfield, numfield -> numfield]" 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 )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(pi_ubn const-decl "real" atan_approx nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(< const-decl "bool" reals nil )
(* const-decl "[numfield, numfield -> numfield]" number_fields nil )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(/= const-decl "boolean" notequal nil )
(^ const-decl "real" exponentiation nil )
(nznum nonempty-type-eq-decl nil number_fields nil )
(/ const-decl "[numfield, nznum -> numfield]" number_fields nil )
(even_times_int_is_even application-judgement "even_int" integers
nil )
(nnrat_exp application-judgement "nnrat" exponentiation 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 )
(pi_ub_diff formula-decl nil atan_approx nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(rat_plus_rat_is_rat application-judgement "rat" rationals nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals nil )
(posrat_plus_nnrat_is_posrat application-judgement "posrat"
rationals nil )
(posint_exp application-judgement "posint" exponentiation nil )
(nzreal nonempty-type-eq-decl nil reals nil )
(div_mult_pos_gt2 formula-decl nil extra_real_props nil )
(nnrat_times_nnrat_is_nnrat application-judgement "nonneg_rat"
rationals nil )
(div_mult_pos_gt1 formula-decl nil extra_real_props nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pred type-eq-decl nil defined_types nil )
(nzrat_div_nzrat_is_nzrat application-judgement "nzrat" rationals
nil )
(both_sides_times_pos_gt1 formula-decl nil real_props nil )
(expt_plus formula-decl nil exponentiation nil )
(<= const-decl "bool" reals nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(both_sides_times_pos_le1_imp formula-decl nil extra_real_props
nil )
(div_mult_pos_le2 formula-decl nil real_props nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(K4 skolem-const-decl "posrat" atan_approx nil )
(expt def-decl "real" exponentiation nil )
(K2 skolem-const-decl "posrat" atan_approx nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(K1 skolem-const-decl "posrat" atan_approx nil )
(abs const-decl "{n: nonneg_real | n >= m AND n >= -m}" real_defs
nil )
(lt_times_lt_any1 formula-decl nil extra_real_props nil )
(posreal nonempty-type-eq-decl nil real_types nil )
(nonneg_real nonempty-type-eq-decl nil real_types nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div2 formula-decl nil real_props nil )
(odd_times_odd_is_odd application-judgement "odd_int" integers nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(K3 skolem-const-decl "posrat" atan_approx nil )
(even_plus_even_is_even application-judgement "even_int" integers
nil )
(posrat_expt application-judgement "posrat" exponentiation nil )
(both_sides_expt_pos_lt_aux formula-decl nil exponentiation nil )
(minus_odd_is_odd application-judgement "odd_int" integers nil )
(nonneg_rat nonempty-type-eq-decl nil rationals nil )
(> const-decl "bool" reals nil )
(posrat nonempty-type-eq-decl nil rationals nil )
(div_expt formula-decl nil exponentiation nil )
(posnat_expt application-judgement "posnat" exponentiation 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 ))
nil )
(pi_ub_diff_bounds-2 nil 3566172669
("" (skeep)
(("" (skoletin 1)
(("" (label "xdiffname" -1)
(("" (rewrite "pi_ub_diff" )
(("" (case "(1/5)^(5+4*n) = (1/25)*(1/5)^(3+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1"
(case "(1/239)^(7+4*n) = (1/239^2)*(1/239)^(5+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1" (invoke (name "K1" "%1" ) (! -1 2 1))
(("1" (invoke (name "K2" "%1" ) (! -2 2 2))
(("1" (invoke (name "K4" "%1" ) (! -3 2 3))
(("1" (invoke (name "K3" "%1" ) (! -4 2 4))
(("1"
(replace -1)
(("1"
(replace -2)
(("1"
(replace -3)
(("1"
(replace -4)
(("1"
(case
"K1/2 >= 32 * (1 / 5) ^ (3 + 5 * n)" )
(("1"
(case "K2 < K1" )
(("1"
(case
"2*K1 < (7/5) * (1 / 5) ^ (3 + 4 * n)" )
(("1"
(assert )
(("1"
(case "K3 < K2/2" )
(("1"
(case "K4 < K1/2" )
(("1"
(assert )
(("1"
(case
"K1 > 0 AND K2 > 0 AND K3 > 0 AND K4 > 0" )
(("1"
(flatten)
(("1"
(case
"K1 + K2 - K3 - K4 >= K1/2" )
(("1"
(case
"K1 + K2 - K3 - K4 < 2*K1" )
(("1"
(assert )
(("1"
(replace
"xdiffname"
:dir
rl)
(("1"
(assert )
(("1"
(grind
:exclude
"^" )
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide
(-1
-2
-3
-4
-5
-6
2))
(("2"
(hide
(-1 -2 -3))
(("2"
(expand "K1" )
(("2"
(expand
"K4" )
(("2"
(case
"1/(5+4*n) < 1/(3+4*n)" )
(("1"
(case
"16 * ((1 / 5) ^ (3 + 4 * n) * (1 / 25)) <
16 * (((1 / 5) ^ (3 + 4 * n)) ) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5))
(("2"
(hide (-1 -2 -3))
(("2"
(expand "K3" )
(("2"
(expand "K2" )
(("2"
(case
"1/(7+4*n) < 1/(5+4*n)" )
(("1"
(case
"4 * ((1 / 239) ^ (5 + 4 * n) * (1 / 239 ^ 2)) <
4 * (((1 / 239) ^ (5 + 4 * n))) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
(("2"
(expand
"^"
+
2)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(hide -1)
(("2"
(hide -1)
(("2"
(expand "K1" )
(("2"
(case
"1/(3+4*n) <= 1/23" )
(("1"
(mult-by
-1
"(1/5)^(3+4*n)" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(case
"EXISTS (kk:nat): n = kk+5" )
(("1"
(skeep -1)
(("1"
(replaces
-1)
(("1"
(cross-mult
1)
nil
nil ))
nil ))
nil )
("2"
(inst
+
"n-5" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5 -6 2))
(("2"
(expand "K1" )
(("2"
(expand "K2" )
(("2"
(case
"(1/239)^(4*n+5) < (1/5)^(3+4*n) AND 1/(5+4*n) < 1/(3+4*n)" )
(("1"
(flatten)
(("1"
(mult-ineq -1 -2)
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(lemma
"both_sides_expt_pos_lt_aux" )
(("1"
(inst
-
"2+4*n"
"1/239"
"1/5" )
(("1"
(assert )
(("1"
(expand
"^" )
(("1"
(expand
"expt"
+
1)
(("1"
(expand
"expt"
+
1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(expand "K1" )
(("2"
(assert )
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"3+4*n"
"n"
"1/5" )
(("2"
(assert )
(("2"
(replace -1)
(("2"
(case
"(1/(3+4*n)) > 4*(1/5)^n" )
(("1"
(mult-by
-1
"8 * (((1 / 5) ^ (3 + 4 * n)))" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide-all-but
(-2 1))
(("2"
(case
"FORALL (kk:nat): 1/(3+4*(kk+5)) > 4*(1/5)^(kk+5)" )
(("1"
(inst
-
"n-5" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(induct
"kk" )
(("1"
(assert )
(("1"
(grind)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+)
(("2"
(assert )
(("2"
(case
"(23+4*j)/(27+4*j) > 4/5" )
(("1"
(cross-mult
-2)
(("1"
(cross-mult
1)
nil
nil ))
nil )
("2"
(cross-mult
1)
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 ))
nil ))
nil )
("2" (hide (-1 2))
(("2" (lemma "expt_plus" )
(("2" (inst - "2" "5+4*n" "1/239" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2"
(rewrite "div_expt" )
(("2"
(assert )
(("2"
(case "1^2 = 1" )
(("1" (assert ) nil nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (lemma "expt_plus" )
(("2" (inst - "3+4*n" "2" "1/5" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2" (rewrite "div_expt" )
(("2" (case "FORALL (kk:nat): 1^kk = 1" )
(("1" (inst?)
(("1"
(replaces -1)
(("1"
(case "1^2 = 1" )
(("1"
(replaces -1)
(("1"
(assert )
(("1"
(case "5^2 = 25" )
(("1"
(replaces -1)
(("1" (assert ) nil nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2"
(induct "kk" )
(("1" (grind) nil nil )
("2"
(skeep)
(("2"
(expand "^" )
(("2"
(expand "expt" 1)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil nil )
(pi_ub_diff_bounds-1 nil 3555081842
("" (skeep)
(("" (skoletin 1)
(("" (label "xdiffname" -1)
(("" (rewrite "pi_ub_diff" )
(("" (case "(1/5)^(5+4*n) = (1/25)*(1/5)^(3+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1"
(case "(1/239)^(7+4*n) = (1/239^2)*(1/239)^(5+4*n)" )
(("1" (replaces -1)
(("1" (assert )
(("1" (invoke (name "K1" "%1" ) (! -1 2 1))
(("1" (invoke (name "K2" "%1" ) (! -2 2 2))
(("1" (invoke (name "K3" "%1" ) (! -3 2 3))
(("1" (invoke (name "K4" "%1" ) (! -4 2 4))
(("1"
(replace -1)
(("1"
(replace -2)
(("1"
(replace -3)
(("1"
(replace -4)
(("1"
(case
"K1/2 >= 32 * (1 / 5) ^ (3 + 5 * n)" )
(("1"
(case "K2 < K1" )
(("1"
(case
"2*K1 < (7/5) * (1 / 5) ^ (3 + 4 * n)" )
(("1"
(assert )
(("1"
(case "K3 < K2/2" )
(("1"
(case "K4 < K1/2" )
(("1"
(assert )
(("1"
(case
"K1 > 0 AND K2 > 0 AND K3 > 0 AND K4 > 0" )
(("1"
(flatten)
(("1"
(case
"K1 + K2 - K3 - K4 >= K1/2" )
(("1"
(case
"K1 + K2 - K3 - K4 < 2*K1" )
(("1"
(assert )
(("1"
(replace
"xdiffname"
:dir
rl)
(("1"
(assert )
(("1"
(grind
:exclude
"^" )
nil
nil ))
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
nil
nil ))
nil ))
nil )
("2"
(assert )
(("2"
(hide
(-1
-2
-3
-4
-5
-6
2))
(("2"
(hide
(-1 -2 -3))
(("2"
(expand "K1" )
(("2"
(expand
"K4" )
(("2"
(case
"1/(5+4*n) < 1/(3+4*n)" )
(("1"
(case
"16 * ((1 / 5) ^ (3 + 4 * n) * (1 / 25)) <
16 * (((1 / 5) ^ (3 + 4 * n)) ) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
nil
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5))
(("2"
(hide (-1 -2 -3))
(("2"
(expand "K3" )
(("2"
(expand "K2" )
(("2"
(case
"1/(7+4*n) < 1/(5+4*n)" )
(("1"
(case
"4 * ((1 / 239) ^ (5 + 4 * n) * (1 / 239 ^ 2)) <
4 * (((1 / 239) ^ (5 + 4 * n))) / 2")
(("1"
(mult-ineq
-1
-2)
(("1"
(assert )
nil
nil ))
nil )
("2"
(assert )
(("2"
(expand
"^"
+
2)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(expand
"expt"
1)
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult
1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(hide -1)
(("2"
(hide -1)
(("2"
(expand "K1" )
(("2"
(case
"1/(3+4*n) <= 1/23" )
(("1"
(mult-by
-1
"(1/5)^(3+4*n)" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(case
"EXISTS (kk:nat): n = kk+5" )
(("1"
(skeep -1)
(("1"
(replaces
-1)
(("1"
(cross-mult
1)
nil
nil ))
nil ))
nil )
("2"
(inst
+
"n-5" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide
(-1 -2 -3 -4 -5 -6 2))
(("2"
(expand "K1" )
(("2"
(expand "K2" )
(("2"
(case
"(1/239)^(4*n+5) < (1/5)^(3+4*n) AND 1/(5+4*n) < 1/(3+4*n)" )
(("1"
(flatten)
(("1"
(mult-ineq -1 -2)
(("1"
(assert )
nil
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(split)
(("1"
(lemma
"both_sides_expt_pos_lt_aux" )
(("1"
(inst
-
"2+4*n"
"1/239"
"1/5" )
(("1"
(assert )
(("1"
(expand
"^" )
(("1"
(expand
"expt"
+
1)
(("1"
(expand
"expt"
+
1)
(("1"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(cross-mult 1)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide (-1 -2 -3 -4 -5 2))
(("2"
(expand "K1" )
(("2"
(assert )
(("2"
(lemma "expt_plus" )
(("2"
(inst
-
"3+4*n"
"n"
"1/5" )
(("2"
(assert )
(("2"
(replace -1)
(("2"
(case
"(1/(3+4*n)) > 4*(1/5)^n" )
(("1"
(mult-by
-1
"8 * (((1 / 5) ^ (3 + 4 * n)))" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide-all-but
(-2 1))
(("2"
(case
"FORALL (kk:nat): 1/(3+4*(kk+5)) > 4*(1/5)^(kk+5)" )
(("1"
(inst
-
"n-5" )
(("1"
(assert )
nil
nil ))
nil )
("2"
(hide 2)
(("2"
(induct
"kk" )
(("1"
(assert )
(("1"
(grind)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(expand
"^" )
(("2"
(expand
"expt"
+)
(("2"
(assert )
(("2"
(case
"(23+4*j)/(27+4*j) > 4/5" )
(("1"
(cross-mult
-2)
(("1"
(cross-mult
1)
nil
nil ))
nil )
("2"
(cross-mult
1)
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 ))
nil ))
nil )
("2" (hide (-1 2))
(("2" (lemma "expt_plus" )
(("2" (inst - "2" "5+4*n" "1/239" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2"
(rewrite "div_expt" )
(("2"
(assert )
(("2"
(case "1^2 = 1" )
(("1" (assert ) nil nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide-all-but 1)
(("2" (lemma "expt_plus" )
(("2" (inst - "3+4*n" "2" "1/5" )
(("2" (assert )
(("2" (replaces -1)
(("2" (rewrite "div_expt" )
(("2" (rewrite "div_expt" )
(("2" (case "FORALL (kk:nat): 1^kk = 1" )
(("1" (inst?)
(("1"
(replaces -1)
(("1"
(case "1^2 = 1" )
(("1"
(replaces -1)
(("1"
(assert )
(("1"
(case "5^2 = 25" )
(("1"
(replaces -1)
(("1" (assert ) nil nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2" (grind) nil nil ))
nil ))
nil ))
nil ))
nil )
("2" (hide 2)
(("2"
(induct "kk" )
(("1" (grind) nil nil )
("2"
(skeep)
(("2"
(expand "^" )
(("2"
(expand "expt" 1)
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil nil ))
(pi_ub_quot_bounds 0
(pi_ub_quot_bounds-3 nil 3565741552
(""
(case "NOT FORALL (nn:subrange(0,15)): LET xquot = pi_ubn(nn + 1) / pi_ubn(nn) IN
1 - (9/5) * (1 / 5) ^ (4 * nn + 3) <= xquot AND xquot <= 1")
(("1" (eval-formula) nil nil )
("2" (skeep)
(("2" (case "NOT n>=15" )
(("1" (inst - "n" ) (("1" (assert ) nil nil )) nil )
("2" (hide -2)
(("2" (lemma "pi_ub_diff_bounds" )
(("2" (inst - "n" )
(("2" (split -)
(("1" (skoletin 1)
(("1" (skoletin -2 :old? t)
(("1" (flatten)
(("1" (split)
(("1" (mult-by -3 "1/pi_ubn(n)" )
(("1" (assert )
(("1"
(case "NOT xdiff * (1/pi_ubn(n)) = 1 - xquot" )
(("1" (assert ) nil nil )
("2"
(replaces -1)
(("2"
(assert )
(("2"
(case "1/pi_ubn(n) < 1/2" )
(("1"
(mult-by
-1
" ((1 / 5) ^ (3 + 4 * n))" )
(("1" (assert ) nil nil ))
nil )
("2"
(case
"FORALL (nn:nat): pi_ubn(nn+15) > 2" )
(("1"
(inst - "n-15" )
(("1"
(assert )
(("1"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(case
"FORALL (nn:nat): pi_lbn(nn+15) > 2" )
(("1"
(skeep)
(("1"
(inst - "nn" )
(("1"
(lemma "pi_bounds" )
(("1"
(inst - "nn+15" )
(("1"
(assert )
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(induct "nn" )
(("1"
(assert )
(("1"
(eval-formula)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(assert )
(("2"
(lemma "pi_lb_inc" )
(("2"
(inst
-
"16+j"
"15+j" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "xquot" +)
(("2" (cross-mult 1)
(("2" (lemma "pi_ub_dec" )
(("2"
(inst - "1+n" "n" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
((IFF const-decl "[bool, bool -> bool]" booleans nil )
(= const-decl "[T, T -> boolean]" equalities nil )
(posrat_exp application-judgement "posrat" exponentiation nil )
(posrat_times_posrat_is_posrat application-judgement "posrat"
rationals nil )
(nnrat_exp application-judgement "nnrat" exponentiation 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 )
(xquot skolem-const-decl "posreal" atan_approx nil )
(pi_ub_dec formula-decl nil atan_approx nil )
(div_mult_pos_le1 formula-decl nil real_props nil )
(both_sides_times_pos_lt1 formula-decl nil real_props nil )
(odd_plus_even_is_odd application-judgement "odd_int" integers nil )
(posint_plus_nnint_is_posint application-judgement "posint"
integers nil )
(int_plus_int_is_int application-judgement "int" integers nil )
(real_gt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(nonzero_real nonempty-type-eq-decl nil reals nil )
(times_div2 formula-decl nil real_props nil )
(int_times_even_is_even application-judgement "even_int" integers
nil )
(posint_times_posint_is_posint application-judgement "posint"
integers nil )
(div_mult_pos_lt2 formula-decl nil real_props nil )
(div_mult_pos_lt1 formula-decl nil real_props nil )
(int_minus_int_is_int application-judgement "int" integers nil )
(pi_lbn const-decl "real" atan_approx nil )
(pi_lb_pos application-judgement "posreal" atan_approx nil )
(pi_bound name-judgement "{r: posreal | pi_lb < r AND r < pi_ub}"
atan_approx nil )
(pi_bounds formula-decl nil atan_approx nil )
(pred type-eq-decl nil defined_types nil )
(nat_induction formula-decl nil naturalnumbers nil )
(pi_lb_inc formula-decl nil atan_approx nil )
(real_lt_is_strict_total_order name-judgement
"(strict_total_order?[real])" real_props nil )
(real_times_real_is_real application-judgement "real" reals nil )
(posreal_times_posreal_is_posreal application-judgement "posreal"
real_types nil )
(< const-decl "bool" reals nil )
(real_minus_real_is_real application-judgement "real" reals nil )
(pi_ub_diff_bounds formula-decl nil atan_approx nil )
(real_le_is_total_order name-judgement "(total_order?[real])"
real_props nil )
(n skolem-const-decl "nat" atan_approx nil )
(real_ge_is_total_order name-judgement "(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 )
(posreal_div_posreal_is_posreal application-judgement "posreal"
real_types nil )
(nnint_plus_posint_is_posint application-judgement "posint"
integers nil )
(pi_ub_pos application-judgement "posreal" atan_approx nil )
(posrat_div_posrat_is_posrat application-judgement "posrat"
rationals nil )
(even_plus_odd_is_odd application-judgement "odd_int" integers nil )
(rat_minus_rat_is_rat application-judgement "rat" rationals 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 )
(AND const-decl "[bool, bool -> bool]" booleans nil )
(<= const-decl "bool" reals nil )
(subrange type-eq-decl nil integers 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 )
(numfield nonempty-type-eq-decl nil number_fields nil )
(- const-decl "[numfield, numfield -> numfield]" number_fields nil )
(* const-decl "[numfield, numfield -> numfield]" 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 )
(OR const-decl "[bool, bool -> bool]" booleans nil )
(^ const-decl "real" exponentiation nil )
(+ const-decl "[numfield, numfield -> numfield]" number_fields nil )
(nat nonempty-type-eq-decl nil naturalnumbers nil )
(pi_ubn const-decl "real" atan_approx nil ))
nil )
(pi_ub_quot_bounds-2 nil 3565741534
(""
(case "NOT FORALL (nn:subrange(0,15)): LET xquot = pi_ubn(nn + 1) / pi_ubn(nn) IN
1 - (9/5) * (1 / 5) ^ (4 * nn + 3) <= xquot AND xquot <= 1")
(("1" (eval-formula) nil )
("2" (skeep)
(("2" (case "NOT n>=15" )
(("1" (inst - "n" ) (("1" (assert ) nil )))
("2" (hide -2)
(("2" (lemma "pi_ub_diff_bounds" )
(("2" (inst - "n" )
(("2" (split -)
(("1" (skoletin 1)
(("1" (skoletin -2)
(("1" (flatten)
(("1" (split)
(("1" (mult-by -3 "1/pi_ubn(n)" )
(("1" (assert )
(("1"
(case "NOT xdiff * (1/pi_ubn(n)) = 1 - xquot" )
(("1" (assert ) nil )
("2"
(replaces -1)
(("2"
(assert )
(("2"
(case "1/pi_ubn(n) < 1/2" )
(("1"
(mult-by
-1
" ((1 / 5) ^ (3 + 4 * n))" )
(("1" (assert ) nil )))
("2"
(case
"FORALL (nn:nat): pi_ubn(nn+15) > 2" )
(("1"
(inst - "n-15" )
(("1"
(assert )
(("1" (cross-mult 1) nil )))))
("2"
(hide-all-but 1)
(("2"
(case
"FORALL (nn:nat): pi_lbn(nn+15) > 2" )
(("1"
(skeep)
(("1"
(inst - "nn" )
(("1"
(lemma "pi_bounds" )
(("1"
(inst - "nn+15" )
(("1"
(assert )
(("1"
(ground)
nil )))))))))))
("2"
(hide 2)
(("2"
(induct "nn" )
(("1"
(assert )
(("1"
(eval-formula)
nil )))
("2"
(skeep)
(("2"
(assert )
(("2"
(lemma "pi_lb_inc" )
(("2"
(inst
-
"16+j"
"15+j" )
(("2"
(assert )
nil )))))))))))))))))))))))))))))))
("2" (expand "xquot" +)
(("2" (cross-mult 1)
(("2" (lemma "pi_ub_dec" )
(("2"
(inst - "1+n" "n" )
(("2" (assert ) nil )))))))))))))))))
("2" (assert ) nil ))))))))))))))
nil )
nil nil )
(pi_ub_quot_bounds-1 nil 3555152240
(""
(case "NOT FORALL (nn:subrange(0,15)): LET xquot = pi_ubn(nn + 1) / pi_ubn(nn) IN
1 - (9/5) * (1 / 5) ^ (4 * nn + 3) <= xquot AND xquot <= 1")
(("1" (eval-formula) nil nil )
("2" (skeep)
(("2" (case "NOT n>=15" )
(("1" (inst - "n" ) (("1" (assert ) nil nil )) nil )
("2" (hide -2)
(("2" (lemma "pi_ub_diff_bounds" )
(("2" (inst - "n" )
(("2" (split -)
(("1" (skoletin 1)
(("1" (skoletin -2 :old? t)
(("1" (flatten)
(("1" (split)
(("1" (mult-by -3 "1/pi_ubn(n)" )
(("1" (assert )
(("1"
(case "NOT xdiff * (1/pi_ubn(n)) = 1 - xquot" )
(("1" (assert ) nil nil )
("2"
(replaces -1)
(("2"
(assert )
(("2"
(case "1/pi_ubn(n) < 1/2" )
(("1"
(mult-by
-1
" ((1 / 5) ^ (3 + 4 * n))" )
(("1" (assert ) nil nil ))
nil )
("2"
(case
"FORALL (nn:nat): pi_ubn(nn+15) > 2" )
(("1"
(inst - "n-15" )
(("1"
(assert )
(("1"
(cross-mult 1)
nil
nil ))
nil ))
nil )
("2"
(hide-all-but 1)
(("2"
(case
"FORALL (nn:nat): pi_lbn(nn+15) > 2" )
(("1"
(skeep)
(("1"
(inst - "nn" )
(("1"
(lemma "pi_bounds" )
(("1"
(inst - "nn+15" )
(("1"
(assert )
(("1"
(ground)
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2"
(hide 2)
(("2"
(induct "nn" )
(("1"
(assert )
(("1"
(eval-formula)
nil
nil ))
nil )
("2"
(skeep)
(("2"
(assert )
(("2"
(lemma "pi_lb_inc" )
(("2"
(inst
-
"16+j"
"15+j" )
(("2"
(assert )
nil
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (expand "xquot" +)
(("2" (cross-mult 1)
(("2" (lemma "pi_ub_dec" )
(("2"
(inst - "1+n" "n" )
(("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
("2" (assert ) nil nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil ))
nil )
nil shostak)))
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.0.680Bemerkung:
(vorverarbeitet am 2026-05-01)
¤
*Bot Zugriff
2026-05-26