Analysis I, Section 7.3: Sums of non-negative numbers

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 Chapter7open Realabbrev Series.nonneg (s: Series) : Prop := βˆ€ n, s.seq n β‰₯ 0abbrev declaration uses 'sorry'Series.partial_of_nonneg {s: Series} (h: s.nonneg) : Monotone s.partial := s:Seriesh:s.nonneg⊒ Monotone s.partial All goals completed! πŸ™

Proposition 7.3.1

theorem Series.converges_of_nonneg_iff {s: Series} (h: s.nonneg) : s.converges ↔ βˆƒ M, βˆ€ N, s.partial N ≀ M := s:Seriesh:s.nonneg⊒ s.converges ↔ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M -- This broadly follows the argument in the text, though for one direction I choose to use Mathlib routines rather than Chapter6 results. s:Seriesh:s.nonneg⊒ s.converges β†’ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ Ms:Seriesh:s.nonneg⊒ (βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M) β†’ s.converges s:Seriesh:s.nonneg⊒ s.converges β†’ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M s:Seriesh:s.nonneghconv:s.converges⊒ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M set S : Chapter6.Sequence := ⟨ s.m, s.partial, s:Seriesh:s.nonneghconv:s.converges⊒ βˆ€ n < s.m, s.partial n = 0 s:Seriesh:s.nonneghconv:s.convergesn:β„€hn:n < s.m⊒ s.partial n = 0; All goals completed! πŸ™ ⟩ have : S.IsBounded := s:Seriesh:s.nonneg⊒ s.converges ↔ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M s:Seriesh:s.nonneghconv:s.convergesS:Chapter6.Sequence := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ S.Convergent s:Seriesh:s.nonneghconv:s.convergesS:Chapter6.Sequence := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ βˆƒ L, Filter.Tendsto S.seq Filter.atTop (nhds L) All goals completed! πŸ™ s:Seriesh:s.nonneghconv:s.convergesS:Chapter6.Sequence := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhpos:M β‰₯ 0hM:S.BoundedBy M⊒ βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M s:Seriesh:s.nonneghconv:s.convergesS:Chapter6.Sequence := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhpos:M β‰₯ 0hM:S.BoundedBy M⊒ βˆ€ (N : β„€), s.partial N ≀ M; s:Seriesh:s.nonneghconv:s.convergesS:Chapter6.Sequence := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhpos:M β‰₯ 0hM✝:S.BoundedBy MN:β„€hM:|S.seq N| ≀ M⊒ s.partial N ≀ M All goals completed! πŸ™ s:Seriesh:s.nonneghbound:βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M⊒ s.converges s:Seriesh:s.nonneghbound:βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ Mhinfin:Filter.Tendsto s.partial Filter.atTop Filter.atTop⊒ s.convergess:Seriesh:s.nonneghbound:βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ Mhfin:βˆƒ l, Filter.Tendsto s.partial Filter.atTop (nhds l)⊒ s.converges s:Seriesh:s.nonneghbound:βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ Mhinfin:Filter.Tendsto s.partial Filter.atTop Filter.atTop⊒ s.converges s:Seriesh:s.nonneghinfin:Filter.Tendsto s.partial Filter.atTop Filter.atTopM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ M⊒ s.converges s:Seriesh:s.nonneghinfin:Filter.Tendsto s.partial Filter.atTop Filter.atTopM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ MN:β„€hN:M < s.partial N⊒ s.converges All goals completed! πŸ™ All goals completed! πŸ™
theorem Series.sum_of_nonneg_lt {s: Series} (h: s.nonneg) {M:ℝ} (hM: βˆ€ N, s.partial N ≀ M) : s.sum ≀ M := s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ M⊒ s.sum ≀ M have : βˆƒ M, βˆ€ N, s.partial N ≀ M := s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ M⊒ s.sum ≀ M All goals completed! πŸ™ s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ Mthis:s.converges⊒ s.sum ≀ M; s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ Mthis:s.converges⊒ Exists.choose β‹― ≀ M s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ Mthis:s.convergeshconv:?_mvar.6536 := Exists.choose_spec _fvar.5634⊒ Exists.choose β‹― ≀ M; s:Seriesh:s.nonnegM:ℝhM:βˆ€ (N : β„€), s.partial N ≀ Mthis:s.convergeshconv:Filter.Tendsto (Chapter7.Series.partial _fvar.5571) Filter.atTop (nhds (Exists.choose _fvar.5634)) := Exists.choose_spec _fvar.5634⊒ Exists.choose β‹― ≀ M; All goals completed! πŸ™theorem Series.partial_le_sum_of_nonneg {s: Series} (hnon: s.nonneg) (hconv: s.converges) (N : β„€) : s.partial N ≀ s.sum := s:Serieshnon:s.nonneghconv:s.convergesN:β„€βŠ’ s.partial N ≀ s.sum s:Serieshnon:s.nonneghconv:s.convergesN:β„€βŠ’ Filter.Tendsto s.partial Filter.atTop (nhds s.sum) s:Serieshnon:s.nonneghconv:s.convergesN:β„€βŠ’ Filter.Tendsto s.partial Filter.atTop (nhds (Exists.choose β‹―)); All goals completed! πŸ™

Some useful nonnegativity lemmas for later applications.

theorem Series.partial_nonneg {s: Series} (hnon: s.nonneg) (N : β„€) : 0 ≀ s.partial N := s:Serieshnon:s.nonnegN:β„€βŠ’ 0 ≀ s.partial N s:Serieshnon:s.nonnegN:β„€βŠ’ 0 ≀ βˆ‘ n ∈ Finset.Icc s.m N, s.seq n; s:Serieshnon:s.nonnegN:β„€βŠ’ βˆ€ i ∈ Finset.Icc s.m N, 0 ≀ s.seq i; All goals completed! πŸ™
theorem Series.sum_of_nonneg {s:Series} (hnon: s.nonneg) : 0 ≀ s.sum := s:Serieshnon:s.nonneg⊒ 0 ≀ s.sum s:Serieshnon:s.nonnegh:s.converges⊒ 0 ≀ s.sums:Serieshnon:s.nonnegh:Β¬s.converges⊒ 0 ≀ s.sum s:Serieshnon:s.nonnegh:s.converges⊒ 0 ≀ s.sums:Serieshnon:s.nonnegh:Β¬s.converges⊒ 0 ≀ s.sum All goals completed! πŸ™ All goals completed! πŸ™

Corollary 7.3.2 (Comparison test) / Exercise 7.3.1

