InformationTheory

InformationTheory.Shannon.BackwardMartingale

source

Backward martingale convergence theorem #

This file develops the backward (reverse) martingale convergence theorem: if f : ℕᵒᵈ → Ω → ℝ is a martingale with respect to an antitone filtration ℋ : Filtration ℕᵒᵈ m₀ (i.e. decreases as the ℕ-index grows), and f (toDual 0) is integrable, then f (toDual n) converges almost everywhere as n → ∞ to a ⨅ n, ℋ (toDual n)-measurable limit.

Structure #

  • Martingale (ι := ℕᵒᵈ) API works out of the box because Mathlib's Martingale is Preorder ι-generic (Probability/Martingale/Basic.lean:53). We expose two convenience renames (backwardMartingale_condExp_ae_eq and BackwardMartingale.integrable) tailored to the ℕᵒᵈ shape.
  • Backward upcrossing finiteness (BackwardMartingale.upcrossings_ae_lt_top), including the path-reversal combinatorial lemma upcrossingsBefore_le_revPath_succ (see Path-reversal section below).
  • L¹ contraction eLpNorm (f n) 1 μ ≤ eLpNorm (f (toDual 0)) 1 μ: backward martingale means f n = 𝔼[f (toDual 0) | ℋ n] (since n ≤ toDual 0 in ℕᵒᵈ), then eLpNorm_one_condExp_le_eLpNorm.
  • Main theorem BackwardMartingale.ae_tendsto, chaining off the upcrossing finiteness, the L¹ bound, and tendsto_of_uncrossing_lt_top, with the tail-σ-algebra measurability handled via Filter.limsup_nat_add tail invariance over ⨅ n, ℋ (toDual n).

Proxy machinery #

The upcrossing finiteness and main theorem proofs hinge on lifting a finite-window forward proxy to the global backward sequence. We introduce the proxy infrastructure here:

  • reverseProxy N f k ω := f (toDual (N - k)) ω — a forward sequence indexed by k : ℕ whose values along [0, N] are the reverse of f (toDual ·) on [0, N].
  • reverseFiltration N ℋ k := ℋ (toDual (N - k)) — the matching forward Filtration ℕ m₀. Since k ↦ N - k is antitone in and is monotone in ℕᵒᵈ, the composition is monotone in .
  • reverseProxy_isMartingale — Mathlib forward Martingale for reverseProxy / reverseFiltration, derived from the ℕᵒᵈ martingale equation.

Path-reversal upcrossing inequality (private helper) #

The path-reversal inequality upcrossingsBefore_le_revPath_succ: for any path g : ℕ → Ω → ℝ and any a < b ∈ ℝ, N : ℕ, ω : Ω, upcrossingsBefore a b g N ω ≤ upcrossingsBefore a b (revPath g N) N ω + 1, where revPath g N k ω := g (N - k) ω.

Mathematically: each upcrossing of g corresponds to a "downcrossing" of the reversed path; downcrossings exceed upcrossings by at most 1 (interleaving). The formal proof avoids defining a separate downcrossingsBefore; instead it goes via a witness-chain characterization (upperCrossingTime_le_of_witness), extracts the n Mathlib upcrossing witnesses for g, reverses indices to obtain n - 1 upcrossing witnesses for revPath g N, and translates back via le_csSup. The boundary case τ_0 ≥ 1 is handled by upperCrossingTime_one_pos.

Main definitions / results #

Martingale (ι := ℕᵒᵈ) convenience wrappers #

theorem

InformationTheory.Shannon.BackwardMartingale.integrable

source
{Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} (hf : MeasureTheory.Martingale f μ) (n : ᵒᵈ) :

For a backward martingale f indexed by ℕᵒᵈ, every level is integrable.

