Finite Goldreich–Levin inversion reduction #
A seeded predictor sees an image and a parity query. The inverter samples one private seed, reuses that seed for every predictor call, enumerates the decoder's candidates, and checks their images. Thus the deterministic decoding theorem applies to each fixed image and seed, even when the predictor's answers to different queries are correlated through its randomness.
If average prediction success is at least 1 / 2 + ε, invert_success_ge gives inversion
success at least ε / 4. A fixed random choice between the predictor and its complement handles
either sign of the bias: invertSigned_success_ge gives success at least ε / 8 from absolute
bias ε. Neither inverter receives the hidden preimage or chooses a sign based on it.
The image may have any type with decidable equality, and its length need not equal the input
length. The finite seed type and its distribution may depend on the image; they are fixed before
the independent parity query is sampled. For a strict PPT predictor,
the coin-tape representation in Cslib.Computability.Probabilistic.CoinTape supplies the
appropriate seeded behavior with a polynomial-time deterministic evaluator. Connecting the
encoded programs and proving the complete inverter PPT remain separate porting steps. This
module contains the finite distributional argument, adapted from cslib crypto at 5ff69ca.
Main definitions #
candidateList,checkCandidates: ordered candidate generation and first valid preimage.invertFixed,invert,invertSigned: decoding with a fixed predictor, a saved seed, and a random sign respectively.predictionExperiment,inversionExperiment: the finite prediction and inversion games.
Main results #
checkCandidates_correct: any listed preimage suffices, without injectivity.invert_success_ge,invertSigned_success_ge: positive and absolute bias give inversion success of at leastε / 4andε / 8, under the stated mask-count bounds.
References #
Return the first candidate with the requested image, defaulting to zero if none matches.
Instances For
If the original preimage is listed, checking finds a valid preimage. Injectivity is not needed.
Decode a fixed predictor and check its candidate list against the given image.
Instances For
An injective representation of images preserves every candidate check and the decoder's entire output distribution, including its default output.
A correlated predictor yields a valid preimage with probability at least one half when
there are enough masks. The algorithm receives only the image; x occurs only in the guarantee.
Sample the predictor's seed once and reuse it throughout the decoder.
Instances For
Average parity-prediction success over a uniform preimage, the seed, and a uniform query.
Instances For
Challenge the inverter with the image of a uniform input and accept any valid preimage.
Instances For
Independent private randomness may be sampled before or after the inversion challenge.
Positive prediction bias ε gives inversion success at least ε / 4.
For each fixed input and seed, either agreement is below 1 / 2 + ε / 2, or decoding succeeds
with probability at least one half. Averaging this dichotomy proves the reduction.
A fixed inverter for either sign of prediction bias. One independent fair bit chooses whether to complement the predictor; no advice about its bias is required.
Instances For
Absolute prediction bias ε gives inversion success at least ε / 8 using one fixed
reduction for both signs. This is a finite probability bound, without a machine-time claim.