Аналіз 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 := }.absConvergesAbsConvergent 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 fFalse; 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 := }.absConvergesFalse 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 := }.absConvergesFalse; 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 := }.absConvergesInfinite ; 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 gAbsConvergent (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 := }.absConvergesAbsConvergent (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 gAbsConvergent (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.37532AbsConvergent (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 gAbsConvergent (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 Nn N n = n; All goals completed! 🐙 N:w✝:left✝:w✝ N0 w✝ w✝ N; All goals completed! 🐙theorem Finset.Icc_empty {N:} (h: ¬ N 0) : Icc 0 N = := N:h:¬N 0Icc 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✝¹ NN 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 m0 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 m0 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 m0 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 m0 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 00 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 n0 (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 n0 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 n0 (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ε::ε > 0L - ε { 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ε::ε > 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ε::ε > 0X:Finset ( × )hX: p X, f p L - εN:M:hX':X Icc 0 N ×ˢ Icc 0 ML - ε { 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)ε::ε > 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)ε::ε > 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)ε::ε > 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)ε::ε > 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)ε::ε > 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)ε::ε > 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 mfplus (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 m0 = ({ 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 mfplus (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 m0 = ({ 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 := }.absConvergesSum 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 00 = ({ 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 00 = ({ 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):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):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):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 := }.absConvergesSum f = Sum (f π)f: × hf:AbsConvergent fπ: × × := fun p => (p.2, p.1):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 := }.absConvergesAbsConvergent (f π) f: × hf:AbsConvergent fπ: × × := fun p => (p.2, p.1):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 := }.absConvergesSum f = Sum (f π) All goals completed! 🐙 f: × hf:AbsConvergent fπ: × × := fun p => (p.2, p.1):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.273409AbsConvergent' 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' fAbsConvergent f; X:TypehX:CountablyInfinite Xf:X hf: x, (a : Finset X), x a, |f x| xAbsConvergent f; X:TypehX:CountablyInfinite Xf:X L:hL: (a : Finset X), x a, |f x| LAbsConvergent f X:TypehX:CountablyInfinite Xf:X L:hL: (a : Finset X), x a, |f x| Lg: Xhg:Bijective gAbsConvergent 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 0N < { 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 00 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 00 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 00 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 00 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 fAbsConvergent' 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' fAtMostCountable {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 XAbsConvergent' 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.univz (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 = 0Sum' 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 = 0Sum' 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✝:Xa✝ 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 = 0Sum' 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✝:Xa✝ 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✝ AFalse; 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 gSum' 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 : 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), :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), :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), :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), :Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite E'hinf:Infinite _fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347Sum' 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), :Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite E'hinf:Infinite _fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a: E'ha_bij:Bijective aha_mono:StrictMono aSum' 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), :Function.Bijective _fvar.487100 := ?_mvar.487290hE':CountablyInfinite E'hinf:Infinite _fvar.443024 := Chapter8.CountablyInfinite.toInfinite _fvar.691347a: E'ha_bij:Bijective aha_mono:StrictMono aStrictMono (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), :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), :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.692125Tendsto ({ 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), :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.692125AbsConvergent' 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), :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.692125CountablyInfinite 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), :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.692125AbsConvergent' 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), :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.692125EqualCard 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), :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), :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), :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), :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), :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), :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), :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), :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), :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), :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), :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) = mm (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), :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), :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), :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) = xf (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), :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), :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), :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), :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), :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), :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)) 0n 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), :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), :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), :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), :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), :Function.Bijective _fvar.487100 := ?_mvar.487290hE':Finite E'hEfin:Finite _fvar.337717 := (Function.Bijective.finite_iff _fvar.487291).mp _fvar.691352Sum' 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), :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.726832Sum' 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), :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.727166Sum' 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), :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), :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.727166Tendsto { 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), :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), :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), :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), :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), :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), :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), :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), :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' N0 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), :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), :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), :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), :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), :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), :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), :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'.toFinsetx 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), :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), :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'.toFinsetf (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), :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), :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! 🐙) _ = _ := .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|)ε::0 < ε s, (t : Finset X), Disjoint t s | x t, |f x|| < ε X:Typef:X ε::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 ε::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 ε::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 ε::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 ε::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 ε::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 ε::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 ε::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 ε::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 ε::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 XT 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 XT 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 np n lift n to using (p: PropN:hN: (b : ), N b p bn:hn:N n0 n All goals completed! 🐙) p: PropN:hN: (b : ), N b p bn:hn:N np 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 RTendsto 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' fSum' 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' fSum' 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 gAbsConvergent (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 gAbsConvergent' (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' gAbsConvergent' (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' gAbsConvergent' (f - g) Sum' (f - g) = Sum' f - Sum' g X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gf - g = f + -1 gX:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gSum' (f - g) = Sum' (f + -1 g)X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gSum' f - Sum' g = Sum' f + Sum' (-1 g) X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gf - g = f + -1 g X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gf - g = f + -g; All goals completed! 🐙 X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gSum' (f - g) = Sum' (f + -1 g) X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gf - g = f + -1 g; X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gf - g = f + -g; All goals completed! 🐙 X:Typef:X g:X hf:AbsConvergent' fhg:AbsConvergent' gSum' 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} (: Function.Bijective φ) : AbsConvergent' (f φ) Sum' f = Sum' (f φ) := X:TypeY:Typef:X hf:AbsConvergent' fφ:Y X: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 nA_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 ji < 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 ji < 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 ji < 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.1050209Bijective 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