Intermediate fields #
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 field -
subfield.to_intermediate_field
: turns a subfield containing the image ofK
into an intermediate field -
intermediate_field.map
: map an intermediate field along analg_hom
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
.
Reinterpret an intermediate_field
as a subfield
.
Equations
- intermediate_field.set_like = {coe := λ (S : intermediate_field K L), S.to_subalgebra.carrier, coe_injective' := _}
Two intermediate fields are equal if they have the same elements.
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 is closed under scalar multiplication.
An intermediate field contains the ring's 1.
An intermediate field contains the ring's 0.
An intermediate field is closed under multiplication.
An intermediate field is closed under addition.
An intermediate field is closed under subtraction
An intermediate field is closed under negation.
An intermediate field is closed under inverses.
An intermediate field is closed under division.
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 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
.
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 embedding from an intermediate field of L / K
to L
.
Equations
- S.val = S.to_subalgebra.val
Lift an intermediate_field of an intermediate_field
Lift an intermediate_field of an intermediate_field
Equations
- E.lift2 = {to_subalgebra := {carrier := E.to_subalgebra.carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}, neg_mem' := _, inv_mem' := _}
Equations
Equations
lift2
is isomorphic to the original intermediate_field
.
Equations
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' := _}