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 KwhereKis 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.
A compositum of normal extensions is normal
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' := _}