src/HOL/Hyperreal/Series.thy
changeset 23127 56ee8105c002
parent 23121 5feeb93b3ba8
child 23441 ee218296d635
equal deleted inserted replaced
23126:93f8cb025afd 23127:56ee8105c002
   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)"