InformationTheory

InformationTheory.Shannon.RateDistortion.AchievabilityStrongTypicality.SupportingBounds

source

Rate-distortion achievability (strong-typicality variant) — supporting bounds #

The per-source match-probability and encoder-failure bounds, the generic-encoder distortion decomposition, the strong lossy-code bundle, the witness-form and ambient-measure wrappers, codebookAvgFailureStrong, and the rdAmbient entropy / block-law bridges.

Step A — Per-source-typical match probability lower bound #

theorem

InformationTheory.Shannon.per_source_typical_match_prob_strong_ge

source
{Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (μ : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure μ] (Xs : Ωα) (Ys : Ωβ) (hXs : ∀ (i : ), Measurable (Xs i)) (hYs : ∀ (i : ), Measurable (Ys i)) (hindep_Z_pair : Pairwise fun (i j : ) => ProbabilityTheory.IndepFun (ChannelCoding.jointSequence Xs Ys i) (ChannelCoding.jointSequence Xs Ys j) μ) (hident_Z : ∀ (i : ), ProbabilityTheory.IdentDistrib (ChannelCoding.jointSequence Xs Ys i) (ChannelCoding.jointSequence Xs Ys 0) μ μ) (hposZ : ∀ (p : α × β), 0 < (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ).real {p}) (hposX : ∀ (a : α), 0 < (MeasureTheory.Measure.map (Xs 0) μ).real {a}) (hposY : ∀ (b : β), 0 < (MeasureTheory.Measure.map (Ys 0) μ).real {b}) (hmarg_X : MeasureTheory.Measure.map Prod.fst (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ) = MeasureTheory.Measure.map (Xs 0) μ) (hmarg_Y : MeasureTheory.Measure.map Prod.snd (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ) = MeasureTheory.Measure.map (Ys 0) μ) {ε ε_X δ : } ( : 0 < ε) (hε_X : 0 ε_X) (hε_X_lt_ε : ε_X < ε) ( : 0 < δ) (qZ_min : ) (hqZ_min_pos : 0 < qZ_min) (hqZ_min_le : ∀ (p : α × β), qZ_min (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ).real {p}) (hδ_dominates_kl : 8 * (Fintype.card α) * (Fintype.card β) * ε_X ^ 2 δ * qZ_min) :
∃ (N : ), ∀ (n : ), N nxstronglyTypicalSet μ Xs n ε_X, Real.exp (-n * (entropy μ (Xs 0) + entropy μ (Ys 0) - entropy μ (ChannelCoding.jointSequence Xs Ys 0) + ((Fintype.card α) * ε_X * logSumAbs μ Ys + ε_X * logSumAbs μ Xs + ε_X * logSumAbs μ (ChannelCoding.jointSequence Xs Ys) + δ))) (MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map (Ys 0) μ).real {y : Fin nβ | (x, y) jointStronglyTypicalSet μ Xs Ys n ε}

Step A: repackage conditionalStronglyTypicalSlice_mass_ge for the random-coding chain. For x X-strongly-typical (eventually in n), the probability under the Y-product measure that a random y lands in the joint strong slice at x is bounded below by exp(-n · (H(X) + H(Y) - H(Z) + slack)).

Used by

    Step B — Encoder failure probability bound (strong version) #

    theorem

    InformationTheory.Shannon.encoder_strong_failure_prob_le

    source
    {Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (μ : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure μ] (Xs : Ωα) (Ys : Ωβ) (hXs : ∀ (i : ), Measurable (Xs i)) (hYs : ∀ (i : ), Measurable (Ys i)) (hindep_Z_pair : Pairwise fun (i j : ) => ProbabilityTheory.IndepFun (ChannelCoding.jointSequence Xs Ys i) (ChannelCoding.jointSequence Xs Ys j) μ) (hident_Z : ∀ (i : ), ProbabilityTheory.IdentDistrib (ChannelCoding.jointSequence Xs Ys i) (ChannelCoding.jointSequence Xs Ys 0) μ μ) (hposZ : ∀ (p : α × β), 0 < (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ).real {p}) (hposX : ∀ (a : α), 0 < (MeasureTheory.Measure.map (Xs 0) μ).real {a}) (hposY : ∀ (b : β), 0 < (MeasureTheory.Measure.map (Ys 0) μ).real {b}) (hmarg_X : MeasureTheory.Measure.map Prod.fst (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ) = MeasureTheory.Measure.map (Xs 0) μ) (hmarg_Y : MeasureTheory.Measure.map Prod.snd (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ) = MeasureTheory.Measure.map (Ys 0) μ) {ε ε_X δ : } ( : 0 < ε) (hε_X : 0 ε_X) (hε_X_lt_ε : ε_X < ε) ( : 0 < δ) (qZ_min : ) (hqZ_min_pos : 0 < qZ_min) (hqZ_min_le : ∀ (p : α × β), qZ_min (MeasureTheory.Measure.map (ChannelCoding.jointSequence Xs Ys 0) μ).real {p}) (hδ_dominates_kl : 8 * (Fintype.card α) * (Fintype.card β) * ε_X ^ 2 δ * qZ_min) :
    ∃ (N : ), ∀ (n : ), N n∀ (M : ), xstronglyTypicalSet μ Xs n ε_X, (MeasureTheory.Measure.pi fun (x : Fin M) => MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map (Ys 0) μ).real {c : Fin MFin nβ | ∀ (m : Fin M), (x, c m)jointStronglyTypicalSet μ Xs Ys n ε} Real.exp (-M * Real.exp (-n * (entropy μ (Xs 0) + entropy μ (Ys 0) - entropy μ (ChannelCoding.jointSequence Xs Ys 0) + ((Fintype.card α) * ε_X * logSumAbs μ Ys + ε_X * logSumAbs μ Xs + ε_X * logSumAbs μ (ChannelCoding.jointSequence Xs Ys) + δ))))

    Step B: For x ∈ stronglyTypicalSet μ Xs n ε_X (eventually in n), the codebook-averaged probability that no codeword is jointly-strongly-typical with x is bounded by exp(-M · exp(-n(H(X)+H(Y)-H(Z)+slack))). Strong analogue of encoder_failure_prob_le_exp_neg_M_avg.

    Used by

      Generic-encoder distortion decomposition #

      theorem

      InformationTheory.Shannon.source_avg_distortion_le_simpler_generic

      source
      {Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [Nonempty β] [MeasurableSingletonClass β] (μ : MeasureTheory.Measure Ω) (Xs : Ωα) (Ys : Ωβ) (d : DistortionFn α β) {M n : } (ε : ) {δ : } ( : 0 δ) (c : ChannelCoding.Codebook M n β) (enc : (Fin nα)Fin M) (P_X : MeasureTheory.Measure (Fin nα)) [MeasureTheory.IsProbabilityMeasure P_X] :
      (x : Fin nα), blockDistortion d n x (c (enc x)) P_X expectedJointDistortion μ (Xs 0) (Ys 0) d + δ + distortionMax d * P_X.real {x : Fin nα | (x, c (enc x))distortionTypicalSet μ Xs Ys d n ε δ}

      Generic-encoder distortion decomposition, the analogue of source_avg_distortion_le_simpler with the joint-typical encoder replaced by an arbitrary encoder function.

      Used by

        Strong lossy-code-of-codebook bundle #

        noncomputable def

        InformationTheory.Shannon.lossyCodeOfCodebookStrong

        source
        {Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [DecidableEq α] [DecidableEq β] (μ : MeasureTheory.Measure Ω) (Xs : Ωα) (Ys : Ωβ) {M n : } (hM : 0 < M) (ε : ) (c : ChannelCoding.Codebook M n β) :
        LossyCode M n α β

        Bundle a codebook + strong-JTS lossy encoder into a LossyCode. Strong analogue of lossyCodeOfCodebook.

        Equations
        Instances For
          Used by
            theorem

            InformationTheory.Shannon.weighted_avg_bound

            source
            {ι : Type u_4} [Fintype ι] (W f g : ι) (a m B : ) (hW_nn : ∀ (i : ι), 0 W i) (hW_sum : i : ι, W i = 1) (hm_nn : 0 m) (h_per : ∀ (i : ι), f i a + m * g i) (h_g : i : ι, W i * g i B) :
            i : ι, W i * f i a + m * B

            Weighted-average bound: if 0 ≤ W with ∑ W = 1, each f i ≤ a + m * g i, 0 ≤ m, and ∑ W · g ≤ B, then ∑ W · f ≤ a + m · B.

            Used by

              Witness-form rate-distortion achievability (strong-encoder variant) #

              The strong-encoder analogue of rate_distortion_achievability_witness_form, with jointTypicalLossyEncoder replaced by jointStronglyTypicalLossyEncoder. The argument composes the per-codebook distortion decomposition (the generic source_avg_distortion_le_simpler_generic), a weighted sum, and pigeonhole.

              theorem

              InformationTheory.Shannon.rate_distortion_achievability_witness_form_strong

              source
              {Ω : Type u_1} [MeasurableSpace Ω] {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X_pmf : α) (d : DistortionFn α β) {D : } (qStar : α × β) (hqStar_mem : qStar RDConstraint P_X_pmf d D) {R : } (hI_lt_R : mutualInfoPmf qStar < R) {ε' : } (hε' : 0 < ε') (μ : MeasureTheory.Measure Ω) [MeasureTheory.IsProbabilityMeasure μ] (Xs : Ωα) (Ys : Ωβ) (hXs : ∀ (i : ), Measurable (Xs i)) (hYs : ∀ (i : ), Measurable (Ys i)) [MeasureTheory.IsProbabilityMeasure (MeasureTheory.Measure.map (Xs 0) μ)] [MeasureTheory.IsProbabilityMeasure (MeasureTheory.Measure.map (Ys 0) μ)] (h_dist_eq : expectedJointDistortion μ (Xs 0) (Ys 0) d = expectedDistortionPmf d qStar) (ε_join ε_dist δ_typ : ) (hδ_typ : 0 δ_typ) (failure_seq : ) (h_failure_nn : ∀ (n : ), 0 failure_seq n) (h_failure_tendsto_zero : Filter.Tendsto failure_seq Filter.atTop (nhds 0)) (h_codebook_avg_failure : ∀ {n : }, 0 < nc : ChannelCoding.Codebook Real.exp (n * R)⌉₊ n β, (ChannelCoding.codebookMeasure (MeasureTheory.Measure.map (Ys 0) μ) Real.exp (n * R)⌉₊ n).real {c} * (MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map (Xs 0) μ).real {x : Fin nα | (x, c (jointStronglyTypicalLossyEncoder μ Xs Ys ε_join c x))distortionTypicalSet μ Xs Ys d n ε_dist δ_typ} failure_seq n) (h_slack : expectedDistortionPmf d qStar + δ_typ D + ε' / 2) :
              ∃ (N : ), ∀ (n : ), N n∃ (M : ) (_ : Real.exp (n * R)⌉₊ M) (_ : M Real.exp (n * R) + 1) (c : LossyCode M n α β), c.expectedBlockDistortion (MeasureTheory.Measure.map (Xs 0) μ) d D + ε'
              Used by

                Achievability from a codebook-average failure bound #

                theorem

                InformationTheory.Shannon.rate_distortion_achievability_strong_of_codebookAvgFailure

                source
                {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X_pmf : α) (d : DistortionFn α β) {D : } (qStar : α × β) (hqStar_mem : qStar RDConstraint P_X_pmf d D) {R : } (hI_lt_R : mutualInfoPmf qStar < R) {ε' : } (hε' : 0 < ε') (ε_join ε_dist δ_typ : ) (hδ_typ : 0 δ_typ) (failure_seq : ) (h_failure_nn : ∀ (n : ), 0 failure_seq n) (h_failure_tendsto_zero : Filter.Tendsto failure_seq Filter.atTop (nhds 0)) (h_codebook_avg_failure : ∀ {n : }, 0 < nc : ChannelCoding.Codebook Real.exp (n * R)⌉₊ n β, (ChannelCoding.codebookMeasure (MeasureTheory.Measure.map (ChannelCoding.iidYs 0) (rdAmbient qStar)) Real.exp (n * R)⌉₊ n).real {c} * (MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map (ChannelCoding.iidXs 0) (rdAmbient qStar)).real {x : Fin nα | (x, c (jointStronglyTypicalLossyEncoder (rdAmbient qStar) ChannelCoding.iidXs ChannelCoding.iidYs ε_join c x))distortionTypicalSet (rdAmbient qStar) ChannelCoding.iidXs ChannelCoding.iidYs d n ε_dist δ_typ} failure_seq n) (h_slack : expectedDistortionPmf d qStar + δ_typ D + ε' / 2) :
                ∃ (N : ), ∀ (n : ), N n∃ (M : ) (_ : Real.exp (n * R)⌉₊ M) (_ : M Real.exp (n * R) + 1) (c : LossyCode M n α β), c.expectedBlockDistortion (MeasureTheory.Measure.map (ChannelCoding.iidXs 0) (rdAmbient qStar)) d D + ε'

                Rate-distortion achievability with jointStronglyTypicalLossyEncoder as the encoder, from a codebook-averaged distortion-atypicality failure sequence failure_seq that tends to zero.

                Used by

                  Codebook-averaged source-failure sequence (strong-encoder variant) #

                  noncomputable def

                  InformationTheory.Shannon.codebookAvgFailureStrong

                  source
                  {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Fintype β] [DecidableEq β] (qStar : α × β) (d : DistortionFn α β) (R : ) (n : ) (ε_join ε_dist δ_typ : ) :

                  The codebook-averaged source-failure probability for the strong lossy encoder, at the canonical codebook size M_n := ⌈exp(n·R)⌉.

                  The encoder uses the inner slack ε_join for jointStronglyTypicalSet; the failure event tests against distortionTypicalSet with outer slack ε_dist ≥ widening(ε_join).

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    Used by
                      theorem

                      InformationTheory.Shannon.codebookAvgFailureStrong_nonneg

                      source
                      {α : Type u_2} {β : Type u_3} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (qStar : α × β) (d : DistortionFn α β) (R : ) (n : ) (ε_join ε_dist δ_typ : ) :
                      0 codebookAvgFailureStrong qStar d R n ε_join ε_dist δ_typ
                      Used by

                        Entropy ↔ mutualInfoPmf bridge in the rdAmbient setting #

                        theorem

                        InformationTheory.Shannon.rdAmbient_entropy_diff_eq_mutualInfoPmf

                        source

                        For μ := rdAmbient qStar, the entropy difference H(X) + H(Y) − H(Z) equals mutualInfoPmf qStar.

                        Used by

                          Block-law identification for rdAmbient #

                          theorem

                          InformationTheory.Shannon.rdAmbient_block_law_iidXs

                          source

                          The X-block joint law under rdAmbient qStar equals the product of the single-letter X-marginal. Mirrors the private block_law_X_eq_pi_p in ChannelCodingAchievability, specialised to rdAmbient.

                          Used by