mathlibdocumentation

field_theory.normal

Normal field extensions #

In this file we define normal field extensions and prove that for a finite extension, being normal is the same as being a splitting field (normal.of_is_splitting_field and normal.exists_is_splitting_field).

Main Definitions #

• normal F K where K is a field extension of F.
@[class]
structure normal (F : Type u_1) (K : Type u_2) [field F] [field K] [ K] :
Prop
• is_integral' : ∀ (x : K), x
• splits' : ∀ (x : K), (minpoly F x)

Typeclass for normal field extension: K is a normal extension of F iff the minimal polynomial of every element x in K splits in K, i.e. every conjugate of x is in K.

Instances
theorem normal.is_integral {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (h : K) (x : K) :
x
theorem normal.splits {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (h : K) (x : K) :
(minpoly F x)
theorem normal_iff {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] :
K ∀ (x : K), x (minpoly F x)
theorem normal.out {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] :
K∀ (x : K), x (minpoly F x)
@[protected, instance]
def normal_self (F : Type u_1) [field F] :
F
theorem normal.exists_is_splitting_field (F : Type u_1) (K : Type u_2) [field F] [field K] [ K] [h : K] [ K] :
∃ (p : ,
theorem normal.tower_top_of_normal (F : Type u_1) (K : Type u_2) [field F] [field K] [ K] (E : Type u_3) [field E] [ E] [ E] [ E] [h : E] :
E
theorem alg_hom.normal_bijective (F : Type u_1) (K : Type u_2) [field F] [field K] [ K] (E : Type u_3) [field E] [ E] [ E] [ E] [h : E] (ϕ : E →ₐ[F] K) :
theorem normal.of_alg_equiv {F : Type u_1} [field F] {E : Type u_3} [field E] [ E] {E' : Type u_4} [field E'] [ E'] [h : E] (f : E ≃ₐ[F] E') :
E'
theorem alg_equiv.transfer_normal {F : Type u_1} [field F] {E : Type u_3} [field E] [ E] {E' : Type u_4} [field E'] [ E'] (f : E ≃ₐ[F] E') :
E E'
theorem normal.of_is_splitting_field {F : Type u_1} [field F] {E : Type u_3} [field E] [ E] (p : polynomial F) [hFEp : p] :
E
@[protected, instance]
def polynomial.splitting_field.normal {F : Type u_1} [field F] (p : polynomial F) :
def alg_hom.restrict_normal_aux {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [h : E] :

Restrict algebra homomorphism to image of normal subfield

Equations
noncomputable def alg_hom.restrict_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [ E] :

Restrict algebra homomorphism to normal subfield

Equations
@[simp]
theorem alg_hom.restrict_normal_commutes {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [ E] (x : E) :
K) ((ϕ.restrict_normal E) x) = ϕ ( K) x)
theorem alg_hom.restrict_normal_comp {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ ψ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [ E] :
noncomputable def alg_equiv.restrict_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [h : E] :

Restrict algebra isomorphism to a normal subfield

Equations
@[simp]
theorem alg_equiv.restrict_normal_commutes {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [ E] (x : E) :
K) ((χ.restrict_normal E) x) = χ ( K) x)
theorem alg_equiv.restrict_normal_trans {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ ω : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ K] [ K] [ E] :
noncomputable def alg_equiv.restrict_normal_hom {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (E : Type u_3) [field E] [ E] [ K] [ K] [ E] :
(K ≃ₐ[F] K) →* E ≃ₐ[F] E

Restriction to an normal subfield as a group homomorphism

Equations
noncomputable def alg_hom.lift_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [h : E] :

If E/K/F is a tower of fields with E/F normal then we can lift an algebra homomorphism ϕ : K →ₐ[F] K to ϕ.lift_normal E : E →ₐ[F] E.

Equations
@[simp]
theorem alg_hom.lift_normal_commutes {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [ E] (x : K) :
(ϕ.lift_normal E) ( E) x) = E) (ϕ x)
@[simp]
theorem alg_hom.restrict_lift_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (ϕ : K →ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [ K] [ E] :
noncomputable def alg_equiv.lift_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [ E] :

If E/K/F is a tower of fields with E/F normal then we can lift an algebra isomorphism ϕ : K ≃ₐ[F] K to ϕ.lift_normal E : E ≃ₐ[F] E.

Equations
@[simp]
theorem alg_equiv.lift_normal_commutes {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [ E] (x : K) :
(χ.lift_normal E) ( E) x) = E) (χ x)
@[simp]
theorem alg_equiv.restrict_lift_normal {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (χ : K ≃ₐ[F] K) (E : Type u_3) [field E] [ E] [ E] [ E] [ K] [ E] :
theorem alg_equiv.restrict_normal_hom_surjective {F : Type u_1} {K : Type u_2} [field F] [field K] [ K] (E : Type u_3) [field E] [ E] [ E] [ E] [ K] [ E] :
theorem is_solvable_of_is_scalar_tower (F : Type u_1) (K : Type u_2) [field F] [field K] [ K] (E : Type u_3) [field E] [ E] [ E] [ E] [ K] [h1 : is_solvable (K ≃ₐ[F] K)] [h2 : is_solvable (E ≃ₐ[K] E)] :