Weighted ℓᵖ_ν Sequence Spaces #
This file defines the weighted ℓᵖ space with weight ν > 0:
ℓᵖ_ν = { a : ℕ → ℝ | ‖a‖_{p,ν} := (Σₙ |aₙ|^p · ν^{pn})^{1/p} < ∞ }
Architecture Overview #
The formalization separates algebraic and analytic concerns:
┌─────────────────────────────────────────────────────────────┐
│ CauchyProduct.lean │
│ Pure algebra: ring axioms transported from PowerSeries │
│ - assoc, comm, left_distrib, right_distrib │
│ - one, one_mul, mul_one │
│ - smul_mul, mul_smul (scalar compatibility) │
└─────────────────────────────────────────────────────────────┘
↓
┌─────────────────────────────────────────────────────────────┐
│ lpWeighted.lean │
│ Analysis: norms, membership, submultiplicativity │
│ - Weighted ℓᵖ space as lp (ScaledReal ν) p │
│ - Closure under Cauchy product (mem) │
│ - Submultiplicativity: ‖a ⋆ b‖ ≤ ‖a‖ · ‖b‖ │
│ - Typeclass instances: Ring, CommRing, NormedRing │
└─────────────────────────────────────────────────────────────┘
Design Philosophy: "Transport from PowerSeries" #
Ring axioms (associativity, distributivity, etc.) are not reproven manually.
Instead, CauchyProduct.lean establishes that the Cauchy product equals
PowerSeries multiplication via toPowerSeries_mul, then transports the
axioms. This file only proves the analytic properties:
- Membership closure:
a, b ∈ ℓ¹_ν ⟹ a ⋆ b ∈ ℓ¹_ν - Submultiplicativity:
‖a ⋆ b‖ ≤ ‖a‖ · ‖b‖(Mertens + weight factorization) - Norm of identity:
‖1‖ = 1
The ring axiom lemmas in this file are thin wrappers that lift the
CauchyProduct lemmas to l1Weighted via lpWeighted.ext and congrFun.
Main Definitions #
lpWeighted ν p: The Banach space ℓᵖ_ν, defined aslp (ScaledReal ν) pl1Weighted ν: Specialization to p = 1l1Weighted.mul: Cauchy product multiplication on ℓ¹_νl1Weighted.one: Identity element for the Banach algebral1Weighted.single: Standard basis vectors
Main Results #
Banach Space Structure #
lpWeighted.instCompleteSpace: ℓᵖ_ν is complete (inherited from Mathlib)
Banach Algebra Structure (ℓ¹_ν only) #
l1Weighted.mem: Cauchy product preserves membershipl1Weighted.norm_mul_le: Submultiplicativity‖a ⋆ b‖ ≤ ‖a‖ · ‖b‖l1Weighted.instCommRing: ℓ¹_ν is a commutative ringl1Weighted.instNormedRing: ℓ¹_ν is a normed ringl1Weighted.instNormOneClass: ‖1‖ = 1l1Weighted.instSMulCommClass: Scalar-ring multiplication compatibilityl1Weighted.instIsScalarTower: Scalar tower compatibilityl1Weighted.instAlgebra: ℓ¹_ν is an ℝ-algebral1Weighted.instNormedAlgebra: ℓ¹_ν is a normed ℝ-algebral1Weighted.norm_pow_le: ‖a^n‖ ≤ ‖a‖^n
Dependencies #
ScaledReal.lean: Provides the scaled fiber typeScaledReal ν nCauchyProduct.lean: Provides algebraic properties (ring axioms)
References #
- Section 7.4 of the radii polynomial textbook
- Definition 7.4.1: Banach algebra axioms
- Theorem 7.4.4: Submultiplicativity proof
- Corollary 7.4.5: ℓ¹_ν is a commutative Banach algebra
Part 1: Weighted ℓᵖ Space (General p) #
lpWeighted ν p is the Banach space of sequences with finite weighted ℓᵖ norm.
Defined as lp (ScaledReal ν) p, inheriting completeness from Mathlib.
The norm is: ‖a‖_{p,ν} = (Σₙ |aₙ|^p · ν^{pn})^{1/p}
The weighted ℓᵖ_ν space, realized as lp with scaled fibers.
Key insight: By using ScaledReal ν n (which has norm |x| · νⁿ) as the
fiber at index n, the standard lp machinery gives us the weighted norm
automatically.
Equations
- lpWeighted ν p = lp (ScaledReal ν) p
Instances For
Specialization to weighted ℓ¹.
This is the main space of interest for the Banach algebra structure. See Section 7.4: ℓ¹_ν = { a : ℕ → ℝ | ‖a‖₁,ν := Σₙ |aₙ| νⁿ < ∞ }
Equations
- l1Weighted ν = lpWeighted ν 1
Instances For
Inherited Topological Structure #
Equations
ℓᵖ_ν is complete (a Banach space) for p ≥ 1.
This is inherited from Mathlib's completeness of lp.
Sequence Extraction #
Extract the underlying ℝ-valued sequence from a weighted ℓᵖ element.
This "forgets" the weighted norm structure and gives a plain function ℕ → ℝ.
Equations
- lpWeighted.toSeq a n = ↑(↑a n)
Instances For
Extensionality: two weighted sequences are equal iff their underlying real sequences are equal.
Membership and Construction #
Membership predicate: a sequence has finite weighted ℓᵖ norm.
Equations
- lpWeighted.Mem ν p a = Memℓp (fun (n : ℕ) => ScaledReal.ofReal (a n)) p
Instances For
Construct a weighted ℓᵖ element from a sequence with finite weighted norm.
Equations
- lpWeighted.mk a ha = ⟨fun (n : ℕ) => ScaledReal.ofReal (a n), ha⟩
Instances For
Simp Lemmas for Sequence Operations #
Norm Characterization #
Part 2: Weighted ℓ¹ Specialization #
This section provides the API specific to l1Weighted ν, the weighted ℓ¹ space.
The key simplification is that the norm becomes a simple weighted sum (no p-th powers).
Standard Basis Vectors #
The single element single n x represents the sequence that is x at position n
and 0 elsewhere. These are the standard basis vectors of ℓ¹_ν scaled by x.
The single element in ℓ¹_ν: value x at position n, zero elsewhere.
This is the standard basis vector eₙ scaled by x. See Theorem 7.3.8.
Equations
- l1Weighted.single n x = lpWeighted.mk (fun (k : ℕ) => if k = n then x else 0) ⋯
Instances For
Finite-Dimensional Weighted Norms #
These definitions support the finite-dimensional truncation used in Example 7.7. See Exercise 2.7.2 for the theory of finite-dimensional weighted norms.
Induced matrix norm: ‖A‖_{ν,N} = max_j (1/νʲ) Σᵢ |Aᵢⱼ| νⁱ.
This is the operator norm on finite-dimensional weighted ℓ¹. See Exercise 2.7.2.
Equations
- l1Weighted.finWeightedMatrixNorm ν A = Finset.univ.sup' ⋯ fun (j : Fin (N + 1)) => l1Weighted.matrixColNorm ν A j
Instances For
Key weight factorization: νᵏ · νˡ = νⁿ when k + l = n.
This is the crucial property enabling submultiplicativity (Theorem 7.4.4).
The proof of norm_mul_le relies on this to factor νⁿ across antidiagonal pairs.
Finite Weighted Matrix Norm Properties #
Part 3: Banach Algebra Structure #
This section establishes that ℓ¹_ν is a commutative Banach algebra (Corollary 7.4.5).
What is a Banach Algebra? (Definition 7.4.1) #
A Banach algebra is a Banach space X with multiplication ·: X × X → X satisfying:
- Associativity (7.11):
x · (y · z) = (x · y) · z - Distributivity (7.12):
(x + y) · z = x · z + y · zandx · (y + z) = x · y + x · z - Scalar compatibility (7.13):
α(x · y) = (αx) · y = x · (αy) - Submultiplicativity (7.14):
‖x · y‖ ≤ ‖x‖ · ‖y‖
The algebra is commutative if x · y = y · x for all x, y.
Correspondence: Textbook ↔ Lean #
| Textbook | Equation | Lean Instance/Lemma |
|---|---|---|
| Banach space | CompleteSpace, NormedAddCommGroup |
|
| Associativity | (7.11) | instRing.mul_assoc |
| Left distributivity | (7.12) | instRing.left_distrib |
| Right distributivity | (7.12) | instRing.right_distrib |
| Scalar compatibility | (7.13) | instIsScalarTower, instSMulCommClass |
| Submultiplicativity | (7.14) | instNormedRing.norm_mul_le |
| Commutativity | instCommRing.mul_comm |
|
| Unit element | instRing.one_mul, instRing.mul_one |
|
| ‖1‖ = 1 | instNormOneClass |
|
| ℝ-algebra structure | instAlgebra, instNormedAlgebra |
Why This Architecture? #
Axioms (1)-(3) are pure algebra — they don't involve norms.
These are proven in CauchyProduct.lean by connecting to PowerSeries R,
where Mathlib has already established the ring structure.
Axiom (4) is analysis — it requires norm estimates. This is proven here using Mertens' theorem and weight factorization.
Structure of This Section #
- Membership closure (
mem): Provesa, b ∈ ℓ¹_ν ⟹ a ⋆ b ∈ ℓ¹_ν - Multiplication (
mul): Defines the ring multiplication - Submultiplicativity (
norm_mul_le): The key analytic result (7.14) - Ring axioms: Thin wrappers lifting
CauchyProductlemmas (7.11-7.13) - Identity element (
one): The Kronecker delta sequence - Typeclass instances:
Ring,CommRing,NormedRing,NormOneClass - Algebra structure:
SMulCommClass,IsScalarTower,Algebra,NormedAlgebra
Closure Under Multiplication #
This is the first analytic result: the Cauchy product of two ℓ¹_ν sequences is again in ℓ¹_ν. The proof uses Mertens' theorem and weight factorization.
Cauchy product preserves membership in ℓ¹_ν.
Proof sketch (Theorem 7.4.4):
- Apply Mertens' theorem to reorder the double sum
- Use weight factorization νⁿ = νᵏ · νˡ for k + l = n
- Bound by ‖a‖ · ‖b‖
Multiplication Definition #
Multiplication via Cauchy product.
This defines the Banach algebra multiplication on ℓ¹_ν.
The @[simp] attribute ensures that mul a b unfolds in simp calls.
Equations
- l1Weighted.mul a b = lpWeighted.mk (lpWeighted.toSeq a ⋆ lpWeighted.toSeq b) ⋯
Instances For
Submultiplicativity (Key Analytic Property) #
This is axiom (4) of Definition 7.4.1, the defining property of a Banach algebra.
Submultiplicativity (Theorem 7.4.4, Equation 7.17):
‖a ⋆ b‖₁,ν ≤ ‖a‖₁,ν · ‖b‖₁,ν
This makes ℓ¹_ν a Banach algebra. The proof uses:
- Mertens' theorem to exchange sum order
- Weight factorization: νⁿ = νᵏ · νˡ for k + l = n
Ring Axioms (Lifted from CauchyProduct) #
These lemmas are thin wrappers that lift the algebraic properties from
CauchyProduct to l1Weighted. Each follows the same pattern:
- Apply
lpWeighted.extto reduce to pointwise equality - Unfold
multo expose the Cauchy product - Apply the corresponding
CauchyProductlemma viacongrFun
This architecture avoids re-proving ring axioms and ensures consistency
with the PowerSeries multiplication structure.
Identity Element #
The multiplicative identity is CauchyProduct.one: the Kronecker delta sequence
with e₀ = 1 and eₙ = 0 for n ≥ 1. See Theorem 7.4.6.
The multiplicative identity element of ℓ¹_ν (Kronecker delta).
Equations
Instances For
Typeclass Instances #
These instances register ℓ¹_ν as a commutative Banach algebra with Lean's
typeclass system, enabling generic lemmas and tactics like ring.
Equations
- One or more equations did not get rendered due to their size.
Equations
- l1Weighted.instCommRing = { toRing := l1Weighted.instRing, mul_comm := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Algebra Structure (Scalar-Ring Compatibility) #
These instances establish that scalar multiplication (by ℝ) is compatible with ring multiplication, making ℓ¹_ν an ℝ-algebra. This enables:
smul_mul_assoc:(c • a) * b = c • (a * b)smul_comm:c • (a * b) = a * (c • b)
These are used in FrechetCauchyProduct.lean for the derivative formula.
Scalar multiplication commutes with ring multiplication.
Says: c • (a * b) = a * (c • b) for scalars c ∈ ℝ.
Uses CauchyProduct.mul_smul from the algebra layer.
Scalar multiplication is associative with ring multiplication.
Says: (c • a) * b = c • (a * b) for scalars c ∈ ℝ.
Uses CauchyProduct.smul_mul from the algebra layer.
Full Algebra Structure #
These instances complete the Banach algebra structure by registering ℓ¹_ν as an
ℝ-algebra. The Algebra ℝ instance bundles the ring homomorphism algebraMap
that embeds ℝ into ℓ¹_ν via r ↦ r • 1 = (r, 0, 0, ...).
ℓ¹_ν is an ℝ-algebra.
The algebraMap : ℝ →+* l1Weighted ν sends r ↦ r • 1 = (r, 0, 0, ...).
This is synthesized from SMulCommClass and IsScalarTower via Algebra.ofModule.
Equations
The algebraMap sends r to the scaled identity: r · 𝟙 = (r, 0, 0, ...).
The norm of algebraMap r equals |r|.
ℓ¹_ν is a normed ℝ-algebra.
Requires ‖c • a‖ ≤ ‖c‖ * ‖a‖, which holds with equality by norm_smul.
Equations
- l1Weighted.instNormedAlgebra = { toAlgebra := l1Weighted.instAlgebra, norm_smul_le := ⋯ }
Power Bounds #
Note: Mathlib provides norm_pow_le for NormedRing + NormOneClass, but we
include it explicitly for completeness and documentation.