The explicit affine disperser as a computable function #
The explicit disperser on N bits works in the field 𝔽_{2 ^ n}, n = p₁ ⋯ pₖ, with the monomial
basis ∏ᵢ αᵢ ^ Jᵢ in roots αᵢ of the least-code irreducible polynomials gᵢ of the prime
degrees pᵢ. Its multiplication table depends only on the gᵢ: coordinate M of the product of
the monomials J and K is the product over i of the coefficient of X ^ Mᵢ in the remainder of
X ^ (Jᵢ + Kᵢ) modulo gᵢ (Cslib.prodPowBasis_mul_prodPowBasis). With the
monomials numbered in the mixed radix (p₁, …, pₖ) (Cslib.AffineDisperser.mixedDigit), the
table is computed from the remainders of the powers of X (Cslib.AffineDisperser.monomialTable,
Cslib.AffineDisperser.isMulTable_monomialTable), and the polynomials gᵢ by exhaustive search
with trial division among the codes below 2 ^ (4 L + 1).
The function Cslib.AffineDisperser.explicitDisperserProgram, a plain Lean function on bit lists
(not a FreeM program), reads N from the length of its input, computes the parameters, the
irreducible polynomials, the remainders and the multiplication table, and evaluates
traceSym 1 r t in coordinates. It computes the explicit disperser
(Cslib.AffineDisperser.explicitDisperserProgram_eq). Since the computation does not involve the
roots, every choice of roots gives the same function
(Cslib.AffineDisperser.traceSymBits_rootBasis_eq_explicitDisperser): the root chosen in
Cslib.AffineDisperser.binaryRoot does not matter.
Main definitions #
Cslib.AffineDisperser.monomialTable: the multiplication table of a monomial basis.Cslib.AffineDisperser.explicitTable: the multiplication table of the explicit field.Cslib.AffineDisperser.rootBasis: the monomial basis in any roots of the irreducible polynomials.Cslib.AffineDisperser.explicitDisperserProgram: the explicit disperser, as a computable function on bit lists.
Main results #
Cslib.AffineDisperser.isMulTable_monomialTable: the monomial table is a multiplication table.Cslib.AffineDisperser.traceSymCoords_explicitTable: the coordinate computation with the explicit table is the explicit disperser.Cslib.AffineDisperser.traceSymBits_rootBasis_eq_explicitDisperser: independence of the roots.Cslib.AffineDisperser.explicitDisperserProgram_eq: the function computes the explicit disperser.
References #
The multiplication table of a monomial basis #
Coordinate v of the product of the monomials u and w (numbered in the mixed radix ms):
the product over the factors i of the coefficient of X ^ vᵢ in the remainder of
X ^ (uᵢ + wᵢ), read from the table R i of remainders of powers.
Instances For
The monomial table is a multiplication table: for roots αᵢ whose powers αᵢ ^ e,
e < 2 mᵢ, have the coordinates R i e in the power basis, monomialTable ms R is the
multiplication table of the monomial basis, numbered by finPiFinEquiv.
The explicit field #
The codes searched for the irreducible polynomials on N bits: those below 2 ^ (4 L + 1),
which contain the codes of all polynomials of degree at most 4 L.
Instances For
The monomial basis of ExplicitField N in any roots α j of the least-code irreducible
polynomials of the prime degrees.
Instances For
The computable function #
The coordinate computation with the explicit table is the explicit disperser on the first
N bits of x (missing bits are zero).
The choice of roots does not matter: the monomial basis in any roots of the least-code
irreducible polynomials gives the explicit disperser. In particular the root chosen by
binaryRoot is immaterial.
The explicit disperser as a computable function on bit lists: the input length N fixes
the parameters, and the function finds the irreducible polynomials, builds the multiplication table
and evaluates traceSym 1 r t in coordinates.
Instances For
The computable function is the explicit disperser.