theorem declaration uses 'sorry'Series.converges_of_le {s t: Series} (hm: s.m = t.m) (hcomp: βˆ€ n β‰₯ s.m, |s.seq n| ≀ t.seq n) (hconv : t.converges) : s.absConverges ∧ |s.sum| ≀ s.abs.sum ∧ s.abs.sum ≀ t.sum := s:Seriest:Serieshm:s.m = t.mhcomp:βˆ€ n β‰₯ s.m, |s.seq n| ≀ t.seq nhconv:t.converges⊒ s.absConverges ∧ |s.sum| ≀ s.abs.sum ∧ s.abs.sum ≀ t.sum All goals completed! πŸ™
theorem declaration uses 'sorry'Series.diverges_of_ge {s t: Series} (hm: s.m = t.m) (hcomp: βˆ€ n β‰₯ s.m, |s.seq n| ≀ t.seq n) (hdiv: Β¬ s.absConverges) : t.diverges := s:Seriest:Serieshm:s.m = t.mhcomp:βˆ€ n β‰₯ s.m, |s.seq n| ≀ t.seq nhdiv:Β¬s.absConverges⊒ t.diverges All goals completed! πŸ™

Lemma 7.3.3 (Geometric series) / Exercise 7.3.2

theorem declaration uses 'sorry'Series.converges_geom {x: ℝ} (hx: |x| < 1) : (fun n ↦ x ^ n : Series).convergesTo (1 / (1 - x)) := x:ℝhx:|x| < 1⊒ { m := 0, seq := fun n => if n β‰₯ 0 then (fun n => x ^ n) n.toNat else 0, vanish := β‹― }.convergesTo (1 / (1 - x)) All goals completed! πŸ™
theorem declaration uses 'sorry'Series.absConverges_geom {x: ℝ} (hx: |x| < 1) : (fun n ↦ x ^ n : Series).absConverges := x:ℝhx:|x| < 1⊒ { m := 0, seq := fun n => if n β‰₯ 0 then (fun n => x ^ n) n.toNat else 0, vanish := β‹― }.absConverges All goals completed! πŸ™theorem declaration uses 'sorry'Series.diverges_geom {x: ℝ} (hx: |x| β‰₯ 1) : (fun n ↦ x ^ n : Series).diverges := x:ℝhx:|x| β‰₯ 1⊒ { m := 0, seq := fun n => if n β‰₯ 0 then (fun n => x ^ n) n.toNat else 0, vanish := β‹― }.diverges All goals completed! πŸ™theorem declaration uses 'sorry'Series.converges_geom_iff (x: ℝ) : (fun n ↦ x ^ n : Series).converges ↔ |x| < 1 := x:β„βŠ’ { m := 0, seq := fun n => if n β‰₯ 0 then (fun n => x ^ n) n.toNat else 0, vanish := β‹― }.converges ↔ |x| < 1 All goals completed! πŸ™

Proposition 7.3.4 (Cauchy criterion)

