Documentation

Oseledets.Lyapunov.OseledetsLimit.SingularValues

The Oseledets singular-value (scalar) layer #

This module builds the scalar (singular-value) layer of the Oseledets multiplicative ergodic theorem: the genuine ergodic limits Γ_k = lim_n (1/n) log ∏_{i<k} σᵢ(A⁽ⁿ⁾) and the per-exponent limits λᵢ = Γ_{i+1} − Γ_i (the logarithms of the eigenvalues of the limiting matrix Λ), without ever constructing Λ as a matrix limit.

The analytic input is the already-proved submultiplicativity of the product of the top-k singular values (ExteriorNorm.prod_singularValues_comp_le), turned into a subadditive cocycle and fed to Kingman's ergodic theorem (tendsto_kingman_ergodic).

Main definitions #

Main results #

A singular value is bounded by the operator norm #

σᵢ(f) ≤ ‖f‖ for a linear map f between finite-dimensional inner product spaces. This is genuinely missing from Mathlib (SingularValues.lean has no connection to the operator norm); it is upstreamable. The proof: the right singular vectors uᵢ (an orthonormal eigenvector basis of adjoint f ∘ₗ f) satisfy ‖f uᵢ‖ = σᵢ(f), and ‖f uᵢ‖ ≤ ‖f‖ · ‖uᵢ‖ = ‖f‖.

The norm of the image of a right singular vector is the corresponding singular value: ‖f uᵢ‖ = σᵢ(f), where u is the orthonormal eigenvector basis of adjoint f ∘ₗ f. This is the analytic heart of the singular value decomposition.

Every singular value of a linear map between finite-dimensional inner product spaces is bounded by its operator norm: σᵢ(f) ≤ ‖f‖.

The Gram matrix and the singular-value product #

