The genuine Arnold cat map as a hyperbolic toral automorphism #
This module formalizes the genuine Arnold cat map: the automorphism of the 2-torus
𝕋² = UnitAddTorus (Fin 2) = Fin 2 → UnitAddCircle induced by the unimodular hyperbolic matrix
M = !![2,1;1,1] ∈ SL₂(ℤ), and proves it is measure-preserving and ergodic for the Haar
(volume) measure. This replaces the constant-cocycle realization in
Oseledets/Examples/Elementary.lean (where the cat-map matrix is merely a constant cocycle over
the doubling map) with real toral dynamics.
Strategy #
Measure-preservation.
catTorusis a continuous surjective additive automorphism of the compact group𝕋². Sincevolumeis a Haar probability measure (product of Haar on the unit circle),AddMonoidHom.measurePreservingapplies (a continuous surjective hom of compact groups with equal total mass is measure-preserving).Ergodicity (Fourier / character argument). The Koopman operator sends the character
mFourier ntomFourier (catℤ ·ᵥ n)(the matrix is symmetric, so the index action byMᵀis the action byM). For a measurable invariant sets, the indicator1_s ∈ L²has Fourier coefficients constant along the orbitp ↦ catℤᵖ ·ᵥ n. Forn ≠ 0that orbit is infinite (Oseledets.CatMapToral.orbit_infinite, the hyperbolicity input), andℓ²-summability forces the coefficient to0. Hence only then = 0coefficient survives, so1_sis a.e. constant andsis a.e. empty or full.
Main results #
Oseledets.CatMapToral.catTorus— the cat-map automorphism of𝕋².Oseledets.CatMapToral.measurePreserving_catTorus—catToruspreservesvolume.Oseledets.CatMapToral.ergodic_catTorus—catTorusis ergodic forvolume.
Normalise the circle measure to total mass 1 (AddCircle.haarAddCircle), matching the
convention of Mathlib.Analysis.Fourier.AddCircleMulti (where mFourierBasis and the Fourier
coefficient API are stated). With this MeasureSpace instance, volume on UnitAddTorus (Fin 2)
is the product Haar probability measure on 𝕋², which is exactly the basis the Fourier API uses.
Equations
- instMeasureSpaceUnitAddCircle_oseledets = { toMeasurableSpace := QuotientAddGroup.measurableSpace (AddSubgroup.zmultiples 1), volume := AddCircle.haarAddCircle }
Instances For
The inverse cat-map matrix M⁻¹ = !![1,-1;-1,2] (note det M = 1).
Equations
- Oseledets.CatMapToral.catℤinv = !![1, -1; -1, 2]
Instances For
The cat-map automorphism of the torus #
The cat-map automorphism T_M : 𝕋² → 𝕋², induced by M = !![2,1;1,1].
Instances For
torusMap of a matrix product is the composition of torusMaps. (The ℤ-action on
UnitAddCircle makes each component additive, and matrix multiplication is the composition of the
index actions.)
catTorus is a bijection, with two-sided inverse torusMap catℤinv.
catTorus is surjective.
catTorus packaged as an additive monoid homomorphism of 𝕋² (each component is a finite
sum of ℤ-scalings, hence additive).
Equations
- Oseledets.CatMapToral.catTorusHom = { toFun := Oseledets.CatMapToral.catTorus, map_zero' := Oseledets.CatMapToral.catTorusHom._proof_1, map_add' := Oseledets.CatMapToral.catTorusHom._proof_2 }
Instances For
Every torusMap is continuous.
Measure preservation #
The cat-map automorphism preserves Haar (volume). catTorus is a continuous surjective
additive automorphism of the compact group 𝕋², and volume is a Haar probability measure, so
AddMonoidHom.measurePreserving applies (equal total mass 1).
The measurable-equivalence packaging catTorusEquiv also preserves Haar (volume).
The Koopman / character relation #
The Koopman operator sends a character to a character, with the index transformed by the
(transpose of the) matrix. Since catℤ is symmetric, catℤᵀ = catℤ, so the index action is just
n ↦ catℤ ·ᵥ n.
fourier of a finite sum of scalings is the product of the scaled-index characters:
fourier k (∑ j, a j • z j) = ∏ j, fourier (k * a j) (z j).
Koopman / character relation. Composing a character with the cat-map automorphism gives
the character at the vecMul-transformed index:
mFourier n (catTorus y) = mFourier (catℤ.vecMul n) y. Equivalently
mFourier (catℤ.vecMul n) = mFourier n ∘ catTorus.
The Koopman relation as a functional identity:
mFourier (catℤ.vecMul n) = (mFourier n) ∘ catTorus.
Fourier coefficient invariance and the orbit-vanishing argument #
Fourier coefficients of an invariant function are constant along the index orbit.
If f =ᵐ f ∘ catTorus, then mFourierCoeff f (catℤ.vecMul n) = mFourierCoeff f n: composing the
character mFourier (-n) with catTorus and changing variables (measure preservation) shows the
two integrals agree.
A complex sequence that is constant on an infinite set and square-summable vanishes on
that set. (Square-summability forces ‖·‖² → 0 along the cofinite filter, but a nonzero constant
on an infinite set never tends to 0.)
Identifying the index action with the mulVec orbit #
catℤ is symmetric, so the vecMul index action coincides with the mulVec action.
Ergodicity #
The constant character mFourier 0 is the constant function 1.
For an L² function f, the Fourier coefficients are square-summable.
Fourier coefficients of an invariant L² function vanish off the origin. If
(f : T2 → ℂ) is =ᵐ f ∘ catTorus and f ∈ L², then mFourierCoeff f n = 0 for every nonzero
index n. (Constant along the infinite index orbit + square-summable ⇒ zero.)
An invariant L² function is a.e. constant. If f ∈ L² and (f : T2 → ℂ) =ᵐ f∘catTorus,
then f is a.e. equal to its zeroth Fourier coefficient. (All higher coefficients vanish by
mFourierCoeff_eq_zero_of_invariant, so the Fourier series collapses to the constant term.)
The Arnold cat map is ergodic. For a measurable catTorus-invariant set s, the
indicator 1_s ∈ L² is catTorus-invariant, hence a.e. constant by ae_eq_const_of_invariant;
an indicator that is a.e. constant forces s to be a.e. empty or a.e. the whole torus. Together
with measurePreserving_catTorus this gives ergodicity.