Intermediate fields #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
Let L / K be a field extension, given as an instance algebra K L.
This file defines the type of fields in between K and L, intermediate_field K L.
An intermediate_field K L is a subfield of L which contains (the image of) K,
i.e. it is a subfield L and a subalgebra K L.
Main definitions #
intermediate_field K L: the type of intermediate fields betweenKandL.subalgebra.to_intermediate_field: turns a subalgebra closed under⁻¹into an intermediate fieldsubfield.to_intermediate_field: turns a subfield containing the image ofKinto an intermediate fieldintermediate_field.map: map an intermediate field along analg_homintermediate_field.restrict_scalars: restrict the scalars of an intermediate field to a smaller field in a tower of fields.
Implementation notes #
Intermediate fields are defined with a structure extending subfield and subalgebra.
A subalgebra is closed under all operations except ⁻¹,
Tags #
intermediate field, field extension
- to_subalgebra : subalgebra K L
- neg_mem' : ∀ (x : L), x ∈ self.to_subalgebra.carrier → -x ∈ self.to_subalgebra.carrier
- inv_mem' : ∀ (x : L), x ∈ self.to_subalgebra.carrier → x⁻¹ ∈ self.to_subalgebra.carrier
S : intermediate_field K L is a subset of L such that there is a field
tower L / S / K.
Instances for intermediate_field
Reinterpret an intermediate_field as a subfield.
Equations
- intermediate_field.set_like = {coe := λ (S : intermediate_field K L), S.to_subalgebra.carrier, coe_injective' := _}
Copy of an intermediate field with a new carrier equal to the old one. Useful to fix
definitional equalities.
Equations
- S.copy s hs = {to_subalgebra := S.to_subalgebra.copy s hs, neg_mem' := _, inv_mem' := _}
Lemmas inherited from more general structures #
The declarations in this section derive from the fact that an intermediate_field is also a
subalgebra or subfield. Their use should be replaceable with the corresponding lemma from a
subobject class.
An intermediate field contains the image of the smaller field.
An intermediate field contains the ring's 1.
An intermediate field contains the ring's 0.
Product of a multiset of elements in an intermediate field is in the intermediate_field.
Sum of a multiset of elements in a intermediate_field is in the intermediate_field.
Product of elements of an intermediate field indexed by a finset is in the intermediate_field.
Sum of elements in a intermediate_field indexed by a finset is in the intermediate_field.
Turn a subalgebra closed under inverses into an intermediate field
Equations
- S.to_intermediate_field inv_mem = {to_subalgebra := {carrier := S.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := inv_mem}
Turn a subalgebra satisfying is_field into an intermediate_field
Equations
- S.to_intermediate_field' hS = S.to_intermediate_field _
Turn a subfield of L containing the image of K into an intermediate field
Equations
- S.to_intermediate_field algebra_map_mem = {to_subalgebra := {carrier := S.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := algebra_map_mem}, neg_mem' := _, inv_mem' := _}
An intermediate field inherits a field structure
Equations
- S.to_field = S.to_subfield.to_field
intermediate_fields inherit structure from their subalgebra coercions.
Equations
- S.module' = S.to_subalgebra.module'
Equations
- S.module = S.to_subalgebra.module
Equations
Equations
- S.algebra = S.to_subalgebra.algebra
Equations
Specialize is_scalar_tower_mid to the common case where the top field is L
If f : L →+* L' fixes K, S.map f is the intermediate field between L' and K
such that x ∈ S ↔ f x ∈ S.map f.
Equations
- intermediate_field.map f S = {to_subalgebra := {carrier := (subalgebra.map f S.to_subalgebra).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := _}
Instances for ↥intermediate_field.map
Given an equivalence e : L ≃ₐ[K] L' of K-field extensions and an intermediate
field E of L/K, intermediate_field_equiv_map e E is the induced equivalence
between E and E.map e
Equations
The range of an algebra homomorphism, as an intermediate field.
Equations
- f.field_range = {to_subalgebra := {carrier := f.range.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := _}
The embedding from an intermediate field of L / K to L.
Equations
- S.val = S.to_subalgebra.val
The map E → F when E is an intermediate field contained in the intermediate field F.
This is the intermediate field version of subalgebra.inclusion.
Equations
Lift an intermediate_field of an intermediate_field
Equations
- E.lift = intermediate_field.map F.val E
Equations
Given a tower L / ↥E / L' / K of field extensions, where E is an L'-intermediate field of
L, reinterpret E as a K-intermediate field of L.
Equations
- intermediate_field.restrict_scalars K E = {to_subalgebra := {carrier := E.to_subalgebra.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := _}
If L/K is algebraic, the K-subalgebras of L are all fields.
Equations
- subalgebra_equiv_intermediate_field alg = {to_equiv := {to_fun := λ (S : subalgebra K L), S.to_intermediate_field _, inv_fun := λ (S : intermediate_field K L), S.to_subalgebra, left_inv := _, right_inv := _}, map_rel_iff' := _}