364 subsection{*Properties of Power Series*} |
364 subsection{*Properties of Power Series*} |
365 |
365 |
366 lemma lemma_realpow_diff_sumr: |
366 lemma lemma_realpow_diff_sumr: |
367 "sumr 0 (Suc n) (%p. (x ^ p) * y ^ ((Suc n) - p)) = |
367 "sumr 0 (Suc n) (%p. (x ^ p) * y ^ ((Suc n) - p)) = |
368 y * sumr 0 (Suc n) (%p. (x ^ p) * (y ^ (n - p)))" |
368 y * sumr 0 (Suc n) (%p. (x ^ p) * (y ^ (n - p)))" |
369 apply (auto simp add: sumr_mult simp del: sumr_Suc) |
369 apply (auto simp add: setsum_mult simp del: sumr_Suc) |
370 apply (rule sumr_subst) |
370 apply (rule sumr_subst) |
371 apply (intro strip) |
371 apply (intro strip) |
372 apply (subst lemma_realpow_diff) |
372 apply (subst lemma_realpow_diff) |
373 apply (auto simp add: mult_ac) |
373 apply (auto simp add: mult_ac) |
374 done |
374 done |
502 apply (auto simp add: lemma_realpow_diff_sumr2 |
502 apply (auto simp add: lemma_realpow_diff_sumr2 |
503 right_diff_distrib [symmetric] mult_assoc |
503 right_diff_distrib [symmetric] mult_assoc |
504 simp del: realpow_Suc sumr_Suc) |
504 simp del: realpow_Suc sumr_Suc) |
505 apply (auto simp add: lemma_realpow_rev_sumr simp del: sumr_Suc) |
505 apply (auto simp add: lemma_realpow_rev_sumr simp del: sumr_Suc) |
506 apply (auto simp add: real_of_nat_Suc sumr_diff_mult_const left_distrib |
506 apply (auto simp add: real_of_nat_Suc sumr_diff_mult_const left_distrib |
507 sumdiff lemma_termdiff1 sumr_mult) |
507 sumdiff lemma_termdiff1 setsum_mult) |
508 apply (auto intro!: sumr_subst simp add: diff_minus real_add_assoc) |
508 apply (auto intro!: sumr_subst simp add: diff_minus real_add_assoc) |
509 apply (simp add: diff_minus [symmetric] less_iff_Suc_add) |
509 apply (simp add: diff_minus [symmetric] less_iff_Suc_add) |
510 apply (auto simp add: sumr_mult lemma_realpow_diff_sumr2 mult_ac simp |
510 apply (auto simp add: setsum_mult lemma_realpow_diff_sumr2 mult_ac simp |
511 del: sumr_Suc realpow_Suc) |
511 del: sumr_Suc realpow_Suc) |
512 done |
512 done |
513 |
513 |
514 lemma lemma_termdiff3: |
514 lemma lemma_termdiff3: |
515 "[| h \<noteq> 0; \<bar>z\<bar> \<le> K; \<bar>z + h\<bar> \<le> K |] |
515 "[| h \<noteq> 0; \<bar>z\<bar> \<le> K; \<bar>z + h\<bar> \<le> K |] |
516 ==> abs (((z + h) ^ n - z ^ n) * inverse h - real n * z ^ (n - Suc 0)) |
516 ==> abs (((z + h) ^ n - z ^ n) * inverse h - real n * z ^ (n - Suc 0)) |
517 \<le> real n * real (n - Suc 0) * K ^ (n - 2) * \<bar>h\<bar>" |
517 \<le> real n * real (n - Suc 0) * K ^ (n - 2) * \<bar>h\<bar>" |
518 apply (subst lemma_termdiff2, assumption) |
518 apply (subst lemma_termdiff2, assumption) |
519 apply (simp add: abs_mult mult_commute) |
519 apply (simp add: abs_mult mult_commute) |
520 apply (simp add: mult_commute [of _ "K ^ (n - 2)"]) |
520 apply (simp add: mult_commute [of _ "K ^ (n - 2)"]) |
521 apply (rule sumr_rabs [THEN real_le_trans]) |
521 apply (rule setsum_abs [THEN real_le_trans]) |
522 apply (simp add: mult_assoc [symmetric]) |
522 apply (simp add: mult_assoc [symmetric]) |
523 apply (simp add: mult_commute [of _ "real (n - Suc 0)"]) |
523 apply (simp add: mult_commute [of _ "real (n - Suc 0)"]) |
524 apply (auto intro!: sumr_bound2 simp add: abs_mult) |
524 apply (auto intro!: sumr_bound2 simp add: abs_mult) |
525 apply (case_tac "n", auto) |
525 apply (case_tac "n", auto) |
526 apply (drule less_add_one) |
526 apply (drule less_add_one) |
533 apply (auto intro!: power_mono simp add: power_abs simp del: sumr_Suc) |
533 apply (auto intro!: power_mono simp add: power_abs simp del: sumr_Suc) |
534 apply (rule_tac j = "real (Suc d) * (K ^ d)" in real_le_trans) |
534 apply (rule_tac j = "real (Suc d) * (K ^ d)" in real_le_trans) |
535 apply (subgoal_tac [2] "0 \<le> K") |
535 apply (subgoal_tac [2] "0 \<le> K") |
536 apply (drule_tac [2] n = d in zero_le_power) |
536 apply (drule_tac [2] n = d in zero_le_power) |
537 apply (auto simp del: sumr_Suc) |
537 apply (auto simp del: sumr_Suc) |
538 apply (rule sumr_rabs [THEN real_le_trans]) |
538 apply (rule setsum_abs [THEN real_le_trans]) |
539 apply (rule sumr_bound2, auto dest!: less_add_one intro!: mult_mono simp add: abs_mult power_add) |
539 apply (rule sumr_bound2, auto dest!: less_add_one intro!: mult_mono simp add: abs_mult power_add) |
540 apply (auto intro!: power_mono zero_le_power simp add: power_abs, arith+) |
540 apply (auto intro!: power_mono zero_le_power simp add: power_abs, arith+) |
541 done |
541 done |
542 |
542 |
543 lemma lemma_termdiff4: |
543 lemma lemma_termdiff4: |