Documentation

Oseledets.TwoSided.Reflection

Exponent reflection for the two-sided Oseledets theorem #

This module establishes the exponent reflection principle: the backward singular spectrum is the reflected negation of the forward one.

The argument has two unconditional analytic inputs and one self-contained combinatorial core:

Main results #

The forward and backward determinant sum identities #

theorem Oseledets.sum_lam0_eq_integral_log_abs_det {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} [MeasureTheory.IsProbabilityMeasure μ] {T : XX} (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 : ) (hlam0 : i < d, ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log ((Matrix.toEuclideanLin (cocycle A T n x)).singularValues i)) Filter.atTop (nhds (lam0 i))) :
jFinset.range d, lam0 j = (x : X), Real.log |(A x).det| μ

Forward determinant sum identity. Any deterministic exponent sequence lam0 that realizes the a.e. per-index singular-value limits (e.g. the one produced by exists_lam_tendsto_singularValue, exposed by oseledets_filtration_dims) satisfies ∑_{j<d} lam0 j = ∫ x, log |(A x).det| ∂μ.

Proof: the chosen spectrum exponents of Spectrum.lean realizes the same a.e. limits (exponents_tendsto_log_singularValue); uniqueness of a.e. limits at a common conull point forces lam0 j = exponents j for every j < d, so ∑_{j<d} lam0 j = sumAllExp, which equals the integral by sumAllExp_eq_integral_log_abs_det.

theorem Oseledets.log_abs_det_backwardGen {X : Type u_1} [MeasurableSpace X] {d : } {T : X ≃ᵐ X} {A : XMatrix (Fin d) (Fin d) } (x : X) :

The pointwise identity log |det (backwardGen A T x)| = − log |det (A (T.symm x))|, from det (M⁻¹) = (det M)⁻¹ and log |r⁻¹| = − log |r|.

theorem Oseledets.integral_log_abs_det_backwardGen_eq_neg {X : Type u_1} [MeasurableSpace X] {d : } {μ : MeasureTheory.Measure X} {T : X ≃ᵐ X} {A : XMatrix (Fin d) (Fin d) } (hT : Ergodic (⇑T) μ) :
(x : X), Real.log |(backwardGen A T x).det| μ = - (x : X), Real.log |(A x).det| μ

Backward determinant integral identity. ∫ x, log |det (backwardGen A T x)| ∂μ = − ∫ x, log |(A x).det| ∂μ, via the pointwise inverse-determinant identity and the change of variables along the measure-preserving T.symm.

