equal
deleted
inserted
replaced
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))" |