Documentation

Oseledets.TwoSided.RestrictedExponent

The restricted Lyapunov exponent (two-sided MET) #

This module identifies the restricted Kingman constant of the restricted cocycle restGen A V x = A x · P_{V x} on the forward Oseledets level V := Vᵢ with the Lyapunov exponent λᵢ = expEnum lam0 d i, and derives the backward-orbit envelope limsup (1/n) log ‖A⁽ⁿ⁾(T⁻ⁿx) · P_{Vᵢ(T⁻ⁿx)}‖ ≤ λᵢ (the direction is the only one consumed downstream by the transversality crux ae_crux).

The architecture:

A log-sum-max limsup bound #

theorem Oseledets.limsup_log_sum_le_max {s : Type u_2} [Fintype s] [Nonempty s] (a : s) (hnn : ∀ (m : s) (n : ), 0 a m n) (hbdd : ∀ (m : s), Filter.IsBoundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop fun (n : ) => (↑n)⁻¹ * Real.log (a m n)) (hpos : ∀ᶠ (n : ) in Filter.atTop, 0 < m : s, a m n) (hcobdd : Filter.IsCoboundedUnder (fun (x1 x2 : ) => x1 x2) Filter.atTop fun (n : ) => (↑n)⁻¹ * Real.log (∑ m : s, a m n)) :
Filter.limsup (fun (n : ) => (↑n)⁻¹ * Real.log (∑ m : s, a m n)) Filter.atTop Finset.univ.sup' fun (m : s) => Filter.limsup (fun (n : ) => (↑n)⁻¹ * Real.log (a m n)) Filter.atTop

Log-sum-max for limsups. For finitely many sequences a : s → ℕ → ℝ with aⱼ n ≥ 0, each normalized log-limsup bounded above (IsBoundedUnder), eventually positive total sum, the normalized log of the sum has limsup at most the maximum of the individual limsups. This is the additive engine of the restricted-exponent upper bound; it is built directly from limsup_inv_mul_log_sum_le and eventually_le_exp_of_limsup_le.

The orthonormal-basis norm bound #

Basis bound for the restricted operator. For a subspace K with orthonormal basis e = stdOrthonormalBasis ℝ K, the restricted-operator norm is bounded by the sum of the norms of the images of the basis vectors: ‖M · P_K‖ ≤ Σⱼ ‖M eⱼ‖. The proof bounds ‖(M·P_K) w‖ for unit w by expanding P_K w in the basis and using Bessel (|⟪eⱼ, P_K w⟫| ≤ ‖w‖).

Flag descent and projection equivariance #

theorem Oseledets.exists_stratum {d k : } {W : Fin (k + 1)Submodule (EuclideanSpace (Fin d))} (hanti : Antitone W) (htop : W 0 = ) (hbot : W (Fin.last k) = ) {v : EuclideanSpace (Fin d)} (hv : v 0) :
∃ (i : Fin k), ∀ (j : Fin (k + 1)), v W j j i

Stratum descent on the flag. In a decreasing flag from to , every nonzero vector v determines a stratum i : Fin k: the levels containing v are exactly those of index ≤ i. (Order logic, identical to the one-sided Corollaries.exists_stratum.)

theorem Oseledets.orthProj_equivariant_of_map {X : Type u_1} {d : } {A : XMatrix (Fin d) (Fin d) } {V : XSubmodule (EuclideanSpace (Fin d))} {T : XX} {x : X} (hmap : Submodule.map (↑(Matrix.toEuclideanCLM (A x))) (V x) = V (T x)) :
orthProjMatrix (V (T x)) * A x * orthProjMatrix (V x) = A x * orthProjMatrix (V x)

Map-equivariance promotes to projection conjugation. From the flag equivariance map (toEuclideanCLM (A x)) (V x) = V (T x) follows the matrix identity P_{V (T x)} · A x · P_{V x} = A x · P_{V x}: A x maps V x into V (T x), so the projection P_{V (T x)} fixes the image of A x · P_{V x}.

Extracting measurable conull sets and forward-orbit a.e. facts #

theorem Oseledets.exists_measurable_conull_of_ae {X : Type u_1} [MeasurableSpace X] {μ : MeasureTheory.Measure X} (P : XProp) (h : ∀ᵐ (x : X) μ, P x) :
∃ (G : Set X), MeasurableSet G μ G = 0 xG, P x

A measurable conull set on which a given a.e. property holds.