theorem Series.cauchy_criterion {s:Series} (hm: s.m = 1) (hs:s.nonneg) (hmono: βˆ€ n β‰₯ 1, s.seq (n+1) ≀ s.seq n) : s.converges ↔ (fun k ↦ 2^k * s.seq (2^k): Series).converges := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges -- This proof is written to follow the structure of the original text. s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ s.converges ↔ t.converges have ht: t.nonneg := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€βŠ’ t.seq n β‰₯ 0; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€h:n β‰₯ 0⊒ t.seq n β‰₯ 0s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€h:Β¬n β‰₯ 0⊒ t.seq n β‰₯ 0 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€h:n β‰₯ 0⊒ t.seq n β‰₯ 0s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€h:Β¬n β‰₯ 0⊒ t.seq n β‰₯ 0 All goals completed! πŸ™; All goals completed! πŸ™ have hmono' : βˆ€ n β‰₯ 1, βˆ€ m β‰₯ n, s.seq m ≀ s.seq n := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm✝:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1m:β„€hm:m β‰₯ n⊒ s.seq m ≀ s.seq n; s:Serieshm✝:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1k:β„•hm:n + ↑k β‰₯ n⊒ s.seq (n + ↑k) ≀ s.seq n; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1k:β„•βŠ’ s.seq (n + ↑k) ≀ s.seq n s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1⊒ s.seq (n + ↑0) ≀ s.seq ns:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1k:β„•hk:s.seq (n + ↑k) ≀ s.seq n⊒ s.seq (n + ↑(k + 1)) ≀ s.seq n; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395n:β„€hn:n β‰₯ 1k:β„•hk:s.seq (n + ↑k) ≀ s.seq n⊒ s.seq (n + ↑(k + 1)) ≀ s.seq n convert (hmono (n+k) (s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€hn:n β‰₯ 1k:β„•hk:s.seq (n + ↑k) ≀ s.seq n⊒ n + ↑k β‰₯ 1 All goals completed! πŸ™)).trans hk using 2; All goals completed! πŸ™ have htm : t.m = 0 := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029⊒ (βˆƒ M, βˆ€ (N : β„€), s.partial N ≀ M) ↔ βˆƒ M, βˆ€ (N : β„€), t.partial N ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391⊒ (βˆƒ M, βˆ€ (N : β„€), S N ≀ M) ↔ βˆƒ M, βˆ€ (N : β„€), t.partial N ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328⊒ (βˆƒ M, βˆ€ (N : β„€), S N ≀ M) ↔ βˆƒ M, βˆ€ (N : β„€), T N ≀ M have Lemma_7_3_6 (K:β„•) : S (2^(K+1) - 1) ≀ T K ∧ T K ≀ 2 * S (2^K) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328⊒ S (2 ^ (0 + 1) - 1) ≀ T ↑0 ∧ T ↑0 ≀ 2 * S (2 ^ 0)s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•hK:S (2 ^ (K + 1) - 1) ≀ T ↑K ∧ T ↑K ≀ 2 * S (2 ^ K)⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T ↑(K + 1) ∧ T ↑(K + 1) ≀ 2 * S (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328⊒ S (2 ^ (0 + 1) - 1) ≀ T ↑0 ∧ T ↑0 ≀ 2 * S (2 ^ 0) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328⊒ s.seq 1 ≀ 2 * s.seq 1; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•hK:S (2 ^ (K + 1) - 1) ≀ T ↑K ∧ T ↑K ≀ 2 * S (2 ^ K)h2K:1 ≀ 2 ^ K⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T ↑(K + 1) ∧ T ↑(K + 1) ≀ 2 * S (2 ^ (K + 1)); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•hK:S (2 ^ (K + 1) - 1) ≀ T ↑K ∧ T ↑K ≀ 2 * S (2 ^ K)h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T ↑(K + 1) ∧ T ↑(K + 1) ≀ 2 * S (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T ↑(K + 1) ∧ T ↑(K + 1) ≀ 2 * S (2 ^ (K + 1)) have claim1 : T (K + 1) = T K + 2^(K+1) * s.seq (2^(K+1)) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)⊒ ↑K β‰₯ t.m - 1; All goals completed! πŸ™ have claim2a : S (2^(K+1)) β‰₯ S (2^K) + 2^K * s.seq (2^(K+1)) := calc _ = S (2^K) + βˆ‘ n ∈ .Ioc (2^K) (2^(K+1)), s.seq n := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ S (2 ^ (K + 1)) = S (2 ^ K) + βˆ‘ n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), s.seq n have : Disjoint (Finset.Icc s.m (2^K)) (Finset.Ioc (2^K) (2^(K+1))) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ S (2 ^ (K + 1)) = S (2 ^ K) + βˆ‘ n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), s.seq n s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ βˆ€ a ∈ Finset.Icc s.m (2 ^ K), βˆ€ b ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), a β‰  b; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)x:β„€hx:x ∈ Finset.Icc s.m (2 ^ K)y:β„€hy:y ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1))⊒ x β‰  y; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)x:β„€y:β„€hx:s.m ≀ x ∧ x ≀ 2 ^ Khy:2 ^ K < y ∧ y ≀ 2 ^ (K + 1)⊒ x β‰  y; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039⊒ Finset.Icc s.m (2 ^ (K + 1)) = Finset.Icc s.m (2 ^ K) βˆͺ Finset.Ioc (2 ^ K) (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€βŠ’ x ∈ Finset.Icc s.m (2 ^ (K + 1)) ↔ x ∈ Finset.Icc s.m (2 ^ K) βˆͺ Finset.Ioc (2 ^ K) (2 ^ (K + 1)); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€βŠ’ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) ↔ s.m ≀ x ∧ x ≀ 2 ^ K ∨ 2 ^ K < x ∧ x ≀ 2 ^ (K + 1); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€βŠ’ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) β†’ s.m ≀ x ∧ x ≀ 2 ^ K ∨ 2 ^ K < x ∧ x ≀ 2 ^ (K + 1)s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€βŠ’ s.m ≀ x ∧ x ≀ 2 ^ K ∨ 2 ^ K < x ∧ x ≀ 2 ^ (K + 1) β†’ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€βŠ’ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) β†’ s.m ≀ x ∧ x ≀ 2 ^ K ∨ 2 ^ K < x ∧ x ≀ 2 ^ (K + 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:s.m ≀ xh2:x ≀ 2 ^ (K + 1)⊒ s.m ≀ x ∧ x ≀ 2 ^ K ∨ 2 ^ K < x ∧ x ≀ 2 ^ (K + 1); All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:s.m ≀ xh2:x ≀ 2 ^ K⊒ s.m ≀ x ∧ x ≀ 2 ^ (K + 1)s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:2 ^ K < xh2:x ≀ 2 ^ (K + 1)⊒ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:s.m ≀ xh2:x ≀ 2 ^ K⊒ s.m ≀ x ∧ x ≀ 2 ^ (K + 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:s.m ≀ xh2:x ≀ 2 ^ K⊒ x ≀ 2 * 2 ^ K; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.118039x:β„€h1:2 ^ K < xh2:x ≀ 2 ^ (K + 1)⊒ 1 ≀ x; All goals completed! πŸ™ _ β‰₯ S (2^K) + βˆ‘ n ∈ .Ioc ((2:β„€)^K) (2^(K+1)), s.seq (2^(K+1)) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ S (2 ^ K) + βˆ‘ n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), s.seq n β‰₯ S (2 ^ K) + βˆ‘ n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), s.seq (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)n:β„€hn:n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1))⊒ s.seq (2 ^ (K + 1)) ≀ s.seq n; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)n:β„€hn:2 ^ K < n ∧ n ≀ 2 ^ (K + 1)⊒ s.seq (2 ^ (K + 1)) ≀ s.seq n; exact hmono' _ (s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)n:β„€hn:2 ^ K < n ∧ n ≀ 2 ^ (K + 1)⊒ n β‰₯ 1 All goals completed! πŸ™) _ hn.2 _ = _ := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ S (2 ^ K) + βˆ‘ n ∈ Finset.Ioc (2 ^ K) (2 ^ (K + 1)), s.seq (2 ^ (K + 1)) = S (2 ^ K) + 2 ^ K * s.seq (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ ↑(2 * 2 ^ K - 2 ^ K).toNat = 2 ^ K ∨ s.seq (2 * 2 ^ K) = 0; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ ↑(2 * 2 ^ K - 2 ^ K).toNat = 2 ^ K; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)⊒ ↑(2 ^ K).toNat = 2 ^ K; All goals completed! πŸ™ have claim2 : 2 * S (2^(K+1)) β‰₯ 2 * S (2^K) + 2^(K+1) * s.seq (2^(K+1)) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196⊒ 2 * S (2 ^ (K + 1)) β‰₯ 2 * S (2 ^ K) + 2 * 2 ^ K * s.seq (2 ^ (K + 1)); All goals completed! πŸ™ have claim3 : S (2^(K+1+1) - 1) ≀ S (2^(K+1)-1) + 2^(K+1) * s.seq (2^(K+1)) := calc _ = S (2^(K+1)-1) + βˆ‘ n ∈ .Icc (2^(K+1)) (2^(K+1+1)-1), s.seq n := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ S (2 ^ (K + 1 + 1) - 1) = S (2 ^ (K + 1) - 1) + βˆ‘ n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), s.seq n have : Disjoint (Finset.Icc s.m (2^(K+1)-1)) (Finset.Icc (2^(K+1)) (2^(K+1+1)-1)) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ S (2 ^ (K + 1 + 1) - 1) = S (2 ^ (K + 1) - 1) + βˆ‘ n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), s.seq n s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ βˆ€ a ∈ Finset.Icc s.m (2 ^ (K + 1) - 1), βˆ€ b ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), a β‰  b; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)x:β„€hx:x ∈ Finset.Icc s.m (2 ^ (K + 1) - 1)y:β„€hy:y ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1)⊒ x β‰  y; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)x:β„€y:β„€hx:s.m ≀ x ∧ x ≀ 2 ^ (K + 1) - 1hy:2 ^ (K + 1) ≀ y ∧ y ≀ 2 ^ (K + 1 + 1) - 1⊒ x β‰  y; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930⊒ Finset.Icc s.m (2 ^ (K + 1 + 1) - 1) = Finset.Icc s.m (2 ^ (K + 1) - 1) βˆͺ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€βŠ’ a✝ ∈ Finset.Icc s.m (2 ^ (K + 1 + 1) - 1) ↔ a✝ ∈ Finset.Icc s.m (2 ^ (K + 1) - 1) βˆͺ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€βŠ’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 ↔ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€βŠ’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 β†’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€βŠ’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 β†’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€βŠ’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 β†’ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:s.m ≀ a✝h2:a✝ ≀ 2 ^ (K + 1 + 1) - 1⊒ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:s.m ≀ a✝h2:a✝ ≀ 2 ^ (K + 1 + 1) - 1⊒ a✝ ≀ 2 ^ (K + 1) - 1 ∨ 2 ^ (K + 1) ≀ a✝; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:s.m ≀ a✝h2:a✝ ≀ 2 ^ (K + 1) - 1⊒ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:2 ^ (K + 1) ≀ a✝h2:a✝ ≀ 2 ^ (K + 1 + 1) - 1⊒ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:s.m ≀ a✝h2:a✝ ≀ 2 ^ (K + 1) - 1⊒ s.m ≀ a✝ ∧ a✝ ≀ 2 ^ (K + 1 + 1) - 1 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:s.m ≀ a✝h2:a✝ ≀ 2 ^ (K + 1) - 1⊒ a✝ ≀ 2 * 2 ^ (K + 1) - 1; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.188930a✝:β„€h1:2 ^ (K + 1) ≀ a✝h2:a✝ ≀ 2 ^ (K + 1 + 1) - 1⊒ 1 ≀ a✝; All goals completed! πŸ™ _ ≀ S (2^(K+1)-1) + βˆ‘ n ∈ .Icc ((2:β„€)^(K+1)) (2^(K+1+1)-1), s.seq (2^(K+1)) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ S (2 ^ (K + 1) - 1) + βˆ‘ n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), s.seq n ≀ S (2 ^ (K + 1) - 1) + βˆ‘ n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), s.seq (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€hn:n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1)⊒ s.seq n ≀ s.seq (2 ^ (K + 1)); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€hn:2 ^ (K + 1) ≀ n ∧ n ≀ 2 ^ (K + 1 + 1) - 1⊒ s.seq n ≀ s.seq (2 ^ (K + 1)); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)n:β„€hn:2 ^ (K + 1) ≀ n ∧ n ≀ 2 ^ (K + 1 + 1) - 1⊒ 2 ^ (K + 1) β‰₯ 1; All goals completed! πŸ™ _ = _ := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ S (2 ^ (K + 1) - 1) + βˆ‘ n ∈ Finset.Icc (2 ^ (K + 1)) (2 ^ (K + 1 + 1) - 1), s.seq (2 ^ (K + 1)) = S (2 ^ (K + 1) - 1) + 2 ^ (K + 1) * s.seq (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ ↑(2 * (2 * 2 ^ K) - 2 * 2 ^ K).toNat = 2 * 2 ^ K ∨ s.seq (2 * 2 ^ K) = 0; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ ↑(2 * (2 * 2 ^ K) - 2 * 2 ^ K).toNat = 2 * 2 ^ K; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Chapter7.Series.partial_succ _fvar.22328 (Chapter7.Series.cauchy_criterion._proof_6 _fvar.21394 _fvar.22396 _fvar.30283 _fvar.40030 _fvar.40871 _fvar.108353 _fvar.109321 _fvar.109326 _fvar.109330)claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)⊒ ↑(2 ^ K * 2).toNat = 2 ^ K * 2; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.178245claim3:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.186554 ?_mvar.187315) ?_mvar.187746⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T (↑K + 1) ∧ T (↑K + 1) ≀ 2 * S (2 ^ (K + 1)); s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.178245claim3:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.186554 ?_mvar.187315) ?_mvar.187746⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T (↑K + 1)s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.178245claim3:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.186554 ?_mvar.187315) ?_mvar.187746⊒ T (↑K + 1) ≀ 2 * S (2 ^ (K + 1)) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.178245claim3:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.186554 ?_mvar.187315) ?_mvar.187746⊒ S (2 ^ (K + 1 + 1) - 1) ≀ T (↑K + 1)s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328K:β„•h2K:1 ≀ 2 ^ Kh2K':1 ≀ 2 ^ (K + 1)hK1:S (2 ^ (K + 1) - 1) ≀ T ↑KhK2:T ↑K ≀ 2 * S (2 ^ K)claim1:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.109886claim2a:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.116563 ?_mvar.117032) ?_mvar.117196claim2:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.178245claim3:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := Trans.trans (Trans.trans ?_mvar.186554 ?_mvar.187315) ?_mvar.187746⊒ T (↑K + 1) ≀ 2 * S (2 ^ (K + 1)) All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 K⊒ (βˆƒ M, βˆ€ (N : β„€), S N ≀ M) β†’ βˆƒ M, βˆ€ (N : β„€), T N ≀ Ms:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 K⊒ (βˆƒ M, βˆ€ (N : β„€), T N ≀ M) β†’ βˆƒ M, βˆ€ (N : β„€), S N ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 K⊒ (βˆƒ M, βˆ€ (N : β„€), S N ≀ M) β†’ βˆƒ M, βˆ€ (N : β„€), T N ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ M⊒ βˆƒ M, βˆ€ (N : β„€), T N ≀ M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ M⊒ βˆ€ (N : β„€), T N ≀ 2 * M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€βŠ’ T N ≀ 2 * M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:N < 0⊒ T N ≀ 2 * Ms:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:0 ≀ N⊒ T N ≀ 2 * M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:N < 0⊒ T N ≀ 2 * M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:N < 0⊒ 0 ≀ M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:N < 0⊒ 0 = S 0; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:0 ≀ N⊒ T ↑N.toNat ≀ 2 * M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), S N ≀ MN:β„€hN:0 ≀ N⊒ 2 * S (2 ^ N.toNat) ≀ 2 * M; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ M⊒ βˆƒ M, βˆ€ (N : β„€), S N ≀ M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ M⊒ βˆ€ (N : β„€), S N ≀ M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€βŠ’ S K' ≀ M; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':K' < 1⊒ S K' ≀ Ms:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'⊒ S K' ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':K' < 1⊒ S K' ≀ M s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':K' < 1⊒ 0 ≀ M; All goals completed! πŸ™ s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNat⊒ S K' ≀ M; have hK : K' = K + 1 := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq n⊒ s.converges ↔ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := ?_mvar.22395hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.30282htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.40029S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := fun K => @?_mvar.40851 KM:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNat⊒ K' = K' - 1 + 1; All goals completed! πŸ™ calc _ ≀ S (2 ^ (K+1) - 1) := s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))⊒ S K' ≀ S (2 ^ (K + 1) - 1) s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))⊒ K' ≀ 2 ^ (K + 1) - 1; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))⊒ ↑K + 1 ≀ 2 ^ (K + 1) - 1 s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))n:β„•βŠ’ ↑n + 1 ≀ 2 ^ (n + 1) - 1; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))⊒ ↑0 + 1 ≀ 2 ^ (0 + 1) - 1s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))n:β„•hn:↑n + 1 ≀ 2 ^ (n + 1) - 1⊒ ↑(n + 1) + 1 ≀ 2 ^ (n + 1 + 1) - 1; s:Serieshm:s.m = 1hs:s.nonneghmono:βˆ€ n β‰₯ 1, s.seq (n + 1) ≀ s.seq nt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)hmono':failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328Lemma_7_3_6:βˆ€ (K : β„•), @_fvar.40146 (2 ^ (K + 1) - 1) ≀ @_fvar.40274 ↑K ∧ @_fvar.40274 ↑K ≀ 2 * @_fvar.40146 (2 ^ K) := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))n:β„•hn:↑n + 1 ≀ 2 ^ (n + 1) - 1⊒ ↑(n + 1) + 1 ≀ 2 ^ (n + 1 + 1) - 1 s:Serieshm:s.m = 1hs:s.nonnegt:Chapter7.Series := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)ht:Chapter7.Series.nonneg _fvar.22328 := failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation)htm:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := of_eq_true (eq_self 0)S:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.21391T:β„€ β†’ ℝ := Chapter7.Series.partial _fvar.22328M:ℝhM:βˆ€ (N : β„€), T N ≀ MK':β„€hK':1 ≀ K'K:β„• := (_fvar.266718 - 1).toNathK:_fvar.266718 = ↑_fvar.270222 + 1 := Eq.mpr (id (congrArg (fun _a => _fvar.266718 = _a + 1) (Int.toNat_of_nonneg (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.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_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.sub_pf (Mathlib.Tactic.Ring.neg_add (Mathlib.Tactic.Ring.neg_mul _fvar.266718 (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 (Nat.rawCast 1) (Mathlib.Tactic.Ring.add_pf_zero_add (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 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 (_fvar.266718 ^ Nat.rawCast 1 * (Int.negOfNat 1).rawCast + 0)))) (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.add_congr (Mathlib.Tactic.Ring.sub_congr (Mathlib.Tactic.Ring.atom_pf _fvar.266718) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Mathlib.Tactic.Ring.sub_pf (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.add_pf_add_gt (Int.negOfNat 1).rawCast (Mathlib.Tactic.Ring.add_pf_add_zero (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0))))) (Mathlib.Tactic.Ring.cast_pos (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (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_zero (_fvar.266718 ^ 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 (_fvar.266718 ^ Nat.rawCast 1 * Nat.rawCast 1 + 0)))) (Mathlib.Tactic.Ring.add_pf_add_overlap_zero (Mathlib.Tactic.Ring.add_overlap_pf_zero _fvar.266718 (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 (neg_neg_of_pos Mathlib.Tactic.Linarith.zero_lt_one) (Mathlib.Tactic.Linarith.sub_nonpos_of_le _fvar.266773)) (Mathlib.Tactic.Linarith.sub_nonpos_of_le (Int.add_one_le_iff.mpr a)))))))) (Eq.trans (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Eq.symm (Mathlib.Tactic.Abel.subst_into_addg (_fvar.266718 - 1) 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.unfold_sub _fvar.266718 1 (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.subst_into_addg _fvar.266718 (-1) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0)) (Mathlib.Tactic.Abel.term_atomg _fvar.266718) (Mathlib.Tactic.Abel.subst_into_negg 1 (Mathlib.Tactic.Abel.termg 1 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_neg 1 1 0 (-1) 0 (Eq.refl (-1)) neg_zero)) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 0 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg (-1) 1 0) (zero_add (Mathlib.Tactic.Abel.termg (-1) 1 0))))) (Mathlib.Tactic.Abel.term_atomg 1) (Mathlib.Tactic.Abel.term_add_constg 1 _fvar.266718 (Mathlib.Tactic.Abel.termg (-1) 1 0) (Mathlib.Tactic.Abel.termg 1 1 0) 0 (Eq.trans (Mathlib.Tactic.Abel.term_add_termg (-1) 1 0 1 0 0 0 (Mathlib.Meta.NormNum.IsNat.to_eq (Mathlib.Meta.NormNum.IsInt.to_isNat (Mathlib.Meta.NormNum.isInt_add (Eq.refl HAdd.hAdd) (Mathlib.Meta.NormNum.isInt_neg (Eq.refl Neg.neg) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.negOfNat 1))) (Mathlib.Meta.NormNum.IsNat.to_isInt (Mathlib.Meta.NormNum.isNat_ofNat β„€ (Eq.refl 1))) (Eq.refl (Int.ofNat 0)))) (Eq.refl 0)) (zero_add 0)) (Mathlib.Tactic.Abel.zero_termg 1 0))))))n:β„•hmono:βˆ€ (n : β„€), 1 ≀ n β†’ s.seq (n + 1) ≀ s.seq nhmono':βˆ€ (n : β„€), 1 ≀ n β†’ βˆ€ (m : β„€), n ≀ m β†’ s.seq m ≀ s.seq nLemma_7_3_6:βˆ€ (K : β„•), S (2 ^ K * 2 - 1) ≀ T ↑K ∧ T ↑K ≀ 2 * S (2 ^ K)hn:↑n + 1 ≀ 2 ^ n * 2 - 1⊒ ↑n + 1 + 1 ≀ 2 ^ n * 2 * 2 - 1; All goals completed! πŸ™ _ ≀ T K := (Lemma_7_3_6 K).1 _ ≀ M := hM K

