Аналіз I, Розділ 8.2: Підсумовування на нескінченних множинах

Я (прим. перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним підходом Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підправити", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.

Основні конструкції та результати цього розділу:

Надано деякі нетривіальні API, що доповнюють матеріал підручника і пов'язують ці поняття з існуючими поняттями підсумовування.

Після цього розділу позначення для підсумовування, розроблене тут, буде застаріле на користь API Mathlib для Summable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α) : PropSummable і tsum.{u_4, u_5} {α : Type u_4} [AddCommMonoid α] [TopologicalSpace α] {β : Type u_5} (f : β → α) : αtsum.

namespace Chapter8open Chapter7 Chapter7.Series Finset Function Filter

Визначення 8.2.1 (Ряди на лічильних множинах). Зверніть увагу, що з цією дефініцією функції, визначені на скінчених множинах, не будуть абсолютно збіжними; для таких випадків слід використовувати випадки Chapter8.AbsConvergent' {X : Type} (f : X → ℝ) : PropAbsConvergent'.

abbrev AbsConvergent {X:Type} (f: X → ℝ) : Prop := ∃ g: ℕ → X, Bijective g ∧ (f ∘ g: Series).absConverges
theorem AbsConvergent.mk {X: Type} {f:X → ℝ} {g:ℕ → X} (h: Bijective g) (hfg: (f ∘ g:Series).absConverges) : AbsConvergent f := X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ AbsConvergent f All goals completed! 🐙open Classical in /-- Дефініція була обрана таким чином, щоб давати змістовне значення, коли `X` скінченна, навіть якщо `AbsConvergent` за визначенням є хибним у цьому контексті. -/ noncomputable abbrev Sum {X:Type} (f: X → ℝ) : ℝ := if h: AbsConvergent f then (f ∘ h.choose:Series).sum else if _hX: Finite X then (∑ x ∈ @univ X (Fintype.ofFinite X), f x) else 0theorem Sum.of_finite {X:Type} [hX:Finite X] (f:X → ℝ) : Sum f = ∑ x ∈ @Finset.univ X (Fintype.ofFinite X), f x := X:TypehX:Finite Xf:X → ℝ⊢ Sum f = ∑ x, f x have : ¬ AbsConvergent f := X:TypehX:Finite Xf:X → ℝ⊢ Sum f = ∑ x, f x X:TypehX:Finite Xf:X → ℝthis:AbsConvergent f⊢ False; X:TypehX:Finite Xf:X → ℝg:ℕ → Xhg:Bijective ga✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ False X:TypehX:¬Infinite ℕf:X → ℝg:ℕ → Xhg:Bijective ga✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ False; X:TypehX:¬Infinite ℕf:X → ℝg:ℕ → Xhg:Bijective ga✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ Infinite ℕ; All goals completed! 🐙 All goals completed! 🐙theorem AbsConvergent.comp {X: Type} {f:X → ℝ} {g:ℕ → X} (h: Bijective g) (hf: AbsConvergent f) : (f ∘ g:Series).absConverges := X:Typef:X → ℝg:ℕ → Xh:Bijective ghf:AbsConvergent f⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges X:Typef:X → ℝg:ℕ → Xh:Bijective gg':ℕ → Xhbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConverges⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges X:Typef:X → ℝg:ℕ → Xh:Bijective gg':ℕ → Xhbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges X:Typef:X → ℝg:ℕ → Xh:Bijective gg':ℕ → Xhbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.10895 ∘ _fvar.10859) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.10907, Function.LeftInverse.surjective _fvar.10903⟩ _fvar.10860⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges X:Typef:X → ℝg:ℕ → Xh:Bijective gg':ℕ → Xhbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.10895 ∘ _fvar.10859) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.10907, Function.LeftInverse.surjective _fvar.10903⟩ _fvar.10860n:ℤa✝:n ≥ 0⊢ (f ∘ g) n.toNat = (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat All goals completed! 🐙theorem Sum.eq {X: Type} {f:X → ℝ} {g:ℕ → X} (h: Bijective g) (hfg: (f ∘ g:Series).absConverges) : (f ∘ g:Series).convergesTo (Sum f) := X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542⊢ { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.convergesTo { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542hbij:Bijective (Exists.choose this)hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ Exists.choose this) n.toNat else 0, vanish := ⋯ }.absConverges⊢ { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.convergesTo { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConverges⊢ { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.convergesTo { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'⊢ { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.convergesTo { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum = { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum = { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.sum X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541n:ℤ⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = if n ≥ 0 then (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat else 0 X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541n:ℤhn:n ≥ 0⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = if n ≥ 0 then (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat else 0X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541n:ℤhn:¬n ≥ 0⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = if n ≥ 0 then (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat else 0 X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541n:ℤhn:n ≥ 0⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = if n ≥ 0 then (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat else 0X:Typef:X → ℝg:ℕ → Xh:Bijective ghfg:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesthis:Chapter8.AbsConvergent _fvar.12539 := Chapter8.AbsConvergent.mk _fvar.12541 _fvar.12542g':ℕ → _fvar.12538 := @Exists.choose (ℕ → _fvar.12538) (fun g => Function.Bijective g ∧ { m := 0, seq := fun n => if n ≥ 0 then (_fvar.12539 ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges) _fvar.12561hbij:Bijective g'hconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg'_inv:X → ℕhleft:LeftInverse g'_inv g'hright:RightInverse g'_inv g'hG:Function.Bijective (_fvar.30992 ∘ _fvar.12540) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.31004, Function.LeftInverse.surjective _fvar.31000⟩ _fvar.12541n:ℤhn:¬n ≥ 0⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = if n ≥ 0 then (fun n => (f ∘ g') ((g'_inv ∘ g) n)) n.toNat else 0 All goals completed! 🐙theorem Sum.of_comp {X Y:Type} {f:X → ℝ} (h: AbsConvergent f) {g: Y → X} (hbij: Bijective g) : AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) := X:TypeY:Typef:X → ℝh:AbsConvergent fg:Y → Xhbij:Bijective g⊢ AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConverges⊢ AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv g⊢ AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv ghbij_g_inv_g':Function.Bijective (_fvar.37554 ∘ _fvar.37523) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.37566, Function.LeftInverse.surjective _fvar.37562⟩ _fvar.37532⊢ AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) have hident : (f ∘ g) ∘ g_inv ∘ g' = f ∘ g' := X:TypeY:Typef:X → ℝh:AbsConvergent fg:Y → Xhbij:Bijective g⊢ AbsConvergent (f ∘ g) ∧ Sum f = Sum (f ∘ g) X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv ghbij_g_inv_g':Function.Bijective (_fvar.37554 ∘ _fvar.37523) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.37566, Function.LeftInverse.surjective _fvar.37562⟩ _fvar.37532n:ℕ⊢ ((f ∘ g) ∘ g_inv ∘ g') n = (f ∘ g') n; All goals completed! 🐙 refine ⟨ ⟨ g_inv ∘ g', ⟨ hbij_g_inv_g', X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv ghbij_g_inv_g':Function.Bijective (@Function.comp ℕ _fvar.37515 _fvar.37516 _fvar.37554 _fvar.37523) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.37566, Function.LeftInverse.surjective _fvar.37562⟩ _fvar.37532hident:(_fvar.37517 ∘ _fvar.37519) ∘ @Function.comp ℕ _fvar.37515 _fvar.37516 _fvar.37554 _fvar.37523 = _fvar.37517 ∘ _fvar.37523 := funext fun n => of_eq_true (Eq.trans (congrArg (fun x => @_fvar.37517 x = @_fvar.37517 (@_fvar.37523 n)) (@_fvar.37566 (@_fvar.37523 n))) (eq_self (@_fvar.37517 (@_fvar.37523 n))))⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ g) ∘ g_inv ∘ g') n.toNat else 0, vanish := ⋯ }.absConverges All goals completed! 🐙 ⟩ ⟩, ?_ ⟩ have h := eq (f := f ∘ g) hbij_g_inv_g' (X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv ghbij_g_inv_g':Function.Bijective (@Function.comp ℕ _fvar.37515 _fvar.37516 _fvar.37554 _fvar.37523) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.37566, Function.LeftInverse.surjective _fvar.37562⟩ _fvar.37532hident:(_fvar.37517 ∘ _fvar.37519) ∘ @Function.comp ℕ _fvar.37515 _fvar.37516 _fvar.37554 _fvar.37523 = _fvar.37517 ∘ _fvar.37523 := funext fun n => of_eq_true (Eq.trans (congrArg (fun x => @_fvar.37517 x = @_fvar.37517 (@_fvar.37523 n)) (@_fvar.37566 (@_fvar.37523 n))) (eq_self (@_fvar.37517 (@_fvar.37523 n))))⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ g) ∘ g_inv ∘ g') n.toNat else 0, vanish := ⋯ }.absConverges All goals completed! 🐙) X:TypeY:Typef:X → ℝg:Y → Xhbij:Bijective gg':ℕ → Xhbij':Bijective g'hconv':{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.absConvergesg_inv:X → Yhleft:LeftInverse g_inv ghright:RightInverse g_inv ghbij_g_inv_g':Function.Bijective (_fvar.37554 ∘ _fvar.37523) := Function.Bijective.comp ⟨Function.RightInverse.injective _fvar.37566, Function.LeftInverse.surjective _fvar.37562⟩ _fvar.37532hident:(_fvar.37517 ∘ _fvar.37519) ∘ _fvar.37554 ∘ _fvar.37523 = _fvar.37517 ∘ _fvar.37523 := ?_mvar.37730h:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g') n.toNat else 0, vanish := ⋯ }.convergesTo (Sum (f ∘ g))⊢ Sum f = Sum (f ∘ g) All goals completed! 🐙@[simp] theorem Finset.Icc_eq_cast (N:ℕ) : Icc 0 (N:ℤ) = map Nat.castEmbedding (.Icc 0 N) := N:ℕ⊢ Icc 0 ↑N = Finset.map Nat.castEmbedding (Icc 0 N) N:ℕn:ℤ⊢ n ∈ Icc 0 ↑N ↔ n ∈ Finset.map Nat.castEmbedding (Icc 0 N); N:ℕn:ℤ⊢ 0 ≤ n ∧ n ≤ ↑N ↔ ∃ a ≤ N, ↑a = n; N:ℕn:ℤ⊢ 0 ≤ n ∧ n ≤ ↑N → ∃ a ≤ N, ↑a = nN:ℕn:ℤ⊢ (∃ a ≤ N, ↑a = n) → 0 ≤ n ∧ n ≤ ↑N N:ℕn:ℤ⊢ 0 ≤ n ∧ n ≤ ↑N → ∃ a ≤ N, ↑a = n N:ℕn:ℤhn:0 ≤ nright✝:n ≤ ↑N⊢ ∃ a ≤ N, ↑a = n; N:ℕn:ℕright✝:↑n ≤ ↑N⊢ ∃ a ≤ N, ↑a = ↑n; N:ℕn:ℕright✝:↑n ≤ ↑N⊢ n ≤ N ∧ ↑n = ↑n; All goals completed! 🐙 N:ℕw✝:ℕleft✝:w✝ ≤ N⊢ 0 ≤ ↑w✝ ∧ ↑w✝ ≤ ↑N; All goals completed! 🐙theorem Finset.Icc_empty {N:ℤ} (h: ¬ N ≥ 0) : Icc 0 N = ∅ := N:ℤh:¬N ≥ 0⊢ Icc 0 N = ∅ N:ℤh:¬N ≥ 0a✝:ℤ⊢ a✝ ∈ Icc 0 N ↔ a✝ ∈ ∅; N:ℤh:¬N ≥ 0a✝:ℤ⊢ 0 ≤ a✝ → N < a✝; N:ℤh:¬N ≥ 0a✝¹:ℤa✝:0 ≤ a✝¹⊢ N < a✝¹; N:ℤa✝¹:ℤa✝:0 ≤ a✝¹h:a✝¹ ≤ N⊢ N ≥ 0; All goals completed! 🐙

Теорема 8.2.2, попередня версія. Аргументи тут трохи переставлені порівняно з текстом.

theorem declaration uses 'sorry'sum_of_sum_of_AbsConvergent_nonneg {f:ℕ × ℕ → ℝ} (hf:AbsConvergent f) (hpos: ∀ n m, 0 ≤ f (n, m)) : (∀ n, ((fun m ↦ f (n, m)):Series).converges) ∧ (fun n ↦ ((fun m ↦ f (n, m)):Series).sum:Series).convergesTo (Sum f) := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo L have hLpos : 0 ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }⊢ 0 ≤ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.sum; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.nonneg; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }n:ℤ⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.seq n ≥ 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }n:ℤh:n ≥ 0⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.seq n ≥ 0f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }n:ℤh:¬n ≥ 0⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.seq n ≥ 0 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }n:ℤh:n ≥ 0⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.seq n ≥ 0f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }n:ℤh:¬n ≥ 0⊢ { m := 0, seq := fun n => if 0 ≤ n then f (⋯.choose n.toNat) else 0, vanish := ⋯ }.seq n ≥ 0 All goals completed! 🐙; All goals completed! 🐙 have hfinsum (X: Finset (ℕ × ℕ)) : ∑ p ∈ X, f p ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 have hfinsum' (n M:ℕ) : (a n).partial M ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xn:ℕM:ℕ⊢ ∑ x ∈ Icc 0 M, f (n, x) ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xn:ℕM:ℕ⊢ ∑ x ∈ Icc 0 M, f (n, x) = ∑ x ∈ Finset.map (Embedding.sectR n ℕ) (Icc 0 M), f xf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xn:ℕM:ℕ⊢ ∑ x ∈ Finset.map (Embedding.sectR n ℕ) (Icc 0 M), f x ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xn:ℕM:ℕ⊢ ∑ x ∈ Icc 0 M, f (n, x) = ∑ x ∈ Finset.map (Embedding.sectR n ℕ) (Icc 0 M), f x All goals completed! 🐙 All goals completed! 🐙 have hnon (n:ℕ) : (a n).nonneg := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕ⊢ ∀ (n_1 : ℤ), 0 ≤ if 0 ≤ n_1 then f (n, n_1.toNat) else 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕm:ℤ⊢ 0 ≤ if 0 ≤ m then f (n, m.toNat) else 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕm:ℤh✝:0 ≤ m⊢ 0 ≤ f (n, m.toNat)f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕm:ℤh✝:¬0 ≤ m⊢ 0 ≤ 0 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕm:ℤh✝:0 ≤ m⊢ 0 ≤ f (n, m.toNat)f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mn:ℕm:ℤh✝:¬0 ≤ m⊢ 0 ≤ 0 All goals completed! 🐙 have hconv (n:ℕ) : (a n).converges := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕ⊢ ∃ M, ∀ (N : ℤ), (a n).partial N ≤ M f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕ⊢ ∀ (N : ℤ), (a n).partial N ≤ L; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℤ⊢ (a n).partial N ≤ L; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℤh:N ≥ 0⊢ (a n).partial N ≤ Lf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℤh:¬N ≥ 0⊢ (a n).partial N ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℤh:N ≥ 0⊢ (a n).partial N ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℕ⊢ (a n).partial ↑N ≤ L; All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nn:ℕN:ℤh:¬N ≥ 0⊢ 0 ≤ L; All goals completed! 🐙 have (N M:ℤ) : ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℤM:ℤhN:N ≥ 0⊢ ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ Lf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℤM:ℤhN:¬N ≥ 0⊢ ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ L; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℤM:ℤhN:¬N ≥ 0⊢ ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ Lf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℤM:ℤhN:N ≥ 0⊢ ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℤM:ℤhN:¬N ≥ 0⊢ ∑ n ∈ Icc 0 N, (a n.toNat).partial M ≤ L All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕ⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ Lf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ L; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ Lf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial M = 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∑ n ∈ Icc 0 ↑N, ∑ n_1 ∈ Icc (a n.toNat).m M, (a n.toNat).seq n_1 = 0 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0⊢ ∀ x ∈ Icc 0 ↑N, ∑ n ∈ Icc (a x.toNat).m M, (a x.toNat).seq n = 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nM:ℤN:ℕhM:¬M ≥ 0n:ℤa✝:n ∈ Icc 0 ↑N⊢ ∑ n_1 ∈ Icc (a n.toNat).m M, (a n.toNat).seq n_1 = 0 All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℕM:ℕ⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial ↑M ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℕM:ℕ⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial ↑M = ∑ x ∈ Icc 0 N ×ˢ Icc 0 M, f xf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℕM:ℕ⊢ ∑ x ∈ Icc 0 N ×ˢ Icc 0 M, f x ≤ L f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nN:ℕM:ℕ⊢ ∑ n ∈ Icc 0 ↑N, (a n.toNat).partial ↑M = ∑ x ∈ Icc 0 N ×ˢ Icc 0 M, f x All goals completed! 🐙 All goals completed! 🐙 replace (N:ℤ) : ∑ n ∈ Icc 0 N, (a n.toNat).sum ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N M : ℤ), ∑ n ∈ Finset.Icc 0 N, Chapter7.Series.partial (@_fvar.59781 n.toNat) M ≤ _fvar.59585 := fun N M => @?_mvar.102473 N MN:ℤ⊢ ∀ i ∈ Icc 0 N, Tendsto (a i.toNat).partial atTop (nhds (a i.toNat).sum) All goals completed! 🐙 replace (N:ℤ) : (fun n ↦ (a n).sum:Series).partial N ≤ L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), ∑ n ∈ Finset.Icc 0 N, Chapter7.Series.sum (@_fvar.59781 n.toNat) ≤ _fvar.59585 := fun N => @?_mvar.118395 NN:ℤn:ℤhn:n ∈ Icc 0 N⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.seq n = (a n.toNat).sum; All goals completed! 🐙 have hnon' : (fun n ↦ (a n).sum:Series).nonneg := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nn:ℤ⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.seq n ≥ 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nn:ℤ⊢ 0 ≤ if 0 ≤ n then (a n.toNat).sum else 0; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nn:ℤh✝:0 ≤ n⊢ 0 ≤ (a n.toNat).sumf:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nn:ℤh✝:¬0 ≤ n⊢ 0 ≤ 0 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nn:ℤh✝:0 ≤ n⊢ 0 ≤ (a n.toNat).sum All goals completed! 🐙 All goals completed! 🐙 have hconv' : (fun n ↦ (a n).sum:Series).converges := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nthis:∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.partial N ≤ _fvar.59585 := fun N => @?_mvar.120947 Nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169⊢ ∃ M, ∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.partial N ≤ M; All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := ?_mvar.135140this:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.sum ≤ _fvar.59585 := le_of_tendsto' (Chapter7.Series.convergesTo_sum _fvar.135141) _fvar.120948⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo L replace : (fun n ↦ (a n).sum:Series).sum = L := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := ?_mvar.135140this:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.sum ≤ _fvar.59585 := le_of_tendsto' (Chapter7.Series.convergesTo_sum _fvar.135141) _fvar.120948⊢ ∀ ε > 0, L - ε ≤ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.sum; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := ?_mvar.135140this:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.sum ≤ _fvar.59585 := le_of_tendsto' (Chapter7.Series.convergesTo_sum _fvar.135141) _fvar.120948ε:ℝhε:ε > 0⊢ L - ε ≤ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.sum replace : ∃ X, ∑ p ∈ X, f p ≥ L - ε := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := ?_mvar.135140ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - ε⊢ L - ε ≤ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.sum have : ∃ N, ∃ M, X ⊆ (Icc 0 N) ×ˢ (Icc 0 M) := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.converges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := ?_mvar.59914hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => @?_mvar.84999 Xhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => @?_mvar.85053 n Mhnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => @?_mvar.92368 nhconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => @?_mvar.97784 nhnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := ?_mvar.132169hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := ?_mvar.135140ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 M⊢ L - ε ≤ { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.sum calc _ ≤ ∑ p ∈ X, f p := hX _ ≤ ∑ p ∈ (Icc 0 N) ×ˢ (Icc 0 M), f p := sum_le_sum_of_subset_of_nonneg hX' (f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 M⊢ ∀ i ∈ Icc 0 N ×ˢ Icc 0 M, i ∉ X → 0 ≤ f i All goals completed! 🐙) _ = ∑ n ∈ Icc 0 N, ∑ m ∈ Icc 0 M, f (n, m) := sum_product _ _ _ _ ≤ ∑ n ∈ Icc 0 N, (a n).sum := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 M⊢ ∑ n ∈ Icc 0 N, ∑ m ∈ Icc 0 M, f (n, m) ≤ ∑ n ∈ Icc 0 N, (a n).sum f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 M⊢ ∀ i ∈ Icc 0 N, ∑ m ∈ Icc 0 M, f (i, m) ≤ (a i).sum; f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 Mn:ℕa✝:n ∈ Icc 0 N⊢ ∑ m ∈ Icc 0 M, f (n, m) ≤ (a n).sum f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 Mn:ℕa✝:n ∈ Icc 0 N⊢ ∑ m ∈ Icc 0 M, f (n, m) = (a n).partial ↑M All goals completed! 🐙 _ = (fun n ↦ (a n).sum:Series).partial N := f:ℕ × ℕ → ℝhf:AbsConvergent fhpos:∀ (n m : ℕ), 0 ≤ f (n, m)L:ℝ := Chapter8.Sum _fvar.59574a:ℕ → Chapter7.Series := fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (@fun m => @_fvar.59574 (n, m)) n_1.toNat else 0, vanish := ⋯ }hLpos:0 ≤ _fvar.59585 := Eq.mpr (id (congrArg (LE.le 0) (Eq.trans (dite_cond_eq_true (eq_true _fvar.59575)) (congrArg Chapter7.Series.sum ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ Exists.choose (of_eq_true (eq_true _fvar.59575))) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => congrArg (fun x => (_fvar.59574 ∘ x) n.toNat) (Exists.choose.congr_simp (funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) (of_eq_true (eq_true _fvar.59575)))) fun a => Eq.refl 0) (Chapter8.Sum._proof_1 _fvar.59574 (of_eq_true (eq_true _fvar.59575)))))))) (Chapter7.Series.sum_of_nonneg fun n => if h : n ≥ 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_true (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_true h))) ge_iff_le._simp_1)) (Chapter8.sum_of_sum_of_AbsConvergent_nonneg._proof_4 _fvar.59575 _fvar.59576 n h) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x ≥ 0) (ite_cond_eq_false (@_fvar.59574 (((funext fun g => congrArg (fun x => Function.Bijective g ∧ x.absConverges) ((fun m m_1 e_m => Eq.rec (motive := fun m_2 e_m => ∀ (seq seq_1 : ℤ → ℝ) (e_seq : seq = seq_1) (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m_2, seq := seq_1, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_1 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) e_m }) (fun seq seq_1 e_seq => Eq.rec (motive := fun seq_2 e_seq => ∀ (vanish : ∀ n < m, seq n = 0), { m := m, seq := seq, vanish := vanish } = { m := m, seq := seq_2, vanish := Eq.ndrec (motive := fun m => ∀ n < m, seq_2 n = 0) (Eq.ndrec (motive := fun seq => ∀ n < m, seq n = 0) vanish e_seq) (Eq.refl m) }) (fun vanish => Eq.refl { m := m, seq := seq, vanish := vanish }) e_seq) e_m) 0 0 (Eq.refl 0) (fun n => if n ≥ 0 then (_fvar.59574 ∘ g) n.toNat else 0) (fun n => if 0 ≤ n then @_fvar.59574 (g n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (g n.toNat))) fun a => Eq.refl 0) (Chapter8.AbsConvergent._proof_1 _fvar.59574 g))) ▸ of_eq_true (eq_true _fvar.59575)).choose n.toNat)) 0 (eq_false h))) ge_iff_le._simp_1) (le_refl._simp_1 0)))hfinsum:∀ (X : Finset (ℕ × ℕ)), ∑ p ∈ X, @_fvar.59574 p ≤ _fvar.59585 := fun X => sorryhfinsum':∀ (n M : ℕ), Chapter7.Series.partial (@_fvar.59781 n) ↑M ≤ _fvar.59585 := fun n M => Eq.mpr (id (congrArg (fun x => x ≤ _fvar.59585) (Eq.trans (Eq.trans (Finset.sum_congr (Chapter8.Finset.Icc_eq_cast M) fun x a => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, x.toNat))) fun a => Eq.refl 0) (Finset.sum_map (Finset.Icc 0 M) Nat.castEmbedding fun x => if 0 ≤ x then @_fvar.59574 (n, x.toNat) else 0)) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => ite_cond_eq_true (@_fvar.59574 (n, (Nat.castEmbedding x).toNat)) 0 (Nat.cast_nonneg._simp_1 x))))) (Eq.mpr (eq_of_heq ((fun α self a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 → e'_3 ≍ x → (a ≤ a_1) ≍ (a' ≤ a_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => ∀ (e_3 : a = a'), e_3 ≍ Eq.refl a → (a ≤ a_1) ≍ (a' ≤ a_1)) (fun e_3 h => HEq.refl (a ≤ a_1)) (Eq.symm h) e'_3) (Eq.refl a') (HEq.refl e'_3)) ℝ Real.instLE (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x)) (∑ x ∈ Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M), @_fvar.59574 x) (of_eq_true (Eq.trans (congrArg (Eq (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))) (Eq.trans (Finset.sum_map (Finset.Icc 0 M) (Function.Embedding.sectR n ℕ) _fvar.59574) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (@_fvar.59574 (n, x))))) (eq_self (∑ x ∈ Finset.Icc 0 M, @_fvar.59574 (n, x))))) _fvar.59585)) (id (@_fvar.85000 (Finset.map (Function.Embedding.sectR n ℕ) (Finset.Icc 0 M)))))hnon:∀ (n : ℕ), Chapter7.Series.nonneg (@_fvar.59781 n) := fun n => Eq.mpr (id (forall_congr fun n_1 => Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.59574 (n, n_1.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) fun m => if h : 0 ≤ m then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (of_eq_true ((fun n m => eq_true (@_fvar.59576 n m)) n m.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0))hconv:∀ (n : ℕ), Chapter7.Series.converges (@_fvar.59781 n) := fun n => Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff (@_fvar.92369 n))))) (Exists.intro _fvar.59585 fun N => if h : N ≥ 0 then Exists.casesOn (CanLift.prf N h) fun N_1 h_1 => Eq.ndrec (motive := fun N => N ≥ 0 → Chapter7.Series.partial (@_fvar.59781 n) N ≤ _fvar.59585) (fun h => @_fvar.85054 n N_1) h_1 h else Eq.mpr (id (congrArg (fun _a => _a ≤ _fvar.59585) (Chapter7.Series.partial_of_lt (id (lt_of_not_ge fun a => Mathlib.Tactic.Linarith.lt_irrefl (Eq.mp (congrArg (fun _a => _a < 0) (Mathlib.Tactic.Ring.of_eq (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.neg_congr (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1))))) Mathlib.Tactic.Ring.neg_zero)) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 1))) (Mathlib.Tactic.Ring.add_pf_add_gt (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_add_zero (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.sub_pf Mathlib.Tactic.Ring.neg_zero (Mathlib.Tactic.Ring.add_pf_add_zero (Nat.rawCast 1 + (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.ofNat 0)))) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf N) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul N (Nat.rawCast 1) (Mathlib.Tactic.Ring.neg_one_mul (Mathlib.Meta.NormNum.IsInt.to_raw_eq (Mathlib.Meta.NormNum.isInt_mul (Eq.refl HMul.hMul) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Eq.refl (Int.negOfNat 1)))))) Mathlib.Tactic.Ring.neg_zero) (Mathlib.Tactic.Ring.add_pf_zero_add (N ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero N (Nat.rawCast 1) (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.IsNat.of_raw ℤ 1)) (Mathlib.Meta.NormNum.IsInt.of_raw ℤ (Int.negOfNat 1)) (Eq.refl (Int.ofNat 0))))) (Mathlib.Tactic.Ring.add_pf_zero_add 0))) (Mathlib.Tactic.Ring.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat ℤ (Eq.refl 0))))) (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (Mathlib.Tactic.Linarith.add_lt_of_neg_of_le (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr (lt_of_not_ge h)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a)))))))) _fvar.59915)hnon':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.nonneg := fun n => Eq.mpr (id (Eq.trans (congrArg (fun x => x ≥ 0) (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (Chapter7.Series.sum (@_fvar.59781 n.toNat))) fun a => Eq.refl 0)) ge_iff_le._simp_1)) (if h : 0 ≤ n then Eq.mpr (id (congrArg (LE.le 0) (if_pos h))) (Chapter7.Series.sum_of_nonneg (@_fvar.92369 n.toNat)) else Eq.mpr (id (congrArg (LE.le 0) (if_neg h))) (of_eq_true (le_refl._simp_1 0)))hconv':{ m := 0, seq := fun n => if n ≥ 0 then (fun n => Chapter7.Series.sum (@_fvar.59781 n)) n.toNat else 0, vanish := ⋯ }.converges := Eq.mpr (id (congrArg (fun _a => _a) (propext (Chapter7.Series.converges_of_nonneg_iff _fvar.132170)))) (Exists.intro _fvar.59585 _fvar.120948)ε:ℝhε:ε > 0X:Finset (ℕ × ℕ)hX:∑ p ∈ X, f p ≥ L - εN:ℕM:ℕhX':X ⊆ Icc 0 N ×ˢ Icc 0 M⊢ ∑ n ∈ Icc 0 N, (a n).sum = { m := 0, seq := fun n => if n ≥ 0 then (fun n => (a n).sum) n.toNat else 0, vanish := ⋯ }.partial ↑N All goals completed! 🐙 _ ≤ _ := partial_le_sum_of_nonneg hnon' hconv' _ All goals completed! 🐙

Теорема 8.2.2, друга версія

theorem declaration uses 'sorry'sum_of_sum_of_AbsConvergent {f:ℕ × ℕ → ℝ} (hf:AbsConvergent f) : (∀ n, ((fun m ↦ f (n, m)):Series).absConverges) ∧ (fun n ↦ ((fun m ↦ f (n, m)):Series).sum:Series).convergesTo (Sum f) := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) have hfplus_nonneg : ∀ n m, 0 ≤ fplus (n, m) := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0n:ℕm:ℕ⊢ 0 ≤ fplus (n, m); All goals completed! 🐙 have hfminus_nonneg : ∀ n m, 0 ≤ fminus (n, m) := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541n:ℕm:ℕ⊢ 0 ≤ fminus (n, m); All goals completed! 🐙 have hdiff : f = fplus - fminus := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 have hfplus_conv : AbsConvergent fplus := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 have hfminus_conv : AbsConvergent fminus := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ (∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ ∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConvergesf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ ∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)n:ℕ⊢ { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.absConverges All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ Sum f = Sum fplus - Sum fminus f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } -- зустрів несподівані труднощі з визначальною еквівалентністю тут. f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if 0 ≤ n then { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) - fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum else 0, vanish := ⋯ } = { m := 0, seq := fun n => if 0 ≤ n then { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum else 0, vanish := ⋯ } - { m := 0, seq := fun n => if 0 ≤ n then { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum else 0, vanish := ⋯ } f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => (fplus - fminus) (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then ((fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) - fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => (fplus - fminus) (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then ((fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) - fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } = { m := 0, seq := fun n => if n ≥ 0 then ((fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) - fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ } All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => (fplus - fminus) (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat = ((fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) - fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat; f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) - fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum = { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.sum f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ 0 = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).mf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤ⊢ (if 0 ≤ m then fplus (n.toNat, m.toNat) - fminus (n.toNat, m.toNat) else 0) = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq mf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.convergesf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.converges; f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤ⊢ (if 0 ≤ m then fplus (n.toNat, m.toNat) - fminus (n.toNat, m.toNat) else 0) = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq mf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.convergesf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.converges f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤh:0 ≤ m⊢ fplus (n.toNat, m.toNat) - fminus (n.toNat, m.toNat) = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq mf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤh:¬0 ≤ m⊢ 0 = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq m f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤh:0 ≤ m⊢ fplus (n.toNat, m.toNat) - fminus (n.toNat, m.toNat) = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq mf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤm:ℤh:¬0 ≤ m⊢ 0 = ({ m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ } - { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fminus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }).seq m All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)x✝:ℤn:ℤ⊢ { m := 0, seq := fun n_1 => if 0 ≤ n_1 then fplus (n.toNat, n_1.toNat) else 0, vanish := ⋯ }.converges All goals completed! 🐙 All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ Sum f = Sum fplus - Sum fminus f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)⊢ Sum f = Sum fplus - Sum fminus f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)⊢ Sum f = Sum fplus - Sum fminus f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)⊢ Sum f = Sum fplus - Sum fminus f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus - Sum fminus) f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)n:ℤ⊢ (if n ≥ 0 then (f ∘ g) n.toNat else 0) = ({ m := 0, seq := fun n => if n ≥ 0 then (fplus ∘ g) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fminus ∘ g) n.toNat else 0, vanish := ⋯ }).seq n f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)n:ℤh:n ≥ 0⊢ (f ∘ g) n.toNat = ({ m := 0, seq := fun n => if n ≥ 0 then (fplus ∘ g) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fminus ∘ g) n.toNat else 0, vanish := ⋯ }).seq nf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)n:ℤh:¬n ≥ 0⊢ 0 = ({ m := 0, seq := fun n => if n ≥ 0 then (fplus ∘ g) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fminus ∘ g) n.toNat else 0, vanish := ⋯ }).seq n f:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)n:ℤh:n ≥ 0⊢ (f ∘ g) n.toNat = ({ m := 0, seq := fun n => if n ≥ 0 then (fplus ∘ g) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fminus ∘ g) n.toNat else 0, vanish := ⋯ }).seq nf:ℕ × ℕ → ℝhf:AbsConvergent ffplus:ℕ × ℕ → ℝ := _fvar.168246 ⊔ 0fminus:ℕ × ℕ → ℝ := -_fvar.168246 ⊔ 0hfplus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168330 (n, m) := ?_mvar.168541hfminus_nonneg:∀ (n m : ℕ), 0 ≤ @_fvar.168422 (n, m) := ?_mvar.182542hdiff:_fvar.168246 = _fvar.168330 - _fvar.168422 := ?_mvar.196505hfplus_conv:Chapter8.AbsConvergent _fvar.168330 := ?_mvar.196519hfminus_conv:Chapter8.AbsConvergent _fvar.168422 := ?_mvar.196530hfplus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfplus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fplus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fplus)hfminus_conv':∀ (n : ℕ), { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.convergeshfminus_sum:{ m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => fminus (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum fminus)g:ℕ → ℕ × ℕhg:Bijective gright✝:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConvergesh1:?_mvar.243602 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.168247)hplus:?_mvar.243653 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196520)hminus:?_mvar.243677 := Chapter8.Sum.eq _fvar.243487 (Chapter8.AbsConvergent.comp _fvar.243487 _fvar.196531)n:ℤh:¬n ≥ 0⊢ 0 = ({ m := 0, seq := fun n => if n ≥ 0 then (fplus ∘ g) n.toNat else 0, vanish := ⋯ } - { m := 0, seq := fun n => if n ≥ 0 then (fminus ∘ g) n.toNat else 0, vanish := ⋯ }).seq n All goals completed! 🐙