theorem Oseledets.ae_forall_iterate_of_ae {X : Type u_1} [MeasurableSpace X] {μ : MeasureTheory.Measure X} {T : XX} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : XProp) (h : ∀ᵐ (x : X) μ, P x) :
∀ᵐ (x : X) μ, ∀ (k : ), P (T^[k] x)

From an a.e. property P, a.e. the property holds along the entire forward orbit ∀ k, P (T^[k] x). Uses measure-preservation of each iterate.

Convergence of a finite supremum of sequences #

theorem Oseledets.tendsto_finset_sup' {s : Type u_2} {t : Finset s} (ht : t.Nonempty) (g : s) (L : s) (h : jt, Filter.Tendsto (g j) Filter.atTop (nhds (L j))) :
Filter.Tendsto (fun (n : ) => t.sup' ht fun (j : s) => g j n) Filter.atTop (nhds (t.sup' ht L))

The pointwise finite supremum of finitely many convergent sequences converges to the supremum of the limits.

The per-point bounds on the restricted growth #

theorem Oseledets.restricted_const_ge_aux {X : Type u_1} {d : } [MeasurableSpace X] [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {Vi : XSubmodule (EuclideanSpace (Fin d))} {x : X} {c lam : } (hw : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log cocycle A T n x * orthProjMatrix (Vi x)) Filter.atTop (nhds c)) (v : EuclideanSpace (Fin d)) (hvmem : v Vi x) (hvnorm : v = 1) (hgrow : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanCLM (cocycle A T n x)) v) Filter.atTop (nhds lam)) :
lam c

Per-point lower bound. With the floor-absorbed restricted-growth limit hw and a unit stratum witness v ∈ Vᵢ(x) whose unrestricted growth is lam, the restricted constant c is at least lam: ‖A⁽ⁿ⁾ v‖ ≤ ‖A⁽ⁿ⁾ · P‖ since P v = v and v is a unit vector.

theorem Oseledets.restricted_const_le_aux {X : Type u_1} {d : } [MeasurableSpace X] [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {Vi : XSubmodule (EuclideanSpace (Fin d))} {x : X} {c lam : } (hVx : Vi x ) (hw : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log cocycle A T n x * orthProjMatrix (Vi x)) Filter.atTop (nhds c)) (Lj : Fin (Module.finrank (Vi x))) (hLj : ∀ (j : Fin (Module.finrank (Vi x))), Lj j lam) (hgrowj : ∀ (j : Fin (Module.finrank (Vi x))), Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanCLM (cocycle A T n x)) ((stdOrthonormalBasis (Vi x)) j)) Filter.atTop (nhds (Lj j))) :
c lam

Per-point upper bound. With the floor-absorbed restricted-growth limit hw, an orthonormal basis eⱼ of Vᵢ(x), and each basis-vector growth Lⱼ ≤ lam, the restricted constant c is at most lam. The proof bounds ‖A⁽ⁿ⁾ · P‖ ≤ Σⱼ ‖A⁽ⁿ⁾ eⱼ‖ (norm_mul_orthProj_le_sum), writes each summand as exp (n · gⱼ n), dominates the sum by N · exp (n · maxⱼ gⱼ n), and concludes via le_of_tendsto_of_tendsto against the majorant (1/n) log N + maxⱼ gⱼ n → maxⱼ Lⱼ.

theorem Oseledets.restLog_tendsto_absorbed {X : Type u_1} {d : } [MeasurableSpace X] [NeZero d] {A : XMatrix (Fin d) (Fin d) } {T : XX} (hA : ∀ (x : X), (A x).det 0) {Vi : XSubmodule (EuclideanSpace (Fin d))} {x : X} {c : } (hVx : Vi x ) (hequiv : ∀ (k : ), orthProjMatrix (Vi (T (T^[k] x))) * A (T^[k] x) * orthProjMatrix (Vi (T^[k] x)) = A (T^[k] x) * orthProjMatrix (Vi (T^[k] x))) (hc : Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * restLog A Vi T n x) Filter.atTop (nhds c)) :

Absorbed restricted-growth limit. On the good orbit (Vᵢ(x) ≠ ⊥ and the one-step flag equivariance along the forward orbit), the floored restricted-log Kingman limit equals the limit of the floor-absorbed restricted operator norm (1/n) log ‖A⁽ⁿ⁾(x) · P_{Vᵢ(x)}‖. (restLog_eq_on_good for n ≥ 1.)

The restricted Kingman constant equals λᵢ, and the backward envelope #

