InformationTheory

InformationTheory.Shannon.BroadcastChannel.Marton.ErrorAnalysis

source

Marton's inner bound — error analysis #

Marton's random-coding ensemble has three tiers: one auxiliary subcodebook per receiver, indexed by a message together with a covering index, and an input codebook drawn letterwise from K applied to the auxiliary pair the encoder selects. The selection makes the transmitted auxiliary words depend on the subcodebooks, which is what distinguishes the analysis from the superposition ensemble of the degraded broadcast channel.

Each receiver decodes its message alone, quantifying the covering index existentially, so a second typical index inside the transmitted row is not an error. Its error event splits into the transmitted pair failing to be jointly typical with the received word, and some codeword of another message row being jointly typical with it. The second family is bounded by the fiber bound of the covering file, which is uniform over received words; that uniformity is what lets the alias estimate proceed without identifying the law of the received word, which the selection distorts. The two receivers are treated symmetrically, the second reading (V₂, Y₂) where the first reads (V₁, Y₁); the ensemble is summed in one fixed order, so at receiver 2 the alias row sits in the inner subcodebook tier and the outer one is discharged by its total mass.

Two typicality radii run through the file and are independent parameters: the encoder selects a strongly typical auxiliary pair at radius ε_cov, while both decoders test weak joint typicality at radius ε. The asymmetry is forced: the alias estimate only needs the weak fiber bound, whereas the transmitted pair has to have its empirical type pinned for the conditional AEP of Marton.MarkovCore to apply to it.

Main definitions #

Main statements #

Sums against a slice of a product law #

Receiver-1 fiber bound and alias slice #

theorem

InformationTheory.Shannon.BroadcastChannel.Marton.marton_jointlyTypicalFiber₁_le

source
{V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) (n : ) {ε : } (y₁ : Fin nβ₁) :

Uniform fiber bound for the (V₁, Y₁) jointly typical set: whatever the received word, the V₁-block mass of the codewords jointly typical with it is at most exp(−n (I(V₁; Y₁) − 3ε)).

@audit:ok