Теорема 8.2.2, третя версія

theorem sum_of_sum_of_AbsConvergent' {f:ℕ × ℕ → ℝ} (hf:AbsConvergent f) : (∀ m, ((fun n ↦ f (n, m)):Series).absConverges) ∧ (fun m ↦ ((fun n ↦ f (n, m)):Series).sum:Series).convergesTo (Sum f) := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ (∀ (m : ℕ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun m => { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)⊢ (∀ (m : ℕ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun m => { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)⊢ (∀ (m : ℕ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun m => { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)g:ℕ → ℕ × ℕhg:Bijective ghconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ (∀ (m : ℕ), { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.absConverges) ∧ { m := 0, seq := fun n => if n ≥ 0 then (fun m => { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum f) f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)g:ℕ → ℕ × ℕhg:Bijective ghconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ Sum f = Sum (f ∘ π)f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)g:ℕ → ℕ × ℕhg:Bijective ghconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ AbsConvergent (f ∘ π) f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)g:ℕ → ℕ × ℕhg:Bijective ghconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ Sum f = Sum (f ∘ π) All goals completed! 🐙 f:ℕ × ℕ → ℝhf:AbsConvergent fπ:ℕ × ℕ → ℕ × ℕ := fun p => (p.2, p.1)hπ:Function.Bijective _fvar.254300 := Function.Involutive.bijective (congrFun rfl)g:ℕ → ℕ × ℕhg:Bijective ghconv:{ m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ π) ∘ π ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges All goals completed! 🐙

