
CUUS063 main CUUS063 Goldreich 978 0 521 88473 0 March 31, 2008 18:49
RANDOMNESS AND COUNTING
As in the proof of Theorem 6.27, the idea is to apply a “random sieve” on R(x),
this time with the hope that a single element survives. Specifically, if we let each
element pass the sieve with probability approximately 1/|R(x)| then with constant
probability a single element survives. In such a case, we shall obtain an instance
with a unique solution (i.e., an instance of S
R,H
having a single NP-witness), which
will (essentially) fulfill our quest. Sieving will be performed by a random function
selected in an adequate hashing family (see Appendix D.2). A couple of questions
arise:
1. How do we get an approximation to |R(x)|? Note that we need such an approx-
imation in order to determine the adequate hashing family. Note that invoking
Theorem 6.27 will not do, because the said oracle machine uses an oracle to
NP (which puts us back to square one, let alone that the said reduction makes
many queries).
15
Instead, we just select m ∈{0,...,poly(|x|)} uniformly and
note that (if |R(x)| > 0 then)
Pr[m =&log
2
|R(x)|'] = 1/poly(|x|). Next, we ran-
domly map x to (x, m, h), where h is uniformly selected in an adequate hashing
family.
2. How does the question of whether a single element of R(x) pass the random sieve
translate to an instance of the unique-solution problem for R? Recall that in the
proof of Theorem 6.27 the non-emptiness of the set of elements of R(x) that pass
the sieve (defined by h) was determined by checking membership (of (x, m, h))
in S
R,H
∈ NP (defined in Eq. (6.9)). Furthermore, the number of NP-witnesses
for (x, m, h) ∈ S
R,H
equals the number of elements of R(x) that pass the sieve.
Thus, a single element of R(x) passes the sieve (defined by h) if and only if
(x, m, h) ∈ S
R,H
has a single NP-witness. Using the parsimonious reduction of
S
R,H
to S
R
(which is guaranteed by the theorem’s hypothesis), we obtained the
desired instance.
Note that in case R(x) =∅the aforementioned mapping always generates a no-
instance (of S
R,H
and thus of S
R
). Details follow.
Implementation (i.e., the mapping M). As in the proof of Theorem 6.27, we as-
sume, without loss of generality, that R(x) ⊆{0, 1}
, where = poly(|x|). We start
by uniformly selecting m ∈{1,...,+ 1} and h ∈ H
m
, where H
m
is a family
of efficiently computable and pairwise-independent hashing functions (see Defini-
tion D.1) mapping -bit long strings to m-bit long strings. Thus, we obtain an instance
(x, m, h)ofS
R,H
∈ NP such that the set of valid solutions for (x, m, h) equals
{y ∈R(x):h(y) = 0
m
}. Using the parsimonious reduction g of the NP-witness rela-
tion of S
R,H
to R (i.e., the NP-witness relation of S
R
), we map (x, m, h)tog(x, m, h),
and it holds that |{y ∈R(x):h(y) = 0
m
}| equals |R( g( x, m, h))|. To summarize, on
input x the randomized mapping M outputs the instance M(x)
def
= g(x, m, h), where
m ∈{1,...,+ 1} and h ∈ H
m
are uniformly selected.
The analysis. Note that for any x ∈ S
R
it holds that Pr[M(x) ∈ S
R
] = 1. Assuming
that x ∈ S
R
, with probability exactly 1/( + 1) it holds that m = m
x
, where m
x
def
=
&log
2
|R(x)|' + 1. Focusing on the case that m = m
x
, for a uniformly selected
15
Needless to say, both problems can be resolved by using a reduction to unique-solution instances, but we still
do not have such a reduction – we are currently designing it.
218