src/HOL/Analysis/Infinite_Sum.thy
changeset 74642 8af77cb50c6d
parent 74639 f831b6e589dc
child 74791 227915e07891
equal deleted inserted replaced
74641:6f801e1073fa 74642:8af77cb50c6d
   509       by (metis dist_commute dist_norm)
   509       by (metis dist_commute dist_norm)
   510     then obtain F where "norm (a - sum f F) \<le> \<epsilon>"
   510     then obtain F where "norm (a - sum f F) \<le> \<epsilon>"
   511       and "finite F" and "F \<subseteq> A"
   511       and "finite F" and "F \<subseteq> A"
   512       by (simp add: atomize_elim)
   512       by (simp add: atomize_elim)
   513     hence "norm a \<le> norm (sum f F) + \<epsilon>"
   513     hence "norm a \<le> norm (sum f F) + \<epsilon>"
   514       by (smt norm_triangle_sub)
   514       by (metis add.commute diff_add_cancel dual_order.refl norm_triangle_mono)
   515     also have "\<dots> \<le> sum (\<lambda>x. norm (f x)) F + \<epsilon>"
   515     also have "\<dots> \<le> sum (\<lambda>x. norm (f x)) F + \<epsilon>"
   516       using norm_sum by auto
   516       using norm_sum by auto
   517     also have "\<dots> \<le> n + \<epsilon>"
   517     also have "\<dots> \<le> n + \<epsilon>"
   518       apply (rule add_right_mono)
   518       apply (rule add_right_mono)
   519       apply (rule has_sum_mono_neutral[where A=F and B=A and f=\<open>\<lambda>x. norm (f x)\<close> and g=\<open>\<lambda>x. norm (f x)\<close>])
   519       apply (rule has_sum_mono_neutral[where A=F and B=A and f=\<open>\<lambda>x. norm (f x)\<close> and g=\<open>\<lambda>x. norm (f x)\<close>])
   568       by (metis (no_types, lifting) eventually_mono filterlim_iff finite_subsets_at_top_neq_bot tendsto_Lim)
   568       by (metis (no_types, lifting) eventually_mono filterlim_iff finite_subsets_at_top_neq_bot tendsto_Lim)
   569     then obtain X where "(\<Sum>x\<in>X. norm (f x)) \<in> S"
   569     then obtain X where "(\<Sum>x\<in>X. norm (f x)) \<in> S"
   570       by blast
   570       by blast
   571     hence "(\<Sum>x\<in>X. norm (f x)) < 0"
   571     hence "(\<Sum>x\<in>X. norm (f x)) < 0"
   572       unfolding S_def by auto      
   572       unfolding S_def by auto      
   573     thus False using sumpos by smt
   573     thus False by (simp add: leD sumpos)
   574   qed
   574   qed
   575   have "\<exists>!h. (sum (\<lambda>x. norm (f x)) \<longlongrightarrow> h) (finite_subsets_at_top A)"
   575   have "\<exists>!h. (sum (\<lambda>x. norm (f x)) \<longlongrightarrow> h) (finite_subsets_at_top A)"
   576     using t_def finite_subsets_at_top_neq_bot tendsto_unique by blast
   576     using t_def finite_subsets_at_top_neq_bot tendsto_unique by blast
   577   hence "t = (Topological_Spaces.Lim (finite_subsets_at_top A) (sum (\<lambda>x. norm (f x))))"
   577   hence "t = (Topological_Spaces.Lim (finite_subsets_at_top A) (sum (\<lambda>x. norm (f x))))"
   578     using t_def unfolding Topological_Spaces.Lim_def
   578     using t_def unfolding Topological_Spaces.Lim_def