The coding layer for Krieger's finite generator theorem: two-sided recovery (Krieger M3) #
This file is the σ-algebra recovery core of Krieger's finite generator theorem. The classical
proof (Krieger 1970; Einsiedler–Lindenstrauss–Ward Entropy in Ergodic Theory §3) builds a finite
Fin k-valued partition P by coding the columns of a Rokhlin tower so that the two-sided
P-itinerary of a.e. point recovers its full itinerary under a fixed countable generator Q. The
combinatorial heart — that log k > h forces the number of N-names to be ≤ kᴺ up to ε, so a
Fin k code exists — is supplied upstream (the name-count layer M2, the Rokhlin tower M1). What
remains, and is proved here unconditionally, is the recovery half: once a candidate code P
has the property that every cell of Q is recovered, mod 0, by the two-sided P-saturation,
P two-sidedly generates mod 0 whenever Q does.
Why mod 0: generators in ergodic theory generate up to null sets #
The classical Krieger construction produces a code map that is defined and invertible only
μ-almost everywhere, so it recovers each generator cell only modulo a μ-null set. This is
not an artefact of the formalization: in ergodic theory a "generator" always means mod 0 — a
partition generates the σ-algebra up to null sets — because the ambient σ-algebra mα of a
standard-Borel space is not μ-complete, so an a.e.-defined code can never establish a
literal σ-algebra equality with mα. (See Glasner, Ergodic Theory via Joinings; Einsiedler–
Lindenstrauss–Ward, Entropy in Ergodic Theory, Ch. 2 on generators; Downarowicz §4.2, where the
strong-generator condition is 𝓑 = σ(⋃ₙ Tⁿ α) mod μ.) The literal equality
twoSidedSat e P = mα is therefore too strong / non-standard, and the unconditional Krieger
construction provably cannot discharge it; the mod-0 condition is the faithful one.
We formalize "mod 0" with Mathlib's MeasureTheory.eventuallyMeasurableSpace m₀ (ae μ): the
σ-algebra of sets that are =ᵐ[μ]-equal to an m₀-measurable set (the μ-completion of the
sub-σ-algebra m₀). Crucially this keeps every statement at the level of an order relation ≤
between MeasurableSpace α values, with the ambient measure μ fixed against mα — so the
proofs never rewrite the σ-algebra index of μ (which would break, since Measure α is indexed by
its MeasurableSpace).
The two-sided saturation and its (literal and mod-0) shift-invariance #
For e : α ≃ᵐ α and a finite partition P, write
twoSidedSat e P := ⨆ n : ℤ, comap (eⁿ) σ(P)
for the σ-algebra generated by the whole two-sided P-itinerary. The single structural fact that
drives everything is shift-invariance: pulling twoSidedSat e P back by any iterate eᵐ lands
inside twoSidedSat e P again, because reindexing the ℤ-supremum n ↦ n + m is a bijection of
ℤ (comap_twoSidedSat_le). This is precisely where two-sidedness (⨆ over ℤ, not ℕ) is
load-bearing: a forward ℕ-supremum is not shift-invariant under the backward iterate e⁻¹.
The mod-0 layer lifts this: for a measure-preserving e, preimage under eᵐ commutes with the
μ-completion (comap_eventuallyMeasurableSpace_le, using that a measure-preserving map is
quasi-measure-preserving so s =ᵐ t ⟹ f⁻¹s =ᵐ f⁻¹t), and the completion is monotone and idempotent
(eventuallyMeasurableSpace_mono, eventuallyMeasurableSpace_idem). These give mod-0
shift-invariance (comap_eventuallyMeasurableSpace_twoSidedSat_le) and the mod-0 recovery
monotonicity (twoSidedSat_mono_of_codes), so a mod-0 generator Q lifts to a mod-0 generator P
(IsGeneratingTwoSidedMod0.of_codes).
The coding interface consumed by the headline #
The upstream coding construction is exposed to the headline through the predicate
CodesTwoSidedMod0 e Q P, which packages the mod-0 recovery hypothesis
σ(Q) ≤ eventuallyMeasurableSpace (twoSidedSat e P) (ae μ) — every cell of Q is, mod 0, in the
two-sided P-saturation. The headline (Oseledets.Krieger.krieger_finite_generator) takes the
existence of a Fin k-valued P with CodesTwoSidedMod0 e Q P (the conclusion of the M1+M2
combinatorics) and concludes IsGeneratingTwoSidedMod0 e P via
CodesTwoSidedMod0.isGeneratingTwoSidedMod0.
For the symbolic-code construction (C1–C3) the convenient sufficient condition is provided by
codesTwoSidedMod0_of_aeRecovery: it suffices to exhibit, for each cell of Q, a
twoSidedSat e P-measurable set =ᵐ[μ]-equal to it — exactly what an a.e.-injective measurable
code recovering the Q-name produces.
Main definitions #
Oseledets.Krieger.twoSidedSat: the two-sided itinerary σ-algebra⨆ n : ℤ, comap (eⁿ) σ(P).Oseledets.Krieger.IsGeneratingTwoSidedMod0:Ptwo-sidedly generates mod 0.Oseledets.Krieger.CodesTwoSidedMod0:P's two-sided itinerary recovers each cell ofQmod 0.
Main results #
Oseledets.Krieger.comap_twoSidedSat_le: (literal) shift-invariance of the two-sided saturation.Oseledets.Krieger.comap_eventuallyMeasurableSpace_twoSidedSat_le: mod-0 shift-invariance.Oseledets.Krieger.twoSidedSat_mono_of_codes: mod-0 recovery monotonicity.Oseledets.Krieger.IsGeneratingTwoSidedMod0.of_codes: recovery lifts a mod-0 two-sided generator.Oseledets.Krieger.CodesTwoSidedMod0.isGeneratingTwoSidedMod0: a mod-0 code of a mod-0 two-sided generator is a mod-0 two-sided generator.Oseledets.Krieger.isGeneratingTwoSidedMod0_of_literal: faithfulness — the (non-standard) literal condition is stronger than the (standard) mod-0 one.Oseledets.Krieger.codesTwoSidedMod0_of_aeRecovery: the convenient sufficient condition the symbolic-code layer discharges.
References #
- Wolfgang Krieger, On entropy and generators of measure-preserving transformations, Trans. Amer. Math. Soc. 149 (1970), 453–464.
- Manfred Einsiedler, Elon Lindenstrauss and Thomas Ward, Entropy in Ergodic Theory and Homogeneous Dynamics (book in progress), Ch. 2 (generators, mod 0) and §3 (the Krieger generator theorem).
- Eli Glasner, Ergodic Theory via Joinings, Math. Surveys Monogr. 101, AMS (2003) — Krieger chapter (generators are mod 0).
- Tomasz Downarowicz, Entropy in Dynamical Systems, Cambridge (2011), §4.2 (the strong-generator condition holds mod μ).
The two-sided itinerary σ-algebra of a finite partition P under the automorphism e:
the supremum, over all integer iterates eⁿ (n : ℤ), of the pulled-back generating σ-algebra
σ(P). A set is twoSidedSat e P-measurable exactly when it is determined by the (two-sided)
P-itinerary n ↦ (the cell of P containing eⁿ x). By the design note above, the correct
two-sided generation condition asks for twoSidedSat e P to be the ambient σ-algebra mod 0
(IsGeneratingTwoSidedMod0), not literally. Marked @[reducible] (its value is a
MeasurableSpace, a class type) so it unfolds for instance resolution and definitional rewriting,
mirroring Oseledets.Entropy.generatedSigmaAlgebra.
Equations
- Oseledets.Krieger.twoSidedSat e P = ⨆ (n : ℤ), MeasurableSpace.comap (Oseledets.Krieger.ziter e n) (Oseledets.Entropy.generatedSigmaAlgebra μ P)
Instances For
Shift-invariance of the two-sided saturation. Pulling the two-sided itinerary σ-algebra
twoSidedSat e P back by any iterate eᵐ lands inside it again:
comap (eᵐ) (twoSidedSat e P) ≤ twoSidedSat e P.
A generator of comap (eᵐ) (twoSidedSat e P) is eᵐ⁻¹ of a generator of one of the ℤ-terms,
namely comap (eᵐ) (comap (eⁿ) σ(P)) = comap (eⁿ ∘ eᵐ) σ(P) = comap (e^{n+m}) σ(P) (using
ziter_add), which is the (n + m)-th term of the same ℤ-supremum. This is exactly where the
two-sided (ℤ) indexing is essential: the reindexing n ↦ n + m is a bijection of ℤ, so no
terms are lost — a forward (ℕ) supremum would lose terms under a backward shift.
The two-sided saturation twoSidedSat e P is always below the ambient σ-algebra mα: each cell
of P is measurable (σ(P) ≤ mα), and each iterate eⁿ is measurable, so every term
comap (eⁿ) σ(P) ≤ mα.
The μ-completion of a sub-σ-algebra, and its functoriality #
We use MeasureTheory.eventuallyMeasurableSpace m₀ (ae μ) — the σ-algebra of sets =ᵐ[μ]-equal to
an m₀-measurable set — as the μ-completion of the sub-σ-algebra m₀. The three lemmas below
(monotonicity, idempotence, and comap-commutation for a measure-preserving map) are all that the
mod-0 recovery needs; each keeps everything at the level of MeasurableSpace-≤.
Monotonicity of the μ-completion. If m₀ ≤ m₁ then their μ-completions are ordered the same
way: an m₀-measurable approximant of s is in particular an m₁-measurable approximant.
Idempotence of the μ-completion (the "closure" half). The completion of the completion of
m₀ is contained in the completion of m₀: if s =ᵐ t and t =ᵐ u with u m₀-measurable, then
s =ᵐ u.
Preimage commutes with the μ-completion for a quasi-measure-preserving map f (in
particular a measure-preserving one). If s =ᵐ[μ] t then f⁻¹s =ᵐ[μ] f⁻¹t
(QuasiMeasurePreserving.preimage_ae_eq), so an m₀-completion set pulled back by f is an
comap f m₀-completion set:
comap f (completion m₀) ≤ completion (comap f m₀).
Mod-0 two-sided generation and coding #
P two-sidedly generates (α, e, μ) mod 0 when the ambient σ-algebra mα is contained in
the μ-completion of the two-sided P-saturation:
mα ≤ eventuallyMeasurableSpace (twoSidedSat e P) (ae μ).
Equivalently (since twoSidedSat e P ≤ mα always, twoSidedSat_le), the μ-completions of
twoSidedSat e P and of mα agree: every measurable set is recovered, up to a μ-null set, by the
two-sided P-itinerary. This is the standard "generator mod 0" condition of ergodic theory (see
the file header) and the faithful hypothesis/conclusion of Krieger's theorem — the literal equality
twoSidedSat e P = mα (IsGeneratingTwoSided) is strictly stronger and is not what the classical
construction produces.
Equations
Instances For
The mod-0 coding predicate. A finite Fin k-valued (or ι-valued) partition P codes a
partition Q two-sidedly mod 0 under e when every cell of Q is recovered, up to a μ-null
set, by the two-sided P-itinerary: σ(Q) ≤ eventuallyMeasurableSpace (twoSidedSat e P) (ae μ).
This is the exact conclusion of the Krieger coding construction (Rokhlin tower + name count): the
column-coding partition P is built so that, off a null set, the two-sided P-itinerary of a point
determines its Q-itinerary, hence in particular which Q-cell it lies in. The headline consumes
the existence of such a P and turns it into a generator via
CodesTwoSidedMod0.isGeneratingTwoSidedMod0.
Equations
Instances For
Mod-0 shift-invariance of the two-sided saturation. For a measure-preserving e, pulling
the μ-completion of twoSidedSat e P back by any iterate eᵐ lands inside it again. Preimage
commutes with the completion (comap_eventuallyMeasurableSpace_le, since eᵐ is
quasi-measure-preserving), and comap (eᵐ) (twoSidedSat e P) ≤ twoSidedSat e P literally
(comap_twoSidedSat_le), so completion-monotonicity (eventuallyMeasurableSpace_mono) finishes.
Mod-0 recovery / refinement monotonicity. If every cell of Q is recovered mod 0 by the
two-sided P-saturation (σ(Q) ≤ completion (twoSidedSat e P)), then the entire two-sided
saturation of Q is contained in that completion: twoSidedSat e Q ≤ completion (twoSidedSat e P).
Each ℤ-term comap (eᵐ) σ(Q) of twoSidedSat e Q is bounded, by comap-monotonicity in the
hypothesis, by comap (eᵐ) (completion (twoSidedSat e P)), which is bounded by
completion (twoSidedSat e P) by mod-0 shift-invariance
(comap_eventuallyMeasurableSpace_twoSidedSat_le). Taking the supremum over m gives the claim.
Recovery lifts a mod-0 two-sided generator. If Q two-sidedly generates (α, e, μ) mod 0
and the two-sided P-itinerary recovers each cell of Q mod 0
(σ(Q) ≤ completion (twoSidedSat e P)), then P two-sidedly generates mod 0 as well.
mα ≤ completion (twoSidedSat e Q) (by Q's mod-0 generation) and
completion (twoSidedSat e Q) ≤ completion (completion (twoSidedSat e P)) ≤ completion (twoSidedSat e P) by mod-0 recovery monotonicity (twoSidedSat_mono_of_codes),
completion-monotonicity (eventuallyMeasurableSpace_mono), and completion-idempotence
(eventuallyMeasurableSpace_idem). Chaining gives mα ≤ completion (twoSidedSat e P). This is the
mod-0 two-sided analogue of Oseledets.Entropy.IsGenerating.mono_refine.
A mod-0 code of a mod-0 two-sided generator is itself a mod-0 two-sided generator — the headline
reduction. Immediate from IsGeneratingTwoSidedMod0.of_codes and the definition of
CodesTwoSidedMod0.
Reflexivity of mod-0 coding. Every partition codes itself two-sidedly mod 0: its own static
σ-algebra σ(Q) is the n = 0 term of twoSidedSat e Q, which embeds into its μ-completion
(le_eventuallyMeasurableSpace). (Sanity check: a mod-0 two-sided generator codes itself,
recovering IsGeneratingTwoSidedMod0 e Q from itself.)
Faithfulness, and the convenient sufficient condition for the coding layer #
Faithfulness: the literal condition is stronger than the mod-0 one. If P two-sidedly
generates in the (non-standard) literal sense twoSidedSat e P = mα (IsGeneratingTwoSided), then
it does so mod 0. Hence the mod-0 statement is a genuine weakening of the literal one, and the
headline phrased with IsGeneratingTwoSidedMod0 is faithful to Krieger's theorem (whose generators
are mod 0) while remaining provable by the classical a.e. construction.
mα = twoSidedSat e P (literal generation) embeds into its own μ-completion by
le_eventuallyMeasurableSpace; le_of_eq … .symm supplies the equality without rewriting under the
μ-indexed completion (which would fail the motive check). The hypothesis h is, definitionally,
the equality twoSidedSat e P = mα (IsGeneratingTwoSided is @[reducible]-unfolds to the same
⨆-σ-algebra as twoSidedSat).
The convenient sufficient condition for the symbolic-code layer (C1–C3). To establish a
mod-0 code CodesTwoSidedMod0 e Q P it suffices to exhibit, for each cell Q.cells j, a
twoSidedSat e P-measurable set t with Q.cells j =ᵐ[μ] t — i.e. to recover every Q-cell, up
to a μ-null set, from the two-sided P-itinerary. This is exactly the output of an a.e.-injective
measurable code π : α → (ℤ → Fin k) that recovers the Q-name a.e.: each Q-cell is, mod 0, a
cylinder event in the P-itinerary, hence twoSidedSat e P-measurable mod 0.
Formally, σ(Q) = generateFrom (range Q.cells), so generateFrom_le reduces the goal to the cells,
each handled by the hypothesis.