Documentation

MIPRE.Foundations.LowDegree.NormalBasis

A self-dual normal basis exists in characteristic two and odd degree #

This is the existence half of blueprint lem:self-dual-basis: over a finite field of characteristic two, an extension of odd degree admits a basis that is simultaneously normal (a Frobenius orbit) and self-dual for the trace form.

The argument is the short one. Fix the normal element α Mathlib's normal basis theorem supplies and let c ∈ F[G], G = Gal(K/F), be its Gram element, with c_g = tr(α · gα). Writing ofAlg a for the element with normal-basis coordinates a, the Gram element transforms as gramPair (ofAlg a) (ofAlg a) = a · τa · c, where τ is the involution induced by g ↦ g⁻¹ (gramPair_ofAlg). Nondegeneracy of the trace form makes c a unit (isUnit_gram), and c is τ-fixed, hence so is c⁻¹. Since |G| = [K : F] is odd and the characteristic is two, squaring is bijective on F[G] (mul_self_bijective'), so exists_mul_involute_eq of MIPRE.Foundations.LowDegree.SelfDualize produces a with a · τa = c⁻¹. Then β = ofAlg a has Gram element 1, i.e. its Frobenius orbit is orthonormal.

What is not here is the poly(k) algorithm that produces such a basis; the blueprint's lem:self-dual-basis still waits on that half.

Squaring on a group algebra, multiplicatively #

theorem MIPRE.LowDegree.mul_self_injective {G : Type u_1} [CommGroup G] [Fintype G] (hG : Odd (Fintype.card G)) :
Function.Injective fun (g : G) => g * g

In a finite abelian group of odd order, squaring is injective.

theorem MIPRE.LowDegree.two_eq_zero' {G : Type u_1} [CommGroup G] {F : Type u_2} [Field F] (hF : CharP F 2) :
2 = 0
theorem MIPRE.LowDegree.coeff_mul_self' {G : Type u_1} [CommGroup G] [Fintype G] [DecidableEq G] {F : Type u_2} [Field F] (hF : CharP F 2) (hG : Odd (Fintype.card G)) (z : MonoidAlgebra F G) (g : G) :
(z * z).coeff (g * g) = z.coeff g * z.coeff g

The coefficient of a square, at a squared index.

theorem MIPRE.LowDegree.mul_self_bijective' {G : Type u_1} [CommGroup G] [Fintype G] [DecidableEq G] {F : Type u_2} [Field F] [Fintype F] (hF : CharP F 2) (hG : Odd (Fintype.card G)) :
Function.Bijective fun (x : MonoidAlgebra F G) => x * x

Squaring is bijective on F[G], multiplicatively.

The Gram element of a Frobenius orbit #

noncomputable def MIPRE.LowDegree.normalElt (F : Type u_1) (K : Type u_2) [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] :
K

The normal element Mathlib's normal basis theorem supplies.

