Module docstring
{"# Results on finite dimensionality and algebraicity of intermediate fields. "}
{"# Results on finite dimensionality and algebraicity of intermediate fields. "}
IntermediateField.coe_isIntegral_iff
theorem
{R : Type*} [CommRing R] [Algebra R K] [Algebra R L] [IsScalarTower R K L] {x : S} :
IsIntegral R (x : L) ↔ IsIntegral R x
theorem IntermediateField.coe_isIntegral_iff {R : Type*} [CommRing R] [Algebra R K] [Algebra R L]
[IsScalarTower R K L] {x : S} : IsIntegralIsIntegral R (x : L) ↔ IsIntegral R x :=
isIntegral_algHom_iff (S.val.restrictScalars R) Subtype.val_injective
Subalgebra.IsAlgebraic.toIntermediateField
definition
{S : Subalgebra K L} (hS : S.IsAlgebraic) : IntermediateField K L
/-- Turn an algebraic subalgebra into an intermediate field, `Subalgebra.IsAlgebraic` version. -/
def Subalgebra.IsAlgebraic.toIntermediateField {S : Subalgebra K L} (hS : S.IsAlgebraic) :
IntermediateField K L where
toSubalgebra := S
inv_mem' x hx := Algebra.adjoin_le_iff.mpr
(Set.singleton_subset_iff.mpr hx) (hS x hx).isIntegral.inv_mem_adjoin
Algebra.IsAlgebraic.toIntermediateField
abbrev
(S : Subalgebra K L) [Algebra.IsAlgebraic K S] : IntermediateField K L
/-- Turn an algebraic subalgebra into an intermediate field, `Algebra.IsAlgebraic` version. -/
abbrev Algebra.IsAlgebraic.toIntermediateField (S : Subalgebra K L) [Algebra.IsAlgebraic K S] :
IntermediateField K L := (S.isAlgebraic_iff.mpr ‹_›).toIntermediateField
IntermediateField.isAlgebraic_tower_bot
instance
[Algebra.IsAlgebraic K L] : Algebra.IsAlgebraic K S
instance isAlgebraic_tower_bot [Algebra.IsAlgebraic K L] : Algebra.IsAlgebraic K S :=
Algebra.IsAlgebraic.of_injective S.val S.val.injective
IntermediateField.isAlgebraic_tower_top
instance
[Algebra.IsAlgebraic K L] : Algebra.IsAlgebraic S L
instance isAlgebraic_tower_top [Algebra.IsAlgebraic K L] : Algebra.IsAlgebraic S L :=
Algebra.IsAlgebraic.tower_top (K := K) S
IntermediateField.finiteDimensional_left
instance
[FiniteDimensional K L] : FiniteDimensional K F
instance finiteDimensional_left [FiniteDimensional K L] : FiniteDimensional K F := .left K F L
IntermediateField.finiteDimensional_right
instance
[FiniteDimensional K L] : FiniteDimensional F L
instance finiteDimensional_right [FiniteDimensional K L] : FiniteDimensional F L := .right K F L
IntermediateField.rank_eq_rank_subalgebra
theorem
: Module.rank K F.toSubalgebra = Module.rank K F
@[simp]
theorem rank_eq_rank_subalgebra : Module.rank K F.toSubalgebra = Module.rank K F :=
rfl
IntermediateField.finrank_eq_finrank_subalgebra
theorem
: finrank K F.toSubalgebra = finrank K F
@[simp]
theorem finrank_eq_finrank_subalgebra : finrank K F.toSubalgebra = finrank K F :=
rfl
IntermediateField.isAlgebraic_iff
theorem
{x : S} : IsAlgebraic K x ↔ IsAlgebraic K (x : L)
theorem isAlgebraic_iff {x : S} : IsAlgebraicIsAlgebraic K x ↔ IsAlgebraic K (x : L) :=
(isAlgebraic_algebraMap_iff (algebraMap S L).injective).symm
IntermediateField.isIntegral_iff
theorem
{x : S} : IsIntegral K x ↔ IsIntegral K (x : L)
theorem isIntegral_iff {x : S} : IsIntegralIsIntegral K x ↔ IsIntegral K (x : L) :=
(isIntegral_algHom_iff S.val S.val.injective).symm
IntermediateField.minpoly_eq
theorem
(x : S) : minpoly K x = minpoly K (x : L)
theorem minpoly_eq (x : S) : minpoly K x = minpoly K (x : L) :=
(minpoly.algebraMap_eq (algebraMap S L).injective x).symm
subalgebraEquivIntermediateField
definition
[Algebra.IsAlgebraic K L] : Subalgebra K L ≃o IntermediateField K L
/-- If `L/K` is algebraic, the `K`-subalgebras of `L` are all fields. -/
def subalgebraEquivIntermediateField [Algebra.IsAlgebraic K L] :
SubalgebraSubalgebra K L ≃o IntermediateField K L where
toFun S := S.toIntermediateField fun x hx => S.inv_mem_of_algebraic
(Algebra.IsAlgebraic.isAlgebraic ((⟨x, hx⟩ : S) : L))
invFun S := S.toSubalgebra
left_inv _ := toSubalgebra_toIntermediateField _ _
right_inv := toIntermediateField_toSubalgebra
map_rel_iff' := Iff.rfl
mem_subalgebraEquivIntermediateField
theorem
[Algebra.IsAlgebraic K L] {S : Subalgebra K L} {x : L} : x ∈ subalgebraEquivIntermediateField S ↔ x ∈ S
@[simp]
theorem mem_subalgebraEquivIntermediateField [Algebra.IsAlgebraic K L] {S : Subalgebra K L}
{x : L} : x ∈ subalgebraEquivIntermediateField Sx ∈ subalgebraEquivIntermediateField S ↔ x ∈ S :=
Iff.rfl
mem_subalgebraEquivIntermediateField_symm
theorem
[Algebra.IsAlgebraic K L] {S : IntermediateField K L} {x : L} : x ∈ subalgebraEquivIntermediateField.symm S ↔ x ∈ S
@[simp]
theorem mem_subalgebraEquivIntermediateField_symm [Algebra.IsAlgebraic K L]
{S : IntermediateField K L} {x : L} :
x ∈ subalgebraEquivIntermediateField.symm Sx ∈ subalgebraEquivIntermediateField.symm S ↔ x ∈ S :=
Iff.rfl