Documentation

CsdLean4.Mathlib.Dynamics.ClassicalOtoc

The classical out-of-time-order correlator of a linear map, and the cat map's #

Category: 1-Mathlib (CSD-free; staged as a Mathlib-upstream candidate). BACKLOG #149 (out of #101(b)); consumed by SigmaLayer/FibreOtoc.lean.

The quantum out-of-time-order correlator is the commutator norm ‖[A(n), B]‖ of a Heisenberg-evolved observable against a probe (QuantumChaos.otoc, Incubator/QuantumChaos/Otoc.lean). Its classical analogue replaces the commutator by the Poisson bracket: for a map Φ of the plane with canonical coordinates (x, p), the classical OTOC at step n is {x ∘ Φⁿ, p}, which by the chain rule is the (1,1) entry ∂(Φⁿ)₁/∂x of the derivative DΦⁿ. For a linear map A the derivative is A itself and the bracket is constant in the phase point, so the classical OTOC is a number: classicalOtoc A n = ((Aⁿ) (1, 0)).1 (classicalOtoc_eq).

The cat map #

The powers of the cat matrix are Fibonacci matrices, catR ^ n = [[F_{2n+1}, F_{2n}], [F_{2n}, F_{2n−1}]] (catR_pow_apply, with F_{2n−1} written F_{2n+1} − F_{2n} so that n = 0 is the identity), so

The maps that do not scramble #

Honest scope #

