Documentation

Complexity.Foundations.FieldTheory.Finite.LinearizedPolynomial

Linearized and subspace polynomials over fields of characteristic two #

A polynomial over a field of characteristic two is linearized when every exponent occurring in it is a power of two. Such a polynomial evaluates to an additive, hence ๐”ฝโ‚‚-linear, function. The subspace polynomial โˆ_{c โˆˆ ๐”ฝโ‚‚แต} (X - โˆ‘ cโ‚— bโ‚—) of a family b is linearized, monic of degree 2 ^ m, and its roots are the ๐”ฝโ‚‚-span of b [Ore33].

Over a finite field F with 2 ^ n elements every ๐”ฝโ‚‚-subspace W of dimension d is the image of a monic linearized polynomial of degree 2 ^ (n - d), its image-subspace polynomial [BenSassonKopparty2012, Lemma 3.7]. Writing that polynomial as โˆ‘_{j โˆˆ โ„ค/n} a j X ^ 2 ^ j, the coefficients vanish at the d - 1 positions above the leading one; the structural lemma [BenSassonKopparty2012, Lemma 3.10] says that, apart from this canonical run, no d - 1 consecutive coefficients vanish unless W lies in a multiple of a proper subfield. We record it for subspaces of dimension larger than every proper subfield, which is how it is used for composite-degree fields.

Main definitions #

Main results #

References #

Linearized polynomials #

def Cslib.IsLinearized {F : Type u_1} [Field F] (P : Polynomial F) :

A polynomial is linearized (over ๐”ฝโ‚‚) when every exponent with a nonzero coefficient is a power of two. Over a field of characteristic two it evaluates to an additive function.

