InformationTheory.Shannon.MultipleAccess.Achievability.RandomCoding
Multiple access channel — two-codebook random-coding average and achievability #
The random-coding argument on top of the codebook plumbing (Cover–Thomas): the
per-event codebook-average swaps, the arithmetic aggregating them, the two-codebook average
bound, the random → deterministic pigeonhole, and the achievability headline mac_achievability.
Two-codebook averaging: per-event swaps #
InformationTheory.Shannon.MAC.mac_random_codebook_E0_swap
sourceCodebook-average swap for the correct-pair atypicality event E0: the two-codebook
average of the probability that the transmitted triple (c₁ m₁, c₂ m₂, y) fails to be
jointly typical is bounded by the ambient atypicality mass, which the AEP sends to 0.
Used by
InformationTheory.Shannon.MAC.mac_random_codebook_E1_swap
sourceCodebook-average swap for the user-1 alias event E1: the two-codebook average of the
event that a wrong user-1 codeword (m₁' ≠ m₁, user 2 correct) is jointly typical with the
output is bounded by exp(n·(−I(X₁;(X₂,Y)) + 3ε)).
Used by
InformationTheory.Shannon.MAC.mac_random_codebook_E2_swap
sourceCodebook-average swap for the user-2 alias event E2: the two-codebook average of the
event that a wrong user-2 codeword (m₂' ≠ m₂, user 1 correct) is jointly typical with the
output is bounded by exp(n·(−I(X₂;(X₁,Y)) + 3ε)).
Used by
InformationTheory.Shannon.MAC.mac_random_codebook_E3_swap
sourceCodebook-average swap for the both-wrong alias event E3: the two-codebook average of
the event that a pair of wrong codewords (m₁' ≠ m₁ and m₂' ≠ m₂) is jointly typical with
the output is bounded by exp(n·(−I((X₁,X₂);Y) + 3ε)).
Used by
Two-codebook averaging: arithmetic #
InformationTheory.Shannon.MAC.mac_averageErrorProb_toReal_eq
source(averageErrorProb).toReal = (1/(M₁·M₂)) · ∑ (errorProbAt).toReal.
Used by
InformationTheory.Shannon.MAC.mac_errorProbAt_ne_top
sourceEach MAC per-pair error probability is finite.
Used by
InformationTheory.Shannon.MAC.mac_sum_weighted_quad_decomp
sourceLinearity decomposition of the product-codebook expectation into the four error-event sums (E0 diagonal + the three alias families), with the codebook-weight average swapped to the inside of each term.
Used by
InformationTheory.Shannon.MAC.mac_quad_aggregate
sourcePer-pair aggregation of the four uniform bounds into the closed-form average bound.
Used by
Two-codebook averaging #
InformationTheory.Shannon.MAC.mac_random_codebook_average_le
sourceTwo-codebook random-coding average bound: for the i.i.d. MAC ambient measure
macAmbientMeasure p₁ p₂ W, averaging the per-pair error probability of the
joint-typical pair decoder over the product of the two codebook laws is bounded by the
four-event sum: the correct-pair atypicality probability E0, plus the three
exponential alias terms E1/E2/E3 controlled by the independent-pair bounds
macJTS_indep_prob_le_X1/_X2/_both.
This is the two-codebook generalization of the single-user
random_codebook_average_le, assembled from the four per-event swaps
(mac_random_codebook_E0_swap/_E1_swap/_E2_swap/_E3_swap), the four-event linearity
decomposition (mac_sum_weighted_quad_decomp), and the per-pair aggregation
(mac_quad_aggregate).
@audit:ok
Used by
Random → deterministic (two-codebook pigeonhole) #
InformationTheory.Shannon.MAC.mac_exists_codebook_le_avg
sourcePigeonhole over the product codebook law: if the two-codebook expectation is ≤ B,
some deterministic codebook pair achieves averageErrorProb ≤ B.
@audit:ok
Used by
InformationTheory.Shannon.MAC.mac_E3_lt_of_rate
sourceClosed-form N for the two-user (E3) "both indices wrong" term: with the AEP gap
Iboth − (R₁ + R₂) − 3ε > 0, the product (⌈exp(nR₁)⌉−1)(⌈exp(nR₂)⌉−1) of the two
codebook sizes times exp(n(−Iboth+3ε)) falls below any tolerance for large n.
@audit:ok
Used by
Headline #
InformationTheory.Shannon.MAC.mac_achievability
sourceAchievability of the MAC corner-point region (Cover–Thomas): for an
independent product input p₁ ⊗ p₂ with full-support marginals and a full-support MAC
channel W, any rate pair (R₁, R₂) strictly inside the corner-point region
R₁ < I(X₁; (X₂, Y)), R₂ < I(X₂; (X₁, Y)), R₁ + R₂ < I((X₁, X₂); Y) is
achievable: for every target error ε' > 0 there is N such that for all n ≥ N
there is a length-n two-user code with at least exp(n R₁) / exp(n R₂) messages per
user whose average error probability is < ε'.
@audit:ok