References: Maldacena–Shenker–Stanford, A bound on chaos (2016), §1 (the classical limit of the OTOC as a Poisson bracket); Katok–Hasselblatt §1.8; Mathlib/Dynamics/LyapunovExponent.lean (catR, hasLyapunovExponent_catR), Mathlib/Dynamics/CatMapShears.lean (shearXR, shearYR, shearXR_pow_apply), Incubator/QuantumChaos/Otoc.lean (QuantumChaos.otoc), CV/ChaosBounds.lean (otoc_interactingU_le, the corpus's at-most-linear quantum family); specs/BACKLOG.md #149, #148, #153.

The Poisson bracket, and the classical OTOC of a linear map #

noncomputable def poissonBracket (f g : ℝ × ℝ → ℝ) (v : ℝ × ℝ) :

The Poisson bracket {f, g} = ∂ₓf ∂ₚg − ∂ₚf ∂ₓg of two functions of the plane, with canonical coordinates (x, p) = (v.1, v.2).

Equations
Instances For

    The bracket of a linear function with the momentum coordinate is its x-coefficient, at every phase point.

    noncomputable def classicalOtoc (A : ℝ × ℝ →L[ℝ] ℝ × ℝ) (n : ℕ) :

    The classical OTOC of a linear map A of the plane at step n: the Poisson bracket {x ∘ Aⁿ, p} of the evolved position with the momentum. It is constant in the phase point (classicalOtoc_eq), so it is evaluated at the origin.

    Equations
    Instances For
      theorem classicalOtoc_eq (A : ℝ × ℝ →L[ℝ] ℝ × ℝ) (n : ℕ) :
      classicalOtoc A n = ((A ^ n) (1, 0)).1

      The classical OTOC is the (1,1) entry of Aⁿ.

      theorem poissonBracket_pow_fst_snd (A : ℝ × ℝ →L[ℝ] ℝ × ℝ) (n : ℕ) (v : ℝ × ℝ) :
      poissonBracket (fun (v : ℝ × ℝ) => ((A ^ n) v).1) Prod.snd v = classicalOtoc A n

      The bracket {x ∘ Aⁿ, p} does not depend on the phase point.

      theorem poissonBracket_pow_snd_snd (A : ℝ × ℝ →L[ℝ] ℝ × ℝ) (n : ℕ) (v : ℝ × ℝ) :
      poissonBracket (fun (v : ℝ × ℝ) => ((A ^ n) v).2) Prod.snd v = ((A ^ n) (1, 0)).2

      The transverse bracket {p ∘ Aⁿ, p} is the (2,1) entry of Aⁿ.

      The maps that do not scramble #

      The identity has classical OTOC 1 at every step.

      The identity's classical OTOC has growth rate 0.

      The horizontal shear has classical OTOC 1 at every step.

      The vertical shear has classical OTOC 1 at every step.

      theorem MeasureTheory.poissonBracket_snd_shearYR (n : ℕ) (v : ℝ × ℝ) :
      poissonBracket (fun (v : ℝ × ℝ) => ((shearYR ^ n) v).2) Prod.snd v = ↑n

      The vertical shear's transverse bracket {p ∘ shearYRⁿ, p} is n: linear, not exponential.

      The cat map's powers are Fibonacci matrices #

      theorem MeasureTheory.catR_pow_one_zero (n : ℕ) :
      (catR ^ n) (1, 0) = (↑(Nat.fib (2 * n + 1)), ↑(Nat.fib (2 * n)))

      The first column of catR ^ n is (F_{2n+1}, F_{2n}).

      theorem MeasureTheory.catR_pow_zero_one (n : ℕ) :
      (catR ^ n) (0, 1) = (↑(Nat.fib (2 * n)), ↑(Nat.fib (2 * n + 1)) - ↑(Nat.fib (2 * n)))

      The second column of catR ^ n is (F_{2n}, F_{2n−1}), with F_{2n−1} written F_{2n+1} − F_{2n} so that n = 0 gives the identity's column (0, 1).

      theorem MeasureTheory.catR_pow_apply (n : ℕ) (v : ℝ × ℝ) :
      (catR ^ n) v = (↑(Nat.fib (2 * n + 1)) * v.1 + ↑(Nat.fib (2 * n)) * v.2, ↑(Nat.fib (2 * n)) * v.1 + (↑(Nat.fib (2 * n + 1)) - ↑(Nat.fib (2 * n))) * v.2)

      ★ The powers of the cat matrix are Fibonacci matrices: catR ^ n = [[F_{2n+1}, F_{2n}], [F_{2n}, F_{2n+1} − F_{2n}]].

      ★ The cat map's classical OTOC #

      ★ The classical OTOC of the cat map at step n is exactly F_{2n+1}.

      Binet's form of the cat map's classical OTOC: (φ^{2n+1} − ψ^{2n+1}) / √5.

      theorem MeasureTheory.norm_catR_pow_one_zero (n : ℕ) :
      ‖(catR ^ n) (1, 0)‖ = ↑(Nat.fib (2 * n + 1))

      The sup norm of the first column (F_{2n+1}, F_{2n}) is F_{2n+1}.

      ★★ The cat map's classical OTOC grows at the exponential rate 2 log φ, the Lyapunov exponent: log F_{2n+1} / n → 2 log φ. Read off hasLyapunovExponent_catR in the direction (1, 0), whose iterates have sup norm exactly F_{2n+1}.

      ★ The squared bracket, the textbook C(t), grows at 4 log φ — twice the Lyapunov exponent.

      The cat map's classical OTOC is positive at every step: F_{2n+1} ≥ 1.

      ★★★ The package #

      theorem MeasureTheory.cat_classicalOtoc :
      (∀ (n : ℕ), classicalOtoc catR n = ↑(Nat.fib (2 * n + 1))) ∧ Filter.Tendsto (fun (n : ℕ) => Real.log (classicalOtoc catR n) / ↑n) Filter.atTop (nhds (2 * Real.log Real.goldenRatio)) ∧ (∀ (n : ℕ), classicalOtoc (ContinuousLinearMap.id ℝ (ℝ × ℝ)) n = 1) ∧ (∀ (n : ℕ), classicalOtoc shearXR n = 1) ∧ (∀ (n : ℕ), classicalOtoc shearYR n = 1) ∧ ∀ (n : ℕ) (v : ℝ × ℝ), poissonBracket (fun (v : ℝ × ℝ) => ((shearYR ^ n) v).2) Prod.snd v = ↑n

      ★★★ The classical OTOC separates the cat map from its shear factors and from the identity. The cat map's bracket is exactly F_{2n+1} and grows at rate 2 log φ; the identity's and each shear's bracket is 1 at every step, and the vertical shear's transverse bracket is n. Exponential scrambling is the work of composing the two transverse shears.