InformationTheory

InformationTheory.Shannon.StrongStein

source

Strong Stein's lemma — convergence to KL divergence #

The strong converse for binary hypothesis testing (Cover–Thomas): for any ε ∈ (0, 1), -(1/n) * log (steinOptimalBeta P Q n ε) converges to (klDiv P Q).toReal as n → ∞.

Main statements #

Implementation notes #

The proof uses an LLR-typicality route (no Pinsker/Sanov). The key step is a lower bound Q^n(s) ≥ exp(-n(K+δ)) · (P^n(T_n^δ) - ε) for any α-level test s, derived by restricting to the Stein-typical set. Together with the existing achievability upper bound, this sandwiches the limit. The existing Stein/ API is reused without modification.

References #

  • T. M. Cover and J. A. Thomas, Elements of Information Theory (2nd ed.), Wiley, 2006.

Q^n lower bound on the Stein-typical set #

Strong-converse lower bound for any α-level test #

theorem

InformationTheory.Shannon.StrongStein.steinTypicalSubset_Q_prob_ge

source
{α : Type u_2} [Fintype α] [MeasurableSpace α] [MeasurableSingletonClass α] (P Q : MeasureTheory.Measure α) [MeasureTheory.IsProbabilityMeasure P] [MeasureTheory.IsProbabilityMeasure Q] (hPpos : ∀ (x : α), 0 < P.real {x}) (hQpos : ∀ (x : α), 0 < Q.real {x}) {n : } {δ : } (A : Set (Fin nα)) (hAsub : A steinTypicalSet P Q n δ) :
Real.exp (-(n * ((klDiv P Q).toReal + δ))) * ((MeasureTheory.Measure.pi fun (x : Fin n) => P) A).toReal ((MeasureTheory.Measure.pi fun (x : Fin n) => Q) A).toReal
Used by
    theorem

    InformationTheory.Shannon.StrongStein.steinAlphaTest_Q_prob_ge

    source
    {α : Type u_2} [Fintype α] [MeasurableSpace α] [MeasurableSingletonClass α] (P Q : MeasureTheory.Measure α) [MeasureTheory.IsProbabilityMeasure P] [MeasureTheory.IsProbabilityMeasure Q] (hPpos : ∀ (x : α), 0 < P.real {x}) (hQpos : ∀ (x : α), 0 < Q.real {x}) {ε δ : } {n : } (s : Set (Fin nα)) (hs : MeasurableSet s) ( : ((MeasureTheory.Measure.pi fun (x : Fin n) => P) s).toReal ε) :
    Real.exp (-(n * ((klDiv P Q).toReal + δ))) * (((MeasureTheory.Measure.pi fun (x : Fin n) => P) (steinTypicalSet P Q n δ)).toReal - ε) ((MeasureTheory.Measure.pi fun (x : Fin n) => Q) s).toReal

    For any measurable s with P^n(sᶜ).toReal ≤ ε, Q^n(s) ≥ exp(-n(K+δ)) · (P^n(T_n^δ) - ε).

    Used by

      Main theorem: Tendsto → K #

      theorem

      InformationTheory.Shannon.StrongStein.exp_le_steinOptimalBeta_strong

      source
      {α : Type u_2} [Fintype α] [MeasurableSpace α] [MeasurableSingletonClass α] (P Q : MeasureTheory.Measure α) [MeasureTheory.IsProbabilityMeasure P] [MeasureTheory.IsProbabilityMeasure Q] (hPpos : ∀ (x : α), 0 < P.real {x}) (hQpos : ∀ (x : α), 0 < Q.real {x}) {ε δ : } ( : 0 ε) (n : ) :
      Real.exp (-(n * ((klDiv P Q).toReal + δ))) * (((MeasureTheory.Measure.pi fun (x : Fin n) => P) (steinTypicalSet P Q n δ)).toReal - ε) steinOptimalBeta P Q n ε
      Used by
        theorem

        InformationTheory.Shannon.StrongStein.steinOptimalBeta_log_le_of_strong_converse

        source
        {Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} [Fintype α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] (μ : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure μ] (P Q : MeasureTheory.Measure α) [MeasureTheory.IsProbabilityMeasure P] [MeasureTheory.IsProbabilityMeasure Q] (Xs : Ωα) (hXs : ∀ (i : ), Measurable (Xs i)) (hindep : Pairwise fun (i j : ) => ProbabilityTheory.IndepFun (Xs i) (Xs j) μ) (hident : ∀ (i : ), ProbabilityTheory.IdentDistrib (Xs i) (Xs 0) μ μ) (hMap : MeasureTheory.Measure.map (Xs 0) μ = P) (hMapJoint : ∀ (n : ), MeasureTheory.Measure.map (jointRV Xs n) μ = MeasureTheory.Measure.pi fun (x : Fin n) => P) (hPpos : ∀ (x : α), 0 < P.real {x}) (hPQ : P.AbsolutelyContinuous Q) (hQpos : ∀ (x : α), 0 < Q.real {x}) {ε δ : } ( : 0 < ε) (hε1 : ε < 1) ( : 0 < δ) :
        ∀ᶠ (n : ) in Filter.atTop, -(1 / n) * Real.log (steinOptimalBeta P Q n ε) (klDiv P Q).toReal + δ - 1 / n * Real.log (((MeasureTheory.Measure.pi fun (x : Fin n) => P) (steinTypicalSet P Q n δ)).toReal - ε)

        Strong Stein's lemma: for any δ > 0, eventually -(1/n) log β*(n, ε) ≤ (klDiv P Q).toReal + δ + o(1).

        Used by