Documentation

Oseledets.Krieger.InfoFunction

The information function of the iterated join #

This file builds the information-function foundation for the Shannon–McMillan–Breiman upper bound (Algoet–Cover) that feeds Krieger's name-count argument (issue #15, milestone M2).

For a measure-preserving transformation T of a probability space (α, μ) and a finite measurable partition P, every point x has an n-step itinerary f : Fin n → ι recording, for each 0 ≤ k < n, which cell of P the iterate Tᵏ x lies in. The atom of x is the cell ⋂ₖ T⁻ᵏ (P_{f k}) of the iterated join ⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P that contains x, and the information function is iₙ(x) = -log μ(atom of x), the surprise of learning the n-name of x.

Because the cells of P may overlap on a μ-null set, a naive Classical.choose-itinerary is not pointwise measurable. We therefore build the itinerary as a least-index selector: among the (non-empty, since the cells cover) set of admissible codes we pick the smallest in a fixed enumeration. This selector is genuinely measurable, so the atom map and the information function are measurable on the nose; the least-index cell agrees μ-almost everywhere with the chosen cell (the discarded part lies in a pairwise a.e.-disjoint union), so the information function integrates to the join entropy H(⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P).

Main definitions #

Main results #

References #

def Oseledets.Krieger.admissibleCodes {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
Set (Fin nι)

The set of admissible n-codes of a point x: those f : Fin n → ι such that x lies in the iterated-join cell at f, i.e. Tᵏ x ∈ P_{f k} for every k. This set is non-empty for every x because the cells of P cover the whole space.

Equations
Instances For
    theorem Oseledets.Krieger.admissibleCodes_nonempty {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :

    Every point has an admissible code: choosing, at each coordinate k, the P-cell containing Tᵏ x (possible because the cells cover) yields a code whose iterated-join cell contains x.

    @[implicit_reducible]
    noncomputable def Oseledets.Krieger.instLinearOrderFinArrow {ι : Type u_3} [Fintype ι] {n : } :
    LinearOrder (Fin nι)

    The fixed enumeration of the (finite) code type Fin n → ι, used to break ties in the least-index itinerary selector. We linearly order the finite type by transporting the order of Fin (card) along the canonical equivalence. This is kept a local instance so it does not leak a LinearOrder (Fin n → ι) onto downstream files.

    Equations
    Instances For
      noncomputable def Oseledets.Krieger.itinerary {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
      Fin nι

      The n-step itinerary of a point x: the least admissible code, i.e. the smallest f : Fin n → ι (in the fixed enumeration) for which Tᵏ x ∈ P_{f k} for all k. Using the least admissible code rather than an arbitrary Classical.choose makes the selector measurable: its fibers are differences of the (measurable) iterated-join cells.

      Equations
      Instances For
        theorem Oseledets.Krieger.itinerary_mem {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
        itinerary hT P n x admissibleCodes hT P n x

        The itinerary is an admissible code: it lies in the admissible set of x.

        theorem Oseledets.Krieger.itinerary_spec {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) (k : Fin n) :
        T^[k] x P.cells (itinerary hT P n x k)

        Itinerary specification. For each k, the k-th iterate Tᵏ x lies in the P-cell indexed by the k-th coordinate of the itinerary of x.

        theorem Oseledets.Krieger.itinerary_le {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) {x : α} {f : Fin nι} (hf : x (Entropy.ksJoin hT P n).cells f) :
        itinerary hT P n x f

        The itinerary of x is the least admissible code: no strictly smaller code is admissible.

        theorem Oseledets.Krieger.itinerary_eq_iff {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) (g : Fin nι) :
        itinerary hT P n x = g x (Entropy.ksJoin hT P n).cells g g' < g, x(Entropy.ksJoin hT P n).cells g'

        The fiber of the itinerary over a code g is the cell at g with the strictly smaller cells removed. This explicit description is the engine of the measurability of itinerary.

        noncomputable def Oseledets.Krieger.atomOf {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
        Set α

        The atom of x (with respect to the n-fold iterated join ⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P): the cell ⋂ₖ T⁻ᵏ (P_{itinerary x k}) of the join that contains x.

        Equations
        Instances For
          theorem Oseledets.Krieger.mem_atomOf {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
          x atomOf hT P n x

          A point lies in its own atom.

          theorem Oseledets.Krieger.measurableSet_atomOf {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :

          The atom of x is a measurable set: it is a cell of the iterated-join partition.

          theorem Oseledets.Krieger.atomOf_eq {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
          atomOf hT P n x = (Entropy.ksJoin hT P n).cells (itinerary hT P n x)

          The atom of x equals the iterated-join cell at the itinerary of x.

          theorem Oseledets.Krieger.measurableSet_itinerary_eq {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (g : Fin nι) :
          MeasurableSet {x : α | itinerary hT P n x = g}

          The itinerary fiber {x | itinerary x = g} is measurable: it is the difference of the measurable cell at g and the (finite) union of the strictly smaller cells.

          noncomputable def Oseledets.Krieger.infoFun {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :

          The information function iₙ(x) = -log μ(atom of x) of the iterated join ⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P: the surprise of learning the n-name of x. Its integral is the join entropy H(⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P).

          Equations
          Instances For
            noncomputable def Oseledets.Krieger.infoWeight {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (g : Fin nι) :

            The information weight attached to a code g: -log μ(cell g). The information function is the composite of this weight with the itinerary.

            Equations
            Instances For
              theorem Oseledets.Krieger.infoFun_eq_infoWeight_itinerary {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
              infoFun hT P n x = infoWeight hT P n (itinerary hT P n x)

              The information function factors through the itinerary: iₙ(x) = infoWeight (itinerary x).

              theorem Oseledets.Krieger.infoFun_eq_sum_indicator {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
              infoFun hT P n x = g : Fin nι, {x : α | itinerary hT P n x = g}.indicator (fun (x : α) => infoWeight hT P n g) x

              The information function is a finite sum of indicators of the (pairwise disjoint, covering) itinerary fibers, weighted by the corresponding information weight. This is the simple-function form that drives both its measurability and the integral computation.

              theorem Oseledets.Krieger.measurable_infoFun {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) :

              The information function is measurable: in its simple-function form it is a finite sum of indicators of the (measurable) itinerary fibers with constant values, each of which is measurable. This avoids equipping the finite code type with a measurable structure.

              theorem Oseledets.Krieger.infoWeight_nonneg {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (g : Fin nι) :
              0 infoWeight hT P n g

              The information weight of any code is nonnegative: the cell measure is at most 1, so its logarithm is nonpositive and its negation is nonnegative.

              theorem Oseledets.Krieger.infoFun_nonneg {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (x : α) :
              0 infoFun hT P n x

              The information function is nonnegative: it is the information weight of the itinerary, and every cell of a probability space has measure at most 1.

              theorem Oseledets.Krieger.iUnion_itinerary_fiber {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) :
              ⋃ (g : Fin nι), {x : α | itinerary hT P n x = g} = Set.univ

              The itinerary fibers cover the whole space: every point has an itinerary.

              theorem Oseledets.Krieger.itinerary_fiber_subset_cell {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (g : Fin nι) :
              {x : α | itinerary hT P n x = g} (Entropy.ksJoin hT P n).cells g

              The itinerary fiber over g is contained in the cell at g.

              theorem Oseledets.Krieger.measure_itinerary_fiber {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) (g : Fin nι) :
              μ {x : α | itinerary hT P n x = g} = μ ((Entropy.ksJoin hT P n).cells g)

              The difference between the cell at g and the itinerary fiber over g lies in the union of the other cells, hence is μ-null (the cells are pairwise a.e.-disjoint). Consequently the fiber has the same measure as the cell.

              The information function is integrable: it is bounded (a finite combination of indicators of sets of finite measure) on a probability space.

              theorem Oseledets.Krieger.integral_infoFun_eq {α : Type u_1} {ι : Type u_2} [ : MeasurableSpace α] [Fintype ι] {μ : MeasureTheory.Measure α} [MeasureTheory.IsProbabilityMeasure μ] {T : αα} (hT : MeasureTheory.MeasurePreserving T μ μ) (P : Entropy.MeasurePartition μ ι) (n : ) :
              (x : α), infoFun hT P n x μ = Entropy.ksEntropySeq hT P n

              The information function integrates to the join entropy. Following Algoet–Cover (Downarowicz, Lemma 4.2.5), the average information ∫ iₙ dμ equals the Shannon entropy H(⋁ₖ₌₀ⁿ⁻¹ T⁻ᵏ P) of the n-fold iterated join. The proof writes iₙ as a sum of indicators of the itinerary fibers (infoFun_eq_sum_indicator), integrates termwise using that each fiber has the same measure as the corresponding cell (measure_itinerary_fiber), and recognizes the summand μ(cell g) · (-log μ(cell g)) as negMulLog (μ(cell g)).toReal.