Used by
    theorem

    InformationTheory.Shannon.backwardMartingale_eq_condExp

    source
    {Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} (hf : MeasureTheory.Martingale f μ) (n : ᵒᵈ) :
    f n =ᵐ[μ] μ[f (OrderDual.toDual 0) | n]

    Backward martingale defining equation in ℕᵒᵈ form: f n =ᵐ[μ] 𝔼[f (toDual 0) | ℋ n] since in ℕᵒᵈ we have n ≤ toDual 0.

    Used by

      Automatic L¹ boundedness #

      theorem

      InformationTheory.Shannon.BackwardMartingale.eLpNorm_one_le

      source
      {Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} (hf : MeasureTheory.Martingale f μ) (n : ᵒᵈ) :

      L¹ contraction for backward martingales: ‖f n‖₁ ≤ ‖f (toDual 0)‖₁.

      Proof: f n = 𝔼[f (toDual 0) | ℋ n] a.e., then apply eLpNorm_one_condExp_le_eLpNorm.

      Used by

        Forward proxy for finite-window Doob arguments #

        Given a backward martingale f : ℕᵒᵈ → Ω → ℝ w.r.t. ℋ : Filtration ℕᵒᵈ m₀ and a horizon N : ℕ, the reverse proxy is the forward -indexed sequence

        reverseProxy N f k ω := f (toDual (N - k)) ω
        

        with matching filtration reverseFiltration N ℋ k := ℋ (toDual (N - k)). Past k = N both stabilise (since N - k = 0 in ), so the proxy is a genuine Filtration ℕ m₀ and a genuine Martingale (ι := ℕ). This lets us plug the proxy directly into Submartingale.mul_integral_upcrossingsBefore_le_integral_pos_part and other forward-time Doob estimates.

        def

        InformationTheory.Shannon.reverseProxy

        source
        {Ω : Type u_1} (N : ) (f : ᵒᵈΩ) :
        Ω

        The forward -indexed proxy sequence reverseProxy N f k ω := f (toDual (N - k)) ω.

        Equations
        Instances For
          Used by
            def

            InformationTheory.Shannon.reverseFiltration

            source

            The forward -indexed proxy filtration reverseFiltration N ℋ k := ℋ (toDual (N - k)).

            Monotone in k because k ↦ N - k is antitone on and is monotone in ℕᵒᵈ; the composition k ↦ ℋ (toDual (N - k)) is therefore monotone.

            Equations
            Instances For
              Used by
                theorem

                InformationTheory.Shannon.reverseProxy_apply

                source
                @[simp]
                {Ω : Type u_1} (N : ) (f : ᵒᵈΩ) (k : ) (ω : Ω) :
                reverseProxy N f k ω = f (OrderDual.toDual (N - k)) ω
                Used by
                  theorem

                  InformationTheory.Shannon.reverseFiltration_apply

                  source
                  @[simp]
                  {Ω : Type u_1} {m₀ : MeasurableSpace Ω} (N : ) ( : MeasureTheory.Filtration ᵒᵈ m₀) (k : ) :
                  (reverseFiltration N ) k = (OrderDual.toDual (N - k))
                  Used by
                    theorem

                    InformationTheory.Shannon.reverseProxy_isMartingale

                    source
                    {Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {N : } {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} (hf : MeasureTheory.Martingale f μ) :

                    The reverse proxy is a forward -indexed Martingale whenever the underlying ℕᵒᵈ-indexed sequence is.

                    Used by

                      Path-reversal upcrossing inequality (private combinatorial helper) #

                      For any path g : ℕ → Ω' → ℝ and any a < b ∈ ℝ and N : ℕ, the number of upcrossings of g over [0, N] from a to b is at most one more than the number of upcrossings of the reversed path revPath g N k = g (N - k).

                      Mathematically: each upcrossing (σ, τ) of g (with g σ ≤ a, g τ ≥ b, σ < τ ≤ N) reverses to a pair (N - τ, N - σ) in revPath g N satisfying (revPath g N)(N - τ) ≥ b, (revPath g N)(N - σ) ≤ a — a downcrossing of the reversed path. Since downcrossings and upcrossings of any path interleave (between any two downcrossings there must be an upcrossing and vice versa), the count of downcrossings exceeds upcrossings by at most 1. Hence the number of upcrossings of g is at most one more than the number of upcrossings of revPath g N.

                      Mathlib does not provide this combinatorial identity. Our proof factors through two private helpers:

                      • upperCrossingTime_le_of_witness — from k strictly-alternating upcrossing witnesses (s_i, t_i) strictly inside [0, N), conclude upperCrossingTime a b g N k ω ≤ t_{k-1}. Induction on k using the recursive form of upperCrossingTime and hittingBtwn_le_of_mem.
                      • upperCrossingTime_one_pos — when 0 < upcrossings, the first upper crossing time upperCrossingTime _ _ g N 1 ω ≥ 1. (If it were 0, then g 0 ω ≥ b and also g 0 ω ≤ a, contradicting a < b.)

                      Combining them in upcrossingsBefore_revPath_ge: extract the n = k + 1 Mathlib upcrossing witnesses for g, reverse them via t' i := N - upperCrossingTime _ _ g N (k - i) ω, s' i := N - lowerCrossingTime _ _ g N (k - i) ω, apply upperCrossingTime_le_of_witness to revPath g N, then conclude via le_csSup and upperCrossingTime_lt_bddAbove. Total proof ~250 lines including helpers.

                      Backward upcrossing finiteness (via the path-reversal lemma) #

                      theorem

                      InformationTheory.Shannon.BackwardMartingale.upcrossings_ae_lt_top

                      source
                      {Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} [MeasureTheory.IsProbabilityMeasure μ] (hf : MeasureTheory.Martingale f μ) (hf_int : MeasureTheory.Integrable (f (OrderDual.toDual 0)) μ) (a b : ) (hab : a < b) :
                      ∀ᵐ (ω : Ω) μ, MeasureTheory.upcrossings a b (fun (n : ) => f (OrderDual.toDual n)) ω <

                      Backward upcrossings are almost surely finite. For a backward martingale indexed by ℕᵒᵈ with integrable head, the number of upcrossings of any interval (a, b) along the sequence n ↦ f (toDual n) is almost surely finite.

                      This is the reverse-time analogue of Submartingale.upcrossings_ae_lt_top (Probability/Martingale/Convergence.lean:184).

                      The proof combines (i) Doob's upcrossing estimate applied to the forward proxy reverseProxy N f (giving a uniform-in-N integral bound on the proxy's upcrossings), and (ii) the revPath upcrossing inequality (upcrossingsBefore_le_revPath_succ) transporting that bound to the backward-viewed sequence with O(1) slack. Then monotone convergence on N yields finiteness of the supremum, hence finiteness of MeasureTheory.upcrossings.

                      Used by

                        Backward martingale convergence theorem #

                        theorem

                        InformationTheory.Shannon.BackwardMartingale.ae_tendsto

                        source
                        {Ω : Type u_1} {m₀ : MeasurableSpace Ω} {μ : MeasureTheory.Measure Ω} {f : ᵒᵈΩ} { : MeasureTheory.Filtration ᵒᵈ m₀} [MeasureTheory.IsProbabilityMeasure μ] (hf : MeasureTheory.Martingale f μ) (hf_int : MeasureTheory.Integrable (f (OrderDual.toDual 0)) μ) :
                        ∃ (g : Ω), MeasureTheory.StronglyMeasurable g ∀ᵐ (ω : Ω) μ, Filter.Tendsto (fun (n : ) => f (OrderDual.toDual n) ω) Filter.atTop (nhds (g ω))

                        The backward martingale convergence theorem. If f : ℕᵒᵈ → Ω → ℝ is a martingale with respect to an antitone filtration ℋ : Filtration ℕᵒᵈ m₀ and f (toDual 0) is integrable, then n ↦ f (toDual n) ω converges almost everywhere as n → ∞ to a ⨅ n, ℋ (toDual n)-measurable limit g.

                        This is the reverse-time analogue of MeasureTheory.Submartingale.ae_tendsto_limitProcess (Probability/Martingale/Convergence.lean:209).

                        Proof: combines the L¹ bound + a.e. upcrossing finiteness + tendsto_of_uncrossing_lt_top to obtain pointwise convergence a.e., then constructs the ⨅ n, ℋ (toDual n)-measurable limit via the standard aemeasurable_of_tendsto_metrizable_ae' pattern with a tail-σ-algebra argument. The tail measurability step (which Submartingale.ae_tendsto_limitProcess handles via measurableSet_exists_tendsto over ⨆ n, ℱ n) is here a direct mirror over ⨅ n, ℋ (toDual n).

                        Used by