noncomputable def Oseledets.gram {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :
Matrix (Fin d) (Fin d)

The Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ · A⁽ⁿ⁾ of the cocycle iterate. Its eigenvalues are the squared singular values of A⁽ⁿ⁾ (see sq_singularValues_eq_gram_eigenvalue).

Equations
Instances For
    noncomputable def Oseledets.sprod {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (k n : ) (x : X) :

    The top-k singular value product of the cocycle iterate, as a Euclidean linear map.

    Equations
    Instances For

      Subadditivity of log sprod #

      theorem Oseledets.sprod_submul {X : Type u_1} [MeasurableSpace X] {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (k m n : ) (x : X) :
      sprod A T k (m + n) x sprod A T k m (T^[n] x) * sprod A T k n x

      Submultiplicativity of sprod. ∏σ(A⁽ᵐ⁺ⁿ⁾) ≤ ∏σ(A⁽ᵐ⁾∘Tⁿ) · ∏σ(A⁽ⁿ⁾).

      theorem Oseledets.logSprod_subadditive {X : Type u_1} [MeasurableSpace X] {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (k m n : ) (x : X) (hpos : ∀ (j : ) (y : X), 0 < sprod A T k j y) :
      Real.log (sprod A T k (m + n) x) Real.log (sprod A T k m (T^[n] x)) + Real.log (sprod A T k n x)

      Subadditivity of log sprod in the plain (T^[n]-shifted) split, provided each sprod is positive (true for an invertible cocycle and k ≤ d).

      theorem Oseledets.isSubadditiveCocycle_logSprod {X : Type u_1} [MeasurableSpace X] {d : } {T : XX} (A : XMatrix (Fin d) (Fin d) ) (k : ) (hpos : ∀ (j : ) (y : X), 0 < sprod A T k j y) :
      IsSubadditiveCocycle T fun (n : ) (x : X) => Real.log (sprod A T k n x)

      Kingman index convention. log sprod is a subadditive cocycle in Kingman's sense g(m+n,x) ≤ g(m,x) + g(n,T^[m]x), obtained from the symmetric cocycle split.

      Singular-value/operator-norm bound (matrix form) and sandwich bounds #

      Matrix form of the singular-value bound. Each singular value of toEuclideanLin M is at most the L2 operator norm ‖M‖: σᵢ(toEuclideanLin M) ≤ ‖M‖.

      theorem Oseledets.inv_opNorm_inv_le_sigma {d : } {M : Matrix (Fin d) (Fin d) } (hM : M.det 0) {i : } (hi : i < d) :

      A lower bound on every singular value of an invertible matrix: (‖M⁻¹‖)⁻¹ ≤ σᵢ, for i < d. (uᵢ = M⁻¹(M uᵢ), so 1 = ‖uᵢ‖ ≤ ‖M⁻¹‖ · ‖M uᵢ‖ = ‖M⁻¹‖ · σᵢ.)

      Positivity of sprod (the Kingman hpos proviso, for k ≤ d) #

      toEuclideanLin M is injective when M is invertible (det M ≠ 0).

      theorem Oseledets.singularValues_cocycle_pos {X : Type u_1} [MeasurableSpace X] {d : } {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) (n : ) (x : X) {i : } (hi : i < d) :

      Each of the top-d singular values of an invertible cocycle iterate is strictly positive.

      theorem Oseledets.sprod_pos {X : Type u_1} [MeasurableSpace X] {d : } {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {k : } (hk : k d) (n : ) (x : X) :
      0 < sprod A T k n x

      hpos for k ≤ d. sprod A T k n x > 0 for an invertible cocycle and k ≤ d.

      Integrability and bounded-below of log sprod #

      The sandwich −k·log‖(A⁽ⁿ⁾)⁻¹‖ ≤ log sprod ≤ k·log‖A⁽ⁿ⁾‖ (from the singular-value/operator-norm bound and its inverse companion) dominates log sprod by integrable functions, reusing the Furstenberg–Kesten integrability plumbing.

      theorem Oseledets.logSprod_le {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {k : } (hk : k d) (n : ) (x : X) :
      Real.log (sprod A T k n x) k * Real.log cocycle A T n x

      Upper Fekete bound. log sprod_k ≤ k · log‖A⁽ⁿ⁾‖.

      theorem Oseledets.neg_le_logSprod {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {k : } (hk : k d) (n : ) (x : X) :
      -(k * Real.log (cocycle A T n x)⁻¹) Real.log (sprod A T k n x)

      Lower Fekete bound. −k · log‖(A⁽ⁿ⁾)⁻¹‖ ≤ log sprod_k.

      theorem Oseledets.measurable_det_comp {X : Type u_1} [MeasurableSpace X] {k : } {N : XMatrix (Fin k) (Fin k) } (hN : Measurable N) :
      Measurable fun (x : X) => (N x).det

      Measurability of the determinant of a measurable square-matrix-valued function (entrywise a polynomial in the measurable entries). Used to read off measurability of the compound-matrix entries, which are minors of the cocycle iterate.

      theorem Oseledets.measurable_sprod {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hAmeas : Measurable A) (hTmeas : Measurable T) (k n : ) :
      Measurable fun (x : X) => sprod A T k n x

      Measurability of x ↦ sprod A T k n x. By the compound-matrix bridge ExteriorNorm.prod_singularValues_eq_l2_opNorm_compound, the product of the top-k singular values equals the L2 operator norm of the k-th compound matrix C_k(A⁽ⁿ⁾ x), whose entries are the k × k minors of A⁽ⁿ⁾ x. Each minor is the determinant of a submatrix of the (measurable) cocycle iterate, hence measurable; the matrix-valued map is then measurable entrywise, and the (continuous) L2 operator norm preserves measurability. No exterior-power / linear-map continuity is needed.

      theorem Oseledets.integrable_logSprod {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} {T : XX} (hT : MeasureTheory.MeasurePreserving T μ μ) [MeasureTheory.IsFiniteMeasure μ] {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) (hAmeas : Measurable A) (hTmeas : Measurable T) (hint : IntegrableLogNorm A μ) (hint' : IntegrableLogNorm (fun (x : X) => (A x)⁻¹) μ) {k : } (hk : k d) (n : ) :
      MeasureTheory.Integrable (fun (x : X) => Real.log (sprod A T k n x)) μ

      Integrability of log sprod. Each level gₙ = log sprod_k is integrable, dominated by the two (integrable) Furstenberg–Kesten log-norm cocycles.

      theorem Oseledets.bddBelow_logSprod {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} {T : XX} (hT : MeasureTheory.MeasurePreserving T μ μ) [MeasureTheory.IsFiniteMeasure μ] {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) (hAmeas : Measurable A) (hTmeas : Measurable T) (hint : IntegrableLogNorm A μ) (hint' : IntegrableLogNorm (fun (x : X) => (A x)⁻¹) μ) {k : } (hk : k d) :
      BddBelow (Set.range fun (n : ) => ( (x : X), Real.log (sprod A T k (n + 1) x) μ) / (n + 1))

      Bounded-below proviso (Fekete lower bound). The normalized integrals of log sprod are bounded below by −k · ∫ log⁺‖A⁻¹‖, keeping the Kingman limit finite.

      Squared singular values are the Gram eigenvalues #

      The adjoint of toEuclideanLin M composed with toEuclideanLin M equals toEuclideanLin of the Gram matrix Mᵀ M (over ).

      The eigenvalue bridge. The squared singular values of toEuclideanLin M are the eigenvalues of the symmetric operator adjoint ∘ self = toEuclideanLin (Mᵀ M), i.e. the eigenvalues of the Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ A⁽ⁿ⁾. This delivers the eigenvalues of the Oseledets limit Λ as genuine ergodic limits (via tendsto_gammaK) without constructing Λ.

      The genuine ergodic Γ_k limit #

      theorem Oseledets.tendsto_gammaK {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} {T : XX} [MeasureTheory.IsProbabilityMeasure μ] (hT : Ergodic T μ) (A : XMatrix (Fin d) (Fin d) ) (k : ) (hpos : ∀ (j : ) (y : X), 0 < sprod A T k j y) (hint : ∀ (n : ), MeasureTheory.Integrable (fun (x : X) => Real.log (sprod A T k n x)) μ) (hbdd : BddBelow (Set.range fun (n : ) => ( (x : X), Real.log (sprod A T k (n + 1) x) μ) / (n + 1))) :
      ∃ (Γk : ), ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (sprod A T k n x)) Filter.atTop (nhds Γk)

      The genuine ergodic Γ_k limit (spike form). Under ergodicity, with the Furstenberg–Kesten-style integrability (hint) and bounded-below (hbdd) provisos and the positivity proviso (hpos, valid for k ≤ d on an invertible cocycle), the normalized log sprod_k converges μ-a.e. to a constant Γ_k.

      theorem Oseledets.tendsto_gammaK_of_integrableLogNorm {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} {T : XX} [MeasureTheory.IsProbabilityMeasure μ] (hT : Ergodic T μ) {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) (hAmeas : Measurable A) (hint : IntegrableLogNorm A μ) (hint' : IntegrableLogNorm (fun (x : X) => (A x)⁻¹) μ) {k : } (hk : k d) :
      ∃ (Γk : ), ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (sprod A T k n x)) Filter.atTop (nhds Γk)

      The genuine ergodic Γ_k limit (with the integrability/lower-bound provisos discharged). For an ergodic measure-preserving T, an everywhere-invertible measurable cocycle generator with log⁺‖A‖, log⁺‖A⁻¹‖ ∈ L¹, and k ≤ d, the normalized log sprod_k converges μ-a.e. to a constant Γ_k.

      The per-singular-value exponents #

      theorem Oseledets.tendsto_log_singularValue {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {T : XX} {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) {i : } (hi : i < d) {a b : } {x : X} (ha : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (sprod A T (i + 1) n x)) Filter.atTop (nhds a)) (hb : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (sprod A T i n x)) Filter.atTop (nhds b)) :

      Per-σ exponent. Differencing the Γ_k limits: if (1/n) log sprod_{i+1} → a and (1/n) log sprod_i → b for μ-a.e. x and the singular values are positive (k ≤ d), then the normalized log of the i-th singular value converges to a − b (the i-th Lyapunov exponent λᵢ = Γ_{i+1} − Γ_i).

      theorem Oseledets.antitone_log_singularValue {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {T : XX} (A : XMatrix (Fin d) (Fin d) ) (n : ) (x : X) :

      Antitonicity of the per-σ exponents. For each fixed n and x, the normalized logs of the singular values are antitone in the index (since the singular values themselves are antitone).

      noncomputable def Oseledets.lamSing {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (x : X) (i : ) :

      The per-point singular-value Lyapunov exponent. The i-th Lyapunov exponent at the point x, defined as the (junk-on-divergence) limit of the normalized log of the i-th singular value of A⁽ⁿ⁾. Where the singular-value limit exists (μ-a.e., by tendsto_log_singularValue) this equals the deterministic exponent λᵢ; lamSing packages it as a concrete per-point datum so that the spectrum of the Oseledets limit Λ can be labelled by e^{lamSing}.

      Equations
      Instances For
        theorem Oseledets.lamSing_eq_of_tendsto {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} {x : X} {i : } {lam : } (h : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log ((Matrix.toEuclideanLin (cocycle A T n x)).singularValues i)) Filter.atTop (nhds lam)) :
        lamSing A T x i = lam

        If, at x, the normalized log of the i-th singular value converges to lam (true μ-a.e. by tendsto_log_singularValue), then lamSing A T x i = lam.

        The Gram matrix is PosSemidef / self-adjoint, and the matrix root qpow #

        The Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ A⁽ⁿ⁾ is positive semidefinite and self-adjoint, so the continuous functional calculus applies to it. The candidate Oseledets limit at level n is the matrix (Qₙ)^{1/(2n)} = cfc (·^{1/(2n)}) Qₙ, whose eigenvalues are the 1/n-th powers of the singular values of A⁽ⁿ⁾.

        theorem Oseledets.gram_posSemidef {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :
        (gram A T n x).PosSemidef

        The Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ A⁽ⁿ⁾ is positive semidefinite.

        theorem Oseledets.gram_isSelfAdjoint {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :

        The Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ A⁽ⁿ⁾ is self-adjoint, hence the continuous functional calculus applies to it.

        noncomputable def Oseledets.qpow {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :
        Matrix (Fin d) (Fin d)

        The candidate Oseledets limit at level n: the matrix 1/(2n)-th power (Qₙ)^{1/(2n)} = cfc (·^{1/(2n)}) Qₙ of the Gram matrix, defined via the continuous functional calculus on the (self-adjoint, positive semidefinite) Gram matrix Qₙ. Its eigenvalues are the 1/n-th powers of the singular values of A⁽ⁿ⁾, which converge to e^{λᵢ} (see eigenvalues_qpow_tendsto).

        Equations
        Instances For
          theorem Oseledets.qpow_isSelfAdjoint {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :

          qpow A T n x is self-adjoint (a CFC of a real-valued function is always self-adjoint).

          theorem Oseledets.qpow_posSemidef {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) :
          (qpow A T n x).PosSemidef

          qpow A T n x = (Qₙ)^{1/(2n)} is positive semidefinite: cfc of the nonnegative function t ↦ t^{1/(2n)} on the PosSemidef (hence nonnegative-spectrum) Gram matrix Qₙ yields a nonnegative (hence PosSemidef) matrix.

          The eigenvalues of qpow converge to e^{λᵢ} #

          The eigenvalues of qpow A T n x = (Qₙ)^{1/(2n)} are the 1/n-th powers of the singular values of A⁽ⁿ⁾. Since (1/n) log σᵢ → λᵢ a.e. (tendsto_log_singularValue), these converge to e^{λᵢ}. The CFC of a monotone function applied to a Hermitian matrix has, as its sorted eigenvalues, that function applied to the sorted eigenvalues of the matrix; we package this as a helper and then chain it with the singular-value layer.

          theorem Oseledets.roots_charpoly_cfc_eq {n : Type u_2} [Fintype n] [DecidableEq n] {𝕜 : Type u_3} [RCLike 𝕜] {A : Matrix n n 𝕜} (hA : A.IsHermitian) (f : ) :

          The roots of the characteristic polynomial of cfc f A (for Hermitian A) are f applied to the eigenvalues of A (cast into 𝕜). The matrix analogue of Matrix.IsHermitian.roots_charpoly_eq_eigenvalues.

          theorem Oseledets.eigenvalues₀_cfc_of_monotoneOn {n : Type u_2} [Fintype n] [DecidableEq n] {𝕜 : Type u_3} [RCLike 𝕜] {A : Matrix n n 𝕜} (hA : A.IsHermitian) {f : } (hf : MonotoneOn f (Set.Ici 0)) (hpos : ∀ (i : Fin (Fintype.card n)), 0 hA.eigenvalues₀ i) :

          For a Hermitian matrix A with nonnegative eigenvalues and a function f that is monotone on [0, ∞) (hence preserves the descending order of the eigenvalues), the sorted eigenvalues eigenvalues₀ of cfc f A are f applied to the sorted eigenvalues of A. The matrix analogue (with a monotonicity-on-the-spectrum hypothesis) of Matrix.IsHermitian.sort_roots_charpoly_eq_eigenvalues₀. The MonotoneOn form is needed because the relevant function t ↦ t^{1/(2n)} is Real.rpow, which is monotone only on [0, ∞).

          theorem Oseledets.gram_eigenvalues₀_eq_sq_singularValues {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) (i : Fin (Fintype.card (Fin d))) :

          The sorted eigenvalues eigenvalues₀ of the Gram matrix Qₙ = (A⁽ⁿ⁾)ᵀ A⁽ⁿ⁾ are the squared singular values of A⁽ⁿ⁾: eigenvalues₀ (Qₙ) i = σᵢ(A⁽ⁿ⁾)². This bridges the matrix-eigenvalue layer (Matrix.IsHermitian.eigenvalues₀) to the singular-value layer (sq_singularValues_eq_gram_eigenvalue).

          theorem Oseledets.eigenvalues₀_qpow_eq {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] (A : XMatrix (Fin d) (Fin d) ) (T : XX) (n : ) (x : X) (i : Fin (Fintype.card (Fin d))) :

          The eigenvalues of qpow are the 1/n-th powers of the singular values. The sorted eigenvalues of qpow A T n x = (Qₙ)^{1/(2n)} are σᵢ(A⁽ⁿ⁾)^{1/n}.

          theorem Oseledets.eigenvalues_qpow_tendsto {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {x : X} (i : Fin (Fintype.card (Fin d))) {lam : } (hlam : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log ((Matrix.toEuclideanLin (cocycle A T n x)).singularValues i)) Filter.atTop (nhds lam)) :

          The eigenvalues of qpow converge to e^{λᵢ}. If, at a point x, the normalized log of the i-th singular value of A⁽ⁿ⁾ converges to λᵢ (which holds μ-a.e. by tendsto_log_singularValue), then the i-th sorted eigenvalue of qpow A T n x = (Qₙ)^{1/(2n)} converges to e^{λᵢ}. This is the eigenvalue layer of the Oseledets limit: the eigenvalues of the candidate matrix limit are the exponentials of the Lyapunov exponents. Stated per eigenvalue-index i (eigenvalues may repeat across distinct exponents — that is harmless here; the per-distinct-exponent constraint only bites for the band spectral projectors below).

          The Oseledets-limit existence statement (oseledetsLimit) #

          The Prop that the band-projector machinery below discharges: a.e., the matrix sequence (Qₙ)^{1/(2n)} = qpow A T n x converges, in the (complete, finite-dimensional) matrix metric, to a single matrix Λ x.

          def Oseledets.oseledetsLimitExists {X : Type u_1} [MeasurableSpace X] {d : } (μ : MeasureTheory.Measure X) (T : XX) (A : XMatrix (Fin d) (Fin d) ) :

          The Oseledets-limit existence statement. A.e. the 1/(2n)-th matrix power of the Gram matrix converges (in the finite-dimensional matrix metric) to a single matrix Λ x. This is the existence statement of the Oseledets limit; it is proved jointly with its eigen-data conclusions below (the gapped band-projector-Cauchy estimate).

          Equations
          Instances For