Equations
Instances For
    noncomputable def MIPRE.LowDegree.galStar (F : Type u_1) (K : Type u_2) [Field F] [Field K] [Algebra F K] [Finite K] :
    MonoidAlgebra F Gal(K/F) ≃+* MonoidAlgebra F Gal(K/F)

    The involution of the group algebra induced by g ↦ g⁻¹.

    Equations
    Instances For
      noncomputable def MIPRE.LowDegree.gramPair (F : Type u_1) (K : Type u_2) [Field F] [Field K] [Algebra F K] [FiniteDimensional F K] (x y : K) :
      MonoidAlgebra F Gal(K/F)

      The Gram element of a pair: its coefficient at g is tr(x · g y). For x = y the Gram matrix of the Frobenius orbit of x is the circulant this determines.

      Equations
      Instances For
        noncomputable def MIPRE.LowDegree.ofAlg (F : Type u_1) (K : Type u_2) [Field F] [Field K] [Algebra F K] [FiniteDimensional F K] [IsGalois F K] (a : MonoidAlgebra F Gal(K/F)) :
        K

        The element of K with normal-basis coordinates a.

        Equations
        Instances For
          @[simp]
          theorem MIPRE.LowDegree.coeff_gramPair {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [FiniteDimensional F K] (x y : K) (g : Gal(K/F)) :
          (gramPair F K x y).coeff g = (Algebra.trace F K) (x * g y)
          @[simp]
          theorem MIPRE.LowDegree.coeff_galStar {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] (a : MonoidAlgebra F Gal(K/F)) (g : Gal(K/F)) :
          ((galStar F K) a).coeff g = a.coeff g⁻¹
          theorem MIPRE.LowDegree.normalBasis_eq {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (g : Gal(K/F)) :
          theorem MIPRE.LowDegree.trace_algEquiv {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [FiniteDimensional F K] [IsGalois F K] (σ : Gal(K/F)) (x : K) :
          (Algebra.trace F K) (σ x) = (Algebra.trace F K) x

          The trace is invariant under the Galois action.

          theorem MIPRE.LowDegree.trace_orbit {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (σ τ : Gal(K/F)) (x : K) :
          (Algebra.trace F K) (σ x * τ x) = (Algebra.trace F K) (x * (σ⁻¹ * τ) x)

          The trace pairing of two members of one Frobenius orbit depends only on their ratio.

          theorem MIPRE.LowDegree.ofAlg_eq {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (a : MonoidAlgebra F Gal(K/F)) :
          ofAlg F K a = ∑ g : Gal(K/F), a.coeff g • g (normalElt F K)
          theorem MIPRE.LowDegree.gramPair_ofAlg {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (a b : MonoidAlgebra F Gal(K/F)) :
          gramPair F K (ofAlg F K a) (ofAlg F K b) = a * (galStar F K) b * gramPair F K (normalElt F K) (normalElt F K)

          The Gram element transforms by a ↦ a · τa · c. This is the identity the whole self-dualization rests on: the Gram matrix of the orbit of ofAlg a is the circulant of a · τ a · c, where c is the Gram element of the normal element itself.

          The Gram element is a unit #

          theorem MIPRE.LowDegree.galStar_galStar {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] (a : MonoidAlgebra F Gal(K/F)) :
          (galStar F K) ((galStar F K) a) = a
          theorem MIPRE.LowDegree.galStar_gramPair_self {F : Type u_1} {K : Type u_2} [Field F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (x : K) :
          (galStar F K) (gramPair F K x x) = gramPair F K x x

          The Gram element of an orbit is fixed by the involution: the Gram matrix is symmetric.

          theorem MIPRE.LowDegree.isUnit_gram {F : Type u_1} {K : Type u_2} [Field F] [Fintype F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] :

          The Gram element of a normal element is a unit: the Gram matrix of a basis under the nondegenerate trace form is invertible.

          A self-dual normal element, and the basis #

          theorem MIPRE.LowDegree.exists_gramPair_eq_one (F : Type u_1) (K : Type u_2) [Field F] [Fintype F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (hF : CharP F 2) (hodd : Odd (Module.finrank F K)) :
          ∃ (β : K), gramPair F K β β = 1

          A self-dual normal element. In characteristic two and odd degree there is a β whose Frobenius orbit is orthonormal for the trace form. This is exists_mul_involute_eq applied to the inverse of the Gram element, which is fixed by the involution because the Gram element is and inverses are unique.

          theorem MIPRE.LowDegree.trace_frobOrbit_self {F : Type u_1} {K : Type u_2} [Field F] [Fintype F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] {β : K} (hβ : gramPair F K β β = 1) {i j : ℕ} (h : FiniteField.frobeniusAlgEquivOfAlgebraic F K ^ i = FiniteField.frobeniusAlgEquivOfAlgebraic F K ^ j) :
          (Algebra.trace F K) (β ^ Fintype.card F ^ i * β ^ Fintype.card F ^ j) = 1

          The Frobenius orbit of a self-dual normal element is orthonormal: the diagonal.

          theorem MIPRE.LowDegree.trace_frobOrbit_ne {F : Type u_1} {K : Type u_2} [Field F] [Fintype F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] {β : K} (hβ : gramPair F K β β = 1) {i j : ℕ} (h : FiniteField.frobeniusAlgEquivOfAlgebraic F K ^ i ≠ FiniteField.frobeniusAlgEquivOfAlgebraic F K ^ j) :
          (Algebra.trace F K) (β ^ Fintype.card F ^ i * β ^ Fintype.card F ^ j) = 0

          The Frobenius orbit of a self-dual normal element is orthonormal: off the diagonal.

          theorem MIPRE.LowDegree.exists_isSelfDualBasis_isNormalBasis (F : Type u_1) (K : Type u_2) [Field F] [Fintype F] [Field K] [Algebra F K] [Finite K] [FiniteDimensional F K] [IsGalois F K] (hF : CharP F 2) (hodd : Odd (Module.finrank F K)) :

          A self-dual normal basis exists when the characteristic is two and the degree is odd (the existence half of blueprint lem:self-dual-basis).

          A self-dual normal basis of 𝔽_{2^k} over 𝔽₂ exists for every odd k --- the existence half of blueprint lem:self-dual-basis, on Mathlib's normal basis theorem and the self-dualization of lem:group-algebra-selfdualization.