InformationTheory

InformationTheory.Shannon.RateDistortion.AchievabilityGeneralSource

source

Rate-distortion achievability — general (arbitrary) source #

The unconditional operational achievability theorem rate_distortion_achievability_operational carries a full-support regularity precondition hP_supp : ∀ a, 0 < P_X a. This file removes it: the general version rate_distortion_achievability_operational_general holds for any source pmf P_X ∈ stdSimplex ℝ α.

Approach #

Restrict to the support subtype α' := {a // 0 < P_X a}, apply the full-support theorem there, then lift the resulting lossy code back to the whole alphabet.

  • A feasible joint pmf q ∈ RDConstraint P_X d D vanishes off the support (marginalFst q = P_X with q ≥ 0 forces q (a, b) = 0 when P_X a = 0). Hence the restriction/padding maps between joint pmfs on α × β and α' × β are mutually inverse on feasible sets and preserve mutualInfoPmf, expectedDistortionPmf, and marginalFst (negMulLog 0 = 0).
  • Therefore rateDistortionFunctionPmf agrees on α and α', the hypotheses transport, and the full-support theorem produces a code c' on α'.
  • A retraction r : α → α' (identity on the support, a fixed default off it) lifts c' to a code on α. The source measure never charges the off-support symbols, so the expected block distortion is unchanged.

Support subtype, restriction, and padding #

noncomputable abbrev

InformationTheory.Shannon.rdSupportPmf

