# Convergence of p-series #

In this file we prove that the series ∑' k in ℕ, 1 / k ^ p converges if and only if p > 1. The proof is based on the Cauchy condensation test: ∑ k, f k converges if and only if so does ∑ k, 2 ^ k f (2 ^ k). We prove this test in NNReal.summable_condensed_iff and summable_condensed_iff_of_nonneg, then use it to prove summable_one_div_rpow. After this transformation, a p-series turns into a geometric series.

## Tags #

p-series, Cauchy condensation test

### Schlömilch's generalization of the Cauchy condensation test #

In this section we prove the Schlömilch's generalization of the Cauchy condensation test: for a strictly increasing u : ℕ → ℕ with ratio of successive differences bounded and an antitone f : ℕ → ℝ≥0 or f : ℕ → ℝ, ∑ k, f k converges if and only if so does ∑ k, (u (k + 1) - u k) * f (u k). Instead of giving a monolithic proof, we split it into a series of lemmas with explicit estimates of partial sums of each series in terms of the partial sums of the other series.

def SuccDiffBounded (C : ) (u : ) :

A sequence u has the property that its ratio of successive differences is bounded when there is a positive real number C such that, for all n ∈ ℕ, (u (n + 2) - u (n + 1)) ≤ C * (u (n + 1) - u n)

