InformationTheory

InformationTheory.Shannon.BroadcastChannel.DegradedFromCode

source

Broadcast channel — the degraded converse at the ambient of a code #

Physical degradedness of a broadcast channel says every letter of receiver 2's output is a stochastic function of the corresponding letter of receiver 1's output. On the ambient measure of a block code this upgrades to a statement about whole blocks: receiver 2's output block is appended to receiver 1's by the blockwise product of the degrading kernel, so at every letter the receiver-2 prefix is conditionally independent of the current receiver-1 letter given message 2 and the receiver-1 prefix. That conditional independence is exactly the structural hypothesis of the degraded converse, which therefore lands at a bare broadcast code.

Main statements #

  • bcConverse_degradedBlock — under physical degradedness the letter-i output of receiver 1 is conditionally independent of the receiver-2 prefix given message 2 and the receiver-1 prefix, on the ambient measure of a broadcast code. This is the hypothesis h_deg_block of bc_degraded_converse at bcConverseAmbient.
  • bc_degraded_converse_from_code — the degraded outer bound (Cover–Thomas) at a bare broadcast code, with the auxiliary Uᵢ = (W₂, Y₂^{i-1}) read off the ambient.

Implementation notes #

Degradedness enters only through the degrading kernel it provides, and that kernel is applied to the whole output block before the block identity is cut down to a prefix: bcConverse_block_append appends the entire receiver-2 block to (messages, Y₁ⁿ) by the blockwise product piBlockKernel of that kernel, and bcConverse_prefix_append reindexes the resulting identity along the injection of Fin i into Fin n. The block form is the one the product structure of the ambient gives directly, so keeping the two steps apart separates the product-measure recombination from the reindexing.

Appending the degraded output block #

theorem

InformationTheory.Shannon.BroadcastChannel.bcConverse_block_append

