Normal field extensions #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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
whereK
is a field extension ofF
.
- is_algebraic' : algebra.is_algebraic F K
- splits' : ∀ (x : K), polynomial.splits (algebra_map F 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
.
Restrict algebra homomorphism to image of normal subfield
Restrict algebra homomorphism to normal subfield
Equations
- ϕ.restrict_normal E = ((alg_equiv.of_injective_field (is_scalar_tower.to_alg_hom F E K₂)).symm.to_alg_hom.comp (ϕ.restrict_normal_aux E)).comp (alg_equiv.of_injective_field (is_scalar_tower.to_alg_hom F E K₁)).to_alg_hom
Restrict algebra homomorphism to normal subfield (alg_equiv
version)
Equations
- ϕ.restrict_normal' E = alg_equiv.of_bijective (ϕ.restrict_normal E) _
Restrict algebra isomorphism to a normal subfield
Equations
- χ.restrict_normal E = χ.to_alg_hom.restrict_normal' E
Restriction to an normal subfield as a group homomorphism
Equations
- alg_equiv.restrict_normal_hom E = monoid_hom.mk' (λ (χ : K₁ ≃ₐ[F] K₁), χ.restrict_normal E) _
If K₁/E/F
is a tower of fields with E/F
normal then normal.alg_hom_equiv_aut
is an
equivalence.
Equations
- normal.alg_hom_equiv_aut F K₁ E = {to_fun := λ (σ : E →ₐ[F] K₁), σ.restrict_normal' E, inv_fun := λ (σ : E ≃ₐ[F] E), (is_scalar_tower.to_alg_hom F E K₁).comp σ.to_alg_hom, left_inv := _, right_inv := _}
If E/Kᵢ/F
are towers of fields with E/F
normal then we can lift
an algebra homomorphism ϕ : K₁ →ₐ[F] K₂
to ϕ.lift_normal E : E →ₐ[F] E
.
Equations
- ϕ.lift_normal E = alg_hom.restrict_scalars F _.some
If E/Kᵢ/F
are towers of fields with E/F
normal then we can lift
an algebra isomorphism ϕ : K₁ ≃ₐ[F] K₂
to ϕ.lift_normal E : E ≃ₐ[F] E
.
Equations
- χ.lift_normal E = alg_equiv.of_bijective (χ.to_alg_hom.lift_normal E) _
The normal closure of K
in L
.
Equations
- normal_closure F K L = {to_subalgebra := {carrier := (⨆ (f : K →ₐ[F] L), f.field_range).to_subfield.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := _}