Reconstructions of the Nisan–Wigderson generator and list decoding #
With its random choices fixed, the predictor that the Nisan–Wigderson reconstruction builds from a
deterministic test needs the hard function f only through the earlier output bits, and by
Cslib.Crypto.PRG.NisanWigderson.dependsOn_generator_extend each of them is a function of the
at most a input bits that its block shares with the block of the predicted bit. A
reconstruction stores these functions as tables, together with the position of the predicted
bit, the candidate bit and the padding bits after that position; its guess is computed from this
data and the test alone (Cslib.Crypto.PRG.NisanWigderson.Reconstruction.guess). Every trial
gives a reconstruction with the same guess
(Cslib.Crypto.PRG.NisanWigderson.Reconstruction.guess_ofTrial), and a reconstruction at
position i consists of reconstructionBits D i ≤ m 2 ^ a bits
(Cslib.Crypto.PRG.NisanWigderson.reconstructionBits_le).
If f is the codeword C.encode x of a message x in a list code C, a guess that agrees with
f on a 1 / 2 + δ fraction of the inputs lists x among its candidates when C list decodes
up to radius 1 / 2 - δ. With the sampling layer
(Cslib.Crypto.PRG.NisanWigderson.div_two_mul_le_dens_goodTrials), a uniformly random trial lists
x with probability at least ε / (2 m)
(Cslib.Crypto.PRG.NisanWigderson.div_two_mul_le_dens_mem_candidates), and k independent
trials give at most k L candidates (Cslib.Crypto.PRG.NisanWigderson.card_trialCandidates_le)
that include x with probability at least 1 - (1 - ε / (2 m)) ^ k
(Cslib.Crypto.PRG.NisanWigderson.one_sub_pow_le_dens_mem_trialCandidates): this is the
randomized list-decoding reconstruction of [Hir18].
Main definitions #
Cslib.Crypto.PRG.NisanWigderson.Reconstruction: the data of a predictor, with the earlier output bits stored as tables.Cslib.Crypto.PRG.NisanWigderson.Reconstruction.guess: its guess.Cslib.Crypto.PRG.NisanWigderson.Reconstruction.ofTrial: the reconstruction of a trial.Cslib.Crypto.PRG.NisanWigderson.reconstructionBits: the number of bits of a reconstruction.Cslib.Crypto.PRG.NisanWigderson.trialCandidates: the candidates listed by several trials.
Main results #
Cslib.Crypto.PRG.NisanWigderson.Reconstruction.guess_ofTrial: a reconstruction guesses as its trial does.Cslib.Crypto.PRG.NisanWigderson.reconstructionBits_le: a reconstruction has at mostm 2 ^ abits.Cslib.Crypto.PRG.NisanWigderson.div_two_mul_le_dens_mem_candidates,Cslib.Crypto.PRG.NisanWigderson.one_sub_pow_le_dens_mem_trialCandidates: randomized list decoding.
References #
A reconstruction for the design D: the data of the predictor that the reconstruction
builds from a deterministic test, with its random choices fixed and the earlier output bits stored
as tables.
- pos : Fin m
The position of the predicted bit.
For each earlier position
j, output bitjas a function of the input bits inD.overlap pos j.- bit : Bool
The candidate value of the predicted bit.
The padding bits after position
pos.
Instances For
The padding of a reconstruction as a string of m bits, false up to position pos.
Instances For
The guess of a reconstruction at the input x: the test is run on the table values at x for
the positions before pos, the candidate bit at pos, and the padding after pos; the guess is
the candidate bit if the test accepts and its negation otherwise (nextBitGuess).
Instances For
The reconstruction of the trial t for the hard function f: the table of output bit j is
read off the generator on the seed that agrees with t.seed outside the t.pos-th block.
Instances For
A reconstruction has at most m 2 ^ a bits.
Randomized list decoding #
The candidates listed by the trials ts: the union of the candidates that the list code C
decodes from their guesses.
Instances For
List size. k trials list at most k L candidates.
Sampling and list decoding [Hir18]. Let 0 < m, 0 ≤ ε, let the list code C
list decode up to radius 1 / 2 - ε / (2 m), and let a deterministic test accept outputs of the
generator built from the codeword of x with probability at least ε more than uniform strings.
Then C lists x among the candidates for the guess of a uniformly random trial with probability
at least ε / (2 m).
Repeated sampling and list decoding [Hir18]. Under the hypotheses of
div_two_mul_le_dens_mem_candidates, the at most k L candidates listed by k independent
uniformly random trials include x with probability at least 1 - (1 - ε / (2 m)) ^ k.