Corollary 7.3.7

theorem Series.converges_qseries (q: ℝ) (hq: q > 0) : (mk' (m := 1) fun n ↦ 1 / (n:ℝ) ^ q : Series).converges ↔ (q>1) := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 -- This proof is written to follow the structure of the original text. q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140⊒ s.converges ↔ q > 1 have hs : s.nonneg := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€βŠ’ s.seq n β‰₯ 0; q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€βŠ’ 0 ≀ if 1 ≀ n then (↑n ^ q)⁻¹ else 0; q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€h:1 ≀ n⊒ 0 ≀ if 1 ≀ n then (↑n ^ q)⁻¹ else 0q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€h:Β¬1 ≀ n⊒ 0 ≀ if 1 ≀ n then (↑n ^ q)⁻¹ else 0 q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€h:1 ≀ n⊒ 0 ≀ if 1 ≀ n then (↑n ^ q)⁻¹ else 0q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140n:β„€h:Β¬1 ≀ n⊒ 0 ≀ if 1 ≀ n then (↑n ^ q)⁻¹ else 0 All goals completed! πŸ™; All goals completed! πŸ™ have hmono : βˆ€ n β‰₯ 1, s.seq (n+1) ≀ s.seq n := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1⊒ s.seq (n + 1) ≀ s.seq n have hn1 : n β‰₯ 0 := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 All goals completed! πŸ™ have hn3 : n.toNat > 0 := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 All goals completed! πŸ™ q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ ((↑n + 1) ^ q)⁻¹ ≀ (↑n ^ q)⁻¹ q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 < ↑n ^ qq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 ≀ ↑nq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ ↑n ≀ ↑n + 1q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 ≀ q q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 < ↑n ^ qq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 ≀ ↑nq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ ↑n ≀ ↑n + 1q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209n:β„€hn:n β‰₯ 1hn1:_fvar.304325 β‰₯ 0 := ?_mvar.304364hn3:Int.toNat _fvar.304325 > 0 := ?_mvar.305025⊒ 0 ≀ q try All goals completed! πŸ™ All goals completed! πŸ™ q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316⊒ { m := 0, seq := fun n => if n β‰₯ 0 then (fun k => 2 ^ k * s.seq (2 ^ k)) n.toNat else 0, vanish := β‹― }.converges ↔ q > 1 have (n:β„•) : 2^n * s.seq (2^n) = (2^(1-q))^n := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 have : 1 ≀ (2:β„€)^n := q:ℝhq:q > 0⊒ (mk' fun n => 1 / ↑↑n ^ q).converges ↔ q > 1 q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•βŠ’ 1 ≀ 2 ^ n; All goals completed! πŸ™ q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 2 ^ n * ((2 ^ n) ^ q)⁻¹ = (2 ^ (1 - q)) ^ n q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ (2 ^ n) ^ (-q + 1) = (2 ^ n) ^ (1 - q)q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 0 ≀ 2q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 2 ^ n β‰  0q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 0 ≀ 2 ^ n q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ (2 ^ n) ^ (-q + 1) = (2 ^ n) ^ (1 - q)q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 0 ≀ 2q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 2 ^ n β‰  0q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316n:β„•this:1 ≀ 2 ^ _fvar.316959 := ?_mvar.317451⊒ 0 ≀ 2 ^ n (try All goals completed! πŸ™); All goals completed! πŸ™ q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ |2 ^ (1 - q)| < 1 ↔ 1 < q q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 1 < 2 ∧ 1 - q < 0 ∨ 2 < 1 ∧ 0 < 1 - q ↔ 1 < qq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 0 < 2q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 0 ≀ 2 ^ (1 - q) q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 1 < 2 ∧ 1 - q < 0 ∨ 2 < 1 ∧ 0 < 1 - q ↔ 1 < qq:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 0 < 2q:ℝhq:q > 0s:Chapter7.Series := Chapter7.Series.mk' fun n => 1 / ↑↑n ^ _fvar.296140hs:Chapter7.Series.nonneg _fvar.297160 := ?_mvar.297209hmono:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := ?_mvar.304316this:failed to pretty print expression (use 'set_option pp.rawOnError true' for raw representation) := fun n => @?_mvar.317365 n⊒ 0 ≀ 2 ^ (1 - q) try All goals completed! πŸ™ All goals completed! πŸ™

