src/HOL/Analysis/Summation_Tests.thy
changeset 68532 f8b98d31ad45
parent 66672 75694b28ef08
child 68643 3db6c9338ec1
equal deleted inserted replaced
68528:d31e986fbebc 68532:f8b98d31ad45
   750   fixes f :: "nat \<Rightarrow> 'a :: {banach,real_normed_div_algebra}"
   750   fixes f :: "nat \<Rightarrow> 'a :: {banach,real_normed_div_algebra}"
   751   assumes nz:  "eventually (\<lambda>n. f n \<noteq> 0) sequentially"
   751   assumes nz:  "eventually (\<lambda>n. f n \<noteq> 0) sequentially"
   752   assumes lim: "(\<lambda>n. ereal (norm (f n) / norm (f (Suc n)))) \<longlonglongrightarrow> c"
   752   assumes lim: "(\<lambda>n. ereal (norm (f n) / norm (f (Suc n)))) \<longlonglongrightarrow> c"
   753   shows   "conv_radius f = c"
   753   shows   "conv_radius f = c"
   754 proof (rule conv_radius_eqI')
   754 proof (rule conv_radius_eqI')
   755   show "c \<ge> 0" by (intro Lim_bounded2_ereal[OF lim]) simp_all
   755   show "c \<ge> 0" by (intro Lim_bounded2[OF lim]) simp_all
   756 next
   756 next
   757   fix r assume r: "0 < r" "ereal r < c"
   757   fix r assume r: "0 < r" "ereal r < c"
   758   let ?l = "liminf (\<lambda>n. ereal (norm (f n * of_real r ^ n) / norm (f (Suc n) * of_real r ^ Suc n)))"
   758   let ?l = "liminf (\<lambda>n. ereal (norm (f n * of_real r ^ n) / norm (f (Suc n) * of_real r ^ Suc n)))"
   759   have "?l = liminf (\<lambda>n. ereal (norm (f n) / (norm (f (Suc n)))) * ereal (inverse r))"
   759   have "?l = liminf (\<lambda>n. ereal (norm (f n) / (norm (f (Suc n)))) * ereal (inverse r))"
   760     using r by (simp add: norm_mult norm_power divide_simps)
   760     using r by (simp add: norm_mult norm_power divide_simps)