Documentation

LeanPool.QuadraticIterates.Mathlib.FieldTheory.Multiquadratic

Multiquadratic field extensions #

The degree of a multiquadratic extension L(√c₁, …, √cₘ)/L over a field of characteristic ≠ 2 is 2 ^ (m - dim V), where V ≤ 𝔽₂^m is the space of square relations between the radicands, realized as the kernel of a linear map to Lˣ/(Lˣ)²; descent of squares along such extensions.

Auxiliary material for the formalization of M. Stoll, Galois groups over ℚ of some iterated polynomials, Arch. Math. 59 (1992), 239-244; upstreaming candidates for Mathlib.

theorem finrank_adjoin_sq_le {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] {x : E} {c : L} (hc : x ^ 2 = (algebraMap L E) c) :
Module.finrank L Lx 2

Adjoining a single square root x (with x² ∈ L) to a field L gives degree at most 2.

theorem finrank_adjoin_finset_sq_le {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] {s : Finset E} (hs : xs, ∃ (c : L), x ^ 2 = (algebraMap L E) c) :

Adjoining a finite set of square roots (each squaring into L) gives degree at most 2 ^ |s|.

theorem relfinrank_mono {F : Type u_1} [Field F] {E : Type u_2} [Field E] [Algebra F E] {A B C : IntermediateField F E} (hAB : A B) (hBC : B C) [FiniteDimensional A (IntermediateField.extendScalars )] :

Relative degree is monotone in the top field: [B : A] ≤ [C : A] for A ≤ B ≤ C with C/A finite-dimensional.

@[reducible, inline]
abbrev SquareClasses (L : Type u_2) [Field L] :
Type u_2

The group Lˣ/(Lˣ)² of nonzero square classes of the field L, written additively so that it becomes a ZMod 2-module.

