Analysis I, Section 7.4: Rearrangement of series

I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.

Main constructions and results of this section:

namespace Chapter7theorem Series.sum_eq_sum (b: ) {N:} (hN: N 0) : n .Icc 0 N, (if 0 n then b n.toNat else 0) = n .Iic N.toNat, b n := b: N:hN:N 0(∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n convert Finset.sum_image (g := Int.ofNat) (b: N:hN:N 0Set.InjOn Int.ofNat ?m.42 All goals completed! 🐙) b: N:hN:N 0x:x Finset.Icc 0 N x Finset.image Int.ofNat (Finset.Iic N.toNat); b: N:hN:N 0x:0 x x N a N.toNat, a = x; b: N:hN:N 0x:0 x x N a N.toNat, a = xb: N:hN:N 0x:(∃ a N.toNat, a = x) 0 x x N b: N:hN:N 0x:0 x x N a N.toNat, a = x b: N:hN:N 0x:left✝:0 xright✝:x N a N.toNat, a = x; b: N:hN:N 0x:left✝:0 xright✝:x Nx.toNat N.toNat x.toNat = x; All goals completed! 🐙 All goals completed! 🐙

Proposition 7.4.1

theorem Series.converges_of_permute_nonneg {a: } (ha: (a:Series).nonneg) (hconv: (a:Series).converges) {f: } (hf: Function.Bijective f) : (fun n a (f n) : Series).converges (a:Series).sum = (fun n a (f n) : Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum -- This proof is written to follow the structure of the original text. a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n){ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum have haf : (af:Series).nonneg := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq n 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:h:n 0{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq n 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:h:¬n 0{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq n 0 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:h:n 0{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq n 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:h:¬n 0{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq n 0 All goals completed! 🐙 a: hconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)n:h:n 0ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq (f n.toNat) 00 a (f n.toNat); All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partial{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partial{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.suma: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604(∃ Q, (M : ), T M Q) L = L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum have Ssum : L = (a:Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = L; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesTo L; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Filter.Tendsto { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial Filter.atTop (nhds (iSup S)) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'(Set.range S).Nonemptya: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'BddAbove (Set.range S) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'(Set.range S).Nonempty a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'S 0 Set.range S; All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097this:(∃ Q, (M : ), T M Q) L = L'Q:hQ: (N : ), S N QBddAbove (Set.range S); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097this:(∃ Q, (M : ), T M Q) L = L'Q:hQ: (N : ), S N QQ upperBounds (Set.range S); All goals completed! 🐙 have Tsum : L' = (af:Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum = L'; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912Filter.Tendsto { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial Filter.atTop (nhds (iSup T)) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912(Set.range T).Nonemptya: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912BddAbove (Set.range T) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912(Set.range T).Nonempty a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912T 0 Set.range T; All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912Q:hQ: (M : ), T M QBddAbove (Set.range T); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912Q:hQ: (M : ), T M QQ upperBounds (Set.range T); All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604this:(∃ Q, (M : ), T M Q) L = L'Ssum:_fvar.20577 = { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.sum := ?_mvar.20912Tsum:_fvar.20708 = { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.sum := ?_mvar.122064 M, (N : ), { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial N M All goals completed! 🐙 have hTL (M:) : T M L := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0T M La: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:¬M 0T M L a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:¬M 0T M La: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0T M L a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:¬M 0T M L have hM' : M < 0 := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:¬M 0hM':_fvar.247761 < 0 := ?_mvar.2478870 L a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:¬M 0hM':_fvar.247761 < 0 := ?_mvar.247887BddAbove (Set.range S) All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)T M L have hN : N, m Y, f m N := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761) m Y, f m (Finset.image f Y).sup id; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)m:hm:m Yf m (Finset.image f Y).sup id a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)m:hm:m Yf m Finset.image f Y; All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NT M L calc _ = m Y, af m := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NT M = m Y, af m a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N(∑ n Finset.Icc 0 M, if 0 n then a (f n.toNat) else 0) = n Y, a (f n); All goals completed! 🐙 _ = n f '' Y, a n := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N m Y, af m = n (f '' Y).toFinset, a n a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N n (f '' Y).toFinset, a n = m Y, af m; convert Finset.sum_image (a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NSet.InjOn ?m.631 ?m.630 All goals completed! 🐙); All goals completed! 🐙 _ n .Iic N, a n := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N n (f '' Y).toFinset, a n n Finset.Iic N, a n a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N(f '' Y).toFinset Finset.Iic Na: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N i Finset.Iic N, i (f '' Y).toFinset 0 a i a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N(f '' Y).toFinset Finset.Iic N a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m Na✝¹:a✝:a✝¹ (f '' Y).toFinseta✝¹ Finset.Iic N; All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m Ni:a✝¹:i Finset.Iic Na✝:i (f '' Y).toFinset0 a i; a: hconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m Ni:a✝¹:i Finset.Iic Na✝:i (f '' Y).toFinsetha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq i 00 a i; All goals completed! 🐙 _ = S N := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N n Finset.Iic N, a n = S N a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N n Finset.Iic N, a n = n Finset.Icc 0 N, if 0 n then a n.toNat else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m N(∑ n Finset.Icc 0 N, if 0 n then a n.toNat else 0) = n Finset.Iic N, a n; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NN 0; All goals completed! 🐙 _ L := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NS N L a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604M:hM:M 0Y:Finset := Finset.Iic (Int.toNat _fvar.247761)N:hN: m Y, f m NBddAbove (Set.range S); All goals completed! 🐙 have hTbound : Q, M, T M Q := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508L = L' have hSL' (N:) : S N L' := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0S N L'a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:¬N 0S N L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:¬N 0S N L'a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0S N L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:¬N 0S N L' have hN' : N < 0 := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:¬N 0hN':_fvar.469256 < 0 := ?_mvar.4693820 L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:¬N 0hN':_fvar.469256 < 0 := ?_mvar.469382BddAbove (Set.range T) All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)S N L' have hM : M, n X, m, f m = n m M := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256) n X, m, f m = n m (X.preimage f ).sup id a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)n:hn:n X m, f m = n m (X.preimage f ).sup id; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)n:hn:n Xm:hm:f m = n m, f m = n m (X.preimage f ).sup id a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)n:hn:n Xm:hm:f m = nm (X.preimage f ).sup id a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)n:hn:n Xm:hm:f m = nm X.preimage f All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m MS N L' have sum_eq_sum (b: ) {N:} (hN: N 0) : n .Icc 0 N, (if 0 n then b n.toNat else 0) = n .Iic N.toNat, b n := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.converges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum convert Finset.sum_image (g := Int.ofNat) (a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0Set.InjOn Int.ofNat ?m.1144 All goals completed! 🐙) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:x Finset.Icc 0 N x Finset.image Int.ofNat (Finset.Iic N.toNat); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:0 x x N a N.toNat, a = x; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:0 x x N a N.toNat, a = xa: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:(∃ a N.toNat, a = x) 0 x x N a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:0 x x N a N.toNat, a = x a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:left✝:0 xright✝:x N a N.toNat, a = x; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := ?_mvar.14799S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => @?_mvar.247769 MhTbound:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.468508N✝:hN✝:N✝ 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Mb: N:hN:N 0x:left✝:0 xright✝:x Nx.toNat N.toNat x.toNat = x; All goals completed! 🐙 All goals completed! 🐙 calc _ = n X, a n := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))S N = n X, a n All goals completed! 🐙 _ = n ((Finset.Iic M).filter (f · X)).image f, a n := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) n X, a n = n Finset.image f ({x Finset.Iic M | f x X}), a n a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))X = Finset.image f ({x Finset.Iic M | f x X}); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:a✝ X a✝ Finset.image f ({x Finset.Iic M | f x X}); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:a✝ X a, (a M f a X) f a = a✝; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:a✝ X a, (a M f a X) f a = a✝a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:(∃ a, (a M f a X) f a = a✝) a✝ X a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:a✝ X a, (a M f a X) f a = a✝ a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))a✝:h:a✝ X a, (a M f a X) f a = a✝; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))m:hm':m Mh:f m X a, (a M f a X) f a = f m; All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))w✝:left✝:w✝ Mright✝:f w✝ Xf w✝ X; All goals completed! 🐙 _ m .Iic M, af m := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) n Finset.image f ({x Finset.Iic M | f x X}), a n m Finset.Iic M, af m a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) x Finset.Iic M with f x X, a (f x) m Finset.Iic M, af m a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))){x Finset.Iic M | f x X} Finset.Iic Ma: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) i Finset.Iic M, i {x Finset.Iic M | f x X} 0 a (f i) a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))){x Finset.Iic M | f x X} Finset.Iic M All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))i:a✝¹:i Finset.Iic Ma✝:i {x Finset.Iic M | f x X}0 a (f i); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))i:a✝¹:i Finset.Iic Ma✝:i {x Finset.Iic M | f x X}haf:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.seq i 00 a (f i); All goals completed! 🐙 _ = T M := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) m Finset.Iic M, af m = T M a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))) n Finset.Iic M, a (f n) = n Finset.Icc 0 M, if 0 n then a (f n.toNat) else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))(∑ n Finset.Icc 0 M, if 0 n then a (f n.toNat) else 0) = n Finset.Iic M, a (f n); a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))M 0; All goals completed! 🐙 _ L' := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))T M L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.nonneghconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesf: hf:Function.Bijective faf: := fun n => @_fvar.14602 (@_fvar.14605 n)haf:{ m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.nonneg := fun n => if h : n 0 then Eq.mpr (id (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_true h)))) ge_iff_le._simp_1)) (Chapter7.Series.converges_of_permute_nonneg._proof_1 _fvar.14604 _fvar.14606 n h (@_fvar.14603 (@_fvar.14605 n.toNat))) else of_eq_true (Eq.trans (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_false (@_fvar.14617 n.toNat) 0 (Eq.trans ge_iff_le._simp_1 (eq_false h)))) ge_iff_le._simp_1) (le_refl._simp_1 0))S: := { m := 0, seq := fun n => if n 0 then @_fvar.14602 n.toNat else 0, vanish := }.partialT: := { m := 0, seq := fun n => if n 0 then @_fvar.14617 n.toNat else 0, vanish := }.partialhSmono:Monotone _fvar.19926 := Chapter7.Series.partial_of_nonneg _fvar.14603hTmono:Monotone _fvar.20097 := Chapter7.Series.partial_of_nonneg _fvar.14800L: := iSup _fvar.19926L': := iSup _fvar.20097hSBound: Q, (N : ), @_fvar.19926 N Q := (Chapter7.Series.converges_of_nonneg_iff _fvar.14603).mp _fvar.14604hTL: (M : ), @_fvar.20097 M _fvar.20577 := fun M => if hM : M 0 then let Y := Finset.Iic M.toNat; have hN := Exists.intro ((Finset.image _fvar.14605 Y).sup id) fun m hm => Finset.le_sup (Chapter7.Series.converges_of_permute_nonneg._proof_3 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 M hM m hm); (fun N hN => Trans.trans (Trans.trans (Trans.trans (Trans.trans (Eq.mpr (id (congr (congrArg Eq (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 (@_fvar.14605 n.toNat) else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 (@_fvar.14605 n.toNat))) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 M)) fun x a => Eq.refl (if 0 x then @_fvar.14602 (@_fvar.14605 x.toNat) else 0)))) (Finset.sum_congr (Eq.refl Y) fun x a => Eq.refl (@_fvar.14602 (@_fvar.14605 x))))) (Chapter7.Series.sum_eq_sum _fvar.14617 hM)) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n (_fvar.14605 '' Y).toFinset, @_fvar.14602 n) (∑ x Finset.image (fun x₁ => @_fvar.14605 x₁) Y, @_fvar.14602 x) (Finset.sum_congr (of_eq_true (Eq.trans (congrArg (fun x => x = Finset.image (fun x₁ => @_fvar.14605 x₁) Y) (Eq.trans (Set.toFinset_image _fvar.14605 Y) (congrArg (Finset.image _fvar.14605) (Finset.toFinset_coe Y)))) (eq_self (Finset.image _fvar.14605 Y)))) fun x a => Eq.refl (@_fvar.14602 x)) (∑ m Y, @_fvar.14617 m) (∑ x Y, @_fvar.14602 (@_fvar.14605 x)) (Eq.refl (∑ m Y, @_fvar.14617 m)))) (Finset.sum_image fun x₁ a x₂ a => Function.Bijective.injective _fvar.14606)))) (Finset.sum_le_sum_of_subset_of_nonneg (fun a a_1 => Eq.mpr (id Finset.mem_Iic._simp_1) (Exists.casesOn (Eq.mp (congrArg Chapter7.Series.converges ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) _fvar.14604) fun w h => Exists.casesOn (Eq.mp (congrArg Exists (funext fun Q => forall_congr fun N => congrArg (fun x => x.partial N Q) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602)))) _fvar.20877) fun w_1 h_1 => Exists.casesOn (Eq.mp (Eq.trans (Eq.trans (congrArg (fun x => a x) (Eq.trans (Eq.trans (Set.toFinset_congr (congrArg (Set.image _fvar.14605) (Finset.coe_Iic M.toNat))) (Set.toFinset_image _fvar.14605 (Set.Iic M.toNat))) (congrArg (Finset.image _fvar.14605) (Set.toFinset_Iic M.toNat)))) Finset.mem_image._simp_1) (congrArg Exists (funext fun a_2 => congrArg (fun x => x @_fvar.14605 a_2 = a) (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM))))))) a_1) fun w_2 h_2 => And.casesOn h_2 fun left right => right of_eq_true ((fun m a => eq_true (Eq.mp (forall_congr fun m => implies_congr (Eq.trans Finset.mem_Iic._simp_1 (Int.le_toNat._simp_1 (id (Eq.mp ge_iff_le._simp_1 hM)))) (Eq.refl (@_fvar.14605 m N))) hN m a)) w_2 left))) fun i a a => id (Eq.mp (Eq.trans (congrArg (fun x => x 0) (ite_cond_eq_true (@_fvar.14602 (↑i).toNat) 0 (Eq.trans ge_iff_le._simp_1 (Nat.cast_nonneg._simp_1 i)))) ge_iff_le._simp_1) (@_fvar.14603 i)))) (Eq.mpr (id (congrArg (Eq (∑ n Finset.Iic N, @_fvar.14602 n)) (Eq.trans (congrArg (fun x => x.partial N) ((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.14602 n.toNat else 0) (fun n => if 0 n then @_fvar.14602 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14602 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14602))) (Finset.sum_congr (Eq.refl (Finset.Icc 0 N)) fun x a => Eq.refl (if 0 x then @_fvar.14602 x.toNat else 0))))) (Eq.symm (Chapter7.Series.sum_eq_sum _fvar.14602 (Nat.cast_nonneg' N))))) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) N)) (Classical.choose hN) (Classical.choose_spec hN) else have hM' := 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 M) (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 (M ^ 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 + (M ^ 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 (M ^ 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 M) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul M (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 (M ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero M (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 hM)))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le a))); Eq.mpr (id (Eq.trans (congrArg (fun x => x _fvar.20577) (Eq.trans (congrArg (fun x => x.partial M) ((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.14617 n.toNat else 0) (fun n => if 0 n then @_fvar.14617 n.toNat else 0) (funext fun n => ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.14617 n.toNat)) fun a => Eq.refl 0) (Chapter7.Series.instCoe._proof_1 _fvar.14617))) (Finset.sum_congr (Finset.Icc_eq_empty_of_lt hM') fun x a => Eq.refl (if 0 x then @_fvar.14617 x.toNat else 0)))) ge_iff_le._simp_1)) (Eq.mpr (eq_of_heq ((fun α self self' e'_2 a a' e'_3 a_1 => Eq.casesOn (motive := fun a_2 x => self' = a_2 e'_2 x (a a_1) (a' a_1)) e'_2 (fun h => Eq.ndrec (motive := fun self' => (e_2 : self = self'), e_2 Eq.refl self (a a_1) (a' a_1)) (fun e_2 h => 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)) (Eq.symm h) e'_2) (Eq.refl self') (HEq.refl e'_2)) Real.instLE Real.instConditionallyCompleteLinearOrder.toSemilatticeInf.toLE (Eq.refl Real.instLE) 0 (@_fvar.19926 (-1)) (Eq.refl 0) _fvar.20577)) (le_ciSup (of_eq_true (Eq.trans (congrArg Exists (funext fun x => congrArg (fun x_1 => x setOf x_1) (funext fun x => Eq.trans (forall_congr fun a => Eq.trans (implies_congr Set.mem_range._simp_1 (Eq.refl (a x))) forall_exists_index._simp_1) forall_apply_eq_imp_iff._simp_1))) (eq_true _fvar.20877))) (-1)))hTbound: Q, (M : ), @_fvar.20097 M Q := Exists.intro _fvar.20577 _fvar.247770N:hN:N 0X:Finset := Finset.Iic (Int.toNat _fvar.469256)M:hM: n X, m, f m = n m Msum_eq_sum: (b : ) {N : }, N 0 (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) = n Finset.Iic N.toNat, b n := fun b {N} hN => Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ n Finset.Icc 0 N, if 0 n then b n.toNat else 0) (∑ x Finset.image Int.ofNat (Finset.Iic N.toNat), if 0 x then b x.toNat else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Iic._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.converges_of_permute_nonneg._proof_5 _fvar.469256 hN x left right a), mpr := Chapter7.Series.converges_of_permute_nonneg._proof_6 _fvar.14603 _fvar.14604 _fvar.14606 _fvar.14800 _fvar.20439 _fvar.20560 _fvar.20877 _fvar.247770 _fvar.468509 _fvar.469256 _fvar.469329 _fvar.482509 _fvar.482513 b hN x }) fun x a => Eq.refl (if 0 x then b x.toNat else 0)) (∑ n Finset.Iic N.toNat, b n) (∑ x Finset.Iic N.toNat, if 0 Int.ofNat x then b (Int.ofNat x).toNat else 0) (Finset.sum_congr (Eq.refl (Finset.Iic N.toNat)) fun x a => Eq.refl (b x)))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Iic N.toNat)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true ))))))BddAbove (Set.range T); All goals completed! 🐙 All goals completed! 🐙

Example 7.4.2

theorem declaration uses 'sorry'Series.zeta_2_converges : (fun n: 1/(n+1:)^2 : Series).converges := { m := 0, seq := fun n => if n 0 then (fun n => 1 / (n + 1) ^ 2) n.toNat else 0, vanish := }.converges All goals completed! 🐙
theorem declaration uses 'sorry'Series.permuted_zeta_2_converges : (fun n: if Even n then 1/(n+2:)^2 else 1/(n:)^2 : Series).converges := { m := 0, seq := fun n => if n 0 then (fun n => if Even n then 1 / (n + 2) ^ 2 else 1 / n ^ 2) n.toNat else 0, vanish := }.converges All goals completed! 🐙theorem declaration uses 'sorry'Series.permuted_zeta_2_eq_zeta_2 : (fun n: if Even n then 1/(n+2:)^2 else 1/(n:)^2 : Series).sum = (fun n: 1/(n+1:)^2 : Series).sum := { m := 0, seq := fun n => if n 0 then (fun n => if Even n then 1 / (n + 2) ^ 2 else 1 / n ^ 2) n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => 1 / (n + 1) ^ 2) n.toNat else 0, vanish := }.sum All goals completed! 🐙

Proposition 7.4.3 (Rearrangement of series)

theorem declaration uses 'sorry'Series.absConverges_of_permute {a: } (ha : (a:Series).absConverges) {f: } (hf: Function.Bijective f) : (fun n a (f n):Series).absConverges (a:Series).sum = (fun n a (f n) : Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum -- This proof is written to follow the structure of the original text. a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sum{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum have habs : (fun n |a (f n)| : Series).converges L = (fun n |a (f n)| : Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs = { m := 0, seq := fun n => if n 0 then |a n.toNat| else 0, vanish := }a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.nonnega: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.converges a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs = { m := 0, seq := fun n => if n 0 then |a n.toNat| else 0, vanish := } a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629(fun n => if 0 n then |if 0 n then a n.toNat else 0| else 0) = fun n => if 0 n then |a n.toNat| else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:(if 0 n then |if 0 n then a n.toNat else 0| else 0) = if 0 n then |a n.toNat| else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:n 0(if 0 n then |if 0 n then a n.toNat else 0| else 0) = if 0 n then |a n.toNat| else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:¬n 0(if 0 n then |if 0 n then a n.toNat else 0| else 0) = if 0 n then |a n.toNat| else 0 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:n 0(if 0 n then |if 0 n then a n.toNat else 0| else 0) = if 0 n then |a n.toNat| else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:¬n 0(if 0 n then |if 0 n then a n.toNat else 0| else 0) = if 0 n then |a n.toNat| else 0 All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.nonneg a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.seq n 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h:n 0{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.seq n 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h:¬n 0{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.seq n 0 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h:n 0{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.seq n 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h:¬n 0{ m := 0, seq := fun n => if n 0 then (fun n => |a n|) n.toNat else 0, vanish := }.seq n 0 All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:(if n 0 then (fun n => |a n|) n.toNat else 0) = if h : n { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq n|) n, h else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:n 0(if n 0 then (fun n => |a n|) n.toNat else 0) = if h : n { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq n|) n, h else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:¬n 0(if n 0 then (fun n => |a n|) n.toNat else 0) = if h : n { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq n|) n, h else 0 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:n 0(if n 0 then (fun n => |a n|) n.toNat else 0) = if h : n { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq n|) n, h else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629n:h✝:¬n 0(if n 0 then (fun n => |a n|) n.toNat else 0) = if h : n { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.seq n|) n, h else 0 All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sum{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges L' = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n){ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.absConverges L' = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.absConverges L' = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.suma: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n){ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L' a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.absConverges L' = { m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.sum a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.abs.converges a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'n:(if h : n { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.seq n|) n, h else 0) = if n 0 then (fun n => |a (f n)|) n.toNat else 0; a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'n:h✝:n 0(if h : n { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.seq n|) n, h else 0) = if n 0 then (fun n => |a (f n)|) n.toNat else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'n:h✝:¬n 0(if h : n { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.seq n|) n, h else 0) = if n 0 then (fun n => |a (f n)|) n.toNat else 0 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'n:h✝:n 0(if h : n { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.seq n|) n, h else 0) = if n 0 then (fun n => |a (f n)|) n.toNat else 0a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)this:{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.convergesTo L'n:h✝:¬n 0(if h : n { m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.m then (fun n => |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.seq n|) n, h else 0) = if n 0 then (fun n => |a (f n)|) n.toNat else 0 All goals completed! 🐙 a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n) (ε : ), 0 < ε a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.convergesf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:?_mvar.846824 := Chapter7.Series.converges_of_absConverges _fvar.846629habs:{ m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.converges _fvar.846722 = { m := 0, seq := fun n => if n 0 then (fun n => |@_fvar.846628 (@_fvar.846630 n)|) n.toNat else 0, vanish := }.sum := ?_mvar.846963L': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.846630 n)ε::0 < ε a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε a: ha: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < ε a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:hN₁:N₁ { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.mha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2 a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁ a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε have : N N₁, |(a:Series).partial N - L'| < ε/2 := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁hconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergesTo { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum N N₁, |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁hconv: (ε : ), 0 < ε a_2, (b : ), a_2 b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < ε N N₁, |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁hconv: (ε : ), 0 < ε a_2, (b : ), a_2 b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < εN:hN: (b : ), N b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < ε / 2 N N₁, |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2 use max N N₁, (a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁hconv: (ε : ), 0 < ε a_2, (b : ), a_2 b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < εN:hN: (b : ), N b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < ε / 2max N N₁ N₁ All goals completed! 🐙); a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁hconv: (ε : ), 0 < ε a_2, (b : ), a_2 b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < εN:hN: (b : ), N b |{ m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.partial b - { m := 0, seq := fun n => if 0 n then a n.toNat else 0, vanish := }.sum| < ε / 2N max N N₁; All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2 a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε have hNpos : N 0 := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228 a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε have : M, n N.toNat, finv n M := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228 n N.toNat, finv n (Finset.image finv (Finset.Iic N.toNat)).sup id a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228n:hn:n N.toNatfinv n (Finset.image finv (Finset.Iic N.toNat)).sup id a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228n:hn:n N.toNat(if h : x, f x = n then h.choose else Classical.arbitrary ) Finset.image finv (Finset.Iic N.toNat); a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228n:hn:n N.toNat a N.toNat, finv a = if h : x, f x = n then h.choose else Classical.arbitrary ; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228n:hn:n N.toNatfinv n = if h : x, f x = n then h.choose else Classical.arbitrary ; All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n M a, (b : ), a b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n M (b : ), M b |{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial b - L'| < ε; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'|{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial M' - L'| < ε have hM'_pos : M' 0 := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 have why : (Finset.Iic M'.toNat).image f .Iic N.toNat := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := ?_mvar.1194057why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := ?_mvar.1196288X:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)|{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial M' - L'| < ε have claim : m .Iic M'.toNat, a (f m) = n .Iic N.toNat, a n + n X, a n := calc _ = n (Finset.Iic M'.toNat).image f , a n := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577) m Finset.Iic M'.toNat, a (f m) = n Finset.image f (Finset.Iic M'.toNat), a n a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577) n Finset.image f (Finset.Iic M'.toNat), a n = m Finset.Iic M'.toNat, a (f m); a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)Set.InjOn f (Finset.Iic M'.toNat); All goals completed! 🐙 _ = _ := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577) n Finset.image f (Finset.Iic M'.toNat), a n = n Finset.Iic N.toNat, a n + n X, a n a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)Finset.image f (Finset.Iic M'.toNat) = Finset.Iic N.toNat Xa: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)DecidableEq a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)Disjoint (Finset.Iic N.toNat) X a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)Finset.image f (Finset.Iic M'.toNat) = Finset.Iic N.toNat X All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)DecidableEq All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577) a : ⦄, a X a Finset.Iic N.toNat; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)n:hn:n Xn Finset.Iic N.toNat; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)n:hn:n Finset.image f (Finset.Iic M'.toNat) n Finset.Iic N.toNatn Finset.Iic N.toNat; All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := ?_mvar.1194057why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := ?_mvar.1196288X:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := Trans.trans ?_mvar.1197196 ?_mvar.1197206q':hq:q' upperBounds X|{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial M' - L'| < ε a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := ?_mvar.1184633finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := ?_mvar.1194057why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := ?_mvar.1196288X:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := Trans.trans ?_mvar.1197196 ?_mvar.1197206q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)|{ m := 0, seq := fun n => if 0 n then af n.toNat else 0, vanish := }.partial M' - L'| < ε have why2 : X Finset.Icc (N.toNat+1) q := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙 have claim2 : | n X, a n| ε/2 := calc _ n X, |a n| := X.abs_sum_le_sum_abs a _ n .Icc (N.toNat+1) q, |a n| := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n X, |a n| n Finset.Icc (N.toNat + 1) q, |a n| a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry i Finset.Icc (N.toNat + 1) q, i X 0 |a i|; All goals completed! 🐙 _ ε/2 := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n Finset.Icc (N.toNat + 1) q, |a n| ε / 2 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n Finset.Icc (N.toNat + 1) q, |a n| = | n Finset.Icc (N.toNat + 1) q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n|a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryN.toNat + 1 N₁a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryq N₁ a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n Finset.Icc (N.toNat + 1) q, |a n| = | n Finset.Icc (N.toNat + 1) q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n|a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryN.toNat + 1 N₁a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryq N₁ try All goals completed! 🐙 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n Finset.Icc (N.toNat + 1) q, |a n| = | x Finset.Icc (N + 1) q, if 0 x then |if 0 x then a x.toNat else 0| else 0|; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry n Finset.Icc (N.toNat + 1) q, |a n| = x Finset.Icc (N + 1) q, if 0 x then |if 0 x then a x.toNat else 0| else 0; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorry(∑ x Finset.Icc (N + 1) q, if 0 x then |if 0 x then a x.toNat else 0| else 0) = n Finset.Icc (N.toNat + 1) q, |a n| convert Finset.sum_image (g := fun (n:) (n:)) (a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorrySet.InjOn (fun n => n) ?m.2320 All goals completed! 🐙) using 2 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:x Finset.Icc (N + 1) q x Finset.image (fun n => n) (Finset.Icc (N.toNat + 1) q); a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:N + 1 x x q a, (N.toNat + 1 a a q) a = x; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:N + 1 x x q a, (N.toNat + 1 a a q) a = xa: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:(∃ a, (N.toNat + 1 a a q) a = x) N + 1 x x q a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:N + 1 x x q a, (N.toNat + 1 a a q) a = x a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:left✝:N + 1 xright✝:x q a, (N.toNat + 1 a a q) a = x; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryx:left✝:N + 1 xright✝:x q(N.toNat + 1 x.toNat x.toNat q) x.toNat = x; All goals completed! 🐙 All goals completed! 🐙 calc _ |(af:Series).partial M' - (a:Series).partial N| + |(a:Series).partial N - L'| := abs_sub_le _ _ _ _ < |(af:Series).partial M' - (a:Series).partial N| + ε/2 := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a)))|{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.partial M' - { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N| + |{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < |{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.partial M' - { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N| + ε / 2 All goals completed! 🐙 _ ε/2 + ε/2 := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a)))|{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.partial M' - { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N| + ε / 2 ε / 2 + ε / 2 a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a)))|{ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.partial M' - { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N| ε / 2; a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a))){ m := 0, seq := fun n => if n 0 then af n.toNat else 0, vanish := }.partial M' - { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N = n X, a n a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a))) n Finset.Iic M'.toNat, af n - n Finset.Iic N.toNat, a n = n X, a n; All goals completed! 🐙 _ = ε := a: ha✝: ε > 0, N { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.m, p N, q N, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| εf: hf:Function.Bijective fL: := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.abs.sumhconv:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.convergeshabs:{ m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.converges L = { m := 0, seq := fun n => if n 0 then (fun n => |a (f n)|) n.toNat else 0, vanish := }.sumL': := { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := }.sumaf: := fun n => @_fvar.846628 (@_fvar.1078228 n)ε::0 < εN₁:ha: p N₁, q N₁, | n Finset.Icc p q, { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.abs.seq n| ε / 2hN₁:0 N₁N:hN:N N₁hN2:|{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.partial N - L'| < ε / 2hNpos:_fvar.1184577 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1078345 (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 (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1078345 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1078345) (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1184577 (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_add_lt (_fvar.1078345 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1078345 (Nat.rawCast 1) (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 (_fvar.1184577 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1184577) (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 (_fvar.1184577 ^ 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 + (_fvar.1184577 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1184577 (Nat.rawCast 1) (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 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 (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 _fvar.1079286)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1184586)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))finv: := Function.invFun _fvar.1078228M:hM: n N.toNat, finv n MM':hM':M M'hM'_pos:_fvar.1194012 0 := le_of_not_gt 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.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.cast_zero (Mathlib.Meta.NormNum.isNat_ofNat (Eq.refl 0))) (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul (↑_fvar.1193903) (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 (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1193903 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1193903) (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.1194012 (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_add_lt (_fvar.1193903 ^ Nat.rawCast 1 * Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.add_pf_add_lt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero (↑_fvar.1193903) (Nat.rawCast 1) (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 (_fvar.1194012 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0))))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.atom_pf _fvar.1194012) (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 (_fvar.1194012 ^ 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 + (_fvar.1194012 ^ 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_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.1194012 (Nat.rawCast 1) (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 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 (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 (Mathlib.Tactic.Linarith.natCast_nonneg _fvar.1193903))) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.1194015)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a))))why:Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) Finset.Iic (Int.toNat _fvar.1184577) := sorryX:Finset := Finset.image _fvar.1078228 (Finset.Iic (Int.toNat _fvar.1194012)) \ Finset.Iic (Int.toNat _fvar.1184577)claim: m Finset.Iic (Int.toNat _fvar.1194012), @_fvar.846628 (@_fvar.1078228 m) = n Finset.Iic (Int.toNat _fvar.1184577), @_fvar.846628 n + n _fvar.1196544, @_fvar.846628 n := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)q':hq:q' upperBounds Xq: := max _fvar.1206066 (Int.toNat _fvar.1184577)why2:_fvar.1196544 Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081 := sorryclaim2:| n _fvar.1196544, @_fvar.846628 n| _fvar.1078235 / 2 := Trans.trans (Trans.trans (Finset.abs_sum_le_sum_abs _fvar.846628 _fvar.1196544) (Finset.sum_le_sum_of_subset_of_nonneg _fvar.1206561 (of_eq_true (Eq.trans (forall_congr fun i => Eq.trans (implies_congr Finset.mem_Icc._simp_1 (Eq.trans (implies_congr (Eq.refl (i _fvar.1196544)) (one_le_mabs._simp_4 (@_fvar.846628 i))) (implies_true (i _fvar.1196544)))) (implies_true (Int.toNat _fvar.1184577 + 1 i i _fvar.1206081))) (implies_true ))))) (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 (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) | n Finset.Icc ((Int.toNat _fvar.1184577) + 1) _fvar.1206081, { m := 0, seq := fun n => if n 0 then @_fvar.846628 n.toNat else 0, vanish := Chapter7.Series.instCoe._proof_1 _fvar.846628 }.abs.seq n| (Eq.mpr (id (congrArg (fun x => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = |x|) (Finset.sum_congr (congrArg (fun x => Finset.Icc (x + 1) _fvar.1206081) (Eq.trans (Int.ofNat_toNat _fvar.1184577) (sup_of_le_left _fvar.1184634))) fun x a => dite_congr ge_iff_le._simp_1 (fun h => congrArg abs (ite_congr ge_iff_le._simp_1 (fun a => Eq.refl (@_fvar.846628 x.toNat)) fun a => Eq.refl 0)) fun h => Eq.refl 0))) (Eq.mpr (id (congrArg (fun _a => n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n| = _a) (abs_of_nonneg (Finset.sum_nonneg fun i x => Mathlib.Meta.Positivity.ite_nonneg✝ (0 i) (IsAbsoluteValue.abv_nonneg abs (if 0 i then @_fvar.846628 i.toNat else 0)) (Mathlib.Meta.Positivity.nonneg_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat Nat.cast_zero)))))) (Eq.symm (Eq.mpr (eq_of_heq ((fun α a a' e'_2 a_1 a'_1 e'_3 => Eq.casesOn (motive := fun a_2 x => a' = a_2 e'_2 x (a = a_1) (a' = a'_1)) e'_2 (fun h => Eq.ndrec (motive := fun a' => (e_2 : a = a'), e_2 Eq.refl a (a = a_1) (a' = a'_1)) (fun e_2 h => Eq.casesOn (motive := fun a_2 x => a'_1 = a_2 e'_3 x (a = a_1) (a = a'_1)) e'_3 (fun h => Eq.ndrec (motive := fun a' => (e_3 : a_1 = a'), e_3 Eq.refl a_1 (a = a_1) (a = a')) (fun e_3 h => HEq.refl (a = a_1)) (Eq.symm h) e'_3) (Eq.refl a'_1) (HEq.refl e'_3)) (Eq.symm h) e'_2) (Eq.refl a') (HEq.refl e'_2)) (∑ x Finset.Icc (_fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (∑ x Finset.image (fun n => n) (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081), if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0) (Finset.sum_congr (Finset.ext fun x => Eq.mpr (id (congr (congrArg Iff Finset.mem_Icc._simp_1) (Eq.trans Finset.mem_image._simp_1 (congrArg Exists (funext fun a => congrArg (fun x_1 => x_1 a = x) Finset.mem_Icc._simp_1))))) { mp := fun h => match h with | left, right => Exists.intro x.toNat (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_18 _fvar.1078345 _fvar.1184577 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 x left right a), mpr := Chapter7.Series.absConverges_of_permute._proof_19 _fvar.1078225 _fvar.1078229 _fvar.1078231 _fvar.1078232 _fvar.1078235 _fvar.1078236 _fvar.1078345 _fvar.1078357 _fvar.1079286 _fvar.1184577 _fvar.1184586 _fvar.1184590 _fvar.1184634 _fvar.1193903 _fvar.1193907 _fvar.1194012 _fvar.1194015 _fvar.1194058 _fvar.1196289 _fvar.1197274 _fvar.1206066 _fvar.1206069 _fvar.1206561 x }) fun x a => Eq.refl (if 0 x then |if 0 x then @_fvar.846628 x.toNat else 0| else 0)) (∑ n Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, |@_fvar.846628 n|) (∑ x Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081, if 0 x then |if 0 x then @_fvar.846628 (↑x).toNat else 0| else 0) (Finset.sum_congr (Eq.refl (Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) fun x a => Eq.refl |@_fvar.846628 x|))) (Finset.sum_image (of_eq_true (Set.injOn_of_eq_iff_eq._simp_1 (↑(Finset.Icc (Int.toNat _fvar.1184577 + 1) _fvar.1206081)) (of_eq_true (Eq.trans (forall_congr fun x => Eq.trans (forall_congr fun y => Eq.trans (congrArg (fun x_1 => x_1 x = y) Nat.cast_inj._simp_1) (iff_self (x = y))) (implies_true )) (implies_true )))))))))) (_fvar.1078235 / 2))) (@_fvar.1078357 ((Int.toNat _fvar.1184577) + 1) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_16 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 a) (↑_fvar.1206081) (Decidable.byContradiction fun a => Chapter7.Series.absConverges_of_permute._proof_17 _fvar.1078345 _fvar.1184577 _fvar.1184586 _fvar.1184634 _fvar.1193903 _fvar.1194012 _fvar.1206066 a)))ε / 2 + ε / 2 = ε All goals completed! 🐙

Example 7.4.4

noncomputable abbrev Series.a_7_4_4 : := fun n (-1:)^n / (n+2)
theorem declaration uses 'sorry'Series.ex_7_4_4_conv : (a_7_4_4 : Series).converges := { m := 0, seq := fun n => if n 0 then a_7_4_4 n.toNat else 0, vanish := }.converges All goals completed! 🐙theorem declaration uses 'sorry'Series.ex_7_4_4_sum : (a_7_4_4 : Series).sum > 0 := { m := 0, seq := fun n => if n 0 then a_7_4_4 n.toNat else 0, vanish := }.sum > 0 All goals completed! 🐙abbrev Series.f_7_4_4 : := fun n if n % 3 = 0 then 2 * (n/3) else 2*n - (n/3) - 1theorem declaration uses 'sorry'Series.f_7_4_4_bij : Function.Bijective f_7_4_4 := Function.Bijective f_7_4_4 All goals completed! 🐙theorem declaration uses 'sorry'Series.ex_7_4_4'_conv : (fun n a_7_4_4 (f_7_4_4 n) :Series).converges := { m := 0, seq := fun n => if n 0 then (fun n => a_7_4_4 (f_7_4_4 n)) n.toNat else 0, vanish := }.converges All goals completed! 🐙theorem declaration uses 'sorry'Series.ex_7_4_4'_sum : (fun n a_7_4_4 (f_7_4_4 n) :Series).sum < 0 := { m := 0, seq := fun n => if n 0 then (fun n => a_7_4_4 (f_7_4_4 n)) n.toNat else 0, vanish := }.sum < 0 All goals completed! 🐙

Exercise 7.4.1

theorem declaration uses 'sorry'Series.absConverges_of_subseries {a: } (ha: (a:Series).absConverges) {f: } (hf: StrictMono f) : (fun n a (f n):Series).absConverges := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:StrictMono f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges All goals completed! 🐙

Exercise 7.4.2 : reprove Proposition 7.4.3 using Proposition 7.41, Proposition 7.2.14, and expressing Unknown identifier `a`a n as the difference of Unknown identifier `a`sorry + |sorry| : ?m.7a n + |Unknown identifier `a`a n| and |sorry| : ?m.1|Unknown identifier `a`a n|.

theorem declaration uses 'sorry'Series.absConverges_of_permute' {a: } (ha : (a:Series).absConverges) {f: } (hf: Function.Bijective f) : (fun n a (f n):Series).absConverges (a:Series).sum = (fun n a (f n):Series).sum := a: ha:{ m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.absConvergesf: hf:Function.Bijective f{ m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.absConverges { m := 0, seq := fun n => if n 0 then a n.toNat else 0, vanish := }.sum = { m := 0, seq := fun n => if n 0 then (fun n => a (f n)) n.toNat else 0, vanish := }.sum All goals completed! 🐙
end Chapter7