equal
deleted
inserted
replaced
33 apply (simp only: lessThan_Suc_atMost atLeast0AtMost) |
33 apply (simp only: lessThan_Suc_atMost atLeast0AtMost) |
34 done |
34 done |
35 |
35 |
36 lemma sums_def_le: "f sums s \<longleftrightarrow> (\<lambda>n. \<Sum>i\<le>n. f i) \<longlonglongrightarrow> s" |
36 lemma sums_def_le: "f sums s \<longleftrightarrow> (\<lambda>n. \<Sum>i\<le>n. f i) \<longlonglongrightarrow> s" |
37 by (simp add: sums_def' atMost_atLeast0) |
37 by (simp add: sums_def' atMost_atLeast0) |
|
38 |
|
39 lemma bounded_imp_summable: |
|
40 fixes a :: "nat \<Rightarrow> 'a::{conditionally_complete_linorder,linorder_topology,linordered_comm_semiring_strict}" |
|
41 assumes 0: "\<And>n. a n \<ge> 0" and bounded: "\<And>n. (\<Sum>k\<le>n. a k) \<le> B" |
|
42 shows "summable a" |
|
43 proof - |
|
44 have "bdd_above (range(\<lambda>n. \<Sum>k\<le>n. a k))" |
|
45 by (meson bdd_aboveI2 bounded) |
|
46 moreover have "incseq (\<lambda>n. \<Sum>k\<le>n. a k)" |
|
47 by (simp add: mono_def "0" sum_mono2) |
|
48 ultimately obtain s where "(\<lambda>n. \<Sum>k\<le>n. a k) \<longlonglongrightarrow> s" |
|
49 using LIMSEQ_incseq_SUP by blast |
|
50 then show ?thesis |
|
51 by (auto simp: sums_def_le summable_def) |
|
52 qed |
38 |
53 |
39 |
54 |
40 subsection \<open>Infinite summability on topological monoids\<close> |
55 subsection \<open>Infinite summability on topological monoids\<close> |
41 |
56 |
42 lemma sums_subst[trans]: "f = g \<Longrightarrow> g sums z \<Longrightarrow> f sums z" |
57 lemma sums_subst[trans]: "f = g \<Longrightarrow> g sums z \<Longrightarrow> f sums z" |