# HG changeset patch # User paulson # Date 1625069938 -3600 # Node ID e6e34e64163e02f92f26d21a5fe32e1a034a5728 # Parent 9b981f5612d07b6e5e78ffd1057799b7ecee95f4 just a bit of tidying up diff -r 9b981f5612d0 -r e6e34e64163e src/HOL/Series.thy --- a/src/HOL/Series.thy Wed Jun 30 09:11:31 2021 +0200 +++ b/src/HOL/Series.thy Wed Jun 30 17:18:58 2021 +0100 @@ -58,7 +58,7 @@ by simp lemma sums_cong: "(\n. f n = g n) \ f sums c \ g sums c" - by (drule ext) simp + by presburger lemma sums_summable: "f sums l \ summable f" by (simp add: sums_def summable_def, blast) @@ -67,8 +67,7 @@ by (simp add: summable_def sums_def convergent_def) lemma summable_iff_convergent': "summable f \ convergent (\n. sum f {..n})" - by (simp_all only: summable_iff_convergent convergent_def - lessThan_Suc_atMost [symmetric] filterlim_sequentially_Suc[of "\n. sum f {..n. \i 0 < k \ (\n. sum f {n * k ..< n * k + k}) sums s" apply (simp only: sums_def sum.nat_group tendsto_def eventually_sequentially) apply (erule all_forward imp_forward exE| assumption)+ - apply (rule_tac x="N" in exI) by (metis le_square mult.commute mult.left_neutral mult_le_cancel2 mult_le_mono) lemma suminf_cong: "(\n. f n = g n) \ suminf f = suminf g" - by (rule arg_cong[of f g], rule ext) simp + by presburger lemma summable_cong: fixes f g :: "nat \ 'a::real_normed_vector" @@ -225,16 +223,13 @@ assumes "summable f" and pos: "\n. 0 \ f n" shows "suminf f = 0 \ (\n. f n = 0)" proof - assume "suminf f = 0" + assume L: "suminf f = 0" then have f: "(\n. \i 0" using summable_LIMSEQ[of f] assms by simp then have "\i. (\n\{i}. f n) \ 0" - proof (rule LIMSEQ_le_const) - show "\N. \n\N. (\n\{i}. f n) \ sum f {..summable f\ order_refl pos sum.infinite sum_le_suminf) with pos show "\n. f n = 0" - by (auto intro!: antisym) + by (simp add: order.antisym) qed (metis suminf_zero fun_eq_iff) lemma suminf_pos_iff: "summable f \ (\n. 0 \ f n) \ 0 < suminf f \ (\i. 0 < f i)" @@ -735,11 +730,11 @@ proof (cases m n rule: linorder_class.le_cases) assume "m \ n" then show ?thesis - by (metis Groups_Big.sum_diff N finite_lessThan lessThan_minus_lessThan lessThan_subset_iff norm_minus_commute \m\N\) + by (metis N finite_lessThan lessThan_minus_lessThan lessThan_subset_iff norm_minus_commute sum_diff \m\N\) next assume "n \ m" then show ?thesis - by (metis Groups_Big.sum_diff N finite_lessThan lessThan_minus_lessThan lessThan_subset_iff \n\N\) + by (metis N finite_lessThan lessThan_minus_lessThan lessThan_subset_iff sum_diff \n\N\) qed then show "\M. \m\M. \n\M. norm (sum f {.. 'a :: banach" - assumes "eventually (\m. \n\m. norm (sum f {m.. g m) sequentially" - assumes "filterlim g (nhds 0) sequentially" + assumes ev: "eventually (\m. \n\m. norm (sum f {m.. g m) sequentially" + assumes g0: "g \ 0" shows "summable f" proof (subst summable_Cauchy, intro allI impI, goal_cases) case (1 e) - from order_tendstoD(2)[OF assms(2) this] and assms(1) - have "eventually (\m. \n. norm (sum f {m..\<^sub>F x in sequentially. g x < e" + using g0 order_tendstoD(2) by blast + with ev have "eventually (\m. \n. norm (sum f {m..