equal
deleted
inserted
replaced
4540 assumes "\<bar>x\<bar> \<le> 1" |
4540 assumes "\<bar>x\<bar> \<le> 1" |
4541 shows "summable (\<lambda> k. (-1)^k * (1 / real (k*2+1) * x ^ (k*2+1)))" |
4541 shows "summable (\<lambda> k. (-1)^k * (1 / real (k*2+1) * x ^ (k*2+1)))" |
4542 (is "summable (?c x)") |
4542 (is "summable (?c x)") |
4543 by (rule summable_Leibniz(1), rule zeroseq_arctan_series[OF assms], rule monoseq_arctan_series[OF assms]) |
4543 by (rule summable_Leibniz(1), rule zeroseq_arctan_series[OF assms], rule monoseq_arctan_series[OF assms]) |
4544 |
4544 |
4545 lemma less_one_imp_sqr_less_one: |
|
4546 fixes x :: real |
|
4547 assumes "\<bar>x\<bar> < 1" |
|
4548 shows "x\<^sup>2 < 1" |
|
4549 proof - |
|
4550 have "\<bar>x\<^sup>2\<bar> < 1" |
|
4551 by (metis abs_power2 assms pos2 power2_abs power_0 power_strict_decreasing zero_eq_power2 zero_less_abs_iff) |
|
4552 thus ?thesis using zero_le_power2 by auto |
|
4553 qed |
|
4554 |
|
4555 lemma DERIV_arctan_series: |
4545 lemma DERIV_arctan_series: |
4556 assumes "\<bar> x \<bar> < 1" |
4546 assumes "\<bar> x \<bar> < 1" |
4557 shows "DERIV (\<lambda> x'. \<Sum> k. (-1)^k * (1 / real (k*2+1) * x' ^ (k*2+1))) x :> (\<Sum> k. (-1)^k * x^(k*2))" |
4547 shows "DERIV (\<lambda> x'. \<Sum> k. (-1)^k * (1 / real (k*2+1) * x' ^ (k*2+1))) x :> (\<Sum> k. (-1)^k * x^(k*2))" |
4558 (is "DERIV ?arctan _ :> ?Int") |
4548 (is "DERIV ?arctan _ :> ?Int") |
4559 proof - |
4549 proof - |
4566 by auto |
4556 by auto |
4567 |
4557 |
4568 { |
4558 { |
4569 fix x :: real |
4559 fix x :: real |
4570 assume "\<bar>x\<bar> < 1" |
4560 assume "\<bar>x\<bar> < 1" |
4571 hence "x\<^sup>2 < 1" by (rule less_one_imp_sqr_less_one) |
4561 hence "x\<^sup>2 < 1" by (simp add: abs_square_less_1) |
4572 have "summable (\<lambda> n. (- 1) ^ n * (x\<^sup>2) ^n)" |
4562 have "summable (\<lambda> n. (- 1) ^ n * (x\<^sup>2) ^n)" |
4573 by (rule summable_Leibniz(1), auto intro!: LIMSEQ_realpow_zero monoseq_realpow `x\<^sup>2 < 1` order_less_imp_le[OF `x\<^sup>2 < 1`]) |
4563 by (rule summable_Leibniz(1), auto intro!: LIMSEQ_realpow_zero monoseq_realpow `x\<^sup>2 < 1` order_less_imp_le[OF `x\<^sup>2 < 1`]) |
4574 hence "summable (\<lambda> n. (- 1) ^ n * x^(2*n))" unfolding power_mult . |
4564 hence "summable (\<lambda> n. (- 1) ^ n * x^(2*n))" unfolding power_mult . |
4575 } note summable_Integral = this |
4565 } note summable_Integral = this |
4576 |
4566 |
4674 fix x |
4664 fix x |
4675 assume "-r < x \<and> x < r" |
4665 assume "-r < x \<and> x < r" |
4676 hence "\<bar>x\<bar> < r" by auto |
4666 hence "\<bar>x\<bar> < r" by auto |
4677 hence "\<bar>x\<bar> < 1" using `r < 1` by auto |
4667 hence "\<bar>x\<bar> < 1" using `r < 1` by auto |
4678 have "\<bar> - (x\<^sup>2) \<bar> < 1" |
4668 have "\<bar> - (x\<^sup>2) \<bar> < 1" |
4679 using less_one_imp_sqr_less_one[OF `\<bar>x\<bar> < 1`] by auto |
4669 using abs_square_less_1 `\<bar>x\<bar> < 1` by auto |
4680 hence "(\<lambda> n. (- (x\<^sup>2)) ^ n) sums (1 / (1 - (- (x\<^sup>2))))" |
4670 hence "(\<lambda> n. (- (x\<^sup>2)) ^ n) sums (1 / (1 - (- (x\<^sup>2))))" |
4681 unfolding real_norm_def[symmetric] by (rule geometric_sums) |
4671 unfolding real_norm_def[symmetric] by (rule geometric_sums) |
4682 hence "(?c' x) sums (1 / (1 - (- (x\<^sup>2))))" |
4672 hence "(?c' x) sums (1 / (1 - (- (x\<^sup>2))))" |
4683 unfolding power_mult_distrib[symmetric] power_mult mult.commute[of _ 2] by auto |
4673 unfolding power_mult_distrib[symmetric] power_mult mult.commute[of _ 2] by auto |
4684 hence suminf_c'_eq_geom: "inverse (1 + x\<^sup>2) = suminf (?c' x)" |
4674 hence suminf_c'_eq_geom: "inverse (1 + x\<^sup>2) = suminf (?c' x)" |