Теорема 8.2.2, четверта версія

theorem sum_comm {f:ℕ × ℕ → ℝ} (hf:AbsConvergent f) : (fun n ↦ ((fun m ↦ f (n, m)):Series).sum:Series).sum = (fun m ↦ ((fun n ↦ f (n, m)):Series).sum:Series).sum := f:ℕ × ℕ → ℝhf:AbsConvergent f⊢ { m := 0, seq := fun n => if n ≥ 0 then (fun n => { m := 0, seq := fun n_1 => if n_1 ≥ 0 then (fun m => f (n, m)) n_1.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.sum = { m := 0, seq := fun n => if n ≥ 0 then (fun m => { m := 0, seq := fun n => if n ≥ 0 then (fun n => f (n, m)) n.toNat else 0, vanish := ⋯ }.sum) n.toNat else 0, vanish := ⋯ }.sum All goals completed! 🐙

Лема 8.2.3 / Вправа 8.2.1

theorem declaration uses 'sorry'AbsConvergent.iff {X:Type} (hX:CountablyInfinite X) (f : X → ℝ) : AbsConvergent f ↔ BddAbove ((fun A ↦ ∑ x ∈ A, |f x|) '' .univ ) := X:TypehX:CountablyInfinite Xf:X → ℝ⊢ AbsConvergent f ↔ BddAbove ((fun A => ∑ x ∈ A, |f x|) '' Set.univ) All goals completed! 🐙
abbrev AbsConvergent' {X:Type} (f: X → ℝ) : Prop := BddAbove ((fun A ↦ ∑ x ∈ A, |f x|) '' .univ )theorem AbsConvergent'.of_finite {X:Type} [Finite X] (f:X → ℝ) : AbsConvergent' f := X:Typeinst✝:Finite Xf:X → ℝ⊢ AbsConvergent' f X:Typeinst✝:Finite Xf:X → ℝx✝:?_mvar.273414 := Fintype.ofFinite _fvar.273409⊢ AbsConvergent' f X:Typeinst✝:Finite Xf:X → ℝx✝:?_mvar.273414 := Fintype.ofFinite _fvar.273409⊢ ∃ x, ∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ x; X:Typeinst✝:Finite Xf:X → ℝx✝:?_mvar.273414 := Fintype.ofFinite _fvar.273409⊢ ∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ ∑ x, |f x|; X:Typeinst✝:Finite Xf:X → ℝx✝:?_mvar.273414 := Fintype.ofFinite _fvar.273409A:Finset X⊢ ∑ x ∈ A, |f x| ≤ ∑ x, |f x|; X:Typeinst✝:Finite Xf:X → ℝx✝:?_mvar.273414 := Fintype.ofFinite _fvar.273409A:Finset X⊢ ∀ (x : X), 0 ≤ |f x|; All goals completed! 🐙

Не в підручнику, але мала б бути включена.

theorem AbsConvergent'.of_countable {X:Type} (hX:CountablyInfinite X) {f:X → ℝ} : AbsConvergent' f ↔ AbsConvergent f := X:TypehX:CountablyInfinite Xf:X → ℝ⊢ AbsConvergent' f ↔ AbsConvergent f X:TypehX:CountablyInfinite Xf:X → ℝ⊢ AbsConvergent' f → AbsConvergent fX:TypehX:CountablyInfinite Xf:X → ℝ⊢ AbsConvergent f → AbsConvergent' f X:TypehX:CountablyInfinite Xf:X → ℝ⊢ AbsConvergent' f → AbsConvergent f X:TypehX:CountablyInfinite Xf:X → ℝhf:AbsConvergent' f⊢ AbsConvergent f; X:TypehX:CountablyInfinite Xf:X → ℝhf:∃ x, ∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ x⊢ AbsConvergent f; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ L⊢ AbsConvergent f X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ AbsConvergent f; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.absConverges X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.converges; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ ∃ M, ∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ MX:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.nonneg X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ ∃ M, ∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ M X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ ∀ (N : ℤ), { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ L; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤ⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ L; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:N ≥ 0⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ LX:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:¬N ≥ 0⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ L X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:N ≥ 0⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N ≤ L X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℕ⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial ↑N ≤ L X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℕg':ℕ ↪ _fvar.281889 := { toFun := _fvar.287797, inj' := ⋯ }⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial ↑N ≤ L X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℕg':ℕ ↪ _fvar.281889 := { toFun := _fvar.287797, inj' := ⋯ }⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial ↑N = ∑ x ∈ Finset.map g' (Icc 0 N), |f x| X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℕg':ℕ ↪ _fvar.281889 := { toFun := _fvar.287797, inj' := ⋯ }⊢ ∑ x ∈ Icc 0 N, |f (g x)| = ∑ x ∈ Icc 0 N, |f (g' x)|; All goals completed! 🐙 X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:¬N ≥ 0⊢ { m := 0, seq := fun n => if n ≥ 0 then (f ∘ g) n.toNat else 0, vanish := ⋯ }.abs.partial N = ∑ x ∈ ∅, |f x| X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:¬N ≥ 0⊢ { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.abs.partial N = 0; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gN:ℤhN:¬N ≥ 0⊢ N < { m := 0, seq := fun n => if 0 ≤ n then f (g n.toNat) else 0, vanish := ⋯ }.abs.m; All goals completed! 🐙 X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective g⊢ ∀ (n : ℤ), 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0 X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gn:ℤ⊢ 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0; X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gn:ℤh:n ≥ 0⊢ 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gn:ℤh:¬n ≥ 0⊢ 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0 X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gn:ℤh:n ≥ 0⊢ 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0X:TypehX:CountablyInfinite Xf:X → ℝL:ℝhL:∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ Lg:ℕ → Xhg:Bijective gn:ℤh:¬n ≥ 0⊢ 0 ≤ if 0 ≤ n then |if 0 ≤ n then f (g n.toNat) else 0| else 0 All goals completed! 🐙 X:TypehX:CountablyInfinite Xf:X → ℝhf:AbsConvergent f⊢ AbsConvergent' f; rwa [AbsConvergent.iff hX fX:TypehX:CountablyInfinite Xf:X → ℝhf:BddAbove ((fun A => ∑ x ∈ A, |f x|) '' Set.univ)⊢ AbsConvergent' f at hf

Лема 8.2.5 / Вправа 8.2.2

theorem declaration uses 'sorry'AbsConvergent'.countable_supp {X:Type} {f:X → ℝ} (hf: AbsConvergent' f) : AtMostCountable { x | f x ≠ 0 } := X:Typef:X → ℝhf:AbsConvergent' f⊢ AtMostCountable ↑{x | f x ≠ 0} All goals completed! 🐙

Порівняйте із Mathlib-овським Summable.subtype.{u_1, u_2} {α : Type u_1} {β : Type u_2} [AddCommGroup α] [UniformSpace α] [IsUniformAddGroup α] {f : β → α} [CompleteSpace α] (hf : Summable f) (s : Set β) : Summable (f ∘ Subtype.val)Summable.subtype

theorem AbsConvergent'.subtype {X:Type} {f:X → ℝ} (hf: AbsConvergent' f) (A: Set X) : AbsConvergent' (fun x:A ↦ f x) := X:Typef:X → ℝhf:AbsConvergent' fA:Set X⊢ AbsConvergent' fun x => f ↑x X:Typef:X → ℝhf:AbsConvergent' fA:Set X⊢ (fun A_1 => ∑ x ∈ A_1, |(fun x => f ↑x) x|) '' Set.univ ⊆ (fun A => ∑ x ∈ A, |f x|) '' Set.univ X:Typef:X → ℝhf:AbsConvergent' fA:Set Xz:ℝhz:z ∈ (fun A_1 => ∑ x ∈ A_1, |(fun x => f ↑x) x|) '' Set.univ⊢ z ∈ (fun A => ∑ x ∈ A, |f x|) '' Set.univ; X:Typef:X → ℝhf:AbsConvergent' fA:Set Xz:ℝhz:∃ y, ∑ x ∈ y, |f ↑x| = z⊢ ∃ y, ∑ x ∈ y, |f x| = z; X:Typef:X → ℝhf:AbsConvergent' fA✝:Set Xz:ℝA:Finset ↑A✝hA:∑ x ∈ A, |f ↑x| = z⊢ ∃ y, ∑ x ∈ y, |f x| = z X:Typef:X → ℝhf:AbsConvergent' fA✝:Set Xz:ℝA:Finset ↑A✝hA:∑ x ∈ A, |f ↑x| = z⊢ ∑ x ∈ Finset.map (Embedding.subtype fun x => x ∈ A✝) A, |f x| = z; All goals completed! 🐙

Узагальнена сума. Зверніть увагу, що це дасть некоректні значення, якщо Unknown identifier `f`f не є Chapter8.AbsConvergent' {X : Type} (f : X → ℝ) : PropAbsConvergent'.

noncomputable abbrev Sum' {X:Type} (f: X → ℝ) : ℝ := Sum (fun x : { x | f x ≠ 0 } ↦ f x)

Не в підручнику, але мала б бути включена (закони рядів значно важче встановити без цього).

theorem Sum'.of_finsupp {X:Type} {f:X → ℝ} {A: Finset X} (h: ∀ x ∉ A, f x = 0) : Sum' f = ∑ x ∈ A, f x := X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0⊢ Sum' f = ∑ x ∈ A, f x X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0⊢ (Sum fun x => f ↑x) = ∑ x ∈ A, f x X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}⊢ (Sum fun x => f ↑x) = ∑ x ∈ A, f x have hE : E ⊆ A := X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0⊢ Sum' f = ∑ x ∈ A, f x X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}a✝:X⊢ a✝ ∈ E → a✝ ∈ ↑A; X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}a✝:X⊢ ¬f a✝ = 0 → a✝ ∈ A; All goals completed! 🐙 X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}hE:_fvar.318187 ⊆ ↑_fvar.318131 := ?_mvar.318381hfin:Finite ↑_fvar.318187 := Finite.Set.subset ?_mvar.321492 _fvar.318382⊢ (Sum fun x => f ↑x) = ∑ x ∈ A, f x X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}hE:_fvar.318187 ⊆ ↑_fvar.318131 := ?_mvar.318381hfin:Finite ↑_fvar.318187 := Finite.Set.subset ?_mvar.321492 _fvar.318382E':Finset _fvar.318129 := ⋯.toFinset⊢ (Sum fun x => f ↑x) = ∑ x ∈ A, f x X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}hE:_fvar.318187 ⊆ ↑_fvar.318131 := ?_mvar.318381hfin:Finite ↑_fvar.318187 := Finite.Set.subset ?_mvar.321492 _fvar.318382E':Finset _fvar.318129 := ⋯.toFinset⊢ ∑ a ∈ E', f a = ∑ x ∈ A, f x replace hE : E' ⊆ A := X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0⊢ Sum' f = ∑ x ∈ A, f x All goals completed! 🐙 X:Typef:X → ℝA:Finset Xh:∀ x ∉ A, f x = 0E:Set _fvar.318129 := {x | @_fvar.318130 x ≠ 0}hfin:Finite ↑_fvar.318187 := Finite.Set.subset ?_mvar.321492 _fvar.318382E':Finset _fvar.318129 := ⋯.toFinsethE:_fvar.321953 ⊆ _fvar.318131 := ?_mvar.323704⊢ ∀ x ∈ A, x ∉ E' → f x = 0; All goals completed! 🐙

