src/HOL/Analysis/Harmonic_Numbers.thy
changeset 70532 fcf3b891ccb1
parent 70136 f03a01a18c6e
child 70817 dd675800469d
equal deleted inserted replaced
70531:2d2b5a8e8d59 70532:fcf3b891ccb1
   216                      \<longlonglongrightarrow> euler_mascheroni - euler_mascheroni + ln 2"
   216                      \<longlonglongrightarrow> euler_mascheroni - euler_mascheroni + ln 2"
   217     by (intro tendsto_intros euler_mascheroni_LIMSEQ filterlim_compose[OF euler_mascheroni_LIMSEQ]
   217     by (intro tendsto_intros euler_mascheroni_LIMSEQ filterlim_compose[OF euler_mascheroni_LIMSEQ]
   218               filterlim_subseq) (auto simp: strict_mono_def)
   218               filterlim_subseq) (auto simp: strict_mono_def)
   219   hence "(\<lambda>n. ?em (2*n) - ?em n + ln (2::real)) \<longlonglongrightarrow> ln 2" by simp
   219   hence "(\<lambda>n. ?em (2*n) - ?em n + ln (2::real)) \<longlonglongrightarrow> ln 2" by simp
   220   ultimately have "(\<lambda>n. (\<Sum>k<2*n. (-1)^k / real_of_nat (Suc k))) \<longlonglongrightarrow> ln 2"
   220   ultimately have "(\<lambda>n. (\<Sum>k<2*n. (-1)^k / real_of_nat (Suc k))) \<longlonglongrightarrow> ln 2"
   221     by (rule Lim_transform_eventually)
   221     by (blast intro: Lim_transform_eventually)
   222 
   222 
   223   moreover have "summable (\<lambda>k. (-1)^k * inverse (real_of_nat (Suc k)))"
   223   moreover have "summable (\<lambda>k. (-1)^k * inverse (real_of_nat (Suc k)))"
   224     using LIMSEQ_inverse_real_of_nat
   224     using LIMSEQ_inverse_real_of_nat
   225     by (intro summable_Leibniz(1) decseq_imp_monoseq decseq_SucI) simp_all
   225     by (intro summable_Leibniz(1) decseq_imp_monoseq decseq_SucI) simp_all
   226   hence A: "(\<lambda>n. \<Sum>k<n. (-1)^k / real_of_nat (Suc k)) \<longlonglongrightarrow> (\<Sum>k. (-1)^k / real_of_nat (Suc k))"
   226   hence A: "(\<lambda>n. \<Sum>k<n. (-1)^k / real_of_nat (Suc k)) \<longlonglongrightarrow> (\<Sum>k. (-1)^k / real_of_nat (Suc k))"