Documentation

RadiiPolynomial.TaylorODE.Example_7_7_Analytic

From Coefficient Space to Analytic Functions #

This file bridges the gap between:

Main Results #

Architecture #

We separate the formal and analytic levels:

  1. Formal level: l1Weighted.toPowerSeries embeds sequences into PowerSeries
    • Multiplication in PowerSeries is the Cauchy product by definition
    • No convergence issues at this level
  2. Analytic level: l1Weighted.eval evaluates the series at |z| ≤ ν
    • Uses absolute convergence from ℓ¹_ν membership
    • Mertens' theorem shows evaluation commutes with multiplication

References #

This completes the formalization of Example 7.7 from the radii polynomial textbook.

Formal Power Series Embedding #

Embed an ℓ¹_ν sequence as a formal power series in ℝ⟦X⟧

Equations
Instances For
    @[simp]

    Coefficient extraction agrees with the underlying sequence

    The formal power series for the parameter sequence c = (λ₀, 1, 0, 0, ...)

    Equations
    Instances For

      The parameter series equals C(λ₀) + X in the ring of power series

      Cauchy Product is PowerSeries Multiplication #

      The key insight: multiplication in PowerSeries is defined as the Cauchy product. This is purely algebraic—no convergence needed at the formal level.

      PowerSeries multiplication agrees with Cauchy product coefficient-wise

      Squaring in PowerSeries equals self-convolution

      The fixed-point equation F(a) = 0 means a² = c in PowerSeries

      Analytic Evaluation #

      theorem l1Weighted.norm_term_le {ν : PosReal} {a : } {z : } (hz : |z| ν) (n : ) :
      |a n * z ^ n| |a n| * ν ^ n

      If a ∈ ℓ¹_ν and |z| ≤ ν, then the terms |aₙ zⁿ| are bounded by |aₙ| νⁿ

      theorem l1Weighted.summable_eval {ν : PosReal} (a : (l1Weighted ν)) {z : } (hz : |z| ν) :
      Summable fun (n : ) => lpWeighted.toSeq a n * z ^ n

      If a ∈ ℓ¹_ν and |z| ≤ ν, then Σ aₙ zⁿ converges absolutely

      theorem l1Weighted.summable_abs_eval {ν : PosReal} (a : (l1Weighted ν)) {z : } (hz : |z| ν) :
      Summable fun (n : ) => |lpWeighted.toSeq a n * z ^ n|

      Absolute summability

      def l1Weighted.eval {ν : PosReal} (a : (l1Weighted ν)) (z : ) :

      Evaluate a power series at z ∈ ℝ with |z| ≤ ν

      Equations
      Instances For
        theorem l1Weighted.eval_eq_tsum {ν : PosReal} (a : (l1Weighted ν)) (z : ) :

        eval agrees with summing coefficients times powers

        Mertens' Theorem: Evaluation Commutes with Multiplication #

        theorem l1Weighted.eval_mul {ν : PosReal} (a b : (l1Weighted ν)) {z : } (hz : |z| ν) :

        Key lemma: (Σ aₙ zⁿ) * (Σ bₙ zⁿ) = Σ (a ⋆ b)ₙ zⁿ

        theorem l1Weighted.eval_sq {ν : PosReal} (a : (l1Weighted ν)) {z : } (hz : |z| ν) :

        Squaring: (Σ aₙ zⁿ)² = Σ (a ⋆ a)ₙ zⁿ

        Evaluation of the Parameter Series #

        theorem l1Weighted.eval_paramSeq (lam0 z : ) :
        ∑' (n : ), Example_7_7.paramSeq lam0 n * z ^ n = lam0 + z

        Σ cₙ zⁿ = λ₀ + z

        Main Semantic Theorems #

        theorem l1Weighted.eval_sq_eq {ν : PosReal} (a : (l1Weighted ν)) (lam0 : ) {z : } (hz : |z| ν) (hF : ∀ (n : ), (lpWeighted.toSeq a lpWeighted.toSeq a) n = Example_7_7.paramSeq lam0 n) :
        eval a z ^ 2 = lam0 + z

        If F(a) = 0, then eval(a, z)² = λ₀ + z

        theorem l1Weighted.eval_zero {ν : PosReal} (a : (l1Weighted ν)) :

        eval(a, 0) = a₀

        Connection to Example 7.7 #

        @[reducible, inline]
        abbrev Example_7_7.analyticSolution {ν : PosReal} (a : (l1Weighted ν)) (z : ) :

        Alias for backward compatibility

        Equations
        Instances For
          theorem Example_7_7.analyticSolution_is_sqrt {ν : PosReal} (aTilde : (l1Weighted ν)) (lam0 : ) (hF : ∀ (n : ), (lpWeighted.toSeq aTilde lpWeighted.toSeq aTilde) n = paramSeq lam0 n) {lam : } (hlam : |lam - lam0| ν) :
          analyticSolution aTilde (lam - lam0) ^ 2 = lam

          The analytic function x̃(λ) = Σ ãₙ (λ - λ₀)ⁿ satisfies x̃(λ)² = λ

          theorem Example_7_7.analyticSolution_eq_sqrt {ν : PosReal} (aTilde : (l1Weighted ν)) (lam0 : ) (hF : ∀ (n : ), (lpWeighted.toSeq aTilde lpWeighted.toSeq aTilde) n = paramSeq lam0 n) (hlam0_pos : 0 < lam0) {lam : } (hlam : |lam - lam0| ν) (hlam_pos : 0 < lam) (ha0_pos : 0 < lpWeighted.toSeq aTilde 0) :
          analyticSolution aTilde (lam - lam0) = lam

          The function x̃ defines a branch of √λ near λ₀