HepLean Documentation

Mathlib.FieldTheory.SplittingField.IsSplittingField

Splitting fields #

This file introduces the notion of a splitting field of a polynomial and provides an embedding from a splitting field to any field that splits the polynomial. A polynomial f : K[X] splits over a field extension L of K if it is zero or all of its irreducible factors over L have degree 1. A field extension of K of a polynomial f : K[X] is called a splitting field if it is the smallest field extension of K such that f splits.

Main definitions #

Main statements #

class Polynomial.IsSplittingField (K : Type v) (L : Type w) [Field K] [Field L] [Algebra K L] (f : Polynomial K) :

Typeclass characterising splitting fields.

Instances
    theorem Polynomial.IsSplittingField.splits' {K : Type v} {L : Type w} :
    ∀ {inst : Field K} {inst_1 : Field L} {inst_2 : Algebra K L} {f : Polynomial K} [self : Polynomial.IsSplittingField K L f], Polynomial.Splits (algebraMap K L) f
    theorem Polynomial.IsSplittingField.adjoin_rootSet' {K : Type v} {L : Type w} :
    ∀ {inst : Field K} {inst_1 : Field L} {inst_2 : Algebra K L} {f : Polynomial K} [self : Polynomial.IsSplittingField K L f], Algebra.adjoin K (f.rootSet L) =
    Equations
    • =
    theorem Polynomial.IsSplittingField.mul {F : Type u} {K : Type v} (L : Type w) [Field K] [Field L] [Field F] [Algebra K L] [Algebra F K] [Algebra F L] [IsScalarTower F K L] (f : Polynomial F) (g : Polynomial F) (hf : f 0) (hg : g 0) [Polynomial.IsSplittingField F K f] [Polynomial.IsSplittingField K L (Polynomial.map (algebraMap F K) g)] :
    def Polynomial.IsSplittingField.lift {F : Type u} {K : Type v} (L : Type w) [Field K] [Field L] [Field F] [Algebra K L] [Algebra K F] (f : Polynomial K) [Polynomial.IsSplittingField K L f] (hf : Polynomial.Splits (algebraMap K F) f) :

    Splitting field of f embeds into any field that splits f.

    Equations
    Instances For
      theorem Polynomial.IsSplittingField.adjoin_rootSet_eq_range {F : Type u} {K : Type v} (L : Type w) [Field K] [Field L] [Field F] [Algebra K L] [Algebra K F] (f : Polynomial K) [Polynomial.IsSplittingField K L f] (i : L →ₐ[K] F) :
      Algebra.adjoin K (f.rootSet F) = i.range
      theorem IntermediateField.splits_of_splits {K : Type v} {L : Type w} [Field K] [Field L] [Algebra K L] {p : Polynomial K} {F : IntermediateField K L} (h : Polynomial.Splits (algebraMap K L) p) (hF : xp.rootSet L, x F) :
      theorem IntermediateField.splits_iff_mem {K : Type v} {L : Type w} [Field K] [Field L] [Algebra K L] {p : Polynomial K} {F : IntermediateField K L} (h : Polynomial.Splits (algebraMap K L) p) :
      Polynomial.Splits (algebraMap K F) p xp.rootSet L, x F
      theorem IsIntegral.mem_intermediateField_of_minpoly_splits {K : Type v} {L : Type w} [Field K] [Field L] [Algebra K L] {x : L} (int : IsIntegral K x) {F : IntermediateField K L} (h : Polynomial.Splits (algebraMap K F) (minpoly K x)) :
      x F