Equations
Instances For
theorem Finset.le_sum_schlomilch' {M : Type u_1} {f : M} {u : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu : ) (n : ) :
kFinset.Ico (u 0) (u n), f k k, (u (k + 1) - u k) f (u k)
theorem Finset.le_sum_condensed' {M : Type u_1} {f : M} (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (n : ) :
kFinset.Ico 1 (2 ^ n), f k k, 2 ^ k f (2 ^ k)
theorem Finset.le_sum_schlomilch {M : Type u_1} {f : M} {u : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu : ) (n : ) :
kFinset.range (u n), f k kFinset.range (u 0), f k + k, (u (k + 1) - u k) f (u k)
theorem Finset.le_sum_condensed {M : Type u_1} {f : M} (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (n : ) :
kFinset.range (2 ^ n), f k f 0 + k, 2 ^ k f (2 ^ k)
theorem Finset.sum_schlomilch_le' {M : Type u_1} {f : M} {u : } (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu : ) (n : ) :
k, (u (k + 1) - u k) f (u (k + 1)) kFinset.Ico (u 0 + 1) (u n + 1), f k
theorem Finset.sum_condensed_le' {M : Type u_1} {f : M} (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) (n : ) :
k, 2 ^ k f (2 ^ (k + 1)) kFinset.Ico 2 (2 ^ n + 1), f k
theorem Finset.sum_schlomilch_le {M : Type u_1} {f : M} {u : } {C : } (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (h_nonneg : ∀ (n : ), 0 f n) (hu : ) (h_succ_diff : ) (n : ) :
kFinset.range (n + 1), (u (k + 1) - u k) f (u k) (u 1 - u 0) f (u 0) + C kFinset.Ico (u 0 + 1) (u n + 1), f k
theorem Finset.sum_condensed_le {M : Type u_1} {f : M} (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) (n : ) :
kFinset.range (n + 1), 2 ^ k f (2 ^ k) f 1 + 2 kFinset.Ico 2 (2 ^ n + 1), f k
theorem ENNReal.le_tsum_schlomilch {u : } {f : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu : ) :
∑' (k : ), f k kFinset.range (u 0), f k + ∑' (k : ), ((u (k + 1)) - (u k)) * f (u k)
theorem ENNReal.le_tsum_condensed {f : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) :
∑' (k : ), f k f 0 + ∑' (k : ), 2 ^ k * f (2 ^ k)
theorem ENNReal.tsum_schlomilch_le {u : } {f : } {C : } (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (h_nonneg : ∀ (n : ), 0 f n) (hu : ) (h_succ_diff : ) :
∑' (k : ), ((u (k + 1)) - (u k)) * f (u k) ((u 1) - (u 0)) * f (u 0) + C * ∑' (k : ), f k
theorem ENNReal.tsum_condensed_le {f : } (hf : ∀ ⦃m n : ⦄, 1 < mm nf n f m) :
∑' (k : ), 2 ^ k * f (2 ^ k) f 1 + 2 * ∑' (k : ), f k
theorem NNReal.summable_schlomilch_iff {C : } {u : } {f : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu_strict : ) (hC_nonzero : C 0) (h_succ_diff : ) :
(Summable fun (k : ) => ((u (k + 1)) - (u k)) * f (u k))

for a series of NNReal version.

theorem NNReal.summable_condensed_iff {f : } (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) :
(Summable fun (k : ) => 2 ^ k * f (2 ^ k))
theorem summable_schlomilch_iff_of_nonneg {C : } {u : } {f : } (h_nonneg : ∀ (n : ), 0 f n) (hf : ∀ ⦃m n : ⦄, 0 < mm nf n f m) (h_pos : ∀ (n : ), 0 < u n) (hu_strict : ) (hC_nonzero : C 0) (h_succ_diff : ) :
(Summable fun (k : ) => ((u (k + 1)) - (u k)) * f (u k))

for series of nonnegative real numbers.

theorem summable_condensed_iff_of_nonneg {f : } (h_nonneg : ∀ (n : ), 0 f n) (h_mono : ∀ ⦃m n : ⦄, 0 < mm nf n f m) :
(Summable fun (k : ) => 2 ^ k * f (2 ^ k))

Cauchy condensation test for antitone series of nonnegative real numbers.

### Convergence of the p-series #

In this section we prove that for a real number p, the series ∑' n : ℕ, 1 / (n ^ p) converges if and only if 1 < p. There are many different proofs of this fact. The proof in this file uses the Cauchy condensation test we formalized above. This test implies that ∑ n, 1 / (n ^ p) converges if and only if ∑ n, 2 ^ n / ((2 ^ n) ^ p) converges, and the latter series is a geometric series with common ratio 2 ^ {1 - p}.

@[simp]
theorem Real.summable_nat_rpow_inv {p : } :
(Summable fun (n : ) => (n ^ p)⁻¹) 1 < p

Test for convergence of the p-series: the real-valued series ∑' n : ℕ, (n ^ p)⁻¹ converges if and only if 1 < p.

@[simp]
theorem Real.summable_nat_rpow {p : } :
(Summable fun (n : ) => n ^ p) p < -1
theorem Real.summable_one_div_nat_rpow {p : } :
(Summable fun (n : ) => 1 / n ^ p) 1 < p

Test for convergence of the p-series: the real-valued series ∑' n : ℕ, 1 / n ^ p converges if and only if 1 < p.

@[simp]
theorem Real.summable_nat_pow_inv {p : } :
(Summable fun (n : ) => (n ^ p)⁻¹) 1 < p

Test for convergence of the p-series: the real-valued series ∑' n : ℕ, (n ^ p)⁻¹ converges if and only if 1 < p.

theorem Real.summable_one_div_nat_pow {p : } :
(Summable fun (n : ) => 1 / n ^ p) 1 < p

Test for convergence of the p-series: the real-valued series ∑' n : ℕ, 1 / n ^ p converges if and only if 1 < p.

theorem Real.summable_one_div_int_pow {p : } :
(Summable fun (n : ) => 1 / n ^ p) 1 < p

Summability of the p-series over ℤ.

theorem Real.summable_abs_int_rpow {b : } (hb : 1 < b) :
Summable fun (n : ) => |n| ^ (-b)

Harmonic series is not unconditionally summable.

@[deprecated Real.not_summable_natCast_inv]

Alias of Real.not_summable_natCast_inv.

Harmonic series is not unconditionally summable.

theorem Real.not_summable_one_div_natCast :
¬Summable fun (n : ) => 1 / n

Harmonic series is not unconditionally summable.

@[deprecated Real.not_summable_one_div_natCast]
theorem Real.not_summable_one_div_nat_cast :
¬Summable fun (n : ) => 1 / n

Alias of Real.not_summable_one_div_natCast.

Harmonic series is not unconditionally summable.

theorem Real.tendsto_sum_range_one_div_nat_succ_atTop :
Filter.Tendsto (fun (n : ) => i, 1 / (i + 1)) Filter.atTop Filter.atTop

Divergence of the Harmonic Series

@[simp]
theorem NNReal.summable_rpow_inv {p : } :
(Summable fun (n : ) => (n ^ p)⁻¹) 1 < p
@[simp]
theorem NNReal.summable_rpow {p : } :
(Summable fun (n : ) => n ^ p) p < -1
theorem NNReal.summable_one_div_rpow {p : } :
(Summable fun (n : ) => 1 / n ^ p) 1 < p
theorem sum_Ioc_inv_sq_le_sub {α : Type u_1} {k : } {n : } (hk : k 0) (h : k n) :
i, (i ^ 2)⁻¹ (k)⁻¹ - (n)⁻¹
theorem sum_Ioo_inv_sq_le {α : Type u_1} (k : ) (n : ) :
i, (i ^ 2)⁻¹ 2 / (k + 1)
theorem Real.not_summable_indicator_one_div_natCast {m : } (hm : m 0) (k : ZMod m) :
¬Summable ({n : | n = k}.indicator fun (n : ) => 1 / n)

The harmonic series restricted to a residue class is not summable.

## Translating the p-series by a real number #

theorem Real.summable_one_div_nat_add_rpow (a : ) (s : ) :
(Summable fun (n : ) => 1 / |n + a| ^ s) 1 < s
theorem Real.summable_one_div_int_add_rpow (a : ) (s : ) :
(Summable fun (n : ) => 1 / |n + a| ^ s) 1 < s