Не в підручнику, але мала б бути включена (закони рядів значно важче встановити без цього).

theorem Sum'.of_countable_supp {X:Type} {f:X → ℝ} {A: Set X} (hA: CountablyInfinite A) (hfA : ∀ x ∉ A, f x = 0) (hconv: AbsConvergent' f): AbsConvergent' (fun x:A ↦ f x) ∧ Sum' f = Sum (fun x:A ↦ f x) := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' f⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x -- We can adapt the proof of `AbsConvergent'.of_countable` to establish absolute convergence on A. X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)⊢ (AbsConvergent fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}⊢ Sum' f = Sum fun x => f ↑x -- Ми можемо адаптувати доведення `AbsConvergent'.of_countable`, щоб встановити абсолютну збіжність на A. have hE : E ⊆ A := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' f⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}a✝:X⊢ a✝ ∈ E → a✝ ∈ A; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}a✝:X⊢ ¬f a✝ = 0 → a✝ ∈ A; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}a✝:Xthis:f a✝ ≠ 0 ∧ a✝ ∉ A⊢ False; All goals completed! 🐙 -- Тепер ми відображаємо A назад на натуральні числа, таким чином ідентифікуючи E з підмножиною E' множини ℕ. X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective g⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}⊢ Sum' f = Sum fun x => f ↑x set ι : E' → E := fun ⟨ n, hn ⟩ ↦ ⟨ g n, X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}x✝:↑E'n:ℕhn:n ∈ E'⊢ ↑(g n) ∈ E All goals completed! 🐙 ⟩ have hι: Bijective ι := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' f⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩⊢ Injective ιX:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩⊢ Surjective ι X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩⊢ Injective ι X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩val✝¹:ℕproperty✝¹:val✝¹ ∈ E'val✝:ℕproperty✝:val✝ ∈ E'h:ι ⟨val✝¹, property✝¹⟩ = ι ⟨val✝, property✝⟩⊢ ⟨val✝¹, property✝¹⟩ = ⟨val✝, property✝⟩; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective gE':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩val✝¹:ℕproperty✝¹:val✝¹ ∈ E'val✝:ℕproperty✝:val✝ ∈ E'hsum:{ m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.convergesTo (Sum fun x => f ↑x)h:g val✝¹ = g val✝⊢ val✝¹ = val✝; All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩⊢ Surjective ι X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩x:Xhx:x ∈ E⊢ ∃ a, ι a = ⟨x, hx⟩; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩x:Xhx:x ∈ En:ℕhn:g n = ⟨x, ⋯⟩⊢ ∃ a, ι a = ⟨x, hx⟩; use ⟨ n, X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩x:Xhx:x ∈ En:ℕhn:g n = ⟨x, ⋯⟩⊢ n ∈ E' All goals completed! 🐙 ⟩; All goals completed! 🐙 -- Випадки нескінченного та скінченного E' розглядаються окремо. X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'⊢ Sum' f = Sum fun x => f ↑xX:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'⊢ Sum' f = Sum fun x => f ↑x -- використайте `Nat.monotone_enum_of_infinite`, щоб перелічити E' -- покажіть, що часткові суми E' є підпослідовністю часткових сум A X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono a⊢ Sum' f = Sum fun x => f ↑x have : atTop.Tendsto (Nat.cast ∘ Subtype.val ∘ a: ℕ → ℤ) atTop := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' f⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono a⊢ StrictMono (Subtype.val ∘ a) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono aa✝:ℕb✝:ℕhnm:a✝ < b✝⊢ (Subtype.val ∘ a) a✝ < (Subtype.val ∘ a) b✝; All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono athis:Filter.Tendsto (Nat.cast ∘ Subtype.val ∘ _fvar.691794) Filter.atTop Filter.atTop := ?_mvar.692125⊢ Tendsto ({ m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast ∘ Subtype.val ∘ a) atTop (nhds (Sum' f)) have hconv'' : AbsConvergent (fun x:E ↦ f x) := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' f⊢ (AbsConvergent' fun x => f ↑x) ∧ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono athis:Filter.Tendsto (Nat.cast ∘ Subtype.val ∘ _fvar.691794) Filter.atTop Filter.atTop := ?_mvar.692125⊢ AbsConvergent' fun x => f ↑xX:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono athis:Filter.Tendsto (Nat.cast ∘ Subtype.val ∘ _fvar.691794) Filter.atTop Filter.atTop := ?_mvar.692125⊢ CountablyInfinite ↑E X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono athis:Filter.Tendsto (Nat.cast ∘ Subtype.val ∘ _fvar.691794) Filter.atTop Filter.atTop := ?_mvar.692125⊢ AbsConvergent' fun x => f ↑x All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono athis:Filter.Tendsto (Nat.cast ∘ Subtype.val ∘ _fvar.691794) Filter.atTop Filter.atTop := ?_mvar.692125⊢ EqualCard ↑E' ↑E; All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := ?_mvar.693717this:?_mvar.693782 := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)⊢ Tendsto ({ m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast ∘ Subtype.val ∘ a) atTop (nhds (Sum' f)) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := ?_mvar.693717this:?_mvar.693782 := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)⊢ { m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast ∘ Subtype.val ∘ a = { m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ ι ∘ a) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := ?_mvar.693717this:?_mvar.693782 := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ({ m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast ∘ Subtype.val ∘ a) N = ({ m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ ι ∘ a) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast) N X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := ?_mvar.693717this:?_mvar.693782 := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ∑ x ∈ Icc 0 ↑(a N), f ↑(g x) = ∑ x ∈ Icc 0 N, f ↑(g ↑(a x)) calc _ = ∑ x ∈ .image (Subtype.val ∘ a) (.Icc 0 N), f ↑(g x) := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ∑ x ∈ Icc 0 ↑(a N), f ↑(g x) = ∑ x ∈ image (Subtype.val ∘ a) (Icc 0 N), f ↑(g x) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ∑ x ∈ image (Subtype.val ∘ a) (Icc 0 N), f ↑(g x) = ∑ x ∈ Icc 0 ↑(a N), f ↑(g x); X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ image (Subtype.val ∘ a) (Icc 0 N) ⊆ Icc 0 ↑(a N)X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ∀ x ∈ Icc 0 ↑(a N), x ∉ image (Subtype.val ∘ a) (Icc 0 N) → f ↑(g x) = 0 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ image (Subtype.val ∘ a) (Icc 0 N) ⊆ Icc 0 ↑(a N) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕm:ℕhm:m ∈ image (Subtype.val ∘ a) (Icc 0 N)⊢ m ∈ Icc 0 ↑(a N); X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕm:ℕhm:∃ a_1 ≤ N, ↑(a a_1) = m⊢ m ≤ ↑(a N); X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕn:ℕhn:n ≤ N⊢ ↑(a n) ≤ ↑(a N) All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ∈ Icc 0 ↑(a N)hx':x ∉ image (Subtype.val ∘ a) (Icc 0 N)⊢ f ↑(g x) = 0; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ≤ ↑(a N)hx':∀ x_1 ≤ N, ¬↑(a x_1) = x⊢ f ↑(g x) = 0; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ≤ ↑(a N)hx':f ↑(g x) ≠ 0⊢ ∃ x_1 ≤ N, ↑(a x_1) = x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ≤ ↑(a N)hx':f ↑(g x) ≠ 0n:ℕhn:(ι ∘ a) n = ⟨↑(g x), hx'⟩⊢ ∃ x_1 ≤ N, ↑(a x_1) = x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ≤ ↑(a N)hx':f ↑(g x) ≠ 0n:ℕhn:g ↑(a n) = g x⊢ ∃ x_1 ≤ N, ↑(a x_1) = x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx:ℕhx:x ≤ ↑(a N)hx':f ↑(g x) ≠ 0n:ℕhn:↑(a n) = x⊢ ∃ x_1 ≤ N, ↑(a x_1) = x; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕn:ℕhx:↑(a n) ≤ ↑(a N)hx':f ↑(g ↑(a n)) ≠ 0⊢ ∃ x ≤ N, ↑(a x) = ↑(a n) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕn:ℕhx:↑(a n) ≤ ↑(a N)hx':f ↑(g ↑(a n)) ≠ 0⊢ n ≤ N ∧ ↑(a n) = ↑(a n); All goals completed! 🐙 _ = _ := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ ∑ x ∈ image (Subtype.val ∘ a) (Icc 0 N), f ↑(g x) = ∑ x ∈ Icc 0 N, f ↑(g ↑(a x)) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕ⊢ Set.InjOn (Subtype.val ∘ a) ↑(Icc 0 N) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx₁✝:ℕa✝¹:x₁✝ ∈ ↑(Icc 0 N)x₂✝:ℕa✝:x₂✝ ∈ ↑(Icc 0 N)h:(Subtype.val ∘ a) x₁✝ = (Subtype.val ∘ a) x₂✝⊢ x₁✝ = x₂✝; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':CountablyInfinite ↑E'hinf:Infinite ↑_fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a:ℕ → ↑E'ha_bij:Bijective aha_mono:StrictMono ahconv'':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := Eq.mpr (id (congrArg (fun _a => _a) (Eq.symm (propext (Chapter8.AbsConvergent'.of_countable ((Chapter8.CountablyInfinite.equiv (Exists.intro _fvar.487100 _fvar.487291)).mp _fvar.691347)))))) (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337717)this:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.487100 ∘ _fvar.691794) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq (Function.Bijective.comp _fvar.487291 _fvar.691803) (Chapter8.AbsConvergent.comp (Function.Bijective.comp _fvar.487291 _fvar.691803) _fvar.693718)N:ℕx₁✝:ℕa✝¹:x₁✝ ∈ ↑(Icc 0 N)x₂✝:ℕa✝:x₂✝ ∈ ↑(Icc 0 N)h:a x₁✝ = a x₂✝⊢ x₁✝ = x₂✝; All goals completed! 🐙 -- Коли E' скінченне, ми показуємо, що всі достатньо великі часткові суми A рівні сумі E'. X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166⊢ Sum' f = Sum fun x => f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166⊢ { m := 0, seq := fun n => if n ≥ 0 then ((fun x => f ↑x) ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (Sum' f) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166⊢ Tendsto { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial atTop (nhds (∑ x, f ↑x)) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166⊢ ∀ᶠ (x' : ℤ) in atTop, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial x' = ∑ x, f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166hE'bound:BddAbove _fvar.443024 := Set.Finite.bddAbove _fvar.691352⊢ ∀ᶠ (x' : ℤ) in atTop, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial x' = ∑ x, f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166hE'bound:∃ x, ∀ y ∈ E', y ≤ x⊢ ∀ᶠ (x' : ℤ) in atTop, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial x' = ∑ x, f ↑x; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166N:ℕhN:∀ y ∈ E', y ≤ N⊢ ∀ᶠ (x' : ℤ) in atTop, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial x' = ∑ x, f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166N:ℕhN:∀ y ∈ E', y ≤ N⊢ ∃ a, ∀ b ≥ a, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial b = ∑ x, f ↑x X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166N:ℕhN:∀ y ∈ E', y ≤ N⊢ ∀ b ≥ ↑N, { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial b = ∑ x, f ↑x; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166N:ℕhN:∀ y ∈ E', y ≤ NN':ℤhN':N' ≥ ↑N⊢ { m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.partial N' = ∑ x, f ↑x lift N' to ℕ using (LE.le.trans (X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℤhN':N' ≥ ↑N⊢ 0 ≤ ↑N All goals completed! 🐙) hN') X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := ?_mvar.337839g:ℕ → ↑Ahg:Bijective ghsum:?_mvar.442867 := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ?_mvar.726832hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ?_mvar.727166N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∑ x ∈ Icc 0 N', f ↑(g x) = ∑ x, f ↑x calc _ = ∑ n ∈ E', f (g n) := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∑ x ∈ Icc 0 N', f ↑(g x) = ∑ n ∈ E'.toFinset, f ↑(g n) X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∑ n ∈ E'.toFinset, f ↑(g n) = ∑ x ∈ Icc 0 N', f ↑(g x); X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ E'.toFinset ⊆ Icc 0 N'X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∀ x ∈ Icc 0 N', x ∉ E'.toFinset → f ↑(g x) = 0 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ E'.toFinset ⊆ Icc 0 N' X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'x:ℕhx:x ∈ E'.toFinset⊢ x ∈ Icc 0 N'; X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective gE':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'x:ℕhsum:{ m := 0, seq := fun n => if 0 ≤ n then f ↑(g n.toNat) else 0, vanish := ⋯ }.convergesTo (Sum fun x => f ↑x)hx:x ∈ E'⊢ x ≤ N'; All goals completed! 🐙 X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'x✝:ℕa✝:x✝ ∈ Icc 0 N'hx':x✝ ∉ E'.toFinset⊢ f ↑(g x✝) = 0; All goals completed! 🐙 _ = ∑ n:E', f (g n) := X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∑ n ∈ E'.toFinset, f ↑(g n) = ∑ n, f ↑(g ↑n) All goals completed! 🐙 _ = ∑ n, f (ι n) := sum_congr rfl (X:Typef:X → ℝA:Set XhA:CountablyInfinite ↑AhfA:∀ x ∉ A, f x = 0hconv:AbsConvergent' fhconv':Chapter8.AbsConvergent fun x => @_fvar.337503 ↑x := (Chapter8.AbsConvergent'.of_countable _fvar.337505).mp (Chapter8.AbsConvergent'.subtype _fvar.337507 _fvar.337504)E:Set _fvar.337502 := {x | @_fvar.337503 x ≠ 0}hE:_fvar.337717 ⊆ _fvar.337504 := fun ⦃a⦄ => @id (a ∈ _fvar.337717 → a ∈ _fvar.337504) (Classical.byContradiction (¬@_fvar.337503 a = 0 → a ∈ _fvar.337504) fun this => Exists.casesOn _fvar.337505 fun w h => Exists.casesOn _fvar.337635 fun w_1 h_1 => And.casesOn (id (Eq.mp (Mathlib.Tactic.PushNeg.not_implies_eq (¬@_fvar.337503 a = 0) (a ∈ _fvar.337504)) this)) fun left right => And.casesOn h_1 fun left_1 right_1 => Exists.casesOn right_1 fun w_2 h_1 => False.elim (Eq.mp (Eq.trans (congrArg Not (Eq.trans (congrArg (fun x => x = 0) ((@fun x a => @_fvar.337506 x a) a (of_eq_true (Eq.trans (congrArg Not (eq_false right)) not_false_eq_true)))) (eq_self 0))) not_true_eq_false) left))g:ℕ → ↑Ahg:Bijective ghsum:{ m := 0, seq := fun n => if n ≥ 0 then ((fun x => @_fvar.337503 ↑x) ∘ _fvar.442859) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum fun x => @_fvar.337503 ↑x) := Chapter8.Sum.eq _fvar.442863 (Chapter8.AbsConvergent.comp _fvar.442863 _fvar.337635)E':Set ℕ := {n | ↑(@_fvar.442859 n) ∈ _fvar.337717}ι:↑_fvar.443024 → ↑_fvar.337717 := fun x => match x with | ⟨n, hn⟩ => ⟨↑(@_fvar.442859 n), ⋯⟩hι:Function.Bijective _fvar.487100 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hE':Finite ↑E'hEfin:Finite ↑_fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352hE'fintype:Fintype ↑_fvar.443024 := Fintype.ofFinite ↑_fvar.443024hEfintype:Fintype ↑_fvar.337717 := Fintype.ofFinite ↑_fvar.337717N:ℕhN:∀ y ∈ E', y ≤ NN':ℕhN':N ≤ N'⊢ ∀ x ∈ univ, f ↑(g ↑x) = f ↑(ι x) All goals completed! 🐙) _ = _ := hι.sum_comp (g := fun x ↦ f x)

Зв'язок з властивістю Summable.{u_1, u_2} {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α) : PropSummable Mathlib. Можлива якась версія доказу може бути підходящою для Mathlib?

theorem AbsConvergent'.iff_Summable {X:Type} (f:X → ℝ) : AbsConvergent' f ↔ Summable f := X:Typef:X → ℝ⊢ AbsConvergent' f ↔ Summable f X:Typef:X → ℝ⊢ BddAbove (Set.range fun A => ∑ x ∈ A, |f x|) ↔ Summable fun x => |(|f x|)| X:Typef:X → ℝ⊢ BddAbove (Set.range fun A => ∑ x ∈ A, |f x|) ↔ ∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε classical X:Typef:X → ℝ⊢ BddAbove (Set.range fun A => ∑ x ∈ A, |f x|) → ∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εX:Typef:X → ℝ⊢ (∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε) → BddAbove (Set.range fun A => ∑ x ∈ A, |f x|) X:Typef:X → ℝ⊢ BddAbove (Set.range fun A => ∑ x ∈ A, |f x|) → ∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε X:Typef:X → ℝh:BddAbove (Set.range fun A => ∑ x ∈ A, |f x|)ε:ℝhε:0 < ε⊢ ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove s⊢ ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε have hnon : s.Nonempty := X:Typef:X → ℝ⊢ AbsConvergent' f ↔ Summable f X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove s⊢ (Set.range fun A => ∑ x ∈ A, |f x|).Nonempty; X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove s⊢ (fun A => ∑ x ∈ A, |f x|) ∅ = 0; All goals completed! 🐙 have : (sSup s)-ε < sSup s := X:Typef:X → ℝ⊢ AbsConvergent' f ↔ Summable f All goals completed! 🐙 X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560this:∃ a, sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ a, |f x|⊢ ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε; X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|⊢ ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|⊢ ∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < ε; X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|T:Finset XhT:Disjoint T S⊢ |∑ x ∈ T, |f x|| < ε X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|T:Finset XhT:Disjoint T S⊢ ∑ x ∈ T, |f x| < ε have : ∑ x ∈ T, |f x| + ∑ x ∈ S, |f x| ≤ sSup s := X:Typef:X → ℝ⊢ AbsConvergent' f ↔ Summable f X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|T:Finset XhT:Disjoint T S⊢ ∑ x ∈ T, |f x| + ∑ x ∈ S, |f x| ∈ s X:Typef:X → ℝε:ℝhε:0 < εs:Set ℝ := Set.range fun A => ∑ x ∈ A, |@_fvar.815323 x|h:BddAbove shnon:Set.Nonempty _fvar.829463 := ?_mvar.829560S:Finset XhS:sSup (Set.range fun A => ∑ x ∈ A, |f x|) - ε < ∑ x ∈ S, |f x|T:Finset XhT:Disjoint T S⊢ ∃ y, ∑ x ∈ y, |f x| = ∑ x ∈ T, |f x| + ∑ x ∈ S, |f x|; All goals completed! 🐙 All goals completed! 🐙 X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε⊢ BddAbove (Set.range fun A => ∑ x ∈ A, |f x|); choose S hS using h 1 (X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < ε⊢ 0 < 1 All goals completed! 🐙) X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1⊢ ∃ x, ∀ y ∈ Set.range fun A => ∑ x ∈ A, |f x|, y ≤ x X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1⊢ ∀ y ∈ Set.range fun A => ∑ x ∈ A, |f x|, y ≤ ∑ x ∈ S, |f x| + 1; X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1⊢ ∀ (a : Finset X), ∑ x ∈ a, |f x| ≤ ∑ x ∈ S, |f x| + 1; X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1T:Finset X⊢ ∑ x ∈ T, |f x| ≤ ∑ x ∈ S, |f x| + 1 calc _ = ∑ x ∈ (T ∩ S), |f x| + ∑ x ∈ (T \ S), |f x| := (sum_inter_add_sum_diff _ _ _).symm _ ≤ _ := X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1T:Finset X⊢ ∑ x ∈ T ∩ S, |f x| + ∑ x ∈ T \ S, |f x| ≤ ∑ x ∈ S, |f x| + 1 X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1T:Finset X⊢ T ∩ S ⊆ SX:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1T:Finset X⊢ ∑ x ∈ T \ S, |f x| ≤ 1 X:Typef:X → ℝh:∀ (ε : ℝ), 0 < ε → ∃ s, ∀ (t : Finset X), Disjoint t s → |∑ x ∈ t, |f x|| < εS:Finset XhS:∀ (t : Finset X), Disjoint t S → |∑ x ∈ t, |f x|| < 1T:Finset X⊢ T ∩ S ⊆ S All goals completed! 🐙 All goals completed! 🐙

Можливо, підходить для перенесення в Mathlib?

theorem Filter.Eventually.int_natCast_atTop (p: ℤ → Prop) : (∀ᶠ n in .atTop, p n) ↔ ∀ᶠ n:ℕ in .atTop, p ↑n := p:ℤ → Prop⊢ (∀ᶠ (n : ℤ) in atTop, p n) ↔ ∀ᶠ (n : ℕ) in atTop, p ↑n p:ℤ → Prop⊢ (∀ᶠ (n : ℕ) in atTop, p ↑n) → ∀ᶠ (n : ℤ) in atTop, p n p:ℤ → Prop⊢ ∀ (x : ℕ), (∀ (b : ℕ), x ≤ b → p ↑b) → ∃ a, ∀ (b : ℤ), a ≤ b → p b p:ℤ → PropN:ℕhN:∀ (b : ℕ), N ≤ b → p ↑b⊢ ∃ a, ∀ (b : ℤ), a ≤ b → p b; p:ℤ → PropN:ℕhN:∀ (b : ℕ), N ≤ b → p ↑b⊢ ∀ (b : ℤ), ↑N ≤ b → p b; p:ℤ → PropN:ℕhN:∀ (b : ℕ), N ≤ b → p ↑bn:ℤhn:↑N ≤ n⊢ p n lift n to ℕ using (p:ℤ → PropN:ℕhN:∀ (b : ℕ), N ≤ b → p ↑bn:ℤhn:↑N ≤ n⊢ 0 ≤ n All goals completed! 🐙) p:ℤ → PropN:ℕhN:∀ (b : ℕ), N ≤ b → p ↑bn:ℕhn:N ≤ n⊢ p ↑n; All goals completed! 🐙
theorem Filter.Tendsto.int_natCast_atTop {R:Type} (f: ℤ → R) (l: Filter R) : atTop.Tendsto f l ↔ atTop.Tendsto (f ∘ Nat.cast) l := R:Typef:ℤ → Rl:Filter R⊢ Tendsto f atTop l ↔ Tendsto (f ∘ Nat.cast) atTop l R:Typef:ℤ → Rl:Filter R⊢ (∀ ⦃p : R → Prop⦄, (∀ᶠ (y : R) in l, p y) → ∃ a, ∀ (b : ℤ), a ≤ b → p (f b)) ↔ ∀ ⦃p : R → Prop⦄, (∀ᶠ (y : R) in l, p y) → ∃ a, ∀ (b : ℕ), a ≤ b → p (f ↑b) R:Typef:ℤ → Rl:Filter Rp:R → Proph:∀ᶠ (y : R) in l, p y⊢ (∃ a, ∀ (b : ℤ), a ≤ b → p (f b)) ↔ ∃ a, ∀ (b : ℕ), a ≤ b → p (f ↑b) R:Typef:ℤ → Rl:Filter Rp:R → Proph:∀ᶠ (y : R) in l, p y⊢ (∀ᶠ (x : ℤ) in atTop, p (f x)) ↔ ∀ᶠ (x : ℕ) in atTop, p (f ↑x) All goals completed! 🐙

Зв'язок з операцією tsum.{u_4, u_5} {α : Type u_4} [AddCommMonoid α] [TopologicalSpace α] {β : Type u_5} (f : β → α) : αtsum (або ) Mathlib.

theorem Sum'.eq_tsum {X:Type} (f:X → ℝ) (h: AbsConvergent' f) : Sum' f = ∑' x, f x := X:Typef:X → ℝh:AbsConvergent' f⊢ Sum' f = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}⊢ Sum' f = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}⊢ Sum' f = ∑' (x : X), f xX:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ Sum' f = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}⊢ Sum' f = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}⊢ (Sum fun x => f ↑x) = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective g⊢ (Sum fun x => f ↑x) = ∑' (x : X), f x have : ((f ∘ Subtype.val) ∘ g:Series).absConverges := X:Typef:X → ℝh:AbsConvergent' f⊢ Sum' f = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective g⊢ AbsConvergent (f ∘ Subtype.val) X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective g⊢ AbsConvergent' (f ∘ Subtype.val) All goals completed! 🐙 X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:?_mvar.912776 := Chapter8.Sum.eq _fvar.901542 _fvar.901675⊢ (Sum fun x => f ↑x) = ∑' (x : X), f x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:?_mvar.912776 := Chapter8.Sum.eq _fvar.901542 _fvar.901675⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (∑' (x : X), f x) replace : ∑' x, f x = ∑' n, f (g n) := calc _ = ∑' x:E, f x := X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:{ m := 0, seq := fun n => if n ≥ 0 then ((_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0}) ∘ _fvar.901538) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum (_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0})) := Chapter8.Sum.eq _fvar.901542 _fvar.901675⊢ ∑' (x : X), f x = ∑' (x : ↑E), f ↑x X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:{ m := 0, seq := fun n => if n ≥ 0 then ((_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0}) ∘ _fvar.901538) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum (_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0})) := Chapter8.Sum.eq _fvar.901542 _fvar.901675⊢ ∑' (x : ↑Set.univ), f ↑x = ∑' (x : ↑E), f ↑x have hcompl : E = .univ \ {x | f x = 0 } := X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:{ m := 0, seq := fun n => if n ≥ 0 then ((_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0}) ∘ _fvar.901538) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum (_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0})) := Chapter8.Sum.eq _fvar.901542 _fvar.901675⊢ ∑' (x : X), f x = ∑' (x : ↑E), f ↑x All goals completed! 🐙 convert (tsum_setElem_eq_tsum_setElem_diff _ {x | f x = 0} (X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:{ m := 0, seq := fun n => if n ≥ 0 then ((_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0}) ∘ _fvar.901538) n.toNat else 0, vanish := ⋯ }.convergesTo (Chapter8.Sum (_fvar.898928 ∘ @Subtype.val _fvar.898927 fun x => x ∈ {x | @_fvar.898928 x ≠ 0})) := Chapter8.Sum.eq _fvar.901542 _fvar.901675hcompl:_fvar.898983 = Set.univ \ {x | @_fvar.898928 x = 0} := id (Exists.casesOn (id _fvar.899083) fun w h_1 => Set.ext fun x => of_eq_true (Eq.trans (congrArg (Iff ¬@_fvar.898928 x = 0) (Eq.trans (Set.mem_diff._simp_1 x) (Eq.trans (congrArg (fun x_1 => x_1 ∧ ¬@_fvar.898928 x = 0) (Set.mem_univ._simp_1 x)) (true_and ¬@_fvar.898928 x = 0)))) (iff_self ¬@_fvar.898928 x = 0)))⊢ ∀ b ∈ {x | f x = 0}, ?m.438 b = 0 All goals completed! 🐙)) _ = _ := (Equiv.tsum_eq (Equiv.ofBijective _ hg) _).symm X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.convergesTo (∑' (n : ℕ), f ↑(g n)) X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ Tendsto { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.partial atTop (nhds (∑' (n : ℕ), f ↑(g n))); X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ Tendsto ({ m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast) atTop (nhds (∑' (n : ℕ), f ↑(g n))) X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast = (fun n => ∑ i ∈ range n, f ↑(g i)) ∘ fun a => a + 1X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ Summable fun n => f ↑(g n) X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯⊢ { m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast = (fun n => ∑ i ∈ range n, f ↑(g i)) ∘ fun a => a + 1 X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : _fvar.898927), @_fvar.898928 x = ∑' (n : ℕ), @_fvar.898928 ↑(@_fvar.901538 n) := Trans.trans ?_mvar.916719 ⋯N:ℕ⊢ ({ m := 0, seq := fun n => if n ≥ 0 then ((f ∘ Subtype.val) ∘ g) n.toNat else 0, vanish := ⋯ }.partial ∘ Nat.cast) N = ((fun n => ∑ i ∈ range n, f ↑(g i)) ∘ fun a => a + 1) N; All goals completed! 🐙 X:Typef:X → ℝh:Summable fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:CountablyInfinite ↑{x | f x ≠ 0}g:ℕ → ↑{x | f x ≠ 0}hg:Bijective gthis:∑' (x : X), f x = ∑' (n : ℕ), f ↑(g n)⊢ Summable fun n => f ↑(g n) All goals completed! 🐙 X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∑ x ∈ ⋯.toFinset, f x = ∑' (x : X), f xX:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∀ x ∉ ⋯.toFinset, f x = 0; X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∑' (x : X), f x = ∑ x ∈ ⋯.toFinset, f xX:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∀ x ∉ ⋯.toFinset, f x = 0; X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∀ b ∉ ⋯.toFinset, f b = 0X:Typef:X → ℝh:AbsConvergent' fE:Set _fvar.898927 := {x | @_fvar.898928 x ≠ 0}hE:Finite ↑{x | f x ≠ 0}⊢ ∀ x ∉ ⋯.toFinset, f x = 0 all_goals All goals completed! 🐙

Твердження 8.2.6 (a) (Закони для абсолютно збіжних рядів) / Вправа 8.2.3

theorem declaration uses 'sorry'Sum'.add {X:Type} {f g:X → ℝ} (hf: AbsConvergent' f) (hg: AbsConvergent' g) : AbsConvergent' (f+g) ∧ Sum' (f + g) = Sum' f + Sum' g := X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ AbsConvergent' (f + g) ∧ Sum' (f + g) = Sum' f + Sum' g All goals completed! 🐙

Твердження 8.2.6 (b) (Закони для абсолютно збіжних рядів) / Вправа 8.2.3

theorem declaration uses 'sorry'Sum'.smul {X:Type} {f:X → ℝ} (hf: AbsConvergent' f) (c: ℝ) : AbsConvergent' (c • f) ∧ Sum' (c • f) = c * Sum' f := X:Typef:X → ℝhf:AbsConvergent' fc:ℝ⊢ AbsConvergent' (c • f) ∧ Sum' (c • f) = c * Sum' f All goals completed! 🐙

Цей закон не вказаний явно в Твердженні 8.2.6, але легко випливає з частин (a) та (b).

theorem Sum'.sub {X:Type} {f g:X → ℝ} (hf: AbsConvergent' f) (hg: AbsConvergent' g) : AbsConvergent' (f-g) ∧ Sum' (f - g) = Sum' f - Sum' g := X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ AbsConvergent' (f - g) ∧ Sum' (f - g) = Sum' f - Sum' g X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ f - g = f + -1 • gX:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ Sum' (f - g) = Sum' (f + -1 • g)X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ Sum' f - Sum' g = Sum' f + Sum' (-1 • g) X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ f - g = f + -1 • g X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ f - g = f + -g; All goals completed! 🐙 X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ Sum' (f - g) = Sum' (f + -1 • g) X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ f - g = f + -1 • g; X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ f - g = f + -g; All goals completed! 🐙 X:Typef:X → ℝg:X → ℝhf:AbsConvergent' fhg:AbsConvergent' g⊢ Sum' f - Sum' g = Sum' f + -1 * Sum' g; All goals completed! 🐙

Твердження 8.2.6 (c) (Закони для абсолютно збіжних рядів) / Вправа 8.2.3. Перша частина цього твердження була переміщена до Chapter8.AbsConvergent'.subtype {X : Type} {f : X → ℝ} (hf : AbsConvergent' f) (A : Set X) : AbsConvergent' fun x => f ↑xAbsConvergent'.subtype.

theorem declaration uses 'sorry'Sum'.of_disjoint_union {X:Type} {f:X → ℝ} (hf: AbsConvergent' f) {X₁ X₂ : Set X} (hdisj: Disjoint X₁ X₂): Sum' (fun x: (X₁ ∪ X₂: Set X) ↦ f x) = Sum' (fun x : X₁ ↦ f x) + Sum' (fun x : X₂ ↦ f x) := X:Typef:X → ℝhf:AbsConvergent' fX₁:Set XX₂:Set Xhdisj:Disjoint X₁ X₂⊢ (Sum' fun x => f ↑x) = (Sum' fun x => f ↑x) + Sum' fun x => f ↑x All goals completed! 🐙