source
{α : Type u_1} [MeasurableSpace α] {β₁ : Type u_2} [Fintype β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] {β₂ : Type u_3} [Fintype β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] {M₁ M₂ n : } (c : BroadcastCode M₁ M₂ n α β₁ β₂) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] [NeZero M₁] [NeZero M₂] (Q : ProbabilityTheory.Kernel β₁ β₂) [ProbabilityTheory.IsMarkovKernel Q] (hQ : ∀ (a : α), W a = (MeasureTheory.Measure.map Prod.fst (W a)).bind fun (y₁ : β₁) => MeasureTheory.Measure.map (fun (y₂ : β₂) => (y₁, y₂)) (Q y₁)) :
MeasureTheory.Measure.map (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => ((ω.1, fun (j : Fin n) => bcConverseY₁s j ω), fun (j : Fin n) => bcConverseY₂s j ω)) (bcConverseAmbient c W) = (MeasureTheory.Measure.map (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => (ω.1, fun (j : Fin n) => bcConverseY₁s j ω)) (bcConverseAmbient c W)).compProd (ProbabilityTheory.Kernel.prodMkLeft (Fin M₁ × Fin M₂) (piBlockKernel Q))
Used by
    theorem

    InformationTheory.Shannon.BroadcastChannel.bcConverse_prefix_append

    source
    {α : Type u_1} [MeasurableSpace α] {β₁ : Type u_2} [Fintype β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] {β₂ : Type u_3} [Fintype β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] {M₁ M₂ n : } (c : BroadcastCode M₁ M₂ n α β₁ β₂) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] [NeZero M₁] [NeZero M₂] (Q : ProbabilityTheory.Kernel β₁ β₂) [ProbabilityTheory.IsMarkovKernel Q] (hQ : ∀ (a : α), W a = (MeasureTheory.Measure.map Prod.fst (W a)).bind fun (y₁ : β₁) => MeasureTheory.Measure.map (fun (y₂ : β₂) => (y₁, y₂)) (Q y₁)) (i : Fin n) :
    MeasureTheory.Measure.map (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => (((bcConverseMsg₂ ω, fun (j : Fin i) => bcConverseY₁s j, ω), bcConverseY₁s i ω), fun (j : Fin i) => bcConverseY₂s j, ω)) (bcConverseAmbient c W) = (MeasureTheory.Measure.map (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => ((bcConverseMsg₂ ω, fun (j : Fin i) => bcConverseY₁s j, ω), bcConverseY₁s i ω)) (bcConverseAmbient c W)).compProd (ProbabilityTheory.Kernel.prodMkRight β₁ (ProbabilityTheory.Kernel.prodMkLeft (Fin M₂) (piBlockKernel Q)))
    Used by

      The degraded converse at a code #

      theorem

      InformationTheory.Shannon.BroadcastChannel.bcConverse_degradedBlock

      source
      {α : Type u_1} [MeasurableSpace α] {β₁ : Type u_2} [Fintype β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] {β₂ : Type u_3} [Fintype β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] {M₁ M₂ n : } [StandardBorelSpace β₁] [Nonempty β₁] [StandardBorelSpace β₂] [Nonempty β₂] (c : BroadcastCode M₁ M₂ n α β₁ β₂) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] [NeZero M₁] [NeZero M₂] (hdeg : IsBCDegraded W) (i : Fin n) :
      IsMarkovChain (bcConverseAmbient c W) (bcConverseY₁s i) (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => (bcConverseMsg₂ ω, fun (j : Fin i) => bcConverseY₁s j, ω)) fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) (j : Fin i) => bcConverseY₂s j, ω
      Used by
        theorem

        InformationTheory.Shannon.BroadcastChannel.bc_degraded_converse_from_code

        source
        {α : Type u_1} [MeasurableSpace α] {β₁ : Type u_2} [Fintype β₁] [MeasurableSpace β₁] [MeasurableSingletonClass β₁] {β₂ : Type u_3} [Fintype β₂] [MeasurableSpace β₂] [MeasurableSingletonClass β₂] {M₁ M₂ n : } [Fintype α] [MeasurableSingletonClass α] [StandardBorelSpace α] [Nonempty α] [StandardBorelSpace β₁] [Nonempty β₁] [StandardBorelSpace β₂] [Nonempty β₂] [NeZero M₁] [NeZero M₂] (c : BroadcastCode M₁ M₂ n α β₁ β₂) (W : BCChannel α β₁ β₂) [ProbabilityTheory.IsMarkovKernel W] (hdeg : IsBCDegraded W) (hcard₁ : 2 M₁) (hcard₂ : 2 M₂) :
        InBCCapacityRegion (Real.log M₁) (Real.log M₂) ((∑ i : Fin n, condMutualInfo (bcConverseAmbient c W) (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => c.encoder ω.1 i) (bcConverseY₁s i) fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => (bcConverseMsg₂ ω, fun (j : Fin i) => bcConverseY₂s j, ω)).toReal + bcConverseFanoSlack₁ c W) ((∑ i : Fin n, mutualInfo (bcConverseAmbient c W) (fun (ω : (Fin M₁ × Fin M₂) × (Fin nβ₁ × β₂)) => (bcConverseMsg₂ ω, fun (j : Fin i) => bcConverseY₂s j, ω)) (bcConverseY₂s i)).toReal + bcConverseFanoSlack₂ c W)

        The degraded outer bound instantiated at a bare broadcast code (Cover–Thomas): for a physically degraded Markov channel W and any two-receiver block code c, the canonical ambient measure bcConverseAmbient c W discharges every hypothesis of the message-level converse bc_degraded_converse, so the rate pair (log M₁, log M₂) lies in the auxiliary-variable capacity region whose information bounds are the per-letter sums ∑ᵢ I(Xᵢ; Y_{1,i} | Uᵢ) and ∑ᵢ I(Uᵢ; Y_{2,i}) with Uᵢ = (W₂, Y₂^{i-1}). Degradedness is consumed only through bcConverse_degradedBlock, so beyond it the hypotheses are the two message counts. The Fano slack is still carried here; it vanishes only in the n → ∞ limit.

        Used by