equal
deleted
inserted
replaced
443 |
443 |
444 let ?f = "\<lambda>k. 2 * y ^ (2*k+1) / of_nat (2*k+1)" |
444 let ?f = "\<lambda>k. 2 * y ^ (2*k+1) / of_nat (2*k+1)" |
445 note sums = ln_series_quadratic[OF x(1)] |
445 note sums = ln_series_quadratic[OF x(1)] |
446 define c where "c = inverse (2*y^(2*n+1))" |
446 define c where "c = inverse (2*y^(2*n+1))" |
447 let ?d = "c * (ln x - (\<Sum>k<n. ?f k))" |
447 let ?d = "c * (ln x - (\<Sum>k<n. ?f k))" |
448 have "\<forall>k. y\<^sup>2^k / of_nat (2*(k+n)+1) \<le> y\<^sup>2 ^ k / of_nat (2*n+1)" |
448 have "\<And>k. y\<^sup>2^k / of_nat (2*(k+n)+1) \<le> y\<^sup>2 ^ k / of_nat (2*n+1)" |
449 by (intro allI divide_left_mono mult_right_mono mult_pos_pos zero_le_power[of "y^2"]) simp_all |
449 by (intro divide_left_mono mult_right_mono mult_pos_pos zero_le_power[of "y^2"]) simp_all |
450 moreover { |
450 moreover { |
451 have "(\<lambda>k. ?f (k + n)) sums (ln x - (\<Sum>k<n. ?f k))" |
451 have "(\<lambda>k. ?f (k + n)) sums (ln x - (\<Sum>k<n. ?f k))" |
452 using sums_split_initial_segment[OF sums] by (simp add: y_def) |
452 using sums_split_initial_segment[OF sums] by (simp add: y_def) |
453 hence "(\<lambda>k. c * ?f (k + n)) sums ?d" by (rule sums_mult) |
453 hence "(\<lambda>k. c * ?f (k + n)) sums ?d" by (rule sums_mult) |
454 also have "(\<lambda>k. c * (2*y^(2*(k+n)+1) / of_nat (2*(k+n)+1))) = |
454 also have "(\<lambda>k. c * (2*y^(2*(k+n)+1) / of_nat (2*(k+n)+1))) = |