Documentation

CsdLean4.Mathlib.Dynamics.CatMapWitness

An invertible correlation-decay witness: Arnold's cat map on #

Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate).

CorrelationDecayWitness.lean shows HasCorrelationDecay is satisfiable, using the doubling endomorphism on the circle. That witness is not invertible, and the gap is load-bearing for its consumer: a symplectic Σ-flow would be invertible, so a non-invertible witness shows the predicate is inhabited without showing it is inhabited by anything of the right kind (LF4/KahlerFibreMixing.lean, honest-scope caveat (2)).

This file supplies the invertible witness: Arnold's cat map (x,y) ↦ (2x+y, x+y) on T² = (ℝ/ℤ)², a bijection, with the observable catObs (x,y) = Re e^{2πix}.

Why the doubling map's proof does not transfer #

CorrelationDecayWitness uses no Fourier analysis: it rotates by 2^{-(s+1)}, which flips the s-factor's sign and fixes the later factors because 2^t / 2^{s+1} is an integer. That trick needs the map to kill a torsion point, and a bijection cannot: A^t ρ = 0 ⟹ ρ = 0. So the argument here is the standard character-orthogonality one instead, which the doubling witness deliberately avoided.

The construction #

Honest scope #

Reference: Arnold–Avez, Ergodic Problems of Classical Mechanics (1968), §1.16 (the cat map). In-corpus: Mathlib/Dynamics/CorrelationDecay.lean (the engine), CorrelationDecayWitness.lean (the non-invertible sibling), CompactGroupNoMixing.lean (what any witness must dodge).

The torus and its Haar measure #

@[reducible, inline]

The two-torus (ℝ ⧸ ℤ)². ⚠️ Deliberately does not re-declare a Circ abbreviation: CorrelationDecayWitness.lean already has one in this namespace, and two would collide.

