Finite statistical tests for binary generators -- definitions #
This layer fixes exact finite conventions for the first step of the Nisan--Wigderson reconstruction used in metacomplexity. A generator maps a uniform fixed-length Boolean seed to a fixed-length Boolean output. A test's acceptance probability is measured both under uniform output bits and under the generator, and its distinguishing advantage is the absolute difference.
The complexity predicates remain relative to an arbitrary deterministic machine and primitive clock. Universality and efficient computability of a particular generator are separate hypotheses.
A deterministic binary generator from seedLength bits to outputLength
bits. No expansion or computability condition is built into the type.
Equations
Instances For
The seeds whose generated outputs are accepted by a finite test.
Equations
- generator.acceptedSeeds test = {seed : Fin seedLength → Bool | generator seed ∈ test}
Instances For
Acceptance probability of a test under a uniform generator seed.
Equations
- generator.generatedAcceptanceProbability test = Complexity.eventProb (generator.acceptedSeeds test)
Instances For
Acceptance probability of a test under uniform output bits.
Equations
Instances For
Absolute distinguishing advantage of a test between uniform output bits and the output of a generator on a uniform seed.
Equations
- generator.distinguishingAdvantage test = |Complexity.BitGenerator.uniformAcceptanceProbability test - generator.generatedAcceptanceProbability test|
Instances For
A test is density-dense when it accepts at least that much uniform
output mass.
Equations
- Complexity.BitGenerator.IsDenseTest test density = (density ≤ Complexity.BitGenerator.uniformAcceptanceProbability test)
Instances For
Every generated output has time-bounded complexity strictly below the specified threshold.
Equations
- generator.HasLowTimeBoundedComplexity machine time threshold = ∀ (seed : Fin seedLength → Bool), machine.timeBoundedKolmogorovComplexity (List.ofFn (generator seed)) time < ↑threshold
Instances For
Every output accepted by the test is random at the specified threshold and clock. Equivalently, the test is a subset of the corresponding finite set of time-bounded random strings.
Equations
- Complexity.BitGenerator.IsTimeBoundedRandomTest test machine time threshold = ∀ output ∈ test, ↑threshold ≤ machine.timeBoundedKolmogorovComplexity (List.ofFn output) time