
CUUS063 main CUUS063 Goldreich 978 0 521 88473 0 March 31, 2008 18:49
PSEUDORANDOM GENERATORS
generators, the hardness hypothesis made in each part of Theorem 8.19 is necessary for
the existence of a corresponding canonical derandomizer (see Exercise 8.24).
The two parts of Theorem 8.19 exhibit two extreme cases: Part 1 (often referred to as
the “high end”) assumes an extremely strong circuit lower bound and yields “full deran-
domization” (i.e., BPP = P), whereas Part 2 (often referred to as the “low end”) assumes
an extremely weak circuit lower bound and yields weak but meaningful derandomization.
Intermediate results (relying on intermediate lower-bound assumptions) can be obtained
analogously to Exercise 8.23, but tight trade-offs are obtained differently (cf., [226]).
8.3.2.2. Analyzing the Construction (i.e., Proof of Theorem 8.18)
Using the time-complexity upper bounds on f and S, it follows that G can be computed
in exponential time. Thus, our focus is on showing that {G(U
k
)} cannot be distinguished
from {U
(k)
} by circuits of size (k)
2
, specifically, that G satisfies Eq. (8.11). In fact, we
will prove that this holds for G
(s) = s · G(s); that is, G fools such circuits even if they
are given the seed as auxiliary input. (Indeed, these circuits are smaller than the running
time of G, and so they cannot just evaluate G on the given seed.)
We start by presenting the intuition underlying the proof. As a warm-up, suppose that
the sets (i.e., S(k, i)’s) used in the construction are disjoint. In such a case (which is indeed
impossible because k <(k) · m(k)), the pseudorandomness of G(U
k
) would follow easily
from the inapproximability of f , because in this case G consists of applying f to non-
overlapping parts of the seed (see Exercise 8.21). In the actual construction being analyzed
here, the sets (i.e., S(k, i)’s) are not disjoint but have relatively small pairwise intersection,
which means that G applies f on parts of the seed that have relatively small overlap.
Intuitively, such small overlaps guarantee that the values of f on the corresponding inputs
are “computationally independent” (i.e., having the value of f at some inputs x
1
,...,x
i
does not help in approximating the value of f at another input x
i+1
). This intuition will be
backed up by showing that, when fixing all bits that do not appear in the target input (i.e.,
in x
i+1
), the former values (i.e., f (x
1
),..., f (x
i
)) can be computed at a relatively small
computational cost. Thus, the values f (x
1
),..., f (x
i
) do not (significantly) facilitate the
task of approximating f (x
i+1
). With the foregoing intuition in mind, we now turn to the
actual proof.
As usual, the actual proof employs a reducibility argument; that is, assuming toward
the contradiction that G
does not fool some circuit of size (k)
2
, we derive a contradiction
to the hypothesis that the predicate f is T -inapproximable. The argument utilizes the
relation between pseudorandomness and unpredictability (cf. Section 8.2.5). Specifically,
as detailed in Exercise 8.20, any circuit that distinguishes G
(U
k
) from U
(k)+k
with gap
1/6 yields a next-bit predictor of similar size that succeeds in predicting the next bit
with probability at least
1
2
+
1
6
(k)
>
1
2
+
1
7(k)
, where the factor of
(k) = (k) +k <
(1 +o(1)) ·(k) is introduced by the hybrid technique (cf. Eq. (8.7)). Further more, given
the non-uniform setting of the current proof, we may fix a bit location i +1 for prediction,
rather than analyzing the prediction at a random bit location. Indeed, i ≥ k must hold,
because the first k bits of G
(U
k
) are uniformly distributed. In the rest of the proof, we
transform the foregoing predictor into a circuit that approximates f better than allowed
by the hypothesis (regarding the inapproximability of f ).
Assuming that a small circuit C
can predict the i + 1
st
bit of G
(U
k
), when given the
previous i bits, we construct a small circuit C for approximating f (U
m(k)
) on input U
m(k)
.
The point is that the i + 1
st
bit of G
(s) equals f (s
S(k, j+1)
), where j = i − k ≥ 0, and
so C
approximates f (s
S(k, j+1)
) based on s, f (s
S(k,1)
),..., f (s
S(k, j)
), where s ∈{0, 1}
k
is
312