Instances For

    The zero polynomial is linearized.

    theorem Cslib.IsLinearized.add {F : Type u_1} [Field F] {P Q : Polynomial F} (hP : IsLinearized P) (hQ : IsLinearized Q) :

    A sum of linearized polynomials is linearized.

    theorem Cslib.IsLinearized.C_mul {F : Type u_1} [Field F] {P : Polynomial F} (hP : IsLinearized P) (c : F) :

    A constant multiple C c * P of a linearized polynomial is linearized.

    The monomial X ^ 2 ^ j is linearized.

    theorem Cslib.IsLinearized.sq {F : Type u_1} [Field F] {P : Polynomial F} [CharP F 2] (hP : IsLinearized P) :

    In characteristic two, the square of a linearized polynomial is linearized.

    theorem Cslib.IsLinearized.coeff_zero {F : Type u_1} [Field F] {P : Polynomial F} (hP : IsLinearized P) :
    P.coeff 0 = 0

    A linearized polynomial has constant coefficient 0.

    theorem Cslib.IsLinearized.comp_add {F : Type u_1} [Field F] {P : Polynomial F} [CharP F 2] (hP : IsLinearized P) (f g : Polynomial F) :
    P.comp (f + g) = P.comp f + P.comp g

    A linearized polynomial composes additively.

    theorem Cslib.IsLinearized.comp_sub {F : Type u_1} [Field F] {P : Polynomial F} [CharP F 2] (hP : IsLinearized P) (f g : Polynomial F) :
    P.comp (f - g) = P.comp f - P.comp g

    In characteristic two, a linearized polynomial composes subtractively: P.comp (f - g) = P.comp f - P.comp g.

    theorem Cslib.IsLinearized.eval_add {F : Type u_1} [Field F] {P : Polynomial F} [CharP F 2] (hP : IsLinearized P) (x y : F) :

    In characteristic two, a linearized polynomial evaluates additively: P.eval (x + y) = P.eval x + P.eval y.

    theorem Cslib.IsLinearized.eval_zero {F : Type u_1} [Field F] {P : Polynomial F} (hP : IsLinearized P) :

    A linearized polynomial vanishes at 0.

    The ๐”ฝโ‚‚-linear map given by evaluating a linearized polynomial.

    Instances For
      @[simp]
      theorem Cslib.IsLinearized.toLinearMap_apply {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {P : Polynomial F} (hP : IsLinearized P) (x : F) :

      The linear map of a linearized polynomial P sends x to P.eval x.

      Subspace polynomials #

      noncomputable def Cslib.subspacePoly {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) :

      The subspace polynomial โˆ_{c โˆˆ ๐”ฝโ‚‚แต} (X - โˆ‘โ‚— cโ‚— bโ‚—) of a family b of m elements.

      Instances For
        theorem Cslib.monic_subspacePoly {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) :

        The subspace polynomial is monic.

        theorem Cslib.natDegree_subspacePoly {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) :

        The subspace polynomial of a family of m elements has degree 2 ^ m.

        theorem Cslib.subspacePoly_snoc {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) (v : F) :

        The subspace polynomial of Fin.snoc b v is P * P.comp (X - C v) for P the subspace polynomial of b.

        theorem Cslib.isLinearized_subspacePoly {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) :

        Subspace polynomials are linearized [Ore33].

        theorem Cslib.eval_subspacePoly_eq_zero_iff {F : Type u_1} [Field F] [Algebra (ZMod 2) F] {m : โ„•} (b : Fin m โ†’ F) (x : F) :

        The roots of the subspace polynomial of b are the ๐”ฝโ‚‚-span of b.

        theorem Cslib.exists_isLinearized_range_eq {F : Type u_1} [Field F] [Algebra (ZMod 2) F] [Finite F] (W : Submodule (ZMod 2) F) :
        โˆƒ (Q : Polynomial F), IsLinearized Q โˆง Q.Monic โˆง Q.natDegree = 2 ^ (Module.finrank (ZMod 2) F - Module.finrank (ZMod 2) โ†ฅW) โˆง โˆ€ (y : F), y โˆˆ W โ†” โˆƒ (x : F), Polynomial.eval x Q = y

        Image-subspace polynomial [BenSassonKopparty2012, Lemma 3.7]: every ๐”ฝโ‚‚-subspace W of a finite field F is the image of a monic linearized polynomial of degree 2 ^ (dim F - dim W).

        Coefficient vectors indexed by ZMod n #

        def Cslib.linearizedEval {F : Type u_1} [Field F] {n : โ„•} [NeZero n] (a : ZMod n โ†’ F) (x : F) :
        F

        Evaluation of the linearized function x โ†ฆ โˆ‘_{j โˆˆ โ„ค/n} a j * x ^ 2 ^ j. Over a field with 2 ^ n elements every linearized polynomial function has this form.

        Instances For
          theorem Cslib.pow_two_pow_mod {F : Type u_1} [Field F] [Algebra (ZMod 2) F] [Finite F] {n : โ„•} (hn : Module.finrank (ZMod 2) F = n) (x : F) (m : โ„•) :
          x ^ 2 ^ m = x ^ 2 ^ (m % n)

          Frobenius periodicity: in a field with 2 ^ n elements, x ^ 2 ^ m depends only on m % n.

          theorem Cslib.linearizedEval_pow_two_pow {F : Type u_1} [Field F] [Algebra (ZMod 2) F] [Finite F] {n : โ„•} [NeZero n] (hn : Module.finrank (ZMod 2) F = n) (a : ZMod n โ†’ F) (k : โ„•) (x : F) :
          linearizedEval a x ^ 2 ^ k = linearizedEval (fun (j : ZMod n) => a (j - โ†‘k) ^ 2 ^ k) x

          Raising a linearized function to the power 2 ^ k rotates its coefficient vector.

          theorem Cslib.eq_zero_of_linearizedEval_eq_zero {F : Type u_1} [Field F] {n : โ„•} [NeZero n] {b : ZMod n โ†’ F} {m : โ„•} (hb : โˆ€ (j : ZMod n), m โ‰ค j.val โ†’ b j = 0) (S : Finset F) (hS : 2 ^ m โ‰ค S.card) (h : โˆ€ x โˆˆ S, linearizedEval b x = 0) :
          b = 0

          Root bound for linearized functions: if the coefficients of b vanish from position m on and the function vanishes on at least 2 ^ m points, then b = 0.

          theorem Cslib.exists_subfield_card_le {F : Type u_1} [Field F] [Algebra (ZMod 2) F] [Finite F] {n k : โ„•} (hn : Module.finrank (ZMod 2) F = n) (hk0 : 0 < k) (hkn : k < n) (W : Submodule (ZMod 2) F) (c : F) (h : โˆ€ y โˆˆ W, y ^ 2 ^ k = c * y) :
          โˆƒ (K : Subfield F), K โ‰  โŠค โˆง Nat.card โ†ฅW โ‰ค Nat.card โ†ฅK

          If every element y of a subspace W satisfies y ^ 2 ^ k = c * y with 0 < k < n, then W embeds into the proper subfield fixed by the k-th power of Frobenius.

          structure Cslib.CoeffPattern {F : Type u_1} [Field F] (n d : โ„•) [NeZero n] (a : ZMod n โ†’ F) :

          The zero pattern of the coefficient vector a of an image-subspace polynomial of a d-dimensional subspace that lies in no multiple of a proper subfield [BenSassonKopparty2012, Lemma 3.10]: the leading coefficient sits at n - d, the d - 1 positions above it vanish, the constant coefficient is nonzero, and every window of d - 1 consecutive positions starting in [1, n - d] meets a nonzero coefficient.

          • le : d โ‰ค n

            The dimension is at most the degree of the field.

          • lead : a โ†‘(n - d) โ‰  0

            The leading coefficient sits at position n - d.

          • canonical (c : โ„•) : 1 โ‰ค c โ†’ c < d โ†’ a โ†‘(n - d + c) = 0

            The d - 1 positions above the leading one vanish.

          • zero_ne : a 0 โ‰  0

            The constant coefficient is nonzero.

          • gap (ฯ : โ„•) : 1 โ‰ค ฯ โ†’ ฯ + d โ‰ค n โ†’ โˆƒ c < d - 1, a โ†‘(ฯ + c) โ‰  0

            Every window of d - 1 consecutive positions starting in [1, n - d] meets a nonzero coefficient.

          Instances For
            theorem Cslib.exists_coeffPattern {F : Type u_1} [Field F] [Algebra (ZMod 2) F] [Finite F] {n s : โ„•} [NeZero n] (hn : Module.finrank (ZMod 2) F = n) (hs : โˆ€ (K : Subfield F), K โ‰  โŠค โ†’ Nat.card โ†ฅK โ‰ค 2 ^ s) (W : Submodule (ZMod 2) F) (hsW : s < Module.finrank (ZMod 2) โ†ฅW) :
            โˆƒ (a : ZMod n โ†’ F), (โˆ€ (x : F), linearizedEval a x โˆˆ W) โˆง CoeffPattern n (Module.finrank (ZMod 2) โ†ฅW) a

            Structural lemma [BenSassonKopparty2012, Lemma 3.10], for subspaces larger than every proper subfield: a subspace W of dimension greater than s, where every proper subfield has at most 2 ^ s elements, is the image of a linearized function whose coefficient vector has the zero pattern CoeffPattern.