A non-vacuous instance of the per-partition Ruelle bound: the doubling map #
The abstract per-partition Ruelle inequality h(α, T) ≤ ∑ λᵢ⁺ — entropy relative to one
partition α — has as its unconditional arithmetic backbone
Oseledets.Entropy.ksEntropyPartition_le_of_atomCount_growth, which isolates the genuinely
geometric content as an explicit atom-counting hypothesis and proves everything around it. This
module instantiates that content concretely on the classical worked example: the doubling
map T : y ↦ 2 • y on the unit circle (Oseledets.doublingMap,
Oseledets/Examples/Elementary.lean).
The headline Oseledets.doublingMap_ksEntropyPartition_le_sumPosExp proves the per-partition
bound ksEntropyPartition hT P ≤ sumPosExp, i.e. h(α, T) ≤ ∑ λᵢ⁺, for a single partition α —
it is not the system Margulis–Ruelle inequality h(T) ≤ ∑ λᵢ⁺. The bridge from the
per-partition bound to the system entropy is the Kolmogorov–Sinai identity h(T) = h(α, T) for a
generating partition α, which is an un-formalized named input (see below).
For the doubling map the right-hand side equals log 2:
- the right-hand side — the sum of the strictly positive Lyapunov exponents of the (constant)
derivative cocycle, generator
M = !![2]— islog 2(the single exponent islog 2 > 0).
For the binary generating partition the left-hand side is also log 2, so the per-partition bound
h(α, T) ≤ log 2 is attained — but that equality is not proved in this file; it is the
sibling theorem Oseledets.Examples.Rokhlin.ksEntropyPartition_doublingMap_eq_log_two
(h(α, T) = log 2). Cross-referencing that lemma is what backs the "attained" claim with a real
proof rather than prose.
What is discharged here, and what stays an honest input #
The right-hand side is computed unconditionally.
Oseledets.doublingMap_sumPosExp_eq_log_twoprovessumPosExp = log 2for the doubling-map constant cocycle, with every spectrum hypothesis (invertibility, measurability, the two log-integrability conditions) discharged from the constant-cocycle API (const_det_ne_zero,const_measurable,const_integrableLogNorm,const_integrableLogNorm_inv). It reuses the proven single exponentOseledets.doublingMap_topExponent_eq_log_two(= log 2). This is the genuine positive-exponent sum side, fully sorry-free.The per-partition Ruelle inequality is instantiated at the rate
log 2.Oseledets.doublingMap_ksEntropyPartition_le_sumPosExpspecializes the unconditional arithmetic backboneOseledets.Entropy.ksEntropyPartition_le_of_atomCount_growthto the doubling map at the exponential rateR = log 2, and then identifies that rate with the computed positive-exponent sum: from the atom-count growthatomCount ≤ C · 2ⁿof a partition'sn-refinement, the partition entropyh(α, T)is bounded bysumPosExp = log 2. The rate here is not an assumed abstract constant — it is the actual Lyapunov datumlog 2.
The atom-count hypothesis hgrow (atomCount ≤ C · 2ⁿ) is automatic for the binary partition:
the n-fold refinement of a 2-element partition has at most card(ι)ⁿ = 2ⁿ atoms by the generic
bound atomCount ≤ card(ι)ⁿ (the count of formal n-tuples of cells), with no use of any
doubling-map-specific geometry. So the natural binary instance exercises no sharp geometric
input. The geometric content of hgrow only bites for partitions of cardinality > 2, where
card(ι)ⁿ exceeds 2ⁿ and the exact 2-to-1 structure of the doubling map (a partition into
intervals refines under T^[n] into ≈ 2ⁿ atoms, not card(ι)ⁿ) is what pins the rate down. The
hypothesis has exactly the status the Mañé/Katok count carries in Oseledets.Entropy.Ruelle.Crude,
here with the rate log 2 matching the true exponent.
The remaining bridge to a fully unconditional h(T) ≤ log 2 over the system entropy is the
Kolmogorov–Sinai theorem h(T) = h(α, T) for a generating partition α (Le Maître's notes, §1),
multi-month-scale ergodic infrastructure not present in Mathlib, hence deliberately left as the
named input.
Main results #
Oseledets.doublingMap_sumPosExp_eq_log_two— the positive-exponent sum of the doubling-map constant cocycle islog 2(unconditional, all hypotheses discharged).Oseledets.doublingMap_ksEntropyPartition_le_sumPosExp— the per-partition Ruelle boundh(α, T) ≤ ∑ λᵢ⁺ = log 2for the doubling map, from the atom-count growth at ratelog 2.
References #
- M. Viana, Lectures on Lyapunov Exponents, Cambridge Studies in Adv. Math. 145 (2014).
- Maryam Contractor, The Pesin Entropy Formula, UChicago REU 2023, §7.
- François Le Maître, Notes on the Kolmogorov–Sinai theorem (2017), §1.
The positive-exponent sum of the doubling-map cocycle is log 2 #
The single Lyapunov exponent of the doubling-map constant cocycle (generator M = !![2],
indexed by Fin (Fintype.card (Fin 1)) = Fin 1) is log 2.
This is Oseledets.doublingMap_topExponent_eq_log_two read off the only spectrum index: the top
exponent exponents … ⟨0, _⟩ is the single exponent, and a subsingleton index forces every index
to that value.
Doubling map: the sum of the strictly positive Lyapunov exponents is log 2.
The right-hand side of the Margulis–Ruelle inequality for the doubling-map constant cocycle
(generator M = !![2]) is log 2: the spectrum has a single exponent log 2 > 0, so the
positive-exponent sum is that one term. Every hypothesis (invertibility, measurability, and the
two log-integrability conditions) is discharged from the constant-cocycle API, so this
computation is unconditional.
The non-vacuous per-partition Ruelle inequality for the doubling map #
The per-partition Ruelle bound for the doubling map.
For any finite measurable partition P of the unit circle whose n-fold refinement
⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P under the doubling map has eventually at most C · 2ⁿ non-empty atoms
(hgrow, with C ≥ 1), the Kolmogorov–Sinai entropy relative to that single partition is bounded
by the sum of the strictly positive Lyapunov exponents of the (constant) derivative cocycle:
h(α, T) ≤ ∑ λᵢ⁺ = log 2.
This is the per-partition Ruelle bound h(α, T) ≤ ∑ λᵢ⁺, not the system inequality
h(T) ≤ ∑ λᵢ⁺ (which additionally needs the Kolmogorov–Sinai identity h(T) = h(α, T) for a
generating partition — an un-formalized named input; see the module docstring). The right-hand side
is the computed exponent sum log 2 (doublingMap_sumPosExp_eq_log_two), not an abstract
constant.
The bound is attained for the binary generating partition, where h(α, T) = log 2 — but that
equality is proved in the sibling theorem
Oseledets.Examples.Rokhlin.ksEntropyPartition_doublingMap_eq_log_two, not here.
The atom-count growth hgrow is automatic for the binary partition (its n-refinement has at
most card(ι)ⁿ = 2ⁿ atoms by the generic tuple bound, no doubling-map geometry); the geometric
content of hgrow only bites for partitions of cardinality > 2, where the exact 2-to-1
structure of the doubling map (≈ 2ⁿ interval atoms, not card(ι)ⁿ) is what pins the rate log 2
down (note 2ⁿ = exp(n · log 2)). The reduction itself is the unconditional arithmetic backbone
Oseledets.Entropy.ksEntropyPartition_le_of_atomCount_growth.