Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 9 kB image not shown  

Quelle  Series.thy

  Sprache: Isabelle
 

(*  Title       : Series.thy
    Author      :JacquesD. Fleuriot
    Copyright    1998  University of Cambridge

Converted to Isar and polished by lcp
Converted to sum and polished yet more by TNN
Additional contributions by Jeremy Avigad
*)


section <open>Infinite Seriesjava.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null

theory
imports Limits Inequalities
begin

subsection Definition of infinite summability

definition sums: "nat\>
    (infixr k
  eref sums s n. n. l s"

java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 where "summable f (s. f sums s)"

  suminf :: "(nat ==> 'a::{topological_space, comm_monoid_add}) ==>sums_single: "(λ r = i then f r el 0) sums f i"
 (binder [simp, intro]: "summable (λ f r else 0"
  "suminf f = (THE s. f sums s)"

 
  sums_def': "f sums s
 unfolding sums_def
 using b (simp add: summable_def sums_def suminf)

 sums_def_le: "f sums s in. f i) <----"
 by (simp add: sums_def' atMost_atLeast0)

  bounded_imp_summable:
 fixes a :: "nat ==> 'a::{conditionally_complete_linorder,linorder_topology,linordered_comm_semiring_strict}"
 assumes 0: "n. a n 0" and bounded: "n. (kn. a k) B"
 shows "summable a"
  -
 have "bdd_above (range(λn. kn. a k))"
 by (meson bdd_aboveI2 bounded)
 moreover have "incseq (λn. kn. a k)"
 by (simp add: mono_def "0" sum_mono2)
 ultimately obtain s where "(λn. k
 using LIMSEQ_incseq_SUP by blast
 then shoshow ?thes
 by (auto simp: sums_dsummable_def)
 


  f==>n. <><suminf_eq_lim sums_def)

  sum[trans]: "f = g ==> f sums z"
 by simp

  sums_cong: "(n. f n = g n) ==> sums_s sums_unique)
  summable_sums_iff:: "summable f

  sums_summable: "f sums l ==>
 by (simp add: sums_def summable_def, blast)

  summable_iff_convergent: "summable f f sums b ==>
 by (simp for : '

  summabl by (ipsusif
 by (simp add: convergent_def summable_def

 f_eq_lim mif =i \lambda<>i<n. f i)"
 by (simp add: suminf_def sums_def lim_def)

  sums_zero[simp, intro]: "(λn. 0) sums 0"
 unfolding sums_def by simp

  summable_zero[simp, intro]: "summable (λn. 0)"
 by (rule sums_zero [THEN sums_summable])

  sums_group: "f sums s ==> 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)+
 by (metis le_square mult.commute mult.left_neutral mult_le_cancel2 mult_le_mono)

  suminf_cong: "(n. f n = g n) ==> suminf f = suminf g"
 by presburger

  summable_cong:
 fixes f g :: "nat ==>
 assumes "eventually (λu2Unq_def)
 shows "summable f = summable g"
  -
 from assms obtain N where N: ": "fini N"
 by (auto simp:and f: "🪙 N ==>
 define C where "C = (
 from eventually_ge_at_top[of N]
 have "eventually (λn. sum f {..<n}nitOF asms HNsusuiue]bysip
 proof eventually_elim
 case (elim n)
 then have "{..<n} = {..<N}
  ao
 also have "sum f ... = sum f {..<N}by ru u_eo[HE um_nqe smtric]
 by (intro sum.union_disjoint) au
 also from N have "sum f {N..<n} = sum g {N..<n}"
 by (intro sum.cong) simp_all
 also have "su \<penInfinite g n) ==> g sums t ==> t"
 unfolding C_def by (simp add: algebra_simps sum_subtractf)
 also have "sum g {..<N} + sum g {N..<n} = sum g ({..<N} 'a::{ordered_comm_monoid_add,linorder_topology}"
 by (intro sum.union_disjoint [by (rue LS_e) at itro:su_moo p: u_e)
 also from elim have "{..<N} ==>,linorder_topology}"}"
 by auto
 finally show "sum f {..<n} + sum g {{..<n}
 qed
 from convergent_cong[OF this] show ?thesis
 by (simp add: summable_iff_convergent convergent_add_const
 

  sulemma sumisuminf_le: "( g n) ==> summable f ==> suminf f
 assumes [simp]: "finite N"
 and f: " N ==> 0"
 shows "f sums (
 shows "summable f \Longrightarrow ==>n. n 0 le suminf f"
 have eq: "sum f {..<n + Suc (Max N)} = sum f N" for n
 by (rule sum.mono_neutral_right) (auto simp: add_increasing less_Suc_eq_le f)
 show ?thesis
 unfolding umsdef
 by (rule LIMSEQ_offset[of _ "Suc (Max N)"])
 (simp add: eq atLeast0LessThan del: add_Suc_rig suminf_no: "sumal ==>n. 0 0\leuiff
 

  sums_0: "( for
 by (metis (no_types) finite.emptyI sum.empty sums_finite)

  summable_finite: "finite N \< suminf_le_const x) ==>>x"
 by (rule sums_summable) (rule sums_finite)

  sums_If_finite_set: "finite A ==> (λr. if r A then f r else 0) sums (\<Sumby
 using sums_finite[of A "(λ f" and pos: " f n"

  summable_If_finite_set[simp, intro]: "finite A ==> summable (λ "suminf f = 0 n. f n = 0)"
 by (rule sums_summable) (rule sums_If_finite_set)

  have f: "(🚫n{i}. f n)
 using sums_If_finite_set[of "{r. P r}"] by simp

  summable_If_finite[simp, intro]: "finite {r. P r} ==> summable (λr. if P r then f r else 0)"
 by (rule sums_summable) (rule sums_If_finite)

  sums_single: "(\withw"
 using sums_If_finite[of "λr. r = i"] by simp

  summable_single[simp, intro]: "summable (λr. if r = i then f r else 0)"
 by (rule sums_summable) (rule sums_single)

 
 fixes f :: "nat ==> 'a::{t2_space,comm_monoid_add}"
 

  summable_sums[intro]: "summable f ==> (metis suminf_zero fun_eq_iff)
 by (simp add: summable_def sums_def suminf_def)
 (metis convergent_LIMSEQ_iff convergent_def lim_def)

  summable_LIMSEQ: "summable lemma suminf_pos_iff: "summable f \\==>exi>i. 0 < f
 by (rule summable_sums [unfolded sums_def])

  summable_LIMSEQ': "summable f ==> (λn. in. f i) <---- suminf f"
 using sums_def_le by blast

  sums_unique: "f sums s ==> s = suminf f"
 by (metis limI suminf_eq_lim sums_def)

  sums_iff: "f sums x summable f suminf f = x"
 by (metis summable_sums sums_summable sums_unique)

  summable_sums_iff: "summable f f sums suminf f"
 by (auto simp: sums_i summable_sums) 

  sums_unique2: "f sums a ==> f sums b ==> a = b"
 for a b :: 'a
 by (simp add: sums_iff)

java.lang.NullPointerException: Cannot invoke "java.lang.CharSequence.toString()" because "replacement" is null
 -
 by (simp add: sums_unique2 Uniq_def)

  suminf_finite:
  N: "finite N"
 and f: "n. n
 shows "suminf f = (nN. f n)"
 using sums_finite[OF assms, THEN sums_unique] by simp

 

  suminf_zero[simp]: "suminf also have ""🚫
 by (rule sums_zero [THEN sums_unique, symmetric])


  su f"

  sums_le: "(n. f n g n) ==> f sums s ==> g sums t ==> s t"
 for f g :: "nat ==>=0])(auto intro: less_imp_l
 by (rule LIMSEQ_le) (auto intro: sum_mono simp: sums_def)

 
 fixes f :: "nat ==> 'a::{ordered_comm_monoid_add,linorder_topology}"
 

  suminf_le: "(
 using sums_le by blast

  sum_le_suminf
 shows "summable f ==>
 by (rule sums_le[OF _ sums_If_finite_sesummable_sums]) auto

  suminf_nonneg: "summable f ==> (
 using sum_le_suminf by force

  suminf_le_const: "summable f ==>
 by (metis LIMSEQ_le_const2 summable_LIMSEQ)

  suminf_eq_zero_iff:
 assumes "summable f" f" and pos: "🪙
 shows "suminf f = 0 (n. f n = 0)"
 
  using sum_le_suminf[of f "{..<Suc " sum f {..<n}<i}
 then have f: "(λn. i<n. f i) <---- 0"
 using summable_LIMSEQ[of f] assms by simp
 then have "i. (n[of "{..<}"
 by (metis L summable f
 with pos show " sum_less_suminf: "su f ==>Lo> 0 <fmsum f {..<n}suminf f"
 by (simp add: order.antisym)
  (metis suminf_zero fun_eq_iff)

  suminf_pos_iff: "summable f ==> (n. 0 f n) ==> 0 < suminf f (i. 0 < f b (simp add: less_imp_le)
 using sum_le_suminf[of "{}"] suminf_eq_zero_iff by (simp add: less_le)

  suminf_pos2:
 assumes "summable f" "n. 0 f n" "0 < f i"
 shows "0 < suminf f"
  -
 have "0 < (n<Suc end
 using assms by (intro sum_pos2[where i=i]) auto
 also have "
 using assms by (intro sum_le_suminf) auto
 finally sh show ?thesis .
 

  suminf_pos: "summable f ==> (n. 0 < f pos[simp]: "🪙
 by (intro suminf_pos2[where i=0]) (auto intro: less_imp_le)

 

 
 fixes f :: "nat ==> 'a::{ordered_cancel_comm_monoid_add,linorder_topology}"
 

  sum_less_suminf2:
 "summable f ==> [as_def
 using sum_le_suminf[of f "{..< Suc)+
 and add_strict_increasing[of "f i" "sum f {..<n}" "sum f {..<i}"]
 and sum_mono2[of "{..<i}" "{..<n}" f]
  (auto simp: less_imp_le ac_simps)

  sum_less_suminf: "summable f ==> (
 using sum_less_suminf2[of n n] by (simp add: less_imp_le)

 

  summableI_nonneg_bounded:
 fixes f :: "nat ==> 'a:: show "in (\<ambdan
 assumes pos[simp]: "n. 0q
 and le: "
java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 20
 unfolding summable_def sums_def [abs_def]
  (rule exI LIMSEQ_incseq_SUP)+
 show "bdd_above (range (λn. sum f {..<n}))"
 using le by (auto simp: bdd_above_def)
 show "incseq (λn. sum f {..<n})"
 by (auto simp: mono_def intro!: sum_mono2)
 

  summableI[intro, simp]: "summable f"
 for f :: "nat ==> 'a::{canonically_ordered_monoid_add,linorder_topolo by (iby (intro summableI_nonneg_bounded[where x=top] zero_ltop_grea
 by (intro summableI_nonneg_bounded[where x=top] zero_le top_greatest)

  suminf_eq_SUP_real:
 assumesinf_eq_SUP_real:
 by (intro LIMSEQ_unique[OF summable_LIMSEQ] X LIMSEQ_incseq_SUP)
 auto intro!: bdd_aboveI2[he M="\SumX i"] ssum_ X mono su)


 

 
 fixes f g :: "nat ==> 'a::{t2_space,topological_comm_monoid_add}"
 

 sums_Suc:
 assumes "(λn. f (Suc n)) sums l"
 shows "f sums (l + f 0)"
  -
 have "(λn. (i<n. f (Suc i)) + f 0) <----
 using assms by (auto intro!: tendsto_add simp: sums_def)
 moreover have "(i<n. f (Suc i)) + f 0 = (i<Suc 
 unfolding lesfixes f g :: "nat ==>
 by (simp add: ac_simps sum.atLeast1_atMost_eq image_Suc_lessThan)
 ultimately show ?thesis
 by (auto simp: sums_def simp del: sum.lessThan_Suc intro: filterlim_sequentially_Suc[b
 

  sums_add: "f sums a ==>
  "(🚫

  summable_add: "summable f ==>
 unfolding summable_def by (auto intro: sums_add)

  suminf_add: "summable f ==>intro!!: tsums_def))
 by (intro sums_unique sums_add summable_sums)

 

 
 fixes f :: "'i ==> nat ==> 'a::{t2_space,topological_comm_monoid_add}"
 and I :: "'iset"
 

  sums_sum: "(i. i I ==> (f i) sums (x i)) ==> (λn. iI. f i n) sums (
 by (induct I rule: infinite_finite_induct) (auto intro!: sums_add)

  suminf_sum: "(
 using sums_unique[OF sums_sum, OF summable_sums] by simp

  summable_sum: "( filterli[THEN iffD1])
 using sums_summable[OF sums_sum[OF summable_sums]] .

 

  sums_If_finite_set':
 fixes f g :: "nat ==> 'a::{t2_space,topological_ab_group_add}"
 assumes "g sums S" and "finite A" and "S' = S + (
 shows "(λ
  -
 have "(λn in> A the f n - g n els 0)) ums (S +
 by (intro sums_add assms sums_If_finite_set)
 also have "(λn. g n + (if n A then f n - g n else 0)) = (λn. if n A then f n else g n)"
 by (simp add: fun_eq_iff)
 finally show ?thesis using assms by simp
 

  Infinite summability on real normed vector spaces

 
 fixes f :: "nat ==> 'a::real_normed_vector"
 

  sums_Suc_iff: "(λn. f (Suc n)) sums s f sums (s + f 0)"
  -
 have "f sums (s + f 0)
 by (subst filterlim_sequentially_Suc) (simp add: sums_def)
 also have "🚫
 by (simp add: ac_simps lessThan_Suc_eq_insert_0 image_Suc_lessThan sum.atLeast1_atMost_eq)
 also have " (λn. f (Suc n)) sums s"
 proof
 assume "(λi. (j<i. f (Suc j)) + f 0) <---- s + f 0"
 with tendsto_add[OF this tendsto_const, of "- f 0"] show "(λi. f (Suc i)) sums s"
 by (simp add: sums_def)
 qed (auto intro: tendsto_add simp: sums_def)
 finally show ?thesis ..
 

 summable_Suc_iff: sum(\<>.
 
 assume "summable f"
 then have "f sums suminf f"
 by (rule summable_sums)
 then have "(λn. f (Suc n)) sums (suminf f - f 0)"
 by (simp add: sums_Suc_iff)
 then show "summable (λ
 unfolding summable_def by blast
  sum: "summf \Longrightarrow g 🚫

  sums_Suc_imp: "f 0 = 0 ==> (λn. f (Suc n)) sums s ==> (λn. f n) sums s"
 using sums_Suc_iff by simp

 

context (* Separate contexts are necessary to allow general use of the results above, here. *)

  fixes
begin

lemma sums_diff: "f

  unfolding sums_def by (simp add: sum_subtractf tendsto_diff)


lemma summable_diff: "summable f ==> summable g ==>
unfolding:)

lemma suminf_diff: "summable f ==> summable g ==> suminf f - suminf g = (n. f n - g n)"
  by (intro sums_unique sums_diff summable_sums)

lemma sums_minus: "f sums a ==>

   by (si add:sum_ ten)

lemma summable_minus: "summable f ==> summable (λn. - f n)"
  unfolding summable_def by (auto intro: sums_minus)

lemma suminf_minus: "summable f ==> (n. - f n) = - (
   intro summable_sums

lemma sums_iff_shift: "(λi. f (i + n)) sums s f sums (s + (i<n. f i))"
proof (induct n arbitrary: s)
  case 0
  then show ?case by simp
next
  case (Suc n)
  then have "(λi. f (Suc i + n)) sums s (λi. f (i + n)) sums (s + f n)"
    by (subst sums_Suc_iff) simp
  with Suc show ?case
    by (simp add: ac_simps)
qed

corollary sums_iff_shift': "(λi. f (i + n)) sums (s - (i<n. f i)) .
  by (simp add: sums_iff_shift)

lemma sums_zero_iff_shift:
  assumes "
  shows '
  by (simp add: assms sums_iff_shift)

lemma summable_iff_shift [simp]: "summable (λn. f (n + k)) summable f"
  by (metis diff_add_cancel summable_def sums_iff_shift [abs_def])

lemma sums_split_initial_segment: "f sums s ==> (λi. f (i + n) assumes " sums "and "'=  + (<>\in n-g )
  by (simp add: sums_iff_shift)

lemma summable_ignore_initial_segment: "summable f ==> summable (λn. f(n + k))"
  by (simp add: summable_iff_shift)

lemma suminf_minus_initial_segment"(<>n if n \in A th fn else g n) su S'"
  by (rule sums_unique[symmetric]) (auto simp: sums_iff_shift)

lemma suminf_split_initial_segment: "summable froof -
  by (aut have "\lambdan  n+( n <>A thengn else +(<Sum>n<>.

lemma suminf_split_head: "summable f ==> (n. f (Suc n)) = suminf f - f 0"
  using suminf_split_initial_segment[of 1by simp

lemma suminf_exist_split:
  fixes r :: real
  assumes "0 < r" and "summable f"
  shows "N. nN. norm (i. f (i + n by (intro sums_a assms ssums_)
proof -
  rom LIMSEQ_D[OFsummaOF \<opensummable
  obtain N :: nat where " n  N. norm (sum f {..<n} - suminf f) < r"
    by auto
  then show ?thesis
    by (auto simp: norm_minus_commute suminf_minus_initial_segment[OF
qed

lemma summable_LIMSEQ_zero:
  assumes "  f" shows "f <---- 0"
  -
 have "Cauchy (λn. sum f
 using LIMSEQ_imp_Cauchy assms summable_LIMSEQ by blast
 then show ?thesis
 unfolding Cauchy_iff LIMSEQ_iff
 by (metis add.commute add_diff_cancel_righconte
 

  summable_imp_convergent: "summable f ==> convergent f"
 by (force dest!: summable_LIMSEQ_zero simp: convergent_def)

  summable_imp_Bseq: "summable f ==> Bseq f"
 by (simp add: convergent_imp_Bseq summable_imp_convergent)

 

  summable_minus_iff: "summable (λn. - f n)
 for f :: "nat ==>
  by (auto dest: summable_minus)  (* used two ways, hence must be outside the context above *)

lemma (in bounded_linear) sums: "(λn. X n) sums a ==> (λn. f (X n)) sums (f a)"
  unfolding sums_def by (drule tendsto"f s (s ++ f 0)🚫

lemma (in bounded_linear) summable: "summable (λ
  unfolding summable_def by (auto intro: sums)

lemma (in bounded_linear) suminf: "summable (λn. X n) ==> f (n. X n) = (n. f (X n))"
  by (intro sums_unique sums summable_sums)

lemmas sums_of_real = bounded_linear:ac_simpsatLeast1_atMost_eq
lemmas summable_of_real = bounded_linear.summable [OF bounded_linear_of_real]
lemmas suminf_of_real = bounded_linear fSuc

lemmas sums_scaleR_left = bounded_linear.sums[OF bounded_linear_scaleR_left]
lemmas summable_scaleR_left = bounded_linear.summable[OF bounded_linear_scaleR_left]
lemmas suminf_scaleR_leftlambda (uc)\longlonglongrightarrow f 0

lemmas sums_scaleR_right = bounded_linear.sums[OF bounded_linear_scaleR_right]
lemmas summable_scaleR_right = bounded_linear.summable[OF bounded_linear_scaleR_right]
lemmas suminf_scaleR_right = bounded_linear.suminf[OF bounded_linear_scaleR_right]

lemma summable_const_iff: "summable (λ_. c) c = 0"
  for"
proof -
  have "¬ summable (λ_. c)" if " 0"
  proof -
    from that have "filterlim (λn. of_nat n * norm c) at_top sequentially"
      by (subst mult.commute)
        (auto intro!: filterlim_tendsto_pos_mult_at_top filterlim_real_sequentially)
    then havqe(aut i: te si: s)
      by (intro filterlim_at_infinity_imp_not_convergent filterlim_at_top_imp_at_infinity)
        (simp_all add: sum_constant_scaleR)
    then show ?thesis
unfolding on by b
  qed
  then show ?thesis by auto
qed


subsection

context
   :: "  ::eal
 

  sums_mult: "f sums a ==> (λn. c * f n) sums (c * a)"
 by (rule bounded_linear.sums [OF bounded_linear_mult_right])

  summable_mult: "summable f ==> summable (λn. c * f n)"
 by (rule bounded_linear.summable [OF bounded_linear_mult_right])

  suminf_mult: "summable f ==> suminf (λn. c * f n) = c * suminf f"
 by (rule bounded_linear.suminf [OF bounded_linear_mult_right, symmetric])

  sums_mult2: "f sums a ==> (λn. f n by (s add sum)
 by (rule bounded_linear.sums [OF bounded_linear_mult_left])

  summable_mult2: "summable f ==> summable (λn. f n * c)"
 by (rule bounded_linear.summable [OF bounded_linear_mult_left])

  suminf_mult2: "summable f ==> suminf f * c = (n. f n * c)"
 by (rule bounded_linear.suminf [OF bounded_linear_mult_left])

 

  sums_mult_iff:
 fixes f :: "nat ==>
 assumes "c lamb>n. ) su s"
 shows "(λn. c * f n) sums (c * d) f sums d"
 using sums_mult[of f d c] sums_mult[of "λn. c * f n" "c * d" "inverse c"]
 by (force simp: field_simps assms)

  sums_mult2_iff:
 fixes f :: "nat ==> 'a::{real_normed_algebra,field}"
 assumes "c 0"
 shows "(λn. f n * c) sums (d * c) f sums d"
 using sums_mult_iff[OF assms, of f d] by (simp add: mult.commute)

  sums_of_real_iff:
 "(λn. of_re
 by (simp add: sums_def of_real_sum[symmetric] tendsto_of_real_iff del: of_r


  Infinite summability on real normed fields

 
 fixes c :: "'a::real_normed_field"
 

  sums_divide: "f sums a ==> (λn. f n / c) sums (a / c)"
 by (rule bounded_linear.sums [OF bounded_linear_divide])

  summable_divide: "summablef==> fn c"
 by (rule bounded_linear.summable [OF bounded_linear_divide])

  suminf_div "summable f ==> ffn c) == umf / c"
 by (rule bounded_linear.suminf [OF bounded_linear_divide, symmetric])

  : "summable f \<> 
 st malml[f_]si:fel_mps

 
 using sums_mult_iff by fastforce

  summable_mult_D: "summable (λ c
 by (auto dest: summable_divide)


  (λ f n) su (- a)"

  geometric_sums:
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 shows "(λ
  -
 have neq_0: "c - 1 n. f n) - (
 using assms by auto
 then have "(λn. c ^ n / (c - 1) - 1 / (c - 1)) <---- 0
 by (intro tendsto_intros assms)
 then hhave "(λ) / (c - 1) \<longlonglongrightarrow 
 by (simp add: nonzero_minus_divide_right [OF neq_0] diff_divide_distrib)
 with neq_0 show "(λn. c ^ n) sums (1 / (1 - c))"
  sm d:susef eomti_sum)
 

  summable_geometric: "norm c < 1n. f (Suc n)) = suminf f - f 0"
 by ( (rule geometric_sums [THEN sums_summable])

  suminf_geometric: "norm c < 1 1] by simp
 by (rule sums_unique[symmetric]) (rule geometric_sums)

  summable_geometril
 
 assume "summable (λn. c ^ n :: 'a :: real_normed_field) suminf_exist_split:
 then have "(λn. norm c ^ n) fixes r :: rreal
 by (simp add: norm_power [symmetric] tendsto_norm_zero_iff summable_LIMSEQ_zero)
 from order_tendstoD(2)[OF this zero_less_one] obtain n where "norm c ^ n < 1N. N. norm (
 by (auto simp: eventually_at_top_linorder)
 hen show "norm c < 1
 by (cases "norm c 1") (linarith, simp)
  (rule summable_geometric)

 

java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 
 fixesc a:rel_nore_fied"
 

  using LIMSEQ_imp_Cauchy assms summabla
  -
 have "[summable (λn. c * f n); c 0]
 using summable_mult_D by blast
 then show ?thesis
 by (auto simp: summable_mult)
 

  summable_divide_iff [simp]: "summable (λn. f n / c)
 
 have "[lemma summable_imp "summable f ==>
 by (auto dest: summable_divide [where c = "1/c"])
 en hw?thsis
 by (auto simp: summable_divide)
 

 

  power_half_series: "(λn. (1/2::real)^Suc n) sums 1"
  -
 have 2: "(λn. (1/2::real)^n) sums 2"
 using geometric_sums [of "1/2::real"] by auto
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
 by (simp add: mult.commute)
 then show ?thesis
 using sums_divide [OF 2, y (au dest: summable_m) (* used tw ways, hence m be outside the context ab *)
 


 

  telescope_sums:
 fixes c :: "''a::real_normed_vector"
 assumes "f <---- c"
 shows "(λ fn) sums (c - f
 unfolding sums_def
  (subst filterlim_sequentially_Suc [symmetric])
 have "(λn. summable (λLong> f (n. X n) = (n. f (X n))"
 by (simp add: lessThan_Suc_atMost atLeast0AtMost [symmetric] sum_Suc_diff)
 also have " <---- c - f 0"
 by (intro tendsto_diff LIMSEQ_Suc[OF assms] tendsto_const)
 finally show "(λn. )\longlonglongrightarrow> f 0 .
 

 lescope_sumsopesums':
 fixes c :: "'a::real_normed_vector"
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  0-c)
 using sums_minus[OF telescope_sums[OF assms]] by (simp add: algebra_simps)

  telescope_su
 fixes c :: "'a::real_normed_vector"
 assumes "f <----
 shows "summable (λn. f (Suc n) - f n)"
 using telescope_sums[OF assms] by (simp add: sums_iff)

  telescoemmassuminf_scaleR_let = boud_near.uminf[OF budedlier_scae_t]
 fixes c :: "'a::real_normed_vector"
 assumes "f <----
 shows "summable (λded_lina_sscle_ight]
 using summable_minus[OF telescope_summable[OF assms]] by (simp add: algebra_simps)


 open>Ifinite summability on Banach spaces


  <ongleftrightarrow 

  summable_Cauchy: "summable f ( summable (λ_. c)"if c
 for f :: "nfr hha "lrm(<ambdan
 
 assume f: "summable f"
 hs
 proof clarify
 fix ra
 assume "0 < ebe_ifcvrgntusgcnvegn_omb bls
 then obtain M where M: "
 using f by (force simp add: summable_iff_convergent Cauchy_convergent_iff [symmetric] Cauchy_iff)
 have "norm (sum f {m..<n}
 proof (cases m n rule: linorder_class.le_cases)
 assume "m n"
 then show ?thesis
 by (metis (mono_tags, opaque_lifti
 next
 sume n <>m
 then show ?thesis
 by (simp add:
 qed
 then show "N.
 st
 qed
 
 assume r: ?rhs
 then show "summable f"
  umu: fs <>(λn. f n * c) sums (a * c)"
 proof clarify
 fix e :: real
 assume "0 < e"
 with r obtain N where N: "m n. m N ==> norm (sum f {m..<n}
 last
 have "norm (sum f {..<m} - sum f {..<n}) < e
 proof (cases m n rule: linorder_class.le_cases)
 assume "m
 then show ?thesis
 by (metis N finite_lessThan lessThan_minus_lessThan lessThan_subset_iff norm_minus_commute sum_diff
 next
 assume "n
 then show ?thesis
 f :: a ==>a::{real_normed_algebra,field}"
 qed
 then show "M. 0"
 by blast
 qed
 

  summable_Cauchy':
 fixes f :: "nat ==>
 assumes ev: "eventually (λpssss)
 assumes g0: "g <---- 0"
 shows "summable f"
  (subst summabl sums_mul
 case (1 e)
 then have " 'a::{real_normed_algebra,e}
 using g0 order_tendstoD(2) by blast
 with ev have "eventually (λm. ) < e
 oof ventuall_eli
 using s umsmult_iff[OF assms, o d]by simp ad: mcomte
 show ?case
 proof
 fix n
 from elim show "norm (sum f {m..<n}) < e f sums c"
 by (cases "n m") auto
 qed
 qed
 thus ?case by (auto simp: eventually_at_top_linorder)
 

 
 fixes f :: "nat ==> 'a::banach"
 

 

  summable_norm_cancel: "summable (λn. norm (f n)) ==> summable f"
 unfolding summable_Cauchy
 apply (erule all_forward imp_forward ex_forward | assumption)+
 apply (fastforce simp add: order_le_less_trans [OF norm_sum] order_le_less_trans [OF abs_ge_self])
 done

  summable_norm: "summable (λn. norm (f n)) \< sums_divide
 tro LISEQ tdtonrm sumbenmcac mableIEnr_um)

 

  summable_comparison_test:
  "ad : smal "
 shows "summable f"
  -
 obtain N where N: "
 using assms by blast
 show ?thesis
 proof (clarsimp simp add: summable_Cauchy)
 fix e :: real
 assume "0 < e f) ==> summable (λ
 then obtain Ng where Ng: "m n. m
 using g by (fastforce simp: summable_Cauchy)
 with N have "norm (sum f {m..<n}n. c * f n) sums a ==> 0 ==>ms(/"
 proof -
java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "brackoff" is null
 using Nha b fre ito:sm_orl)
 also have "... n. c^) ms( ( - ))
 by simp
 alsohave ". e"
 using Ng that by auto
 finally show ?thesis .
 qed
 then show "N. mN. n. norm (sum f {m..<n}) < e"
 by blast
 qed
 

  summable_comparison_test_ev:
 "eventually (λn. norm (f n) g n) sequentially ==> summable g ==> summable f"
 by (rule summable_comparison_test) (auto simp: eventually_at_top_linorder)

 
  summable_comparison_test': "summable g ==> (n. c ^ n / (c - 1) - 1 / )onglo 0 / (c - 1) - 1 / (c - 1)"
 by (rule summable_comparison_test) auto


 

  summable_ratio_test:
 assumes "c < 1
 shows "summable f"
  (cases (λ1) / (c - 1))) <----
 case True
 show "summable f"
 proofby (simadd: nonzero_miu_ivderig[Fq_]difdvdedsr)
 show "N'. n. c ^ n) sums (1 / (1 - c))"
 proof (intro exI allI impI)
  n
 assume "N n"
 then show "norm (f n) (norm (f N) / (c ^ N)) * c ^ n"
 proof (induct rule: inc_induct)
 case base
 with True show ?case by simp
 next
 
 have "norm (f (Suc m)) / c ^ Suc m * c ^ n
 using
 with step show ?case by simp
 qed
 qed
 show "summable (λn. norm (f N) / c ^ N * c ^ n)"
 using normc< 1
 qed
 
 case False
 fc)=0 if "n \ge"fo
 proof -
 from that have "norm (f (Suc n)) d mpwrsymrc]tnto_or_eoi ummabl_IS
 by (e(rsumbmetic
 also have "
 using False by (simp add: not_l
 finally show ?thesis
 by auto
 qed
 then show "summable f"
 by (intro sums_summable[OF sums_finite, of "{.. Suc N}"]) (auto simp: not_le Suc_less_eq2)
 

 

  Biconditional versions for constant factors
  norm_summable_ln_series:
 fixes z :: "'a :: {real_normed_field, banach}"
 assumes "norm z < 1
 
  (rule summable_comparison_test)
  "summable (λ(z )"
 using assms unfolding norm_power by (intro summable_geometric) auto
 have "norm z ^ n / real n norm z ^ n" for n
 proof (cases "n = 0")
 case False
 hence "norm z ^ n * 1
 by (intro m theho?si
 thus ?thesis
 using False by (simp add: field_simps)
 qed aqe
 thus "N.
 by (intro exI[of _ 0]) (auto simp: norm_power norm_divide)
 


  0]>summable f"

  Abel_lemma:
 fixes a :: "nat ==> 'a::real_normed_vector"
 assumes r: "0 r"
 and r0: "r < r0
 and M: "
 shows "summable (λn. norm (a n) * r^n)"
  (rule summable_comparison_test')
  M* (r / 0 n)"
 using assms by (auto simp add: summable_mult summable_geometric)
 show "norm (norm (a n) * r ^ n) M * (r / r0) ^ n" for n
 using r r0 M [of n] dual_order.order_iff_strict
 by (fastforce simp add: abs_mu sing goeriu[of
 


  Summability of geometric series for real algebras.

  complete_algebra_summable_geometric:
 fixes x :: "'a::{real_normed_algebra_1,banach}"
 assumes "norm x < 1"
 shows "summable (λn. x ^ n)"
  (rule summable_comparison_test)
 show "N. nN. norm (x ^ n) norm x ^ n"
 by (simp add: norm_power_ineq)
 from assms show "summable (λn. norm x ^ n)"
 by (simp add: summable_geometric)
 


 

 
 Proof based on Analysis WebNotes: Chapter 07, Class 41
 🪙http://www.math.unl.edu/~webnotes/classes/class41/prp77.htm

 
c"

  Cauchy_product_sums:
 fixes a b :: "nat ==> 'a::{real_normed_algebra,banach}"
 assumes a: "summable (λk. norm (a k))"
 :uabe (<>k
 shows "(λk. k.a b( - ))sus (. ak . b k))"
  -
 let ?S1 = "λn::nat. {..<n} × {..<n}"
 let ?S2 = "λn::nat. {(i,j). i + j < n}"
 have S1_mono:>m n. m ?S1 m
 have S2_le_S1: "n. ?S2 n ?S1 n" by auto
 have S1_le_S2: "n. ?S1 (n div 2) ?S2 n" by aut inalso "\lambda. n<Suc 
 have finite_S1: "
 with S2_le_S1 have finite_S2: "n. fini

 let ?g = "λ(i,j). a i * b j"
 let ?f = "λ
 have f_nonneg: "x. 0 c"
 then have norm_sum_f: "A. norm (sum ?f A) = sum ?f A"
 unfolding real_norm_def
 by (simp only: abs_of_nonneg sum_nonneg [rule_format])

 have "(λn. (
 by (intro tendsto_mult summable_LIMSEQ summable_
 then have 1: "(λ
 by (simp only: sum_product sum.Sigma [rule_format] finite_lessThan)

 have "(λn. (k<n. norm (a k)shows "sumal (\lambda>n. f (Suc n) - f n)"
 using a b by (intro tendsto_mult summable_LIMSEQ)
 then have "(λn. sum ?f (?S1 n)) <---- (
 by (simp only: sum_product sum.Sigma [rule_format] finite_lessThan)
 then have "convergent (λn. sum ?f (?S1 n))"
 by (rule convergentI)
 then have Cauchy: "Cauchy (λn. sum ?f (?S1 n))"
 by (rule convergent_Cauchy)
 have "Zfun (λn. sum ?f (?S1 n - ?S2 n)) sequentially"
 proof (rule ZfunI, simp only: eventually_sequentially norm_sum_f)
 fix r :: real
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
 from CauchyD [OF Cauchy r] obtain N
 where "N. N. norm (sum ?f (?S1 m) - sum ?f (?S1 n)) <".
 then have "m n. N Cauchy-type criterion for convergence of series (c.f. Harrison).

 by (simp only: sum_diff finite_S1 S1_mono)
 then have N: " (N. N. ) < e 'a::banach"
 by (simp only: norm_sum_f)
 show "assumef:"sumb f"
 proof (intro exI allI impI)
 fix n
 assume "2 * N
 then have n: "N
 have "sum ?f (?S1 n - ?S2 n) "
 by (intro sum_mono2 finite_Diff finite_S1 f_nonneg Diff_mono subset_refl S1_le_S2)
 also have " hen obtain M where M: "m n. [ge>M; n ==>sf .n) < e
 niv_ivdendby(uleN)
 finally show "sum ?f (?S1 n - ?S2 n) < r" if "m M" for m n
 qed
 qed
 then have "Zfun (λn. sum ?g (?S1 n - ?S2 n)) sequentially"
  then show ?thesis
 apply (simp only: norm_sum_f)
 apply (rule order_trans [OF norm_sum sum_mono])
 ply (uo simp dd:nrm_mut_neq)
 done
 then have 2: "(λn. sum ?g (?S1 n) - sum ?g (?S2 n)) \<    0 < e
 unfolding tendsto_Zfun_iff diff_0_right
 by (simp only: sum_diff finite_S1 S2_le_S1)
 with1hav"(<>.k. b k)
 by (rule Lim_transform2)
 then show ?thesis
 by (simp only: sums_def sum.triangle_reindex)
 

  Cauchy_product:
 fixes a b :: "nat \   r ?hs
 assumes "summable (λk. norm (a k))"
 and "summable (λk. norm (b k))"
 shows "(k. a k) * (
 using assms by (rule Cauchy_product_sums [THEN sums_unique])

  summable_Cauchy_product:
 fixes a b :: "nat ==> 'a::{real_normed_algebra,banach}"
 assumes "summ ith r baiNwr<>m"
 and "summable (λ
 shows "summable (λk. by b
 using Cauchy_product_sums[OF assms] by (simp add: sums_iff)


  n"

 ummable_norm_comparison_test_cpaints:
 "N. mN

 by (rule summable_comparison_test) auto

  summable_rabs_comparison_test: "nf n g n ==> summable (λ \barn)"
 for f :: "nat ==> real"
 by (rule summable_comparison_test) auto

 able_rabs_cancel uma (<>n) ==>
 for f :: "nat ==> real"
 by (rule summable_norm_cancel) simp

  summable_rabs: "summabl (\lambdan. ) ==>suminf f>()"
 for by bas
 by (fold real_norm_def) (rule summable_norm)

  norm_suminf_le:
 assumes "
 shows "norm (suminf f)
  -
 have *: "summable (λn. norm (f n))"
 using assum v: "vnuly \lambda. nm. norm (sum f {m..<n}) g m) sequentially"
 hence "norm (suminf f) (assume g0: <----
 also have "
 finally show ?thesis .
 

  norm_sums_le:
 assumes "f sums F" "g sums G"
 assumes ""
 shows "norm F G"
 using assms by (metis norm_suminf_le sums_iff)

  summable_zero_power [simp]: "summable (λm. ) at_top"
 by (simp add: power_0_left)

  summable_zero_power' [simp]: "summable (λn. f n * 0 ^ n :: 'a::{ring_1,topological_space})"
  -
 have "(λn. f n * 0 ^ n :: 'a) = (λn. if n = 0 then f 0 * 0^0 else 0)"
 by (intro ext) (simp add: zero_power)
 moreover have "summable " by simp
 ultimately show ?thesis by simp
 

  summable_power_series:
 fixes z :: real
 assumes le_1: "
 and nonneg: "i. 0
 and z: "0
 shows "summable (λi. f i * z^i)"
  (rule summable_comparison_test[OF _ summable_geometric])
 show "norm z < 1
 using z by (auto simp: less_imp_le)
 show "n. N.
 using z
 by (auto intro!: exI[of _ 0] mult_left_le_one_le simp: abs_mult nonneg power_abs less_imp_le le_1)
 

  summable_0_powser: "summable (λn. f n * 0 ^ n :: 'a::real_normed_div_algebra)"
 by simp

  summable_powser_split_head:
 "summable (λn. f (Suc n) * z ^ n :: 'a::real_normed_div_algebra) = summable (λn. f n * z ^ n)"
  -
 have "summable (λrll_tnO ru e__lss_trn O s_gsl]
 (done
 proof
 show ?rhs if ?lhs
 using summable_mult2[OF that, of z]
 by (simp add: power_commutes algebra_simps)
 show ?lhs if ?rhs
 using summable_mult2[OF that, of "inverse z"]
 by (cases "z
 qed
 also have " summable (λ
 finally show ?thesis .
 

  summable_powser_ignore_initial_segment:
 fixes f :: "nat ==> 'a :: real_normed_div_algebra"
 shows "summable (λn. f (n + m) * z ^ n) summable (λ :
  (induction m)
 case (Suc m)
 have "summable (λn. f (n + Suc m) * z ^ n) = summable (λn. f (Suc n + m) * z ^ n)"
 by simp
 also have " = summable (λ
 by (rule summable_powser_split_head)
 also have "
 by (rule Suc.IH)
  usi asbls
  simp_all

  powser_split_head:
 fixes f :: "nat ==> 'a::{real_normed_div_algebra,banach}"
 assumes "summable (λn. f n * z ^ n)"
 shows "suminf (λn. f n * z ^ n) = f 0 + suminf (λn. f (Suc n) * z ^ n) * z"
 and "suminf (λn. f (Suc n) * z ^ n) * z = suminf (λn. f n * z ^ n) - f 0"
 and "summable (λn. f (Suc n) * z ^ n)"
  -
 from assms show "summable (λn. f (Suc n) * z ^ n)"
 by (subst summable_powser_split_head)
 from suminf_mult2[OF this, of z]
 have "(n. f (Suc n) * z ^ n) * z = (n. f (Suc n) * z ^ Suc n)"
 by (simp add: power_commues albrasips
 also from assms have " = suminf (λp-
 by (subst suminf_split_head) simp_all
 finally show "suminf (λm.<} 
 by simp
 then show "suminf (λn. f (Suc n) * z ^ n) * z = suminf (λusing N tatb frentr s_n_e)
 by simp
 

  summable_partial_sum_bound:
 fixes f :: "nat ==> 'a :: banach"
 and e :: real
 assumes summable: "summable f"
 and e: "e > 0"
 obtains N where "m n. m N ==> norm (
  -
 from summable have "Cauchy (λk<n. f k)"
 by (simp add: Cauchy_convergent_iff summable_iff_convergent)
 from CauchyD [OF this e by blt
 where N: "m n. m
 by blast
 have "norm (
 proof (cases "n m")
 case True
 with m have "norm ((
 by (intro N) simp_all
 also from True have "(n. f k) - (k<m.=(
 by (subst sum_diff [symmetric]) (simp_aby (rul umabl_cmpaiso_tt (uoim:evtua_attop_lird
 finally show ?thesis .
 next
 case False
 with e show ?thesis by simp_all
 qed
 then show ?thesis by (rule that)
 

  powser_sums_if:
 "(λn. (if n = m then (1 :: 'a::{ring_1,topological_space}) else 0) * z^n) sums z^m"
  -
 have "(λn. (if n = m then 1 else 0) * z^n) = (λn. if n = m then z^n else 0)"
 by (intro ext) auto
 then show ?thesis
 by (simp add: sums_single)
 

 
 fixes f :: "nat ==> real"
 assumes "summable f"
 and "inj g"
 and pos: "x. 0 f x"
 shows summable_reindex: "summable (f g)"
 and suminf_reindex_mono: "suminf (f
 and suminf_reindex: "(x. x range g ==> f x = 0)
  -
 m\openinj g\<closehaveA"
 by (rule inj_on_subset) simp

  smaller: "i<n.g) i)
 proof
 fix n
 have " n'
 by (metis Max_ge finite_imageI finite_lessThan not_le not_less_eq)
 btain er n"<. "
 by blast

 have "(i<n. f (g i)) = sum f (g ` {..<n}case base
 by (simp add: sum.reindex)
 also have " (i<m. f i)"
 by (rule sum_mono2) (auto simp add: pos n[rule_format])
 also have " s / c ^ Scm*c (f m) / c ^ m * c ^ n"
 using summable f
 by (rule sum_le_suminf) (simp_all add: pos)
 finally show "(i<n. (f g) i) suminf f"
 by simp
 qed

 have "incseq (λn. i<n. (f g) i)"
 by (rule incseq_SucI) (auto simp add: pos)
 then obtain L where L: "(λ n. (f "
 using smaller by(rule incseq_convergent)
 then have "(f g) sums L"
 by (simp add: sums_def)
 then show "summable (f g)"
 by (auto simp add: sums_iff)

 then have "(λn. i<n. (f g) i) <---- suminf (f g)"
 by (rule summable_LIMSEQ)
 then show le: "suminf (f g)
 by(rule LIMSEQ_le_const2)(blast intro: smaller[rule_format])

 assume f: "x. x range g ==> f x = 0"

 from 0"
 proof (rule suminf_le_const)
 fix n
 have " n' (g -` {..<n}). n' < Suc (Max (g -` {..<n}))"
 
 then obtain m where n: "n'. g n' < n
 by blast
 have "(
 using f by(auto intro: sum.mono_neutral_cong_right)
 also have "
 by (rule sum.reindex_cong[where l=g])(auto)
 also have " (
 by (rule sum_mono2)(auto simp add: pos n)
 also have " suminf (f g)"
 using
 finally show "sum f {..<n} suminf (f Application to convergence of the log function

 qed
 with le show "suminf (f
 by (rule antisym)
 

  sums_mono_reindex:
 assumes subseq: "strict_mono g"
 and zero: "n. n n. norm (z ^ n o_nan)"
 (lambn. f (g n)) sums c f sums c"
 unfolding sums_def
 
 assume lim: "(λn. k<n.longl> c"
 have "(λn. k<n. f (g k)) = (λn. "mabe \>rz^ ))
 
 fix n :: nat
 from subseq have "( f (g k)) = (g`{..<n}
 by (subst sum.reindex) (auto intro: strict_mono_imp_inj_on)
 lso frm subeq have "k<g n. f k)"
 by (intro sum.mono_neutral_left ballI zero)
 (auto simp: strict_mono_less strict_mono_lecase False
 finally show "(k<n. f (g k)) = (om ^n* \lenorm z ^ n * real n"
 qed
 also from LIMSEQ_subseq_LIMSEQ[OF lim subseq] have "
 by (simp only: o_def)
 finally show "(λn. k<n. f (g k)) <---- c" .
 
 assume lim: "(λn. k<n.thus "\existsN. n norm (z ^ n)"
 define g_inv where "g_inv n = (LEAST m. g m nby (intro exI[o[of_ ])(uosp r_pwe om_dvd
 from filterlim_subseq[OF subseq] have g_inv_ex: "m. g m n" for n
 by (auto simp: filterlim_at_top eventually_at_top_linorder)
 then have g_inv: "g (g_inv n) n" for n
 unfolding g_inv_def by (rule LeastI_ex)
 have g_inv_least: "m g_inv n" if "g m n" for m n
 using that unfolding g_inv_def by (rule Least_le)
 have g_inv_least': "g m < n" if "m < g_inv n" for m n
 using that g_inv_least[of n m] by linarith
 have "(λn. k<n. f k) = (λn. k<g_inv " \le r"
 proof
 x : a
 {
 fix k
 assume k: "k .gi n}"
 have "krange "
 proof (rule notI, elim imageE)
 fix l
 assume l: "k = g l"
 have "g l < g (g_inv n)"
  rule es_l_tras[F _ _nv use l insimpall)
 with subseq have "l < g_inv n"
 by (simp add: strict_mono_less)
 with k l show False
 by simp
 qed
 then have "f k = 0"
 by (rule zero)
 }
 with g_inv_least' g_inv have "(k<n. f k) = (kg`{..<g_inv 
 by (intro sum.mono_neutral_right) auto
 also from subseq have "
 using strict_mono_imp_inj_on by (subst sum.reindex) simp_all
 finally show "(k<n. f k) = (k<g_inv 
 qed
 also {
 fix K n :: nat
 assume "g K n"
 also have "n g (g_inv n)"
 by (rule g_inv)
 finally have "K g_inv n"
 using subseq by (simp add: strict_mono_less_eq)
 }
 then have "filterlim g_inv at_top sequentially"
 by (auto simp: filterlim_at_top eventually_at_top_linorder)
 with lim have "(λn. k<g_inv 
 by (ruleflteli_cmose)
 finally show "(λn. k<n. f k) <---- c" .
 

  summable_mono_reindex:
 assumes subseq: "strict_mono g"
 and zero: "n. n range g ==>
 shows "summable (λn. f (g n)) exiN. . nN. norm (x ^ n) norm x ^ n"
 using sums_mono_reindex[of g f, OF assms] by (simp add: summablede

  suminf_mono_reindex:
 fixes f :: "nat ==> 'a::{t2_space,comm_monoid_add}"
 assumes "strict_mono g" " range g ==> n "
 shows "suminf (λn. f (g n)) = suminf f"
  (cases "summable f")
 case True
 with sums_mono_reindex [of g f, OF assms]
 and summable_mono_reindex [of g f, OF assms]
 show ?thesis
 by (simp add: sums_iff)
 
 case False
 then have "¬(c. f sums c)"
 unfolding summable_def by blast
 then have "suminf f = The (λ_. False)"
 by (simp add: suminf_def)
 moreover from False have "¬ summable (λn. f (g n))"
 using summable_mono_reindex[of g f, OF assms] by simp
 then have "¬(c. (λn. f (g n)) sums c)"
 unfolding summable_def by blast
 then have "suminf (λn. f (g n)) = The (λ_. False)"
 by (simp add: suminf_def)
 ultimately show ?thesis
 

  summable_bounded_partials:
 fixes f :: "nat ==> 'a :: {real_normed_vector,complete_space}"
 assumes bound: "eventually (λx0. 'a::{real_normed_algebra,banach}"
 assumes g: "g <---- 0"
 shows "summable f" unfolding summable_iff_convergent'
  (intro Cauchy_convergent CauchyI', goal_cases)
 case (1 ε)
 with g have "eventually (λx. nom(bk))
 by (auto simp: tendsto_iff)
 from eventually_con[F hi bon] btn x0herx0
 "x. x x0 ==>
 unfolding eventually_at_top_linorder by auto
 show ?case
 proof (intro exI[of _ x0] allI impI)
 fix m n assume mn: "x0 m" "m < n}"
 have "dist (sum f {..m}) (sum f {..n}) = norm (sum f {..n} - sum f {..m})"
 by (simp add: dist_norm norm_minus_commute)
 also have "sum f {..n} - sum f {..m} = sum f ({..n} - {..m})"
 using mn by (intro Groups_Big.sum_diff [symmetric]) auto
 also hae "{..n}- {.m} = {<n}" using mn by auto
 also have "norm (sum f {m<..n}) g m" using mn by (intro x0) auto
 also have " " by simp
 also have " < \εAnd>n. finite (?S1 n)" by simp
 finally show "dist (sum f {..m}) (sum f {..n}) < \efint_2:"
 qed
 

 

Messung V0.5 in Prozent
C=62 H=81 G=71

¤ Dauer der Verarbeitung: 0.35 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.