src/HOL/Series.thy
changeset 56536 aefb4a8da31f
parent 56369 2704ca85be98
child 57025 e7fd64f82876
equal deleted inserted replaced
56535:34023a586608 56536:aefb4a8da31f
   573   have finite_S1: "\<And>n. finite (?S1 n)" by simp
   573   have finite_S1: "\<And>n. finite (?S1 n)" by simp
   574   with S2_le_S1 have finite_S2: "\<And>n. finite (?S2 n)" by (rule finite_subset)
   574   with S2_le_S1 have finite_S2: "\<And>n. finite (?S2 n)" by (rule finite_subset)
   575 
   575 
   576   let ?g = "\<lambda>(i,j). a i * b j"
   576   let ?g = "\<lambda>(i,j). a i * b j"
   577   let ?f = "\<lambda>(i,j). norm (a i) * norm (b j)"
   577   let ?f = "\<lambda>(i,j). norm (a i) * norm (b j)"
   578   have f_nonneg: "\<And>x. 0 \<le> ?f x"
   578   have f_nonneg: "\<And>x. 0 \<le> ?f x" by (auto)
   579     by (auto simp add: mult_nonneg_nonneg)
       
   580   hence norm_setsum_f: "\<And>A. norm (setsum ?f A) = setsum ?f A"
   579   hence norm_setsum_f: "\<And>A. norm (setsum ?f A) = setsum ?f A"
   581     unfolding real_norm_def
   580     unfolding real_norm_def
   582     by (simp only: abs_of_nonneg setsum_nonneg [rule_format])
   581     by (simp only: abs_of_nonneg setsum_nonneg [rule_format])
   583 
   582 
   584   have "(\<lambda>n. (\<Sum>k<n. a k) * (\<Sum>k<n. b k)) ----> (\<Sum>k. a k) * (\<Sum>k. b k)"
   583   have "(\<lambda>n. (\<Sum>k<n. a k) * (\<Sum>k<n. b k)) ----> (\<Sum>k. a k) * (\<Sum>k. b k)"