
15.8 SOURCE CODING WITH SIDE INFORMATION 579
for any encoding scheme that has a low probability of error. Thus, the
converse is proved.
Before we proceed to the proof of the achievability of this pair of rates,
we will need a new lemma about strong typicality and Markov chains.
Recall the definition of strong typicality for a triple of random variables
X, Y ,andZ. A triplet of sequences x
n
,y
n
,z
n
is said to be -strongly
typical if
1
n
N(a,b,c|x
n
,y
n
,z
n
) − p(a, b, c)
<
|X||Y||Z|
. (15.284)
In particular, this implies that (x
n
,y
n
) are jointly strongly typical and
that (y
n
,z
n
) are also jointly strongly typical. But the converse is not true:
The fact that (x
n
,y
n
) ∈ A
∗(n)
(X, Y ) and (y
n
,z
n
) ∈ A
∗(n)
(Y, Z) does not
in general imply that (x
n
,y
n
,z
n
) ∈ A
∗(n)
(X, Y, Z).ButifX → Y → Z
forms a Markov chain, this implication is true. We state this as a lemma
without proof [53, 149].
Lemma 15.8.1 Let (X, Y, Z) form a Markov chain X → Y → Z [i.e.,
p(x, y, z) = p(x, y)p(z|y)]. If for a given (y
n
,z
n
) ∈ A
∗(n)
(Y, Z), X
n
is
drawn ∼
n
i=1
p(x
i
|y
i
),thenPr{(X
n
,y
n
,z
n
) ∈ A
∗(n)
(X,Y,Z)} > 1 −
for n sufficiently large.
Remark The theorem is true from the strong law of large numbers if
X
n
∼
n
i=1
p(x
i
|y
i
,z
i
). The Markovity of X → Y → Z is used to show
that X
n
∼ p(x
i
|y
i
) is sufficient for the same conclusion.
We now outline the proof of achievability in Theorem 15.8.1.
Proof: (Achievability in Theorem 15.8.1). Fix p(u|y). Calculate p(u) =
y
p(y)p(u|y).
Generation of codebooks: Generate 2
nR
2
independent codewords of
length n, U(w
2
), w
2
∈{1, 2,...,2
nR
2
} according to
n
i=1
p(u
i
).Ran-
domly bin all the X
n
sequences into 2
nR
1
bins by independently generating
an index b distributed uniformly on {1, 2,...,2
nR
1
} for each X
n
.LetB(i)
denote the set of X
n
sequences allotted to bin i.
Encoding: The X sender sends the index i of the bin in which X
n
falls.
The Y sender looks for an index s such that (Y
n
,U
n
(s)) ∈ A
∗(n)
(Y, U ).
If there is more than one such s, it sends the least. If there is no such
U
n
(s) in the codebook, it sends s = 1.
Decoding: The receiver looks for a unique X
n
∈ B(i) such that (X
n
,
U
n
(s)) ∈ A
∗(n)
(X, U ). If there is none or more than one, it declares an
error.