Used by
    theorem

    InformationTheory.Shannon.BroadcastChannel.Marton.marton_alias₁_slice_avg_le

    source
    {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) {n : } {ε : } (ν : MeasureTheory.Measure (Fin nβ₁ × β₂)) [MeasureTheory.IsProbabilityMeasure ν] :
    v : Fin nV₁, (MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map Prod.fst pV).real {v} * ν.real {y : Fin nβ₁ × β₂ | (v, fun (i : Fin n) => (y i).1) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε} Real.exp (-n * (martonInfo₁ pV K W - 3 * ε))

    Averaged alias bound at receiver 1. For an arbitrary output law ν, drawing the alias codeword independently of ν from the V₁-block law makes the probability that it is jointly typical with the received word at most exp(−n (I(V₁; Y₁) − 3ε)).

    @audit:ok

    Used by

      Receiver-2 fiber bound and alias slice #

      theorem

      InformationTheory.Shannon.BroadcastChannel.Marton.marton_jointlyTypicalFiber₂_le

      source
      {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) (n : ) {ε : } (y₂ : Fin nβ₂) :

      Uniform fiber bound for the (V₂, Y₂) jointly typical set: whatever the received word, the V₂-block mass of the codewords jointly typical with it is at most exp(−n (I(V₂; Y₂) − 3ε)).

      @audit:ok

      Used by
        theorem

        InformationTheory.Shannon.BroadcastChannel.Marton.marton_alias₂_slice_avg_le

        source
        {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) {n : } {ε : } (ν : MeasureTheory.Measure (Fin nβ₁ × β₂)) [MeasureTheory.IsProbabilityMeasure ν] :
        v : Fin nV₂, (MeasureTheory.Measure.pi fun (x : Fin n) => MeasureTheory.Measure.map Prod.snd pV).real {v} * ν.real {y : Fin nβ₁ × β₂ | (v, fun (i : Fin n) => (y i).2) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε} Real.exp (-n * (martonInfo₂ pV K W - 3 * ε))

        Averaged alias bound at receiver 2. For an arbitrary output law ν, drawing the alias codeword independently of ν from the V₂-block law makes the probability that it is jointly typical with the received word at most exp(−n (I(V₂; Y₂) − 3ε)).

        @audit:ok

        Used by

          The Marton codebook ensemble and the assembled broadcast code #

          abbrev

          InformationTheory.Shannon.BroadcastChannel.Marton.MartonSubcodebook

          source
          @[reducible, inline]
          (M M' n : ) (V : Type u_7) [MeasurableSpace V] :
          Type u_7

          A Marton subcodebook: for each message and each covering index one length-n auxiliary codeword. The covering index is the over-provisioning that lets the encoder pick a jointly typical pair of auxiliary codewords; unlike the message it is not decoded.

          Equations
          Instances For
            Used by
              noncomputable def

              InformationTheory.Shannon.BroadcastChannel.Marton.martonSubcodebookMeasure

              source

              The subcodebook law: p-i.i.d. over all M · M' · n auxiliary letters, read as a codebook whose alphabet is the set of length-n words.

              Equations
              Instances For
                Used by
                  instance

                  InformationTheory.Shannon.BroadcastChannel.Marton.martonSubcodebookMeasure.instIsProbabilityMeasure

                  source
                  Used by
                    noncomputable def

                    InformationTheory.Shannon.BroadcastChannel.Marton.martonSelectRow

                    source
                    {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [DecidableEq V₁] [MeasurableSpace V₁] [DecidableEq V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') (ε_cov : ) (r₁ : Fin M₁'Fin nV₁) (r₂ : Fin M₂'Fin nV₂) :
                    Fin M₁' × Fin M₂'

                    The encoder's covering choice for one message pair: an index pair whose two auxiliary codewords are jointly strongly typical, falling back to (0, 0) when the two subcodebook rows contain no such pair. It reads only the two rows addressed by the message pair, which is what keeps the codewords of every other row independent of the transmission.

                    Strong typicality — rather than the weak typicality the decoders use — is what pins the empirical type of the selected pair, and hence, through the input kernel, the empirical type of the transmitted (V₁, X) block that the receiver-1 conditional AEP consumes. The selection radius ε_cov is therefore a parameter of its own, independent of the decoding radius.

                    @audit:ok

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

                        InformationTheory.Shannon.BroadcastChannel.Marton.martonAux₁

                        source
                        {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [DecidableEq V₁] [MeasurableSpace V₁] [DecidableEq V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') (ε_cov : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (m : Fin M₁ × Fin M₂) :
                        Fin nV₁

                        The first auxiliary codeword actually transmitted for the message pair m.

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

                            InformationTheory.Shannon.BroadcastChannel.Marton.martonAux₂

                            source
                            {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [DecidableEq V₁] [MeasurableSpace V₁] [DecidableEq V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') (ε_cov : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (m : Fin M₁ × Fin M₂) :
                            Fin nV₂

                            The second auxiliary codeword actually transmitted for the message pair m.

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

                                InformationTheory.Shannon.BroadcastChannel.Marton.martonInputCodebookMeasure

                                source
                                {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [DecidableEq V₁] [MeasurableSpace V₁] [DecidableEq V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') (ε_cov : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) :
                                MeasureTheory.Measure (Fin M₁ × Fin M₂Fin nα)

                                The input codebook law conditional on the two subcodebooks: the input word of the message pair m is drawn letterwise from K applied to the selected auxiliary pair, independently across message pairs. This is where the input randomization of a general kernel K is placed, the deterministic BroadcastCode.encoder being fixed only after a pigeonhole step.

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

                                    InformationTheory.Shannon.BroadcastChannel.Marton.martonInputCodebookMeasure.instIsProbabilityMeasure

                                    source
                                    {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [DecidableEq V₁] [MeasurableSpace V₁] [DecidableEq V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') (ε_cov : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) :
                                    MeasureTheory.IsProbabilityMeasure (martonInputCodebookMeasure pV K W hM₁' hM₂' ε_cov c₁ c₂)
                                    Used by
                                      noncomputable def

                                      InformationTheory.Shannon.BroadcastChannel.Marton.martonMessageDecoder₁

                                      source
                                      {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [MeasurableSpace V₁] [MeasurableSpace V₂] [MeasurableSpace α] [Fintype β₁] [MeasurableSpace β₁] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁ M₁' n : } (hM₁ : 0 < M₁) (ε : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) :
                                      (Fin nβ₁)Fin M₁

                                      Receiver-1 decoder: return the unique message owning an auxiliary codeword jointly typical with the received word, falling back to ⟨0, hM₁⟩ when there is none or more than one. Only the message is required to be unique — the covering index is quantified existentially, so a second typical index inside the transmitted row is not an error.

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

                                          InformationTheory.Shannon.BroadcastChannel.Marton.martonMessageDecoder₂

                                          source
                                          {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [MeasurableSpace V₁] [Fintype V₂] [MeasurableSpace V₂] [MeasurableSpace α] [MeasurableSpace β₁] [Fintype β₂] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₂ M₂' n : } (hM₂ : 0 < M₂) (ε : ) (c₂ : MartonSubcodebook M₂ M₂' n V₂) :
                                          (Fin nβ₂)Fin M₂

                                          Receiver-2 decoder, the mirror image of martonMessageDecoder₁.

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

                                              InformationTheory.Shannon.BroadcastChannel.Marton.martonCodebookToCode

                                              source
                                              {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [MeasurableSpace V₁] [Fintype V₂] [MeasurableSpace V₂] [MeasurableSpace α] [Fintype β₁] [MeasurableSpace β₁] [Fintype β₂] [MeasurableSpace β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) {M₁ M₂ M₁' M₂' n : } (hM₁ : 0 < M₁) (hM₂ : 0 < M₂) (ε : ) (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (cX : Fin M₁ × Fin M₂Fin nα) :
                                              BroadcastCode M₁ M₂ n α β₁ β₂

                                              Bundle two subcodebooks and an input codebook into a BroadcastCode: the input codebook is the encoder, and each receiver runs its own message decoder over its own subcodebook.

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

                                                  Receiver-1 error decomposition #

                                                  theorem

                                                  InformationTheory.Shannon.BroadcastChannel.Marton.marton_errorProbAt₁_le_bonferroni

                                                  source
                                                  {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] {M₁ M₂ M₁' M₂' n : } (hM₁ : 0 < M₁) (hM₂ : 0 < M₂) (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (cX : Fin M₁ × Fin M₂Fin nα) (m : Fin M₁ × Fin M₂) :
                                                  ((martonCodebookToCode pV K W hM₁ hM₂ ε c₁ c₂ cX).errorProbAt₁ W m).toReal (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (martonAux₁ pV K W hM₁' hM₂' ε_cov c₁ c₂ m, fun (i : Fin n) => (y i).1)ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε} + qFinset.univ.erase m.1 ×ˢ Finset.univ, (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₁ q.1 q.2, fun (i : Fin n) => (y i).1) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε}

                                                  Receiver-1 error decomposition at a fixed message pair: the error probability is at most the probability that the transmitted auxiliary word fails to be jointly typical with the received word, plus the sum, over the auxiliary codewords of every other message row, of the probability that one of them is jointly typical with it. Quantifying the covering index existentially is what keeps a second typical index inside the transmitted row off the error event, so the alias sum ranges over the rows of the other messages only.

                                                  @audit:ok

                                                  Used by
                                                    theorem

                                                    InformationTheory.Shannon.BroadcastChannel.Marton.marton_averageErrorProb₁_toReal_le

                                                    source
                                                    {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] {M₁ M₂ M₁' M₂' n : } (hM₁ : 0 < M₁) (hM₂ : 0 < M₂) (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (cX : Fin M₁ × Fin M₂Fin nα) :
                                                    ((martonCodebookToCode pV K W hM₁ hM₂ ε c₁ c₂ cX).averageErrorProb₁ W).toReal (↑(M₁ * M₂))⁻¹ * m : Fin M₁ × Fin M₂, ((MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (martonAux₁ pV K W hM₁' hM₂' ε_cov c₁ c₂ m, fun (i : Fin n) => (y i).1)ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε} + qFinset.univ.erase m.1 ×ˢ Finset.univ, (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₁ q.1 q.2, fun (i : Fin n) => (y i).1) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε})

                                                    The message-averaged form of marton_errorProbAt₁_le_bonferroni: averaging the pointwise decomposition over all message pairs bounds the receiver-1 average error probability by the mean of the transmitted-pair term and of the alias sum. The bound holds at every selection radius ε_cov, which is what lets the covering radius be chosen independently of the decoding radius.

                                                    @audit:ok

                                                    Used by

                                                      Receiver-1 alias bound over the random ensemble #

                                                      theorem

                                                      InformationTheory.Shannon.BroadcastChannel.Marton.marton_random_codebook_alias₁_le

                                                      source
                                                      {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (m : Fin M₁ × Fin M₂) (q : Fin M₁ × Fin M₁') (hne : q.1 m.1) :
                                                      c₁ : MartonSubcodebook M₁ M₁' n V₁, (martonSubcodebookMeasure (MeasureTheory.Measure.map Prod.fst pV) M₁ M₁' n).real {c₁} * c₂ : MartonSubcodebook M₂ M₂' n V₂, (martonSubcodebookMeasure (MeasureTheory.Measure.map Prod.snd pV) M₂ M₂' n).real {c₂} * cX : Fin M₁ × Fin M₂Fin nα, (martonInputCodebookMeasure pV K W hM₁' hM₂' ε_cov c₁ c₂).real {cX} * (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₁ q.1 q.2, fun (i : Fin n) => (y i).1) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₁s martonY₁s n ε} Real.exp (-n * (martonInfo₁ pV K W - 3 * ε))

                                                      Averaged alias bound over the full three-tier Marton ensemble. An alias codeword taken from a different message row than the transmitted one is jointly typical with the received word with probability at most exp(−n (I(V₁; Y₁) − 3ε)). The covering choice reads only the transmitted rows, so the alias row stays independent of the transmission even though the choice depends on the codebook; and because the fiber bound behind marton_alias₁_slice_avg_le is uniform over received words, the law of the received word never has to be identified. The estimate reads the selection only through the fact that it yields a probability law on input words, so it is insensitive to the radius and to the typicality notion the selection tests.

                                                      @audit:ok

                                                      Used by

                                                        Receiver-2 error decomposition #

                                                        theorem

                                                        InformationTheory.Shannon.BroadcastChannel.Marton.marton_errorProbAt₂_le_bonferroni

                                                        source
                                                        {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] {M₁ M₂ M₁' M₂' n : } (hM₁ : 0 < M₁) (hM₂ : 0 < M₂) (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (cX : Fin M₁ × Fin M₂Fin nα) (m : Fin M₁ × Fin M₂) :
                                                        ((martonCodebookToCode pV K W hM₁ hM₂ ε c₁ c₂ cX).errorProbAt₂ W m).toReal (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (martonAux₂ pV K W hM₁' hM₂' ε_cov c₁ c₂ m, fun (i : Fin n) => (y i).2)ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε} + qFinset.univ.erase m.2 ×ˢ Finset.univ, (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₂ q.1 q.2, fun (i : Fin n) => (y i).2) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε}

                                                        Receiver-2 error decomposition at a fixed message pair, the mirror image of marton_errorProbAt₁_le_bonferroni: the error probability is at most the probability that the transmitted auxiliary word fails to be jointly typical with the received word, plus the sum, over the auxiliary codewords of every other message row, of the probability that one of them is jointly typical with it.

                                                        @audit:ok

                                                        Used by
                                                          theorem

                                                          InformationTheory.Shannon.BroadcastChannel.Marton.marton_averageErrorProb₂_toReal_le

                                                          source
                                                          {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) (K : ProbabilityTheory.Kernel (V₁ × V₂) α) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] {M₁ M₂ M₁' M₂' n : } (hM₁ : 0 < M₁) (hM₂ : 0 < M₂) (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (c₁ : MartonSubcodebook M₁ M₁' n V₁) (c₂ : MartonSubcodebook M₂ M₂' n V₂) (cX : Fin M₁ × Fin M₂Fin nα) :
                                                          ((martonCodebookToCode pV K W hM₁ hM₂ ε c₁ c₂ cX).averageErrorProb₂ W).toReal (↑(M₁ * M₂))⁻¹ * m : Fin M₁ × Fin M₂, ((MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (martonAux₂ pV K W hM₁' hM₂' ε_cov c₁ c₂ m, fun (i : Fin n) => (y i).2)ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε} + qFinset.univ.erase m.2 ×ˢ Finset.univ, (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₂ q.1 q.2, fun (i : Fin n) => (y i).2) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε})

                                                          The message-averaged form of marton_errorProbAt₂_le_bonferroni: averaging the pointwise decomposition over all message pairs bounds the receiver-2 average error probability by the mean of the transmitted-pair term and of the alias sum.

                                                          @audit:ok

                                                          Used by

                                                            Receiver-2 alias bound over the random ensemble #

                                                            theorem

                                                            InformationTheory.Shannon.BroadcastChannel.Marton.marton_random_codebook_alias₂_le

                                                            source
                                                            {V₁ : Type u_1} {V₂ : Type u_2} {α : Type u_3} {β₁ : Type u_4} {β₂ : Type u_5} [Fintype V₁] [DecidableEq V₁] [Nonempty V₁] [MeasurableSpace V₁] [MeasurableSingletonClass V₁] [Fintype V₂] [DecidableEq V₂] [Nonempty V₂] [MeasurableSpace V₂] [MeasurableSingletonClass V₂] [Fintype α] [DecidableEq α] [Nonempty α] [MeasurableSpace α] [MeasurableSingletonClass α] [Fintype β₁] [DecidableEq β₁] [Nonempty β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] [Fintype β₂] [DecidableEq β₂] [Nonempty β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] (pV : MeasureTheory.Measure (V₁ × V₂)) [MeasureTheory.IsProbabilityMeasure pV] (K : ProbabilityTheory.Kernel (V₁ × V₂) α) [ProbabilityTheory.IsMarkovKernel K] (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hpV : ∀ (v : V₁ × V₂), 0 < pV.real {v}) (hK : ∀ (v : V₁ × V₂) (a : α), 0 < (K v).real {a}) (hW : ∀ (a : α) (b : β₁ × β₂), 0 < (W a).real {b}) {M₁ M₂ M₁' M₂' n : } (hM₁' : 0 < M₁') (hM₂' : 0 < M₂') {ε ε_cov : } (m : Fin M₁ × Fin M₂) (q : Fin M₂ × Fin M₂') (hne : q.1 m.2) :
                                                            c₁ : MartonSubcodebook M₁ M₁' n V₁, (martonSubcodebookMeasure (MeasureTheory.Measure.map Prod.fst pV) M₁ M₁' n).real {c₁} * c₂ : MartonSubcodebook M₂ M₂' n V₂, (martonSubcodebookMeasure (MeasureTheory.Measure.map Prod.snd pV) M₂ M₂' n).real {c₂} * cX : Fin M₁ × Fin M₂Fin nα, (martonInputCodebookMeasure pV K W hM₁' hM₂' ε_cov c₁ c₂).real {cX} * (MeasureTheory.Measure.pi fun (i : Fin n) => W (cX m i)).real {y : Fin nβ₁ × β₂ | (c₂ q.1 q.2, fun (i : Fin n) => (y i).2) ChannelCoding.jointlyTypicalSet (martonAmbientMeasure pV K W) martonV₂s martonY₂s n ε} Real.exp (-n * (martonInfo₂ pV K W - 3 * ε))

                                                            Averaged alias bound over the full three-tier Marton ensemble at receiver 2, the mirror image of marton_random_codebook_alias₁_le. An alias codeword taken from a different message row than the transmitted one is jointly typical with the received word with probability at most exp(−n (I(V₂; Y₂) − 3ε)). The ensemble is summed in the same order as at receiver 1, the alias row now sitting in the inner subcodebook tier.

                                                            @audit:ok

                                                            Used by