equal
deleted
inserted
replaced
641 |
641 |
642 lemma summable_offset: |
642 lemma summable_offset: |
643 assumes "summable (\<lambda>n. f (n + k) :: 'a :: real_normed_vector)" |
643 assumes "summable (\<lambda>n. f (n + k) :: 'a :: real_normed_vector)" |
644 shows "summable f" |
644 shows "summable f" |
645 proof - |
645 proof - |
646 from assms have "convergent (\<lambda>m. \<Sum>n<m. f (n + k))" by (simp add: summable_iff_convergent) |
646 from assms have "convergent (\<lambda>m. \<Sum>n<m. f (n + k))" |
|
647 using summable_iff_convergent by blast |
647 hence "convergent (\<lambda>m. (\<Sum>n<k. f n) + (\<Sum>n<m. f (n + k)))" |
648 hence "convergent (\<lambda>m. (\<Sum>n<k. f n) + (\<Sum>n<m. f (n + k)))" |
648 by (intro convergent_add convergent_const) |
649 by (intro convergent_add convergent_const) |
649 also have "(\<lambda>m. (\<Sum>n<k. f n) + (\<Sum>n<m. f (n + k))) = (\<lambda>m. \<Sum>n<m+k. f n)" |
650 also have "(\<lambda>m. (\<Sum>n<k. f n) + (\<Sum>n<m. f (n + k))) = (\<lambda>m. \<Sum>n<m+k. f n)" |
650 proof |
651 proof |
651 fix m :: nat |
652 fix m :: nat |