source
@[reducible, inline]
{α : Type u_1} (P_X : α) :
{ a : α // 0 < P_X a }

Source pmf restricted to the support subtype.

Equations
Instances For
    Used by
      noncomputable abbrev

      InformationTheory.Shannon.rdSupportDist

      source
      @[reducible, inline]
      {α : Type u_1} {β : Type u_2} (P_X : α) (d : DistortionFn α β) :
      DistortionFn { a : α // 0 < P_X a } β

      Distortion function restricted to the support subtype.

      Equations
      Instances For
        Used by
          noncomputable def

          InformationTheory.Shannon.rdRestrict

          source
          {α : Type u_1} {β : Type u_2} (P_X : α) (q : α × β) :
          { a : α // 0 < P_X a } × β

          Restrict a joint pmf on α × β to the support subtype α' × β.

          Equations
          Instances For
            Used by
              noncomputable def

              InformationTheory.Shannon.rdPad

              source
              {α : Type u_1} {β : Type u_2} (P_X : α) (q' : { a : α // 0 < P_X a } × β) :
              α × β

              Pad a joint pmf on α' × β back to α × β by zero off the support.

              Equations
              Instances For
                Used by
                  noncomputable def

                  InformationTheory.Shannon.rdRetract

                  source
                  {α : Type u_1} (P_X : α) (a₀ : { a : α // 0 < P_X a }) :
                  α{ a : α // 0 < P_X a }

                  Retraction of the whole alphabet onto the support subtype: the identity on the support and a fixed default off it.

                  Equations
                  Instances For
                    Used by

                      G0: support-zero #

                      theorem

                      InformationTheory.Shannon.rd_support_row_zero

                      source
                      {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] {q : α × β} (hq : q stdSimplex (α × β)) {P_X : α} (hmarg : marginalFst q = P_X) {a : α} (ha : ¬0 < P_X a) (b : β) :
                      q (a, b) = 0

                      A feasible joint pmf vanishes on rows outside the source support.

                      Used by
                        theorem

                        InformationTheory.Shannon.rd_support_nonempty

                        source
                        {α : Type u_1} [MeasurableSpace α] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] (P_X : α) (hP_pmf : P_X stdSimplex α) :
                        ∃ (a : α), 0 < P_X a

                        There is a symbol in the support of any source pmf.

                        Used by

                          G1: finite-sum transfer between α and the support subtype #

                          theorem

                          InformationTheory.Shannon.rd_sum_support_transfer

                          source
                          {α : Type u_1} [MeasurableSpace α] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] (P_X F : α) (hF : ∀ (a : α), ¬0 < P_X aF a = 0) :
                          a : α, F a = a : { a : α // 0 < P_X a }, F a

                          Sum transfer: a function vanishing off the support has equal sums over α and over the support subtype.

                          Used by
                            theorem

                            InformationTheory.Shannon.rd_sum_prod_support_transfer

                            source
                            {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (G : α × β) (hG : ∀ (a : α) (b : β), ¬0 < P_X aG (a, b) = 0) :
                            p : α × β, G p = p : { a : α // 0 < P_X a } × β, G (p.1, p.2)

                            Product sum transfer: a function vanishing on off-support rows has equal sums over α × β and over α' × β.

                            Used by
                              theorem

                              InformationTheory.Shannon.rdRestrict_pad

                              source
                              {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (q' : { a : α // 0 < P_X a } × β) :
                              rdRestrict P_X (rdPad P_X q') = q'

                              Restriction then padding is the identity on feasible pmfs.

                              Used by
                                theorem

                                InformationTheory.Shannon.marginalFst_rdRestrict

                                source
                                {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (q : α × β) (a' : { a : α // 0 < P_X a }) :
                                marginalFst (rdRestrict P_X q) a' = marginalFst q a'

                                The first marginal of a restriction is the restriction of the first marginal.

                                Used by
                                  theorem

                                  InformationTheory.Shannon.marginalSnd_rdRestrict

                                  source
                                  {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) {q : α × β} (hq_supp : ∀ (a : α) (b : β), ¬0 < P_X aq (a, b) = 0) (b : β) :

                                  The second marginal is preserved under restriction of a support-zero pmf.

                                  Used by
                                    theorem

                                    InformationTheory.Shannon.mutualInfoPmf_eq_restrict

                                    source
                                    {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) {q : α × β} (hq_supp : ∀ (a : α) (b : β), ¬0 < P_X aq (a, b) = 0) :

                                    Mutual information is preserved by restriction of a support-zero pmf.

                                    Used by
                                      theorem

                                      InformationTheory.Shannon.expectedDistortionPmf_eq_restrict

                                      source
                                      {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (d : DistortionFn α β) {q : α × β} (hq_supp : ∀ (a : α) (b : β), ¬0 < P_X aq (a, b) = 0) :

                                      Expected distortion is preserved by restriction of a support-zero pmf.

                                      Used by

                                        Membership transport #

                                        theorem

                                        InformationTheory.Shannon.rdPad_support_zero

                                        source
                                        {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (q' : { a : α // 0 < P_X a } × β) (a : α) (b : β) (ha : ¬0 < P_X a) :
                                        rdPad P_X q' (a, b) = 0

                                        Padding is support-zero by construction.

                                        Used by
                                          theorem

                                          InformationTheory.Shannon.rdRestrict_mem_stdSimplex

                                          source
                                          {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) {q : α × β} (hq : q stdSimplex (α × β)) (hq_supp : ∀ (a : α) (b : β), ¬0 < P_X aq (a, b) = 0) :
                                          rdRestrict P_X q stdSimplex ({ a : α // 0 < P_X a } × β)

                                          Restriction lands in the simplex.

                                          Used by
                                            theorem

                                            InformationTheory.Shannon.rdPad_mem_stdSimplex

                                            source
                                            {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) {q' : { a : α // 0 < P_X a } × β} (hq' : q' stdSimplex ({ a : α // 0 < P_X a } × β)) :
                                            rdPad P_X q' stdSimplex (α × β)

                                            Padding lands in the simplex.

                                            Used by
                                              theorem

                                              InformationTheory.Shannon.marginalFst_rdRestrict_eq

                                              source
                                              {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) {q : α × β} (hmarg : marginalFst q = P_X) :

                                              The first marginal of a restriction equals the restricted source pmf.

                                              Used by
                                                theorem

                                                InformationTheory.Shannon.marginalFst_rdPad_eq

                                                source
                                                {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (hP_pmf : P_X stdSimplex α) {q' : { a : α // 0 < P_X a } × β} (hmarg' : marginalFst q' = rdSupportPmf P_X) :
                                                marginalFst (rdPad P_X q') = P_X

                                                The first marginal of a padding equals the original source pmf.

                                                Used by
                                                  theorem

                                                  InformationTheory.Shannon.rdSupportPmf_mem_stdSimplex

                                                  source
                                                  {α : Type u_1} [MeasurableSpace α] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] (P_X : α) (hP_pmf : P_X stdSimplex α) :
                                                  rdSupportPmf P_X stdSimplex { a : α // 0 < P_X a }

                                                  The restricted source pmf lies in the simplex of the support subtype.

                                                  Used by

                                                    G2: rate-distortion function invariance #

                                                    theorem

                                                    InformationTheory.Shannon.rdRestrict_mem_constraint

                                                    source
                                                    {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (d : DistortionFn α β) {D : } {q : α × β} (hq : q RDConstraint P_X d D) :

                                                    Membership transports along restriction.

                                                    Used by
                                                      theorem

                                                      InformationTheory.Shannon.rdPad_mem_constraint

                                                      source
                                                      {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (hP_pmf : P_X stdSimplex α) (d : DistortionFn α β) {D : } {q' : { a : α // 0 < P_X a } × β} (hq' : q' RDConstraint (rdSupportPmf P_X) (rdSupportDist P_X d) D) :
                                                      rdPad P_X q' RDConstraint P_X d D

                                                      Membership transports along padding.

                                                      Used by
                                                        theorem

                                                        InformationTheory.Shannon.rd_function_eq

                                                        source
                                                        {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (hP_pmf : P_X stdSimplex α) (d : DistortionFn α β) (D : ) :

                                                        The pmf-direct rate-distortion function is unchanged by support restriction.

                                                        Used by

                                                          G4: source measure charges only the support #

                                                          theorem

                                                          InformationTheory.Shannon.pmfToMeasure_support_compl_null

                                                          source
                                                          {α : Type u_1} [MeasurableSpace α] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] (P_X : α) (hP_pmf : P_X stdSimplex α) :
                                                          (ChannelCoding.pmfToMeasure P_X) {a : α | ¬0 < P_X a} = 0

                                                          The source measure gives zero mass to the off-support symbols.

                                                          Used by
                                                            theorem

                                                            InformationTheory.Shannon.pmfToMeasure_map_retract

                                                            source
                                                            {α : Type u_1} [MeasurableSpace α] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] (P_X : α) (hP_pmf : P_X stdSimplex α) (a₀ : { a : α // 0 < P_X a }) :

                                                            Pushing the source measure through the support retraction yields the restricted source pmf.

                                                            Used by
                                                              theorem

                                                              InformationTheory.Shannon.expectedBlockDistortion_lift_le

                                                              source
                                                              {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (hP_pmf : P_X stdSimplex α) (d : DistortionFn α β) {M n : } (c' : LossyCode M n { a : α // 0 < P_X a } β) (a₀ : { a : α // 0 < P_X a }) {v : } (hc' : c'.expectedBlockDistortion (ChannelCoding.pmfToMeasure (rdSupportPmf P_X)) (rdSupportDist P_X d) v) :
                                                              { encoder := fun (x : Fin nα) => c'.encoder fun (i : Fin n) => rdRetract P_X a₀ (x i), decoder := c'.decoder }.expectedBlockDistortion (ChannelCoding.pmfToMeasure P_X) d v

                                                              Lift the expected block distortion bound from the support subtype to the whole alphabet.

                                                              Used by

                                                                Wrapper: general-source operational achievability #

                                                                theorem

                                                                InformationTheory.Shannon.rate_distortion_achievability_operational_general

                                                                source
                                                                {α : Type u_1} {β : Type u_2} [MeasurableSpace α] [MeasurableSpace β] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSingletonClass α] [Fintype β] [DecidableEq β] [Nonempty β] [MeasurableSingletonClass β] (P_X : α) (hP_pmf : P_X stdSimplex α) (d : DistortionFn α β) {D : } (h_ne : (RDConstraint P_X d D).Nonempty) {R : } (hR : rateDistortionFunctionPmf P_X d D < R) {ε : } ( : 0 < ε) :
                                                                ∃ (N : ), ∀ (n : ), N n∃ (M : ) (_ : Real.exp (n * R)⌉₊ M) (_ : M Real.exp (n * R) + 1) (c : LossyCode M n α β), c.expectedBlockDistortion (ChannelCoding.pmfToMeasure P_X) d D + ε

                                                                Rate-distortion theorem (achievability, general source).

                                                                Removes the full-support precondition from rate_distortion_achievability_operational: for any source P_X ∈ stdSimplex with a feasible constraint set and any rate R > R(D), for every ε > 0 there is a block length N such that every n ≥ N admits a rate-R lossy code whose expected block distortion is at most D + ε.

                                                                @audit:ok

                                                                Used by