equal
deleted
inserted
replaced
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))" |
227 by (simp add: summable_sums_iff divide_inverse sums_def) |
227 by (simp add: summable_sums_iff divide_inverse sums_def) |
228 from filterlim_compose[OF this filterlim_subseq[of "op * (2::nat)"]] |
228 from filterlim_compose[OF this filterlim_subseq[of "( * ) (2::nat)"]] |
229 have "(\<lambda>n. \<Sum>k<2*n. (-1)^k / real_of_nat (Suc k)) \<longlonglongrightarrow> (\<Sum>k. (-1)^k / real_of_nat (Suc k))" |
229 have "(\<lambda>n. \<Sum>k<2*n. (-1)^k / real_of_nat (Suc k)) \<longlonglongrightarrow> (\<Sum>k. (-1)^k / real_of_nat (Suc k))" |
230 by (simp add: strict_mono_def) |
230 by (simp add: strict_mono_def) |
231 ultimately have "(\<Sum>k. (- 1) ^ k / real_of_nat (Suc k)) = ln 2" by (intro LIMSEQ_unique) |
231 ultimately have "(\<Sum>k. (- 1) ^ k / real_of_nat (Suc k)) = ln 2" by (intro LIMSEQ_unique) |
232 with A show ?thesis by (simp add: sums_def) |
232 with A show ?thesis by (simp add: sums_def) |
233 qed |
233 qed |