Documentation

Complexity.Foundations.Combinatorics.AffineDisperser.Explicit

An explicit affine disperser #

For every input length N we fix the parameters of Ben-Sasson and Kopparty's construction explicitly. With ℓ = ⌊log₂ N⌋:

The function Cslib.AffineDisperser.explicitDisperser N : BitString N → Bool is traceSym 1 r t on these blocks. Every prime factor of n exceeds L, so proper subfields of F have at most 2 ^ s elements, s = ⌊n / (L + 1)⌋, and the function is nonconstant on every affine subspace of BitString N of dimension greater than d(N) = N - r n + r * max (r + 1) s + r * (r + 1) + n t + ⌊n r / t⌋ (Cslib.AffineDisperser.exists_explicitDisperser_ne), so it is an affine disperser for dimension d(N) + 1 (Cslib.AffineDisperser.isAffineDisperser_explicitDisperser). Downstream, in the computability layer, the function is shown not to depend on the roots chosen for the basis (Cslib.AffineDisperser.traceSymBits_rootBasis_eq_explicitDisperser) and to be computable in polynomial time (Cslib.AffineDisperser.computableTidilyInPolyTime_explicitDisperser).

Ben-Sasson and Kopparty take n prime and reach dimension 6 N ^ (4 / 5) [BSK12]; the field then needs an irreducible polynomial of large prime degree, which exhaustive search cannot find in polynomial time. The composite degree keeps every search small at the price of the subfield term r s ≤ N / (L + 1), so our threshold is O(N / log N) (Cslib.AffineDisperser.eventually_explicitThreshold_le). This is far from the best explicit dispersers known: Li's dispersers work for dimension O(log N) [Li23].

Main definitions #

Main results #

References #

The prime bound L = ⌊⌊log₂ N⌋ / 3⌋: the field degree is a product of primes in (L, 4 L].

Instances For

    The primes whose product is the field degree on N bits: chosen greedily, in increasing order, from the primes in (L, 4 L] with product at most N / (⌊log₂ N⌋ + 1) ^ 2.

    Instances For

      The j-th prime of the field degree on N bits.

      Instances For

        The field degree n on N bits: the product of degreePrimes N.

        Instances For

          The number of blocks r = ⌊N / n⌋.

          Instances For

            The degree t = ⌊log₂ N⌋ + 1 of the elementary symmetric polynomial.

            Instances For

              The subfield exponent s = ⌊n / (L + 1)⌋: proper subfields of 𝔽_{2 ^ n} have at most 2 ^ s elements.

              Instances For

                Every member of degreePrimes N is a prime in (L, 4 L].

                Distinct indices give distinct primes: degreePrime N is injective.

                The field degree is the product of the list degreePrimes N.

                The field degree is nonzero.

                The r blocks of n bits fit in the input: r n ≤ N.

                Every prime factor of the field degree exceeds L.

                The dimension threshold d(N) = N - r n + r * max (r + 1) s + r * (r + 1) + n t + ⌊n r / t⌋ of the explicit disperser on N bits.

                Instances For
                  @[reducible, inline]

                  The field 𝔽_{2 ^ n} of the explicit disperser on N bits.

                  Instances For
                    @[reducible, inline]

                    The monomials indexing the basis of ExplicitField N.

                    Instances For

                      The monomial basis of ExplicitField N in roots of the irreducible polynomials of least code of the prime degrees.

                      Instances For

                        The input position of coordinate J of block i: blocks follow each other, and coordinates within a block are numbered in the mixed-radix order of finPiFinEquiv.

                        Instances For

                          Distinct coordinates are read from distinct input positions: explicitPos N is injective.

                          The explicit affine disperser on N bits: Ben-Sasson and Kopparty's function traceSym 1 r t on the r = numBlocks N elements of 𝔽_{2 ^ n}, n = fieldDegree N, read from the first r n input bits in the monomial basis explicitBasis N, with t = symDegree N.

                          Instances For

                            An explicit affine disperser, after [BenSassonKopparty2012, Theorem 7.3]: explicitDisperser N is nonconstant on every affine subspace of BitString N of dimension greater than explicitThreshold N.

                            The explicit function is an affine disperser for dimension explicitThreshold N + 1: it is nonconstant on the image of every injective affine map from BitString (explicitThreshold N + 1) (Cslib.BitString.IsAffineDisperser).