theorem Oseledets.sum_mu0_eq_neg_sum_lam0 {X : Type u_1} [MeasurableSpace X] {d : } [NeZero d] {μ : MeasureTheory.Measure X} [MeasureTheory.IsProbabilityMeasure μ] {T : X ≃ᵐ X} {A : XMatrix (Fin d) (Fin d) } (hT : Ergodic (⇑T) μ) (hA : ∀ (x : X), (A x).det 0) (hAmeas : Measurable A) (hint : IntegrableLogNorm A μ) (hint' : IntegrableLogNorm (fun (x : X) => (A x)⁻¹) μ) (lam0 mu0 : ) (hlam0 : i < d, ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log ((Matrix.toEuclideanLin (cocycle A (⇑T) n x)).singularValues i)) Filter.atTop (nhds (lam0 i))) (hmu0 : i < d, ∀ᵐ (x : X) μ, Filter.Tendsto (fun (n : ) => (↑n)⁻¹ * Real.log ((Matrix.toEuclideanLin (cocycle (backwardGen A T) (⇑T.symm) n x)).singularValues i)) Filter.atTop (nhds (mu0 i))) :
jFinset.range d, mu0 j = -jFinset.range d, lam0 j

Backward determinant sum identity. For any backward exponent sequence mu0 realizing the a.e. per-index singular-value limits of the backward cocycle cocycle (backwardGen A T) (⇑T.symm), the sum of its first d values is the negation of the forward sum: ∑_{j<d} mu0 j = − ∑_{j<d} lam0 j.

The pure combinatorial reflection lemma #

theorem Oseledets.reflect_of_counting_and_sum {p q : } {d : } (hp : ∀ (a b : ), a bb < dp b p a) (hq : ∀ (a b : ), a bb < dq b q a) (hcount : ∀ (a b : ), a + b < 0{jFinset.range d | p j a}.card + {jFinset.range d | q j b}.card d) (hsum : jFinset.range d, q j = -jFinset.range d, p j) (j : ) :
j < dq j = -p (d - 1 - j)

Reflection from counting bound and sum. Let p, q : ℕ → ℝ be antitone on [0, d). If the counting bound ∀ a b, a + b < 0 → #{j < d | p j ≤ a} + #{j < d | q j ≤ b} ≤ d holds and the sums are opposite, ∑_{j<d} q j = − ∑_{j<d} p j, then q is the reflected negation of p: q j = − p (d − 1 − j) for every j < d.

Proof: the counting bound yields the pointwise lower bound q j ≥ − p (d − 1 − j) (neg_p_rev_le_q); summing these and reindexing j ↦ d − 1 − j shows the sum of the lower bounds equals − ∑ p = ∑ q, so the nonnegative slacks sum to zero, forcing equality at every index (Finset.sum_eq_zero_iff_of_nonneg).

Reflection corollaries: distinct-exponent count, enumeration, dimension formula #

theorem Oseledets.numExp_eq_of_counting {p q : } {d : } (hrefl : j < d, q j = -p (d - 1 - j)) :
numExp q d = numExp p d

The number of distinct exponents is reflection-invariant.

theorem Oseledets.expEnum_eq_neg_rev_of_counting {p q : } {d : } (hrefl : j < d, q j = -p (d - 1 - j)) (a : Fin (numExp q d)) :
expEnum q d a = -expEnum p d (Fin.cast a.rev)

The backward distinct-exponent enumeration is the reflected negation of the forward one. With q j = − p (d − 1 − j), the descending enumeration of q's distinct values at index a equals the negation of the descending enumeration of p's distinct values at the reversed index: expEnum q d a = − expEnum p d (a.rev'), where the index a.rev' lives in Fin (numExp p d) after transporting along numExp q d = numExp p d.

theorem Oseledets.backward_count_eq_of_counting {p q : } {d : } (hrefl : j < d, q j = -p (d - 1 - j)) (t : ) :
{jFinset.range d | q j -t}.card = d - {jFinset.range d | p j < t}.card

Backward sublevel count = forward strict-superlevel count. With the reflection q j = − p (d − 1 − j), for any threshold t the number of backward exponents at or below −t equals the number of forward exponents at or above t, which is d minus the number of forward exponents strictly below t: #{j < d | q j ≤ −t} = d − #{j < d | p j < t}.

theorem Oseledets.backward_dim_count_of_counting {p q : } {d : } (hrefl : j < d, q j = -p (d - 1 - j)) (i : Fin (numExp p d)) :
{jFinset.range d | q j -expEnum p d i}.card = d - {jFinset.range d | p j < expEnum p d i}.card

Backward dimension formula (robust strict-sublevel form). Specializing backward_count_eq_of_counting at the forward Lyapunov exponent λᵢ = expEnum lam0 d i: the backward interior dimension count at −λᵢ is d minus the number of forward exponents strictly below λᵢ: #{j < d | mu0 j ≤ −λᵢ} = d − #{j < d | lam0 j < λᵢ}.

This is the load-bearing reflection of the dimension counts. The blueprint's λ_{i+1} form is obtained from this by forward_strict_count_eq_succ_of_counting, which identifies #{lam0 j < λᵢ} with #{lam0 j ≤ λ_{i+1}} using the gap between consecutive distinct exponents.

theorem Oseledets.forward_strict_count_eq_succ {p : } {d : } (i : Fin (numExp p d)) (hi : i + 1 < numExp p d) :
{jFinset.range d | p j < expEnum p d i}.card = {jFinset.range d | p j expEnum p d i + 1, hi}.card

Consecutive-exponent gap. For consecutive distinct forward exponents λᵢ = expEnum p d i and λ_{i+1} = expEnum p d i.succ, the forward exponents strictly below λᵢ are exactly those at or below λ_{i+1} (no distinct value lies strictly between two consecutive ones): #{j < d | p j < λᵢ} = #{j < d | p j ≤ λ_{i+1}}.

theorem Oseledets.backward_dim_count_succ_of_counting {p q : } {d : } (hrefl : j < d, q j = -p (d - 1 - j)) (i : Fin (numExp p d)) (hi : i + 1 < numExp p d) :
{jFinset.range d | q j -expEnum p d i}.card = d - {jFinset.range d | p j expEnum p d i + 1, hi}.card

Backward dimension formula (blueprint λ_{i+1} form). For consecutive forward exponents, the backward interior dimension count at −λᵢ is d minus the number of forward exponents at or below the next exponent λ_{i+1}: #{j < d | mu0 j ≤ −λᵢ} = d − #{j < d | lam0 j ≤ λ_{i+1}}.