Documentation

Books.Analysis2_Tao_2022.Chapters.Chap04.section03

theorem helperForLemma_4_3_1_stepIdentity (a b : ) (n : ) :
(a (n + 1) - a n) * b n + a (n + 1) * (b (n + 1) - b n) = a (n + 1) * b (n + 1) - a n * b n

Helper for Lemma 4.3.1: one-step algebraic summation-by-parts identity.

theorem helperForLemma_4_3_1_telescoping (a b : ) (N : ) :
nFinset.range N, ((a (n + 1) - a n) * b n + a (n + 1) * (b (n + 1) - b n)) = a N * b N - a 0 * b 0

Helper for Lemma 4.3.1: telescoping finite sum of the two-by-parts terms.

theorem helperForLemma_4_3_1_finiteFormula (a b : ) (N : ) :
nFinset.range N, (a (n + 1) - a n) * b n = a N * b N - a 0 * b 0 - nFinset.range N, a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: finite summation-by-parts identity over Finset.range N.

theorem helperForLemma_4_3_1_tendsto_partialSums (a b : ) (A B : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) :
Filter.Tendsto (fun (N : ) => nFinset.range N, a (n + 1) * (b (n + 1) - b n)) Filter.atTop (nhds (A * B - a 0 * b 0 - ∑' (n : ), (a (n + 1) - a n) * b n))

Helper for Lemma 4.3.1: convergence of ordered partial sums of a (n+1) * (b (n+1) - b n) to the summation-by-parts limit value.

theorem helperForLemma_4_3_1_identity_of_hasSumForwardDifference (a b : ) (A B S : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hhasSumForward : HasSum (fun (n : ) => a (n + 1) * (b (n + 1) - b n)) S) :
∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - S

Helper for Lemma 4.3.1: if the forward-difference series has a prescribed sum S, the summation-by-parts identity holds with that same S.

theorem helperForLemma_4_3_1_formula_with_hasSumForwardDifference (a b : ) (A B S : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hhasSumForward : HasSum (fun (n : ) => a (n + 1) * (b (n + 1) - b n)) S) :
(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - S

Helper for Lemma 4.3.1: a HasSum hypothesis for the forward-difference series immediately yields summability and the corresponding summation-by-parts identity.

theorem helperForLemma_4_3_1_tsumIdentity_of_hasSumForwardDifference (a b : ) (A B S : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hhasSumForward : HasSum (fun (n : ) => a (n + 1) * (b (n + 1) - b n)) S) :
∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: an explicit forward-difference HasSum hypothesis already yields the textbook identity written with tsum.

theorem helperForLemma_4_3_1_formula_with_explicitForwardHasSum (a b : ) (A B S : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hhasSumForward : HasSum (fun (n : ) => a (n + 1) * (b (n + 1) - b n)) S) :
(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: a corrected summation-by-parts statement with an explicit forward HasSum hypothesis gives both forward summability and the textbook tsum identity.

theorem helperForLemma_4_3_1_hasSumForwardDifference_of_summable (a b : ) (hsummableForward : Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) :
HasSum (fun (n : ) => a (n + 1) * (b (n + 1) - b n)) (∑' (n : ), a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: unconditional forward-difference summability supplies the canonical HasSum witness at its tsum.

theorem helperForLemma_4_3_1_identity_of_summableForwardDifference (a b : ) (A B : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hsummableForward : Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) :
∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: assuming unconditional summability of the forward-difference series, the target summation-by-parts identity follows from uniqueness of the partial-sum limit.

theorem helperForLemma_4_3_1_formula_with_forwardSummable (a b : ) (A B : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) (hsummableForward : Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) :
(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: if forward-difference summability is given explicitly, the full summation-by-parts conclusion follows.

Helper for Lemma 4.3.1: the alternating harmonic sequence tends to 0.

theorem helperForLemma_4_3_1_notSummable_alternatingHarmonicForwardDifference :
¬Summable fun (n : ) => (-1) ^ (n + 1) / (n + 2) - (-1) ^ n / (n + 1)

Helper for Lemma 4.3.1: the forward difference of the alternating harmonic sequence is not unconditionally summable in .

theorem helperForLemma_4_3_1_notSummable_forwardDifference_of_explicitB :
have b := fun (n : ) => (-1) ^ n / (n + 1); ¬Summable fun (n : ) => b (n + 1) - b n

Helper for Lemma 4.3.1: for b n = (-1)^n/(n+1), the forward-difference series ∑ (b (n+1) - b n) is not summable.

theorem helperForLemma_4_3_1_notSummable_weightedForwardDifference_of_explicitData :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); ¬Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: for the explicit constant-one and alternating-harmonic data, the weighted forward-difference series is not summable.

theorem helperForLemma_4_3_1_explicitDataWithConcreteLimits :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); Filter.Tendsto a Filter.atTop (nhds 1) Filter.Tendsto b Filter.atTop (nhds 0) (Summable fun (n : ) => (a (n + 1) - a n) * b n) ¬Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: the explicit constant-one and alternating-harmonic data with concrete limits A = 1, B = 0 satisfy the hypotheses while the weighted forward-difference series is not summable.

theorem helperForLemma_4_3_1_explicitWeightedForwardDifference_partialSums_tendsto :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); Filter.Tendsto (fun (N : ) => nFinset.range N, a (n + 1) * (b (n + 1) - b n)) Filter.atTop (nhds (-1))

Helper for Lemma 4.3.1: for the explicit constant-one and alternating-harmonic data, the ordered partial sums of the weighted forward-difference series converge to -1.

Helper for Lemma 4.3.1: there exists an explicit sequence whose ordered partial sums converge, while the sequence is not Summable in Lean's finite-subset summability sense.

theorem helperForLemma_4_3_1_existsForwardCounterexample :
∃ (a : ) (b : ) (A : ) (B : ), Filter.Tendsto a Filter.atTop (nhds A) Filter.Tendsto b Filter.atTop (nhds B) (Summable fun (n : ) => (a (n + 1) - a n) * b n) ¬Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: explicit data satisfy the hypotheses while the forward-difference series fails to be unconditionally summable.

theorem helperForLemma_4_3_1_universalForwardSummableFalse :
¬∀ (a b : ) (A B : ), Filter.Tendsto a Filter.atTop (nhds A)Filter.Tendsto b Filter.atTop (nhds B)(Summable fun (n : ) => (a (n + 1) - a n) * b n)Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: the stated hypotheses do not force unconditional summability of the forward-difference series in Lean's Summable sense.

theorem helperForLemma_4_3_1_explicitForwardImplicationFalseAtConcreteLimits :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); ¬(Filter.Tendsto a Filter.atTop (nhds 1)Filter.Tendsto b Filter.atTop (nhds 0)(Summable fun (n : ) => (a (n + 1) - a n) * b n)Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: for the explicit constant-one and alternating-harmonic data at concrete limits, even the forward-summability implication alone is false.

theorem helperForLemma_4_3_1_universalConclusionFalse :
¬∀ (a b : ) (A B : ), Filter.Tendsto a Filter.atTop (nhds A)Filter.Tendsto b Filter.atTop (nhds B)(Summable fun (n : ) => (a (n + 1) - a n) * b n)(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)

Helper for Lemma 4.3.1: the full universal statement of the textbook conclusion would imply a universal forward-summability implication, which is false.

theorem helperForLemma_4_3_1_existsCounterexampleToConclusion :
∃ (a : ) (b : ) (A : ) (B : ), Filter.Tendsto a Filter.atTop (nhds A) Filter.Tendsto b Filter.atTop (nhds B) (Summable fun (n : ) => (a (n + 1) - a n) * b n) ¬((Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: there exists explicit data satisfying the hypotheses for which the full textbook conclusion fails in Lean's unconditional Summable sense.

theorem helperForLemma_4_3_1_explicitDataRefutesConclusionAtConcreteLimits :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); ¬((Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = 1 * 0 - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: the explicit constant-one and alternating-harmonic data at concrete limits A = 1, B = 0 refute the full textbook conclusion.

theorem helperForLemma_4_3_1_explicitForwardSummableImplicationFalse :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); ¬((Summable fun (n : ) => (a (n + 1) - a n) * b n)Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: for the explicit constant-one and alternating-harmonic data, convergence of ∑ (a_{n+1} - a_n)b_n does not imply unconditional summability of ∑ a_{n+1}(b_{n+1} - b_n) in Lean.

theorem helperForLemma_4_3_1_universalProofLeadsToFalse (hUniversal : ∀ (a b : ) (A B : ), Filter.Tendsto a Filter.atTop (nhds A)Filter.Tendsto b Filter.atTop (nhds B)(Summable fun (n : ) => (a (n + 1) - a n) * b n)(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = A * B - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n)) :

Helper for Lemma 4.3.1: any universal proof of the textbook conclusion contradicts the explicit counterexample already established above.

theorem helperForLemma_4_3_1_explicitImplicationFalseAtConcreteLimits :
have a := fun (x : ) => 1; have b := fun (n : ) => (-1) ^ n / (n + 1); ¬(Filter.Tendsto a Filter.atTop (nhds 1)Filter.Tendsto b Filter.atTop (nhds 0)(Summable fun (n : ) => (a (n + 1) - a n) * b n)(Summable fun (n : ) => a (n + 1) * (b (n + 1) - b n)) ∑' (n : ), (a (n + 1) - a n) * b n = 1 * 0 - a 0 * b 0 - ∑' (n : ), a (n + 1) * (b (n + 1) - b n))

Helper for Lemma 4.3.1: for the explicit constant-one and alternating-harmonic data at concrete limits, the implication from the stated hypotheses to the full textbook conclusion is false.

theorem summation_by_parts_formula (a b : ) (A B : ) (ha : Filter.Tendsto a Filter.atTop (nhds A)) (hb : Filter.Tendsto b Filter.atTop (nhds B)) (hconv : Summable fun (n : ) => (a (n + 1) - a n) * b n) :
Filter.Tendsto (fun (N : ) => nFinset.range N, a (n + 1) * (b (n + 1) - b n)) Filter.atTop (nhds (A * B - a 0 * b 0 - ∑' (n : ), (a (n + 1) - a n) * b n))

Lemma 4.3.1 (Summation by parts formula): Let a, b : ℕ → ℝ with Tendsto a atTop (𝓝 A) and Tendsto b atTop (𝓝 B). If the series ∑' n, (a (n + 1) - a n) * b n converges, then the ordered partial sums of ∑ a (n + 1) * (b (n + 1) - b n) converge to A * B - a 0 * b 0 - ∑' n, (a (n + 1) - a n) * b n.

theorem helperForTheorem_4_3_1_tendsto_affineToUnit_right {a R : } (hRpos : 0 < R) :
Filter.Tendsto (fun (x : ) => (x - a) / R) (nhdsWithin (a + R) (Set.Ioo (a - R) (a + R))) (nhdsWithin 1 (Set.Iio 1))

Helper for Theorem 4.3.1: the right-endpoint affine normalization x ↦ (x-a)/R tends to 1 from below when x → a+R inside (a-R,a+R).

theorem helperForTheorem_4_3_1_tendsto_affineToUnit_left {a R : } (hRpos : 0 < R) :
Filter.Tendsto (fun (x : ) => (a - x) / R) (nhdsWithin (a - R) (Set.Ioo (a - R) (a + R))) (nhdsWithin 1 (Set.Iio 1))

Helper for Theorem 4.3.1: the left-endpoint affine normalization x ↦ (a-x)/R tends to 1 from below when x → a-R inside (a-R,a+R).

theorem helperForTheorem_4_3_1_termRewrite_right {a R : } (hRpos : 0 < R) (f : FormalPowerSeriesCenteredAt a) (x : ) (n : ) :
f.coeff n * R ^ n * ((x - a) / R) ^ n = f.coeff n * (x - a) ^ n

Helper for Theorem 4.3.1: right-endpoint term normalization identity.

theorem helperForTheorem_4_3_1_termRewrite_left {a R : } (hRpos : 0 < R) (f : FormalPowerSeriesCenteredAt a) (x : ) (n : ) :
f.coeff n * (-R) ^ n * ((a - x) / R) ^ n = f.coeff n * (x - a) ^ n

Helper for Theorem 4.3.1: left-endpoint term normalization identity.

theorem FormalPowerSeriesCenteredAt.abel_theorem {a R : } (f : FormalPowerSeriesCenteredAt a) (hRpos : 0 < R) (hRadius : f.radiusOfConvergence = ENNReal.ofReal R) :
((Summable fun (n : ) => f.coeff n * R ^ n)Filter.Tendsto (fun (x : ) => ∑' (n : ), f.coeff n * (x - a) ^ n) (nhdsWithin (a + R) (Set.Ioo (a - R) (a + R))) (nhds (∑' (n : ), f.coeff n * R ^ n))) ((Summable fun (n : ) => f.coeff n * (-R) ^ n)Filter.Tendsto (fun (x : ) => ∑' (n : ), f.coeff n * (x - a) ^ n) (nhdsWithin (a - R) (Set.Ioo (a - R) (a + R))) (nhds (∑' (n : ), f.coeff n * (-R) ^ n)))

Theorem 4.3.1 (Abel's theorem): let f(x) = ∑' n, c_n (x-a)^n be a real power series centered at a with radius of convergence R and 0 < R. (1) If ∑' n, c_n R^n converges, then x ↦ ∑' n, c_n (x-a)^n tends to ∑' n, c_n R^n as x → a + R within (a - R, a + R). (2) If ∑' n, c_n (-R)^n converges, then x ↦ ∑' n, c_n (x-a)^n tends to ∑' n, c_n (-R)^n as x → a - R within (a - R, a + R).

theorem complex_mul_comm (z₁ z₂ : ) :
z₁ * z₂ = z₂ * z₁

Lemma 4.3.2: For all z₁, z₂ ∈ ℂ, we have z₁ * z₂ = z₂ * z₁ (equation (4.230)).

theorem complex_mul_assoc (z₁ z₂ z₃ : ) :
z₁ * z₂ * z₃ = z₁ * (z₂ * z₃)

Lemma 4.3.3: For all z₁, z₂, z₃ ∈ ℂ, we have (z₁ * z₂) * z₃ = z₁ * (z₂ * z₃) (equation (4.u230)).

theorem complex_mul_one_and_one_mul (z : ) :
z * 1 = z 1 * z = z

Lemma 4.3.4: For all z ∈ ℂ, we have z * 1_ℂ = z and 1_ℂ * z = z (equation (4.u230)).

theorem complex_mul_add_left_distrib (z₁ z₂ z₃ : ) :
z₁ * (z₂ + z₃) = z₁ * z₂ + z₁ * z₃

Lemma 4.3.5: For all z₁, z₂, z₃ ∈ ℂ, we have z₁ * (z₂ + z₃) = z₁ * z₂ + z₁ * z₃ (equation (4.u230)).

theorem complex_add_mul_right_distrib (z₁ z₂ z₃ : ) :
(z₂ + z₃) * z₁ = z₂ * z₁ + z₃ * z₁

Lemma 4.3.6: For all z₁, z₂, z₃ ∈ ℂ, we have (z₂ + z₃) * z₁ = z₂ * z₁ + z₃ * z₁ (equation (4.u230)).