169 by (intro sums_unique sums summable_sums) |
169 by (intro sums_unique sums summable_sums) |
170 |
170 |
171 lemma sums_mult: |
171 lemma sums_mult: |
172 fixes c :: "'a::real_normed_algebra" |
172 fixes c :: "'a::real_normed_algebra" |
173 shows "f sums a \<Longrightarrow> (\<lambda>n. c * f n) sums (c * a)" |
173 shows "f sums a \<Longrightarrow> (\<lambda>n. c * f n) sums (c * a)" |
174 by (rule bounded_linear_mult_right.sums) |
174 by (rule mult_right.sums) |
175 |
175 |
176 lemma summable_mult: |
176 lemma summable_mult: |
177 fixes c :: "'a::real_normed_algebra" |
177 fixes c :: "'a::real_normed_algebra" |
178 shows "summable f \<Longrightarrow> summable (%n. c * f n)" |
178 shows "summable f \<Longrightarrow> summable (%n. c * f n)" |
179 by (rule bounded_linear_mult_right.summable) |
179 by (rule mult_right.summable) |
180 |
180 |
181 lemma suminf_mult: |
181 lemma suminf_mult: |
182 fixes c :: "'a::real_normed_algebra" |
182 fixes c :: "'a::real_normed_algebra" |
183 shows "summable f \<Longrightarrow> suminf (\<lambda>n. c * f n) = c * suminf f"; |
183 shows "summable f \<Longrightarrow> suminf (\<lambda>n. c * f n) = c * suminf f"; |
184 by (rule bounded_linear_mult_right.suminf [symmetric]) |
184 by (rule mult_right.suminf [symmetric]) |
185 |
185 |
186 lemma sums_mult2: |
186 lemma sums_mult2: |
187 fixes c :: "'a::real_normed_algebra" |
187 fixes c :: "'a::real_normed_algebra" |
188 shows "f sums a \<Longrightarrow> (\<lambda>n. f n * c) sums (a * c)" |
188 shows "f sums a \<Longrightarrow> (\<lambda>n. f n * c) sums (a * c)" |
189 by (rule bounded_linear_mult_left.sums) |
189 by (rule mult_left.sums) |
190 |
190 |
191 lemma summable_mult2: |
191 lemma summable_mult2: |
192 fixes c :: "'a::real_normed_algebra" |
192 fixes c :: "'a::real_normed_algebra" |
193 shows "summable f \<Longrightarrow> summable (\<lambda>n. f n * c)" |
193 shows "summable f \<Longrightarrow> summable (\<lambda>n. f n * c)" |
194 by (rule bounded_linear_mult_left.summable) |
194 by (rule mult_left.summable) |
195 |
195 |
196 lemma suminf_mult2: |
196 lemma suminf_mult2: |
197 fixes c :: "'a::real_normed_algebra" |
197 fixes c :: "'a::real_normed_algebra" |
198 shows "summable f \<Longrightarrow> suminf f * c = (\<Sum>n. f n * c)" |
198 shows "summable f \<Longrightarrow> suminf f * c = (\<Sum>n. f n * c)" |
199 by (rule bounded_linear_mult_left.suminf) |
199 by (rule mult_left.suminf) |
200 |
200 |
201 lemma sums_divide: |
201 lemma sums_divide: |
202 fixes c :: "'a::real_normed_field" |
202 fixes c :: "'a::real_normed_field" |
203 shows "f sums a \<Longrightarrow> (\<lambda>n. f n / c) sums (a / c)" |
203 shows "f sums a \<Longrightarrow> (\<lambda>n. f n / c) sums (a / c)" |
204 by (rule bounded_linear_divide.sums) |
204 by (rule divide.sums) |
205 |
205 |
206 lemma summable_divide: |
206 lemma summable_divide: |
207 fixes c :: "'a::real_normed_field" |
207 fixes c :: "'a::real_normed_field" |
208 shows "summable f \<Longrightarrow> summable (\<lambda>n. f n / c)" |
208 shows "summable f \<Longrightarrow> summable (\<lambda>n. f n / c)" |
209 by (rule bounded_linear_divide.summable) |
209 by (rule divide.summable) |
210 |
210 |
211 lemma suminf_divide: |
211 lemma suminf_divide: |
212 fixes c :: "'a::real_normed_field" |
212 fixes c :: "'a::real_normed_field" |
213 shows "summable f \<Longrightarrow> suminf (\<lambda>n. f n / c) = suminf f / c" |
213 shows "summable f \<Longrightarrow> suminf (\<lambda>n. f n / c) = suminf f / c" |
214 by (rule bounded_linear_divide.suminf [symmetric]) |
214 by (rule divide.suminf [symmetric]) |
215 |
215 |
216 lemma sums_add: "\<lbrakk>X sums a; Y sums b\<rbrakk> \<Longrightarrow> (\<lambda>n. X n + Y n) sums (a + b)" |
216 lemma sums_add: "\<lbrakk>X sums a; Y sums b\<rbrakk> \<Longrightarrow> (\<lambda>n. X n + Y n) sums (a + b)" |
217 unfolding sums_def by (simp add: setsum_addf LIMSEQ_add) |
217 unfolding sums_def by (simp add: setsum_addf LIMSEQ_add) |
218 |
218 |
219 lemma summable_add: "\<lbrakk>summable X; summable Y\<rbrakk> \<Longrightarrow> summable (\<lambda>n. X n + Y n)" |
219 lemma summable_add: "\<lbrakk>summable X; summable Y\<rbrakk> \<Longrightarrow> summable (\<lambda>n. X n + Y n)" |