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 betweenK
andL
.subalgebra.to_intermediate_field
: turns a subalgebra closed under⁻¹
into an intermediate fieldsubfield.to_intermediate_field
: turns a subfield containing the image ofK
into an intermediate fieldintermediate_field.map
: map an intermediate field along analg_hom
intermediate_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_field
s 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' := _}