Це технічне твердження, аналог tsum_univ.{u_1, u_2} {α : Type u_1} {β : Type u_2} [AddCommMonoid α] [TopologicalSpace α] (f : β → α) : ∑' (x : ↑Set.univ), f ↑x = ∑' (x : β), f xtsum_univ, необхідне через те, як Mathlib обробляє множини.

theorem declaration uses 'sorry'Sum'.of_univ {X:Type} {f:X → ℝ} (hf: AbsConvergent' f) : Sum' (fun x: (.univ : Set X) ↦ f x) = Sum' f := X:Typef:X → ℝhf:AbsConvergent' f⊢ (Sum' fun x => f ↑x) = Sum' f All goals completed! 🐙
theorem declaration uses 'sorry'Sum'.of_comp {X Y:Type} {f:X → ℝ} (hf: AbsConvergent' f) {φ: Y → X} (hφ: Function.Bijective φ) : AbsConvergent' (f ∘ φ) ∧ Sum' f = Sum' (f ∘ φ) := X:TypeY:Typef:X → ℝhf:AbsConvergent' fφ:Y → Xhφ:Bijective φ⊢ AbsConvergent' (f ∘ φ) ∧ Sum' f = Sum' (f ∘ φ) All goals completed! 🐙

Лема 8.2.7 / Вправа 8.2.4