Equations
Instances For
    noncomputable def sqClass {L : Type u_1} [Field L] (r : L) :

    The class of a nonzero field element in Lˣ/(Lˣ)² (junk value 0 at r = 0).

    Equations
    Instances For
      theorem sqClass_eq_zero_iff {L : Type u_1} [Field L] {r : L} (hr : r 0) :

      The square class of a nonzero r vanishes iff r is a square in L.

      theorem sqClass_mul {L : Type u_1} [Field L] {r t : L} (hr : r 0) (ht : t 0) :
      theorem sqClass_prod {L : Type u_1} [Field L] {ι : Type u_2} {s : Finset ι} {r : ιL} (hr : is, r i 0) :
      sqClass (∏ is, r i) = is, sqClass (r i)
      @[simp]
      theorem sqClass_zero {L : Type u_1} [Field L] :
      @[simp]
      theorem sqClass_one {L : Type u_1} [Field L] :
      theorem sqClass_zpow {L : Type u_1} [Field L] {x : L} (hx : x 0) (k : ) :
      sqClass (x ^ k) = k sqClass x

      sqClass sends a zpow to a ZMod 2-scalar multiple (the class is written additively).

      theorem isSquare_prod_iff_sum_sqClass_eq_zero {L : Type u_1} [Field L] {ι : Type u_2} {s : Finset ι} {r : ιL} (hr : is, r i 0) :
      IsSquare (∏ is, r i) is, sqClass (r i) = 0

      A product over s is a square iff the classes in Lˣ/(Lˣ)² sum to zero.

      theorem sqClass_prod_zpow {L : Type u_1} [Field L] {ι : Type u_2} {s : Finset ι} {r : ιL} (e : ι) (hr : is, r i 0) :
      sqClass (∏ is, r i ^ e i) = is, e i sqClass (r i)

      sqClass linearises a product of zpows: [∏ rᵢ ^ eᵢ] = ∑ eᵢ • [rᵢ].

      noncomputable def rootRelations {L : Type u_1} [Field L] {ι : Type u_2} [Fintype ι] (r : ιL) :
      Submodule (ZMod 2) (ιZMod 2)

      The 𝔽₂-relation submodule of a finite family of radicands r : ι → L: the kernel of ε ↦ ∑ ε i • [r i] in Lˣ/(Lˣ)². For nonzero radicands, ε is a relation iff ∏_{i : ε i = 1} r i is a square in L (see mem_rootRelations).

      Equations
      Instances For
        theorem mem_rootRelations {L : Type u_1} [Field L] {ι : Type u_2} [Fintype ι] {r : ιL} (hr : ∀ (i : ι), r i 0) {ε : ιZMod 2} :
        ε rootRelations r IsSquare (∏ i : ι with ε i = 1, r i)

        ε is a root relation iff the product of the r i over {i : ε i = 1} is a square in L.

        noncomputable def extendByZeroLM {E : Type u_2} [DecidableEq E] (s : Finset E) :
        (sZMod 2) →ₗ[ZMod 2] EZMod 2

        Extension by zero from (the coercion of) a finite set s, as a ZMod 2-linear map.

        Equations
        Instances For
          noncomputable def multiquadraticRelations {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] (s : Finset E) (c : EL) :
          Submodule (ZMod 2) (EZMod 2)

          The 𝔽₂-relation submodule of a multiquadratic extension: the extension by zero of the relation submodule of the family c|_s (see mem_multiquadraticRelations).

          Equations
          Instances For
            theorem mem_multiquadraticRelations {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] {s : Finset E} {c : EL} (hc : xs, c x 0) {ε : EZMod 2} :
            ε multiquadraticRelations s c (∀ xs, ε x = 0) IsSquare (∏ xs with ε x = 1, c x)

            ε ∈ multiquadraticRelations s c iff ε is supported on s and ∏_{x ∈ s, ε x = 1} c x is a square in L.

            theorem finrank_adjoin_sq_eq {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] {x : E} {c : L} (hc : x ^ 2 = (algebraMap L E) c) [Decidable (IsSquare c)] :
            Module.finrank L Lx = if IsSquare c then 1 else 2

            Adjoining a square root of c gives degree 1 if c is already a square in L, and 2 otherwise.

            theorem square_descent_step {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [Algebra L E] {x : E} {c : L} (hc : x ^ 2 = (algebraMap L E) c) (hx : x) (d : L) :
            (∃ (u : L) (v : L), (algebraMap L E) d = ((algebraMap L E) u + (algebraMap L E) v * x) ^ 2) IsSquare d IsSquare (d * c)

            One-step square descent: over L(x) with x² = c and x ∉ L, the image of d ∈ L is a square iff d or d · c is a square in L.

            theorem isSquare_algebraMap_iff {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] (K : IntermediateField L E) (e : L) :
            IsSquare ((algebraMap L K) e) zK, z ^ 2 = (algebraMap L E) e

            For an intermediate field K of E/L and e : L, the image of e in K is a square iff some element of K squares to the image of e in E.

            theorem not_isSquare_algebraMap_of_sqrt_notMem {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] {K : IntermediateField L E} {e : L} {w : E} (hw : w ^ 2 = (algebraMap L E) e) (hwK : wK) :
            ¬IsSquare ((algebraMap L K) e)

            If w is a square root of algebraMap e lying outside an intermediate field K, then e is not a square in K.

            theorem isSquare_algebraMap_bot_iff {L : Type u_1} [Field L] {E : Type u_2} [Field E] [Algebra L E] (x : L) :

            An element of the base field is a square in the bottom intermediate field iff it is a square in the base field.

            theorem mem_adjoin_simple_sq {F : Type u_1} [Field F] {E : Type u_2} [Field E] [Algebra F E] {y : E} {a : F} (hy : y ^ 2 = (algebraMap F E) a) {z : E} :
            z Fy ∃ (u : F) (v : F), z = (algebraMap F E) u + (algebraMap F E) v * y

            An element of the simple extension F(y) with y² ∈ F is exactly an F-linear combination u + v · y.

            theorem square_descent {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [Algebra L E] {s : Finset E} {c : EL} (hs : ys, y ^ 2 = (algebraMap L E) (c y)) (hc : ys, c y 0) (d : L) :
            (∃ zIntermediateField.adjoin L s, z ^ 2 = (algebraMap L E) d) ts, IsSquare (d * yt, c y)

            Iterated square descent: some element of L(s) squares to d iff d * ∏_{y ∈ t} c y is a square in L for some subset t ⊆ s.

            theorem rootRelations_finrank_le {ι : Type u_1} [Fintype ι] {L : Type u_2} [Field L] (r : ιL) :

            The relation space of an ι-indexed family has 𝔽₂-dimension at most |ι|.

            theorem multiquadraticRelations_finrank_le {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] (s : Finset E) (c : EL) :

            multiquadraticRelations s c has 𝔽₂-dimension at most |s|.

            theorem multiquadraticRelations_finite {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] (s : Finset E) (c : EL) :

            multiquadraticRelations s c is finite-dimensional over 𝔽₂.

            theorem multiquadraticRelations_ker_finrank {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] {s' : Finset E} {y : E} (hys : ys') {c : EL} (hc : xinsert y s', c x 0) (hc' : xs', c x 0) :

            Intersecting V (insert y s') with the hyperplane ε y = 0 recovers V s' (equal 𝔽₂-dimension).

            theorem multiquadraticRelations_ycoord {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [DecidableEq E] [Algebra L E] {s' : Finset E} {y : E} (hys : ys') {c : EL} (hs : xinsert y s', x ^ 2 = (algebraMap L E) (c x)) (hc : xinsert y s', c x 0) :
            (∃ εmultiquadraticRelations (insert y s') c, ε y = 1) IsSquare ((algebraMap L (IntermediateField.adjoin L s')) (c y))

            Some relation of V (insert y s') has y-coordinate 1 iff c y is a square in L(s').

            theorem multiquadraticRelations_insert_finrank {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [DecidableEq E] [Algebra L E] {s' : Finset E} {y : E} (hys : ys') {c : EL} (hs : xinsert y s', x ^ 2 = (algebraMap L E) (c x)) (hc : xinsert y s', c x 0) (hc' : xs', c x 0) [Decidable (IsSquare ((algebraMap L (IntermediateField.adjoin L s')) (c y)))] :

            Adjoining y raises dim V by 1 when c y is a square in L(s'), and leaves it unchanged otherwise.

            theorem multiquadratic_degree {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [DecidableEq E] [Algebra L E] {s : Finset E} {c : EL} (hs : xs, x ^ 2 = (algebraMap L E) (c x)) (hc : xs, c x 0) :

            Degree of a multiquadratic extension: [L(s) : L] = 2 ^ (|s| - dim V), where V is the 𝔽₂-space of square relations among the radicands.

            theorem multiquadratic_degree_insert_of_maximal {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [Algebra L E] {s : Finset E} {w : E} (hws : ws) {c : EL} (hs : xs, x ^ 2 = (algebraMap L E) (c x)) (hsw : w ^ 2 = (algebraMap L E) (c w)) (hc : xs, c x 0) (hcw : c w 0) (hmax : Module.finrank L (IntermediateField.adjoin L s) = 2 ^ s.card) (hwnotsq : ¬IsSquare ((algebraMap L (IntermediateField.adjoin L s)) (c w))) :

            If a multiquadratic family s generates a field of maximal degree 2 ^ |s| and w is a new square root whose radicand is not a square in L(s), then adjoining w doubles the degree.

            theorem multiquadratic_degree_insert_family {n : } {L : Type u_1} [Field L] [NeZero 2] {E : Type u_2} [Field E] [Algebra L E] {x : Fin nE} (hxinj : Function.Injective x) {v : Fin nL} (hx : ∀ (i : Fin n), x i ^ 2 = (algebraMap L E) (v i)) (hv : ∀ (i : Fin n), v i 0) {w : E} (hw : wSet.range x) {c₀ : L} (hwc : w ^ 2 = (algebraMap L E) c₀) (hc₀ : c₀ 0) (hmax : Module.finrank L (IntermediateField.adjoin L (Set.range x)) = 2 ^ n) (hwnotsq : ¬IsSquare ((algebraMap L (IntermediateField.adjoin L (Set.range x))) c₀)) :

            Family form of multiquadratic_degree_insert_of_maximal: a maximal multiquadratic family x of size n (square roots of v) gains a new square root w whose radicand is not a square in L(range x), doubling the degree.

            theorem rootRelations_finrank_reindex {ι : Type u_1} [Fintype ι] {κ : Type u_2} [Fintype κ] {L : Type u_3} [Field L] (r : ιL) (hr : ∀ (i : ι), r i 0) {r' : κL} (hr' : ∀ (j : κ), r' j 0) (e : ι κ) (he : ∀ (i : ι), r' (e i) = r i) :

            The dimension of the relation space is invariant under reindexing the family by a bijection.

            theorem multiquadraticRelations_finrank_eq_rootRelations {L : Type u_1} [Field L] {E : Type u_2} [DecidableEq E] (s : Finset E) (c : EL) :
            Module.finrank (ZMod 2) (multiquadraticRelations s c) = Module.finrank (ZMod 2) (rootRelations fun (x : s) => c x)

            multiquadraticRelations s c has the same 𝔽₂-dimension as the relation space of the restricted family c|_s.

            theorem multiquadratic_degree_family {ι : Type u_1} [Fintype ι] {L : Type u_2} [Field L] [NeZero 2] {E : Type u_3} [Field E] [Algebra L E] {x : ιE} (hxinj : Function.Injective x) {r : ιL} (hx : ∀ (i : ι), x i ^ 2 = (algebraMap L E) (r i)) (hr : ∀ (i : ι), r i 0) :

            Family form of multiquadratic_degree: for an injective family x : ι → E of square roots of nonzero radicands r : ι → L, the degree of L(x i : i) over L is 2 ^ (|ι| - dim rootRelations r).

            theorem rootRelations_invariant {G : Type u_1} [Group G] {ι : Type u_2} [Fintype ι] [MulAction G ι] {L : Type u_3} [Field L] {r : ιL} (hr : ∀ (i : ι), r i 0) (hcompat : ∀ (g : G), ∃ (φ : L ≃+* L), ∀ (j : ι), φ (r j) = r (g j)) (g : G) (v : ιZMod 2) :
            v rootRelations r(fun (i : ι) => v (g⁻¹ i)) rootRelations r

            If every g ∈ G acts on the radicands through a field automorphism, the relation space is invariant under the coordinate action.

            theorem rootRelations_all_ones {G : Type u_1} [Group G] [Finite G] (hG : IsPGroup 2 G) {ι : Type u_2} [Fintype ι] [Nonempty ι] [MulAction G ι] [MulAction.IsPretransitive G ι] {L : Type u_3} [Field L] {r : ιL} (hr : ∀ (i : ι), r i 0) (hcompat : ∀ (g : G), ∃ (φ : L ≃+* L), ∀ (j : ι), φ (r j) = r (g j)) (hne : rootRelations r ) :
            (fun (x : ι) => 1) rootRelations r

            For a finite 2-group acting pretransitively with automorphism-compatible radicands, a nonzero relation space contains the all-ones vector.

            theorem all_ones_mem_rootRelations {ι : Type u_1} [Fintype ι] {L : Type u_2} [Field L] {r : ιL} (hr : ∀ (i : ι), r i 0) :
            (fun (x : ι) => 1) rootRelations r IsSquare (∏ i : ι, r i)

            The all-ones vector is a relation iff ∏ i, r i is a square in L.

            theorem apply_eq_or_eq_neg_of_sq_eq_algebraMap {F : Type u_1} {E : Type u_2} [Field F] [Field E] [Algebra F E] (φ : Gal(E/F)) {y : E} {q : F} (hy : y ^ 2 = (algebraMap F E) q) :
            φ y = y φ y = -y

            An F-automorphism fixes or negates any square root of an element of F.

            theorem algEquiv_adjoin_sq_eq_one {F : Type u_1} {E : Type u_2} [Field F] [Field E] [Algebra F E] {t : Finset E} (ht : yt, ∃ (q : F), y ^ 2 = (algebraMap F E) q) (τ : Gal((IntermediateField.adjoin F t)/F)) :
            τ ^ 2 = 1

            Such a subfield has exponent 2: every F-automorphism of it is an involution.

            theorem isGalois_adjoin_of_sq_eq_algebraMap {F : Type u_1} {E : Type u_2} [Field F] [Field E] [Algebra F E] [Normal F E] [PerfectField F] {t : Finset E} (ht : yt, ∃ (q : F), y ^ 2 = (algebraMap F E) q) :

            A subfield of E generated by square roots of elements of F is Galois over F.