Analysis I, Section 7.4: Rearrangement of series #
I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.
Main constructions and results of this section:
- Rearrangement of non-negative or absolutely convergent series.
theorem
Chapter7.Series.converges_of_permute_nonneg
{a : ℕ → ℝ}
(ha : { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.nonneg)
(hconv : { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.converges)
{f : ℕ → ℕ}
(hf : Function.Bijective f)
:
{ m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.converges ∧ { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.sum = { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.sum
Proposition 7.4.1
theorem
Chapter7.Series.absConverges_of_permute
{a : ℕ → ℝ}
(ha : { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges)
{f : ℕ → ℕ}
(hf : Function.Bijective f)
:
{ m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.absConverges ∧ { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.sum = { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.sum
Proposition 7.4.3 (Rearrangement of series)
@[reducible, inline]
Example 7.4.4
Equations
- Chapter7.Series.a_7_4_4 n = (-1) ^ n / (↑n + 2)
Instances For
theorem
Chapter7.Series.absConverges_of_subseries
{a : ℕ → ℝ}
(ha : { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges)
{f : ℕ → ℕ}
(hf : StrictMono f)
:
Exercise 7.4.1
theorem
Chapter7.Series.absConverges_of_permute'
{a : ℕ → ℝ}
(ha : { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.absConverges)
{f : ℕ → ℕ}
(hf : Function.Bijective f)
:
{ m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.absConverges ∧ { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then a n.toNat else 0, vanish := ⋯ }.sum = { m := 0, seq := fun (n : ℤ) => if n ≥ 0 then (fun (n : ℕ) => a (f n)) n.toNat else 0, vanish := ⋯ }.sum
Exercise 7.4.2 : reprove Proposition 7.4.3 using Proposition 7.41, Proposition 7.2.14,
and expressing a n as the difference of a n + |a n| and |a n|.