theorem declaration uses 'sorry'divergent_parts_of_divergent {a: ℕ → ℝ} (ha: (a:Series).converges) (ha': ¬ (a:Series).absConverges) : ¬ AbsConvergent (fun n : {n | a n ≥ 0} ↦ a n) ∧ ¬ AbsConvergent (fun n : {n | a n < 0} ↦ a n) := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges⊢ (¬AbsConvergent fun n => a ↑n) ∧ ¬AbsConvergent fun n => a ↑n All goals completed! 🐙

Теорема 8.2.8 (Теорема Рімана про перестановку) / Вправа 8.2.5

theorem declaration uses 'sorry'permute_convergesTo_of_divergent {a: ℕ → ℝ} (ha: (a:Series).converges) (ha': ¬ (a:Series).absConverges) (L:ℝ) : ∃ f : ℕ → ℕ, Bijective f ∧ (a ∘ f:Series).convergesTo L := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L -- Доведення написане так, щоб відповідати структурі оригінального тексту. a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝh1:¬AbsConvergent fun n => a ↑nh2:¬AbsConvergent fun n => a ↑n⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝh2:¬AbsConvergent fun n => a ↑nA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑n⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑n⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L have hdisj : Disjoint A_plus A_minus := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑n⊢ A_plus ∩ A_minus = ∅; a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nx✝:ℕ⊢ x✝ ∈ A_plus ∩ A_minus ↔ x✝ ∈ ∅; All goals completed! 🐙 have hunion : A_plus ∪ A_minus = .univ := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800x✝:ℕ⊢ x✝ ∈ A_plus ∪ A_minus ↔ x✝ ∈ Set.univ; a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800x✝:ℕ⊢ 0 ≤ a x✝ ∨ a x✝ < 0; All goals completed! 🐙 a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorry⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorry⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plus⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minus⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L let F : (n : ℕ) → ((m : ℕ) → m < n → ℕ) → ℕ := fun j n' ↦ if ∑ i:Fin j, n' i (a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty))) (Set.ext fun x => of_eq_true (Eq.trans (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∩ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_inter_iff._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_empty_iff_false._simp_1 x)) (iff_false (0 ≤ @_fvar.1026119 x ∧ @_fvar.1026119 x < 0))) (Eq.trans not_and._simp_1 (Eq.trans (implies_congr (Eq.refl (0 ≤ @_fvar.1026119 x)) not_lt._simp_1) imp_self._simp_1))))hunion:_fvar.1026204 ∪ _fvar.1026357 = Set.univ := Set.ext fun x => Eq.mpr (id (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∪ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_union._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_univ._simp_1 x)) (iff_true (0 ≤ @_fvar.1026119 x ∨ @_fvar.1026119 x < 0)))) (Chapter8.permute_convergesTo_of_divergent._proof_1 _fvar.1026120 _fvar.1026121 _fvar.1026122 _fvar.1026274 _fvar.1026428 _fvar.1026801 x)hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusj:ℕn':(m : ℕ) → m < j → ℕi:Fin j⊢ ↑i < j All goals completed! 🐙) > L then Nat.min { n ∈ A_plus | ∀ i:Fin j, n ≠ n' i (a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty))) (Set.ext fun x => of_eq_true (Eq.trans (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∩ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_inter_iff._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_empty_iff_false._simp_1 x)) (iff_false (0 ≤ @_fvar.1026119 x ∧ @_fvar.1026119 x < 0))) (Eq.trans not_and._simp_1 (Eq.trans (implies_congr (Eq.refl (0 ≤ @_fvar.1026119 x)) not_lt._simp_1) imp_self._simp_1))))hunion:_fvar.1026204 ∪ _fvar.1026357 = Set.univ := Set.ext fun x => Eq.mpr (id (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∪ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_union._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_univ._simp_1 x)) (iff_true (0 ≤ @_fvar.1026119 x ∨ @_fvar.1026119 x < 0)))) (Chapter8.permute_convergesTo_of_divergent._proof_1 _fvar.1026120 _fvar.1026121 _fvar.1026122 _fvar.1026274 _fvar.1026428 _fvar.1026801 x)hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusj:ℕn':(m : ℕ) → m < j → ℕn:ℕi:Fin j⊢ ↑i < j All goals completed! 🐙) } else Nat.min { n ∈ A_minus | ∀ i:Fin j, n ≠ n' i (a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := Eq.mpr (id (congrArg (fun _a => _a) (propext Set.disjoint_iff_inter_eq_empty))) (Set.ext fun x => of_eq_true (Eq.trans (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∩ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_inter_iff._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_empty_iff_false._simp_1 x)) (iff_false (0 ≤ @_fvar.1026119 x ∧ @_fvar.1026119 x < 0))) (Eq.trans not_and._simp_1 (Eq.trans (implies_congr (Eq.refl (0 ≤ @_fvar.1026119 x)) not_lt._simp_1) imp_self._simp_1))))hunion:_fvar.1026204 ∪ _fvar.1026357 = Set.univ := Set.ext fun x => Eq.mpr (id (Eq.trans (congr (congrArg Iff (Eq.trans (congrArg (fun x_1 => x ∈ setOf x_1 ∪ {n | @_fvar.1026119 n < 0}) (funext fun n => ge_iff_le._simp_1)) (Set.mem_union._simp_1 x {n | 0 ≤ @_fvar.1026119 n} {n | @_fvar.1026119 n < 0}))) (Set.mem_univ._simp_1 x)) (iff_true (0 ≤ @_fvar.1026119 x ∨ @_fvar.1026119 x < 0)))) (Chapter8.permute_convergesTo_of_divergent._proof_1 _fvar.1026120 _fvar.1026121 _fvar.1026122 _fvar.1026274 _fvar.1026428 _fvar.1026801 x)hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusj:ℕn':(m : ℕ) → m < j → ℕn:ℕi:Fin j⊢ ↑i < j All goals completed! 🐙) } a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusF:(n : ℕ) → ((m : ℕ) → m < n → ℕ) → ℕ := fun j n' => if ↑(∑ i, n' (↑i) (@?_mvar.1043774 j n' i)) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043775 j n' n i)} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043776 j n' n i)}n':ℕ → ℕ := fun t => Nat.strongRec ?_mvar.1044271 t⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusF:(n : ℕ) → ((m : ℕ) → m < n → ℕ) → ℕ := fun j n' => if ↑(∑ i, n' (↑i) (@?_mvar.1043774 j n' i)) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043775 j n' n i)} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043776 j n' n i)}n':ℕ → ℕ := fun t => Nat.strongRec ?_mvar.1044271 thn':∀ (j : ℕ), @_fvar.1044277 j = if ↑(∑ i, @_fvar.1044277 ↑i) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => Nat.strongRec.eq_def _fvar.1043783 j⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L have hn'_plus_inf (j:ℕ) : Infinite { n ∈ A_plus | ∀ i:Fin j, n ≠ n' i } := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have hn'_minus_inf (j:ℕ) : Infinite { n ∈ A_minus | ∀ i:Fin j, n ≠ n' i } := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have hn'_inj : Injective n' := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have h_case_I : Infinite { j | ∑ i:Fin j, n' i > L } := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have h_case_II : Infinite { j | ∑ i:Fin j, n' i ≤ L } := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have hn'_surj : Surjective n' := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have hconv : atTop.Tendsto (a ∘ n') (nhds 0) := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 have hsum : (a ∘ n':Series).convergesTo L := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝ⊢ ∃ f, Bijective f ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.convergesTo L All goals completed! 🐙 a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusF:(n : ℕ) → ((m : ℕ) → m < n → ℕ) → ℕ := fun j n' => if ↑(∑ i, n' (↑i) (@?_mvar.1043774 j n' i)) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043775 j n' n i)} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043776 j n' n i)}n':ℕ → ℕ := fun t => Nat.strongRec ?_mvar.1044271 thn':∀ (j : ℕ), @_fvar.1044277 j = if ↑(∑ i, @_fvar.1044277 ↑i) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => Nat.strongRec.eq_def _fvar.1043783 jhn'_plus_inf:∀ (j : ℕ), Infinite ↑{n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => @?_mvar.1046513 jhn'_minus_inf:∀ (j : ℕ), Infinite ↑{n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => @?_mvar.1046904 jhn'_inj:Function.Injective _fvar.1044277 := ?_mvar.1046918h_case_I:Infinite ↑{j | ↑(∑ i, @_fvar.1044277 ↑i) > _fvar.1026122} := ?_mvar.1048400h_case_II:Infinite ↑{j | ↑(∑ i, @_fvar.1044277 ↑i) ≤ _fvar.1026122} := ?_mvar.1049879hn'_surj:Function.Surjective _fvar.1044277 := ?_mvar.1049893hconv:Filter.Tendsto (_fvar.1026119 ∘ _fvar.1044277) Filter.atTop (nhds 0) := ?_mvar.1050114hsum:{ m := 0, seq := fun n => if n ≥ 0 then (_fvar.1026119 ∘ _fvar.1044277) n.toNat else 0, vanish := ⋯ }.convergesTo _fvar.1026122 := ?_mvar.1050209⊢ Bijective n' ∧ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ n') n.toNat else 0, vanish := ⋯ }.convergesTo L a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConvergesL:ℝA_plus:Set ℕ := {n | @_fvar.1026119 n ≥ 0}h1:¬AbsConvergent fun n => a ↑nA_minus:Set ℕ := {n | @_fvar.1026119 n < 0}h2:¬AbsConvergent fun n => a ↑nhdisj:Disjoint _fvar.1026204 _fvar.1026357 := ?_mvar.1026800hunion:_fvar.1026204 ∪ _fvar.1026357 = ?_mvar.1031781 := ?_mvar.1031786hA_plus_inf:Infinite ↑_fvar.1026204 := sorryhA_minus_inf:Infinite ↑_fvar.1026357 := sorrya_plus:ℕ → ↑A_plusha_plus_bij:Bijective a_plusha_plus_mono:StrictMono a_plusa_minus:ℕ → ↑A_minusha_minus_bij:Bijective a_minusha_minus_mono:StrictMono a_minusF:(n : ℕ) → ((m : ℕ) → m < n → ℕ) → ℕ := fun j n' => if ↑(∑ i, n' (↑i) (@?_mvar.1043774 j n' i)) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043775 j n' n i)} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ n' (↑i) (@?_mvar.1043776 j n' n i)}n':ℕ → ℕ := fun t => Nat.strongRec ?_mvar.1044271 thn':∀ (j : ℕ), @_fvar.1044277 j = if ↑(∑ i, @_fvar.1044277 ↑i) > _fvar.1026122 then Chapter8.Nat.min {n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} else Chapter8.Nat.min {n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => Nat.strongRec.eq_def _fvar.1043783 jhn'_plus_inf:∀ (j : ℕ), Infinite ↑{n | n ∈ _fvar.1026204 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => @?_mvar.1046513 jhn'_minus_inf:∀ (j : ℕ), Infinite ↑{n | n ∈ _fvar.1026357 ∧ ∀ (i : Fin j), n ≠ @_fvar.1044277 ↑i} := fun j => @?_mvar.1046904 jhn'_inj:Function.Injective _fvar.1044277 := ?_mvar.1046918h_case_I:Infinite ↑{j | ↑(∑ i, @_fvar.1044277 ↑i) > _fvar.1026122} := ?_mvar.1048400h_case_II:Infinite ↑{j | ↑(∑ i, @_fvar.1044277 ↑i) ≤ _fvar.1026122} := ?_mvar.1049879hn'_surj:Function.Surjective _fvar.1044277 := ?_mvar.1049893hconv:Filter.Tendsto (_fvar.1026119 ∘ _fvar.1044277) Filter.atTop (nhds 0) := ?_mvar.1050114hsum:{ m := 0, seq := fun n => if n ≥ 0 then (_fvar.1026119 ∘ _fvar.1044277) n.toNat else 0, vanish := ⋯ }.convergesTo _fvar.1026122 := ?_mvar.1050209⊢ { m := 0, seq := fun n => if n ≥ 0 then (a ∘ n') n.toNat else 0, vanish := ⋯ }.convergesTo L; All goals completed! 🐙

Вправа 8.2.6

theorem declaration uses 'sorry'permute_diverges_of_divergent {a: ℕ → ℝ} (ha: (a:Series).converges) (ha': ¬ (a:Series).absConverges) : ∃ f : ℕ → ℕ, Bijective f ∧ atTop.Tendsto (fun N ↦ ((a ∘ f:Series).partial N : EReal)) (nhds ⊤) := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges⊢ ∃ f, Bijective f ∧ Tendsto (fun N => ↑({ m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.partial N)) atTop (nhds ⊤) All goals completed! 🐙
theorem declaration uses 'sorry'permute_diverges_of_divergent' {a: ℕ → ℝ} (ha: (a:Series).converges) (ha': ¬ (a:Series).absConverges) : ∃ f : ℕ → ℕ, Bijective f ∧ atTop.Tendsto (fun N ↦ ((a ∘ f:Series).partial N : EReal)) (nhds ⊥) := a:ℕ → ℝha:{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.convergesha':¬{ m := 0, seq := fun n => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges⊢ ∃ f, Bijective f ∧ Tendsto (fun N => ↑({ m := 0, seq := fun n => if n ≥ 0 then (a ∘ f) n.toNat else 0, vanish := ⋯ }.partial N)) atTop (nhds ⊥) All goals completed! 🐙end Chapter8