Documentation

Oseledets.Lyapunov.ForwardSqueezeCore

Constructing SqueezeData for the Oseledets spectral upper bound #

This file builds a constructor SqueezeData.ofCore that takes the analytic limit and boundedness facts about the cocycle along the orbit of x as inputs, and discharges all the remaining (arithmetic or boundedness-from-convergence) fields of SqueezeData. The analytic inputs are thereby isolated as the only substantial obligations; everything routine is closed here.

Main results #

References #

IsCoboundedUnder (·≤·) of a sequence follows from it being bounded below.

The determinant exponent hD #

sprod A T d n x = ∏_{i<d} σᵢ(A⁽ⁿ⁾) = |det A⁽ⁿ⁾|, so the determinant exponent is the top Γ-limit Γ_d. This is the cleanest concrete field: it follows directly from the ergodic Kingman limit tendsto_gammaK_of_integrableLogNorm at k = d, with no frame geometry involved. It is exposed here as dExponent and exists_dSum_tendsto_dExponent.

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

The det-exponent sequence D n = (1/n) log sprod_d (= (1/n) log|det A⁽ⁿ⁾|).

Equations
Instances For
    theorem Oseledets.exists_dSum_tendsto_dExponent {X : Type u_1} [MeasurableSpace X] {T : XX} {d : } {μ : MeasureTheory.Measure X} [NeZero d] [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)⁻¹) μ) :
    ∃ (dSum : ), ∀ᵐ (x : X) μ, Filter.Tendsto (dExponent A T x) Filter.atTop (nhds dSum)

    For an ergodic T and an everywhere-invertible measurable cocycle generator with integrable log-norms, the determinant exponent (1/n) log sprod_d(A⁽ⁿ⁾) → Γ_d for μ-a.e. x (here sprod_d = ∏ all σ = |det|). This supplies the hD field of SqueezeData, with dSum := Γ_d.

    theorem Oseledets.norm_cocycle_apply_pos {X : Type u_1} {T : XX} {d : } {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) {x : X} {v : EuclideanSpace (Fin d)} (hv : v 0) (n : ) :

    For v ≠ 0 and an invertible cocycle (det ≠ 0), the per-vector growth ‖A⁽ⁿ⁾ v‖ is strictly positive at every n. This supplies the hMvpos field of SqueezeData.

    The tempered angle hS via -temperedness #

    In general the image angle sin∠(A⁽ⁿ⁾F, A⁽ⁿ⁾S) between the fast and slow images converges to a positive constant, not to 1. In the autonomous case S n = (1/n) log sin∠ → 0 simply because sin∠ is eventually bounded below by a positive constant. In the general ergodic case, equivariance A⁽ⁿ⁾S(x) = S(Tⁿx) together with the forward fast limit F gives sin∠(A⁽ⁿ⁾F(x), A⁽ⁿ⁾S(x)) = θ(Tⁿx) for a fixed splitting-angle function θ : X → (0,1], and (1/n) log θ(Tⁿx) → 0 follows from the -temperedness hypothesis log(1/θ) ∈ L¹(μ) (see Arnold §3.4 and Ruelle), discharged by tempering_posLog. Fischer's inequality sin∠ ≤ 1 gives the upper side θ ≤ 1.

    The lemma below derives hS from exactly this data: the equivariant representation S n = (1/n) log (θ(Tⁿx)), the range 0 < θ ≤ 1, and the temperedness posLog(1/θ) ∈ L¹.

    theorem Oseledets.tendsto_angle_exponent_zero {X : Type u_1} [MeasurableSpace X] {T : XX} {μ : MeasureTheory.Measure X} (hT : MeasureTheory.MeasurePreserving T μ μ) {θ : X} (hθpos : ∀ (y : X), 0 < θ y) (hθle : ∀ (y : X), θ y 1) (htemp : MeasureTheory.Integrable (fun (y : X) => (θ y)⁻¹.posLog) μ) :
    ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (θ (T^[n] x))) Filter.atTop (nhds 0)

    The tempered angle from -temperedness. Suppose the angle sequence is the orbit sample of a fixed splitting-angle function: S n = (n)⁻¹ · log (θ (Tⁿ x)) with 0 < θ y ≤ 1 for all y, and the temperedness y ↦ posLog ((θ y)⁻¹) ∈ L¹(μ). Then for μ-a.e. x, S → 0. This is the precise content of the tempered angle, the hS field of SqueezeData.

    def Oseledets.SqueezeData.ofCore {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (x : X) (v : EuclideanSpace (Fin d)) (lamI : ) (D VF VS S topS restS r : ) (dSum fSum restSum : ) (hv : v 0) (hD : Filter.Tendsto D Filter.atTop (nhds dSum)) (hVF : Filter.Tendsto VF Filter.atTop (nhds fSum)) (hS : Filter.Tendsto S Filter.atTop (nhds 0)) (hfact : ∀ᶠ (n : ) in Filter.atTop, D n = VF n + VS n + S n) (hvolfact : ∀ᶠ (n : ) in Filter.atTop, VS n = topS n + restS n) (hsplit : dSum - fSum = lamI + restSum) (htop_lb : lamI Filter.liminf topS Filter.atTop) (hrest_lb : restSum Filter.liminf restS Filter.atTop) (htopS_eq : topS = fun (n : ) => (↑n)⁻¹ * Real.log (r n)) (htopS_ub : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop topS) (htopS_lb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop topS) (hrestS_ub : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop restS) (hrestS_lb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop restS) (hrestrict : ∀ᶠ (n : ) in Filter.atTop, (Matrix.toEuclideanLin (cocycle A T n x)) v r n * v) (hrnn : ∀ᶠ (n : ) in Filter.atTop, 0 r n) (hMvpos : ∀ᶠ (n : ) in Filter.atTop, 0 < (Matrix.toEuclideanLin (cocycle A T n x)) v) (hMvlb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanLin (cocycle A T n x)) v) :
    SqueezeData A T x v lamI

    Core constructor for SqueezeData.

    Takes the analytic inputs (the volume/determinant limits, the tempered angle, the factorizations, the per-direction lower bounds, the restriction bound, and the Furstenberg–Kesten-type boundedness facts) and assembles them into a SqueezeData. Each hypothesis is named after the field it supplies; the coboundedness field hcobdd is derived from the lower-boundedness hypothesis hMvlb.

    This constructor isolates exactly the analytic content of the spectral upper bound.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For

      The spectral upper bound from the core analytic inputs #

      Composing SqueezeData.ofCore with spectral_upper_bound_of_squeezeData gives the spectral upper bound directly from the analytic inputs: once they are supplied, the per-vector spectral upper bound limsup (1/n) log ‖A⁽ⁿ⁾ v‖ ≤ λᵢ follows with no further work.

      theorem Oseledets.spectral_upper_bound_of_core {X : Type u_1} {d : } (A : XMatrix (Fin d) (Fin d) ) (T : XX) (x : X) (v : EuclideanSpace (Fin d)) (lamI : ) (D VF VS S topS restS r : ) (dSum fSum restSum : ) (hv : v 0) (hD : Filter.Tendsto D Filter.atTop (nhds dSum)) (hVF : Filter.Tendsto VF Filter.atTop (nhds fSum)) (hS : Filter.Tendsto S Filter.atTop (nhds 0)) (hfact : ∀ᶠ (n : ) in Filter.atTop, D n = VF n + VS n + S n) (hvolfact : ∀ᶠ (n : ) in Filter.atTop, VS n = topS n + restS n) (hsplit : dSum - fSum = lamI + restSum) (htop_lb : lamI Filter.liminf topS Filter.atTop) (hrest_lb : restSum Filter.liminf restS Filter.atTop) (htopS_eq : topS = fun (n : ) => (↑n)⁻¹ * Real.log (r n)) (htopS_ub : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop topS) (htopS_lb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop topS) (hrestS_ub : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop restS) (hrestS_lb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop restS) (hrestrict : ∀ᶠ (n : ) in Filter.atTop, (Matrix.toEuclideanLin (cocycle A T n x)) v r n * v) (hrnn : ∀ᶠ (n : ) in Filter.atTop, 0 r n) (hMvpos : ∀ᶠ (n : ) in Filter.atTop, 0 < (Matrix.toEuclideanLin (cocycle A T n x)) v) (hMvlb : Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanLin (cocycle A T n x)) v) :

      The per-vector spectral upper bound limsup (1/n) log ‖A⁽ⁿ⁾ v‖ ≤ λᵢ, assembled from the core analytic inputs via SqueezeData.ofCore and spectral_upper_bound_of_squeezeData.