Remark 7.3.8

theorem Series.zeta_eq {q:ℝ} (hq: q > 1) : (mk' (m := 1) fun n ↦ 1 / (n:ℝ) ^ q : Series).sum = riemannZeta q := q:ℝhq:q > 1⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = riemannZeta ↑q -- `riemannZeta` is defined over the complex numbers, so some preliminary work is needed to specialize to the reals. q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = riemannZeta ↑q have hL : L = riemannZeta q := q:ℝhq:q > 1⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = riemannZeta ↑q q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028⊒ ↑L = βˆ‘' (n : β„•), 1 / (↑n + 1) ^ ↑q q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028n:β„•βŠ’ 1 / (↑n + 1) ^ ↑q = ↑(1 / (↑n + 1) ^ q) All goals completed! πŸ™ q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = ↑L q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259⊒ (mk' fun n => 1 / ↑↑n ^ q).sum = L; q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259⊒ (mk' fun n => 1 / ↑↑n ^ q).convergesTo L have : Summable (fun (n : β„•)↦ 1 / (n+1:ℝ) ^ q) := q:ℝhq:q > 1⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = riemannZeta ↑q q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259n:β„•βŠ’ ↑n + 1 = |↑n + 1| q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259n:β„•βŠ’ 0 ≀ ↑n + 1; All goals completed! πŸ™ have tail (a: β„€ β†’ ℝ) (L:ℝ) : Filter.atTop.Tendsto a (nhds L) ↔ Filter.atTop.Tendsto (fun n:β„• ↦ a n) (nhds L) := q:ℝhq:q > 1⊒ ↑(mk' fun n => 1 / ↑↑n ^ q).sum = riemannZeta ↑q q:ℝhq:q > 1L✝:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240a:β„€ β†’ ℝL:β„βŠ’ Filter.atTop = Filter.map (fun n => ↑n) Filter.atTop All goals completed! πŸ™ q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a L⊒ Filter.Tendsto (mk' fun n => 1 / ↑↑n ^ q).partial Filter.atTop (nhds L) q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a L⊒ Filter.Tendsto (fun n => (mk' fun n => 1 / ↑↑n ^ q).partial ↑n) Filter.atTop (nhds L) q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•βŠ’ (mk' fun n => 1 / ↑↑n ^ q).partial ↑n = βˆ‘ i ∈ Finset.range n, 1 / (↑i + 1) ^ q q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•βŠ’ (βˆ‘ x ∈ Finset.Icc 1 ↑n, if 1 ≀ x then (↑x ^ q)⁻¹ else 0) = βˆ‘ x ∈ Finset.range n, ((↑x + 1) ^ q)⁻¹ set e : β„• β†ͺ β„€ := { toFun n := n+1 inj' _ _ _ := q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := Eq.mpr (id (congrArg (fun _a => ↑_fvar.334370 = _a) (zeta_eq_tsum_one_div_nat_add_one_cpow (Eq.mpr (id (Eq.trans (congrArg (fun x => x < (↑_fvar.334028).re) (Eq.symm Nat.cast_one)) (congrArg (fun x => x < _fvar.334028) Nat.cast_one))) _fvar.334029)))) (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)) β„‚ (↑_fvar.334370) (↑(βˆ‘' (a : β„•), 1 / (↑a + 1) ^ _fvar.334028)) (Eq.refl ↑_fvar.334370) (βˆ‘' (n : β„•), 1 / (↑n + 1) ^ ↑_fvar.334028) (βˆ‘' (a : β„•), ↑(1 / (↑a + 1) ^ _fvar.334028)) (eq_of_heq ((fun Ξ± inst inst_1 Ξ² f f' e'_5 => Eq.casesOn (motive := fun a x => f' = a β†’ e'_5 ≍ x β†’ tsum f ≍ tsum f') e'_5 (fun h => Eq.ndrec (motive := fun f' => βˆ€ (e_5 : f = f'), e_5 ≍ Eq.refl f β†’ tsum f ≍ tsum f') (fun e_5 h => HEq.refl (tsum f)) (Eq.symm h) e'_5) (Eq.refl f') (HEq.refl e'_5)) β„‚ NormedAddCommGroup.toENormedAddCommMonoid.toAddCommMonoid PseudoMetricSpace.toUniformSpace.toTopologicalSpace β„• (fun n => 1 / (↑n + 1) ^ ↑_fvar.334028) (fun a => ↑(1 / (↑a + 1) ^ _fvar.334028)) (funext fun n => of_eq_true (Eq.trans (congr (congrArg Eq (one_div ((↑n + 1) ^ ↑_fvar.334028))) (Eq.trans (Eq.trans (congrArg Complex.ofReal (one_div ((↑n + 1) ^ _fvar.334028))) (Complex.ofReal_inv ((↑n + 1) ^ _fvar.334028))) (congrArg Inv.inv (Eq.trans ((fun x_0 => (fun x_0 => Complex.ofReal_cpow (le_of_lt (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one) (Eq.refl (Nat.ble 1 1))))) x_0) x_0) _fvar.334028) (congrArg (fun x => x ^ ↑_fvar.334028) (Complex.ofReal_add (↑n) 1)))))) (eq_self ((↑n + 1) ^ ↑_fvar.334028)⁻¹))))))) (Complex.ofReal_tsum fun n => 1 / (↑n + 1) ^ _fvar.334028))this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := Eq.mpr (eq_of_heq ((fun Ξ± Ξ² inst inst_1 f f' e'_5 => Eq.casesOn (motive := fun a x => f' = a β†’ e'_5 ≍ x β†’ Summable f ≍ Summable f') e'_5 (fun h => Eq.ndrec (motive := fun f' => βˆ€ (e_5 : f = f'), e_5 ≍ Eq.refl f β†’ Summable f ≍ Summable f') (fun e_5 h => HEq.refl (Summable f)) (Eq.symm h) e'_5) (Eq.refl f') (HEq.refl e'_5)) ℝ β„• Real.instAddCommMonoid PseudoMetricSpace.toUniformSpace.toTopologicalSpace (fun n => 1 / (↑n + 1) ^ _fvar.334028) (fun n => 1 / |↑n + 1| ^ _fvar.334028) (funext fun n => eq_of_heq ((fun Ξ± Ξ² Ξ³ self a a_1 a' e'_6 => Eq.casesOn (motive := fun a_2 x => a' = a_2 β†’ e'_6 ≍ x β†’ a / a_1 ≍ a / a') e'_6 (fun h => Eq.ndrec (motive := fun a' => βˆ€ (e_6 : a_1 = a'), e_6 ≍ Eq.refl a_1 β†’ a / a_1 ≍ a / a') (fun e_6 h => HEq.refl (a / a_1)) (Eq.symm h) e'_6) (Eq.refl a') (HEq.refl e'_6)) ℝ ℝ ℝ instHDiv 1 ((↑n + 1) ^ _fvar.334028) (|↑n + 1| ^ _fvar.334028) (eq_of_heq ((fun Ξ± Ξ² Ξ³ self a a' e'_5 a_1 => Eq.casesOn (motive := fun a_2 x => a' = a_2 β†’ e'_5 ≍ x β†’ a ^ a_1 ≍ a' ^ a_1) e'_5 (fun h => Eq.ndrec (motive := fun a' => βˆ€ (e_5 : a = a'), e_5 ≍ Eq.refl a β†’ a ^ a_1 ≍ a' ^ a_1) (fun e_5 h => HEq.refl (a ^ a_1)) (Eq.symm h) e'_5) (Eq.refl a') (HEq.refl e'_5)) ℝ ℝ ℝ instHPow (↑n + 1) |↑n + 1| (Eq.mpr (id (congrArg (fun _a => ↑n + 1 = _a) (abs_of_nonneg (le_of_lt (Right.add_pos_of_nonneg_of_pos (Nat.cast_nonneg' n) (Mathlib.Meta.Positivity.pos_of_isNat (Mathlib.Meta.NormNum.isNat_ofNat ℝ Nat.cast_one) (Eq.refl (Nat.ble 1 1)))))))) (Eq.refl (↑n + 1))) _fvar.334028)))))) ((Real.summable_one_div_nat_add_rpow 1 _fvar.334028).mpr _fvar.334029)tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => Eq.mpr (eq_of_heq ((fun a a' e'_1 b b' e'_2 => Eq.casesOn (motive := fun a_1 x => a' = a_1 β†’ e'_1 ≍ x β†’ (a ↔ b) ≍ (a' ↔ b')) e'_1 (fun h => Eq.ndrec (motive := fun a' => βˆ€ (e_1 : a = a'), e_1 ≍ Eq.refl a β†’ (a ↔ b) ≍ (a' ↔ b')) (fun e_1 h => Eq.casesOn (motive := fun a_1 x => b' = a_1 β†’ e'_2 ≍ x β†’ (a ↔ b) ≍ (a ↔ b')) e'_2 (fun h => Eq.ndrec (motive := fun b' => βˆ€ (e_2 : b = b'), e_2 ≍ Eq.refl b β†’ (a ↔ b) ≍ (a ↔ b')) (fun e_2 h => HEq.refl (a ↔ b)) (Eq.symm h) e'_2) (Eq.refl b') (HEq.refl e'_2)) (Eq.symm h) e'_1) (Eq.refl a') (HEq.refl e'_1)) (Filter.Tendsto a Filter.atTop (nhds L)) (Filter.Tendsto a (Filter.map (fun n => ↑n) Filter.atTop) (nhds L)) (eq_of_heq ((fun Ξ± Ξ² f f' e'_3 l₁ l₁' e'_4 lβ‚‚ lβ‚‚' e'_5 => Eq.casesOn (motive := fun a x => f' = a β†’ e'_3 ≍ x β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f' l₁' lβ‚‚') e'_3 (fun h => Eq.ndrec (motive := fun f' => βˆ€ (e_3 : f = f'), e_3 ≍ Eq.refl f β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f' l₁' lβ‚‚') (fun e_3 h => Eq.casesOn (motive := fun a x => l₁' = a β†’ e'_4 ≍ x β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁' lβ‚‚') e'_4 (fun h => Eq.ndrec (motive := fun l₁' => βˆ€ (e_4 : l₁ = l₁'), e_4 ≍ Eq.refl l₁ β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁' lβ‚‚') (fun e_4 h => Eq.casesOn (motive := fun a x => lβ‚‚' = a β†’ e'_5 ≍ x β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁ lβ‚‚') e'_5 (fun h => Eq.ndrec (motive := fun lβ‚‚' => βˆ€ (e_5 : lβ‚‚ = lβ‚‚'), e_5 ≍ Eq.refl lβ‚‚ β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁ lβ‚‚') (fun e_5 h => HEq.refl (Filter.Tendsto f l₁ lβ‚‚)) (Eq.symm h) e'_5) (Eq.refl lβ‚‚') (HEq.refl e'_5)) (Eq.symm h) e'_4) (Eq.refl l₁') (HEq.refl e'_4)) (Eq.symm h) e'_3) (Eq.refl f') (HEq.refl e'_3)) β„€ ℝ a a (Eq.refl a) Filter.atTop (Filter.map (fun n => ↑n) Filter.atTop) (of_eq_true (Eq.trans (congrArg (Eq Filter.atTop) Nat.map_cast_int_atTop) (eq_self Filter.atTop))) (nhds L) (nhds L) (Eq.refl (nhds L)))) (Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L)) (Filter.Tendsto (a ∘ fun n => ↑n) Filter.atTop (nhds L)) (eq_of_heq ((fun Ξ± Ξ² f f' e'_3 l₁ l₁' e'_4 lβ‚‚ => Eq.casesOn (motive := fun a x => f' = a β†’ e'_3 ≍ x β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f' l₁' lβ‚‚) e'_3 (fun h => Eq.ndrec (motive := fun f' => βˆ€ (e_3 : f = f'), e_3 ≍ Eq.refl f β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f' l₁' lβ‚‚) (fun e_3 h => Eq.casesOn (motive := fun a x => l₁' = a β†’ e'_4 ≍ x β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁' lβ‚‚) e'_4 (fun h => Eq.ndrec (motive := fun l₁' => βˆ€ (e_4 : l₁ = l₁'), e_4 ≍ Eq.refl l₁ β†’ Filter.Tendsto f l₁ lβ‚‚ ≍ Filter.Tendsto f l₁' lβ‚‚) (fun e_4 h => HEq.refl (Filter.Tendsto f l₁ lβ‚‚)) (Eq.symm h) e'_4) (Eq.refl l₁') (HEq.refl e'_4)) (Eq.symm h) e'_3) (Eq.refl f') (HEq.refl e'_3)) β„• ℝ (fun n => a ↑n) (a ∘ fun n => ↑n) (funext fun x => Eq.refl (a ↑x)) Filter.atTop Filter.atTop (Eq.refl Filter.atTop) (nhds L))))) Filter.tendsto_map'_iffn:β„•x✝²:β„•x✝¹:β„•x✝:(fun n => ↑n + 1) x✝² = (fun n => ↑n + 1) x✝¹⊒ x✝² = x✝¹ All goals completed! πŸ™ } q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }⊒ Finset.Icc 1 ↑n = Finset.map e (Finset.range n)q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }m:β„•hm:m ∈ Finset.range n⊒ ((↑m + 1) ^ q)⁻¹ = if 1 ≀ e m then (↑(e m) ^ q)⁻¹ else 0 q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }⊒ Finset.Icc 1 ↑n = Finset.map e (Finset.range n) q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€βŠ’ x ∈ Finset.Icc 1 ↑n ↔ x ∈ Finset.map e (Finset.range n); q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€βŠ’ 1 ≀ x ∧ x ≀ ↑n ↔ βˆƒ a < n, ↑a + 1 = x; q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€βŠ’ 1 ≀ x ∧ x ≀ ↑n β†’ βˆƒ a < n, ↑a + 1 = xq:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€βŠ’ (βˆƒ a < n, ↑a + 1 = x) β†’ 1 ≀ x ∧ x ≀ ↑n q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€βŠ’ 1 ≀ x ∧ x ≀ ↑n β†’ βˆƒ a < n, ↑a + 1 = x q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€left✝:1 ≀ xright✝:x ≀ ↑n⊒ βˆƒ a < n, ↑a + 1 = x; q:ℝhq:q > 1L:ℝ := βˆ‘' (n : β„•), 1 / (↑n + 1) ^ _fvar.334028hL:↑_fvar.334370 = riemannZeta ↑_fvar.334028 := ?_mvar.335259this:Summable fun n => 1 / (↑n + 1) ^ _fvar.334028 := ?_mvar.340240tail:βˆ€ (a : β„€ β†’ ℝ) (L : ℝ), Filter.Tendsto a Filter.atTop (nhds L) ↔ Filter.Tendsto (fun n => a ↑n) Filter.atTop (nhds L) := fun a L => @?_mvar.343975 a Ln:β„•e:β„• β†ͺ β„€ := { toFun := fun n => ↑n + 1, inj' := β‹― }x:β„€left✝:1 ≀ xright✝:x ≀ ↑n⊒ (x - 1).toNat < n ∧ ↑(x - 1).toNat + 1 = x; All goals completed! πŸ™ All goals completed! πŸ™ All goals completed! πŸ™
theorem Series.Basel_problem : (mk' (m := 1) fun n ↦ 1 / (n:ℝ) ^ 2 : Series).sum = Real.pi ^ 2 / 6 := ⊒ (mk' fun n => 1 / ↑↑n ^ 2).sum = Ο€ ^ 2 / 6 have := zeta_eq (show 2 > 1 ⊒ (mk' fun n => 1 / ↑↑n ^ 2).sum = Ο€ ^ 2 / 6 All goals completed! πŸ™) this:↑(mk' fun n => (↑↑n ^ 2)⁻¹).sum = ↑π ^ 2 / 6⊒ (mk' fun n => 1 / ↑↑n ^ 2).sum = Ο€ ^ 2 / 6 All goals completed! πŸ™

Exercise 7.3.3

theorem declaration uses 'sorry'Series.nonneg_sum_zero {a:β„• β†’ ℝ} (ha: (a:Series).nonneg) (hconv: (a:Series).converges) : (a:Series).sum = 0 ↔ βˆ€ n, a 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 := β‹― }.converges⊒ { m := 0, seq := fun n => if n β‰₯ 0 then a n.toNat else 0, vanish := β‹― }.sum = 0 ↔ βˆ€ (n : β„•), a n = 0 All goals completed! πŸ™
end Chapter7