Equations
Instances For

    The cat map #

    noncomputable def MeasureTheory.cat :

    Arnold's cat map (x,y) ↦ (2x + y, x + y) on .

    Equations
    Instances For
      theorem MeasureTheory.cat_add (a b : Torus2) :
      cat (a + b) = cat a + cat b

      The cat map as an additive monoid hom — the form AddMonoidHom.measurePreserving consumes.

      Equations
      Instances For
        noncomputable def MeasureTheory.catInv :

        The inverse (x,y) ↦ (x − y, −x + 2y): det [[2,1],[1,1]] = 1.

        Equations
        Instances For

          The cat map is a bijection — the property the doubling witness lacks.

          The cat map preserves Haar measure. A continuous surjective endomorphism of a compact group preserves the Haar probability measure; AddMonoidHom.measurePreserving is exactly that.

          Characters on #

          noncomputable def MeasureTheory.chi (v : × ) :

          The character χ_(m,n)(x,y) = e^{2πimx} · e^{2πiny}.

          Equations
          Instances For
            theorem MeasureTheory.chi_arg_add (v : × ) (p q : Torus2) :
            chi v (p + q) = chi v p * chi v q
            theorem MeasureTheory.chi_index_add (a b : × ) (p : Torus2) :
            chi (a + b) p = chi a p * chi b p
            theorem MeasureTheory.integral_chi_eq_zero {v : × } (hv : v 0) :
            (p : Torus2), chi v p = 0

            A nontrivial character integrates to zero. Translate by a point where the character is -1; Haar is translation-invariant, so the integral equals its own negative.

            theorem MeasureTheory.chi_zero (p : Torus2) :
            chi 0 p = 1

            The trivial character is 1.

            Transport: characters move by the transpose matrix #

            The transpose action on character indices.

            Equations
            Instances For
              theorem MeasureTheory.fourier_arg_add_index (n : ) (x y : AddCircle 1) :
              (fourier n) (x + y) = (fourier n) x * (fourier n) y

              Argument-additivity at a general index. ⚠️ Named apart from CorrelationDecayWitness.fourier_arg_add, which is the index-1 special case in this same namespace; Mathlib itself has only index-additivity (fourier_add).

              theorem MeasureTheory.fourier_zsmul_arg (m k : ) (x : AddCircle 1) :
              (fourier m) (k x) = (fourier (m * k)) x
              theorem MeasureTheory.chi_cat (v : × ) (p : Torus2) :
              chi v (cat p) = chi (catZ v) p

              The transport rule χ_v ∘ cat = χ_{catZ v}.

              theorem MeasureTheory.chi_cat_iterate (v : × ) (u : ) (p : Torus2) :
              chi v (cat^[u] p) = chi (catZ^[u] v) p
              theorem MeasureTheory.catZ_orbit_pos (u : ) :
              1 (catZ^[u + 1] (1, 0)).1 1 (catZ^[u + 1] (1, 0)).2

              Orbit positivity. Both coordinates of catZ^[u+1] (1,0) are ≥ 1: the recursion is Fibonacci-positive, so no eigenvalue theory is needed for the concrete matrix.

              theorem MeasureTheory.catZ_orbit_ne (u : ) :
              catZ^[u + 1] (1, 0) (1, 0) catZ^[u + 1] (1, 0) (-1, 0)

              The orbit never returns to ±(1,0) after the first step — the non-degeneracy the four-term expansion needs.

              The observable and its correlations #

              noncomputable def MeasureTheory.catObs :

              The observable catObs (x,y) = Re e^{2πix} — the same function the doubling witness uses, read on the first coordinate.

              Equations
              Instances For
                theorem MeasureTheory.re_mul_re (z w : ) :
                z.re * w.re = ((z * w + z * (starRingEnd ) w + (starRingEnd ) z * w + (starRingEnd ) z * (starRingEnd ) w) / 4).re

                The four-term expansion of a product of real parts.

                The mean of the observable is zero.

                theorem MeasureTheory.integral_chi_re (z : × ) :
                (p : Torus2), (chi z p).re = if z = 0 then 1 else 0

                The real part of a character integrates to 1 at the trivial index and 0 otherwise.

                The lag-u orbit index of the base character (1,0).

                Equations
                Instances For
                  theorem MeasureTheory.catObs_mul_iterate (u : ) (p : Torus2) :
                  catObs p * catObs (cat^[u] p) = ((chi ((1, 0) + catIdx u) p).re + (chi ((1, 0) + -catIdx u) p).re + (chi (-(1, 0) + catIdx u) p).re + (chi (-(1, 0) + -catIdx u) p).re) / 4

                  The four-character expansion of the lag-u integrand.

                  theorem MeasureTheory.integral_four (f₁ f₂ f₃ f₄ : Torus2) (h₁ : Integrable f₁ volume) (h₂ : Integrable f₂ volume) (h₃ : Integrable f₃ volume) (h₄ : Integrable f₄ volume) :
                  (p : Torus2), f₁ p + f₂ p + f₃ p + f₄ p = ((( (p : Torus2), f₁ p) + (p : Torus2), f₂ p) + (p : Torus2), f₃ p) + (p : Torus2), f₄ p

                  Additivity of the integral over a four-term real sum, in the shape the expansion produces.

                  theorem MeasureTheory.integral_catObs_pair (u : ) :
                  (p : Torus2), catObs p * catObs (cat^[u] p) = if u = 0 then 1 / 2 else 0

                  The correlations vanish at every nonzero lag, and equal 1/2 at lag zero.

                  ★★ The witness #

                  noncomputable def MeasureTheory.catEnv :

                  The finitely-supported decay envelope: 1/2 at lag zero, 0 afterwards.

                  Equations
                  Instances For

                    ★★ An INVERTIBLE map satisfies HasCorrelationDecay. Arnold's cat map on , with the observable Re e^{2πix}, has vanishing correlations at every nonzero lag. Unlike the doubling witness this map is a bijection (bijective_cat), so the predicate is inhabited by a map of the kind a symplectic Σ-flow could be.

                    The witness is not the trivial constant observable: ⟨f²⟩ = 1/2 ≠ 0 = ⟨f⟩².