theorem Oseledets.restricted_const_eq {X : Type u_1} {d : } [MeasurableSpace X] [NeZero d] {μ : MeasureTheory.Measure X} [MeasureTheory.IsProbabilityMeasure μ] {T : X ≃ᵐ X} (hT : Ergodic (⇑T) μ) {A : XMatrix (Fin d) (Fin d) } (hA : ∀ (x : X), (A x).det 0) (lam0 : ) (V : Fin (numExp lam0 d + 1)XSubmodule (EuclideanSpace (Fin d))) (hVae : ∀ᵐ (x : X) μ, V 0 x = V (Fin.last (numExp lam0 d)) x = (∀ (i : Fin (numExp lam0 d)), V i.succ x < V i.castSucc x) (∀ (i : Fin (numExp lam0 d + 1)), Submodule.map (↑(Matrix.toEuclideanCLM (A x))) (V i x) = V i (T x)) ∀ (i : Fin (numExp lam0 d)), v(V i.castSucc x), vV i.succ xFilter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanCLM (cocycle A (⇑T) n x)) v) Filter.atTop (nhds (expEnum lam0 d i))) (i : Fin (numExp lam0 d)) (c : ) (hc : ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * restLog A (fun (x : X) => V i.castSucc x) (⇑T) n x) Filter.atTop (nhds c)) :
c = expEnum lam0 d i

The restricted Kingman constant equals λᵢ. For the forward Oseledets level Vᵢ = V i.castSucc, the Kingman constant c of the restricted cocycle restLog A Vᵢ T (the forward a.e. limit of (1/n) restLog n) equals the Lyapunov exponent λᵢ = expEnum lam0 d i.

The direction uses a stratum witness v ∈ Vᵢ(x) ∖ Vᵢ₊₁(x) with growth exactly λᵢ; the direction bounds ‖A⁽ⁿ⁾ · P_{Vᵢ}‖ by the sum of growths of an orthonormal basis of Vᵢ(x), each basis vector lying in a stratum ≥ i (hence with growth ≤ λᵢ). Both bounds are evaluated at the base point through the floor-absorbed identity (restLog_eq_on_good, along the forward orbit made good by ae_forall_iterate_of_ae), and c is pinned down as a constant via the a.e. Kingman limit.

theorem Oseledets.ae_limsup_restricted_backward_le {X : Type u_1} {d : } [MeasurableSpace X] [NeZero d] {μ : MeasureTheory.Measure X} [MeasureTheory.IsProbabilityMeasure μ] {T : X ≃ᵐ X} (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)⁻¹) μ) (lam0 : ) (V : Fin (numExp lam0 d + 1)XSubmodule (EuclideanSpace (Fin d))) (hVmeas : ∀ (i : Fin (numExp lam0 d + 1)), MeasurableSubspace fun (x : X) => V i x) (hVae : ∀ᵐ (x : X) μ, V 0 x = V (Fin.last (numExp lam0 d)) x = (∀ (i : Fin (numExp lam0 d)), V i.succ x < V i.castSucc x) (∀ (i : Fin (numExp lam0 d + 1)), Submodule.map (↑(Matrix.toEuclideanCLM (A x))) (V i x) = V i (T x)) ∀ (i : Fin (numExp lam0 d)), v(V i.castSucc x), vV i.succ xFilter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log (Matrix.toEuclideanCLM (cocycle A (⇑T) n x)) v) Filter.atTop (nhds (expEnum lam0 d i))) (i : Fin (numExp lam0 d)) :
∀ᵐ (x : X) μ, Filter.limsup (fun (n : ) => (↑n)⁻¹ * Real.log cocycle A (⇑T) n ((⇑T.symm)^[n] x) * orthProjMatrix (V i.castSucc ((⇑T.symm)^[n] x))) Filter.atTop expEnum lam0 d i

The backward-orbit restricted envelope (the direction consumed by the transversality crux ae_crux). For a.e. x, the floor-absorbed restricted operator norm along the backward orbit has limsup at most λᵢ:

limsup (1/n) log ‖A⁽ⁿ⁾(T⁻ⁿ x) · P_{Vᵢ(T⁻ⁿ x)}‖ ≤ λᵢ.

Assembled from restLog_backward_kingman (the backward Kingman limit shares the forward constant c), restricted_const_eq (c = λᵢ), and the floor absorption along the backward orbit: the whole bi-orbit is good a.e. (ae_forall_iterate_of_ae over T.symm), so restLog_eq_on_good absorbs the floor at each T⁻ⁿ x.