mathlib documentation

field_theory.intermediate_field

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 #

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

structure intermediate_field (K : Type u_1) (L : Type u_2) [field K] [field L] [algebra K L] :
Type u_2

S : intermediate_field K L is a subset of L such that there is a field tower L / S / K.

def intermediate_field.to_subfield {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :

Reinterpret an intermediate_field as a subfield.

Equations
@[instance]
def intermediate_field.set_like {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :
Equations
@[simp]
theorem intermediate_field.mem_carrier {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {s : intermediate_field K L} {x : L} :
@[ext]
theorem intermediate_field.ext {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {S T : intermediate_field K L} (h : ∀ (x : L), x S x T) :
S = T

Two intermediate fields are equal if they have the same elements.

@[simp]
theorem intermediate_field.coe_to_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
@[simp]
theorem intermediate_field.coe_to_subfield {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
@[simp]
theorem intermediate_field.mem_mk {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (s : set L) (hK : ∀ (x : K), (algebra_map K L) x s) (ho : 1 s) (hm : ∀ {a b : L}, a sb sa * b s) (hz : 0 s) (ha : ∀ {a b : L}, a sb sa + b s) (hn : ∀ (x : L), x {carrier := s, one_mem' := ho, mul_mem' := hm, zero_mem' := hz, add_mem' := ha, algebra_map_mem' := hK}.carrier-x {carrier := s, one_mem' := ho, mul_mem' := hm, zero_mem' := hz, add_mem' := ha, algebra_map_mem' := hK}.carrier) (hi : ∀ (x : L), x {carrier := s, one_mem' := ho, mul_mem' := hm, zero_mem' := hz, add_mem' := ha, algebra_map_mem' := hK}.carrierx⁻¹ {carrier := s, one_mem' := ho, mul_mem' := hm, zero_mem' := hz, add_mem' := ha, algebra_map_mem' := hK}.carrier) (x : L) :
x {to_subalgebra := {carrier := s, one_mem' := ho, mul_mem' := hm, zero_mem' := hz, add_mem' := ha, algebra_map_mem' := hK}, neg_mem' := hn, inv_mem' := hi} x s
@[simp]
theorem intermediate_field.mem_to_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (s : intermediate_field K L) (x : L) :
@[simp]
theorem intermediate_field.mem_to_subfield {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (s : intermediate_field K L) (x : L) :
theorem intermediate_field.algebra_map_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x : K) :

An intermediate field contains the image of the smaller field.

theorem intermediate_field.one_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
1 S

An intermediate field contains the ring's 1.

theorem intermediate_field.zero_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
0 S

An intermediate field contains the ring's 0.

theorem intermediate_field.mul_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x y : L} :
x Sy Sx * y S

An intermediate field is closed under multiplication.

theorem intermediate_field.smul_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {y : L} :
y S∀ {x : K}, x y S

An intermediate field is closed under scalar multiplication.

theorem intermediate_field.add_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x y : L} :
x Sy Sx + y S

An intermediate field is closed under addition.

theorem intermediate_field.sub_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x y : L} (hx : x S) (hy : y S) :
x - y S

An intermediate field is closed under subtraction

theorem intermediate_field.neg_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x : L} :
x S-x S

An intermediate field is closed under negation.

theorem intermediate_field.inv_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x : L} :
x Sx⁻¹ S

An intermediate field is closed under inverses.

theorem intermediate_field.div_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x y : L} (hx : x S) (hy : y S) :
x / y S

An intermediate field is closed under division.

theorem intermediate_field.list_prod_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {l : list L} :
(∀ (x : L), x lx S)l.prod S

Product of a list of elements in an intermediate_field is in the intermediate_field.

theorem intermediate_field.list_sum_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {l : list L} :
(∀ (x : L), x lx S)l.sum S

Sum of a list of elements in an intermediate field is in the intermediate_field.

theorem intermediate_field.multiset_prod_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (m : multiset L) :
(∀ (a : L), a ma S)m.prod S

Product of a multiset of elements in an intermediate field is in the intermediate_field.

theorem intermediate_field.multiset_sum_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (m : multiset L) :
(∀ (a : L), a ma S)m.sum S

Sum of a multiset of elements in a intermediate_field is in the intermediate_field.

theorem intermediate_field.prod_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {ι : Type u_3} {t : finset ι} {f : ι → L} (h : ∀ (c : ι), c tf c S) :
∏ (i : ι) in t, f i S

Product of elements of an intermediate field indexed by a finset is in the intermediate_field.

theorem intermediate_field.sum_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {ι : Type u_3} {t : finset ι} {f : ι → L} (h : ∀ (c : ι), c tf c S) :
∑ (i : ι) in t, f i S

Sum of elements in a intermediate_field indexed by a finset is in the intermediate_field.

theorem intermediate_field.pow_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x : L} (hx : x S) (n : ) :
x ^ n S
theorem intermediate_field.gsmul_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x : L} (hx : x S) (n : ) :
n x S
theorem intermediate_field.coe_int_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (n : ) :
n S
def subalgebra.to_intermediate_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : subalgebra K L) (inv_mem : ∀ (x : L), x Sx⁻¹ S) :

Turn a subalgebra closed under inverses into an intermediate field

Equations
@[simp]
theorem to_subalgebra_to_intermediate_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : subalgebra K L) (inv_mem : ∀ (x : L), x Sx⁻¹ S) :
@[simp]
theorem to_intermediate_field_to_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (inv_mem : ∀ (x : L), x S.to_subalgebrax⁻¹ S) :
def subfield.to_intermediate_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : subfield L) (algebra_map_mem : ∀ (x : K), (algebra_map K L) x S) :

Turn a subfield of L containing the image of K into an intermediate field

Equations
@[instance]
def intermediate_field.to_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :

An intermediate field inherits a field structure

Equations
@[simp]
theorem intermediate_field.coe_add {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x y : S) :
(x + y) = x + y
@[simp]
theorem intermediate_field.coe_neg {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x : S) :
@[simp]
theorem intermediate_field.coe_mul {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x y : S) :
x * y = (x) * y
@[simp]
theorem intermediate_field.coe_inv {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x : S) :
@[simp]
theorem intermediate_field.coe_zero {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
0 = 0
@[simp]
theorem intermediate_field.coe_one {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
1 = 1
@[simp]
theorem intermediate_field.coe_pow {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) (x : S) (n : ) :
(x ^ n) = x ^ n
@[instance]
def intermediate_field.algebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
Equations
@[instance]
def intermediate_field.to_algebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {R : Type u_3} [semiring R] [algebra L R] :
Equations
@[instance]
def intermediate_field.is_scalar_tower_bot {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {R : Type u_3} [semiring R] [algebra L R] :
@[instance]
def intermediate_field.is_scalar_tower_mid {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {R : Type u_3} [semiring R] [algebra L R] [algebra K R] [is_scalar_tower K L R] :
@[instance]
def intermediate_field.is_scalar_tower_mid' {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :

Specialize is_scalar_tower_mid to the common case where the top field is L

def intermediate_field.map {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {L' : Type u_3} [field L'] [algebra K L'] (f : L →ₐ[K] 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
def intermediate_field.val {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :

The embedding from an intermediate field of L / K to L.

Equations
@[simp]
theorem intermediate_field.coe_val {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
@[simp]
theorem intermediate_field.val_mk {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) {x : L} (hx : x S) :
(S.val) x, hx⟩ = x
theorem intermediate_field.to_subalgebra_injective {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {S S' : intermediate_field K L} (h : S.to_subalgebra = S'.to_subalgebra) :
S = S'
theorem intermediate_field.set_range_subset {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
theorem intermediate_field.field_range_le {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K L) :
@[simp]
theorem intermediate_field.to_subalgebra_le_to_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {S S' : intermediate_field K L} :
@[simp]
theorem intermediate_field.to_subalgebra_lt_to_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {S S' : intermediate_field K L} :
def intermediate_field.lift1 {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} (E : intermediate_field K F) :

Lift an intermediate_field of an intermediate_field

Equations
def intermediate_field.lift2 {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} (E : intermediate_field F L) :

Lift an intermediate_field of an intermediate_field

Equations
@[simp]
theorem intermediate_field.mem_lift2 {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} {E : intermediate_field F L} {x : L} :
x E x E
@[instance]
def intermediate_field.lift2_alg {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} {E : intermediate_field F L} :
Equations
@[instance]
def intermediate_field.lift2_tower {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} {E : intermediate_field F L} :
def intermediate_field.lift2_alg_equiv {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F : intermediate_field K L} (E : intermediate_field F L) :

lift2 is isomorphic to the original intermediate_field.

Equations
@[instance]
def intermediate_field.finite_dimensional_left {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (F : intermediate_field K L) [finite_dimensional K L] :
@[instance]
def intermediate_field.finite_dimensional_right {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (F : intermediate_field K L) [finite_dimensional K L] :
@[simp]
theorem intermediate_field.dim_eq_dim_subalgebra {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (F : intermediate_field K L) :
@[simp]
theorem intermediate_field.to_subalgebra_eq_iff {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F E : intermediate_field K L} :
theorem intermediate_field.eq_of_le_of_finrank_le {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F E : intermediate_field K L} [finite_dimensional K L] (h_le : F E) (h_finrank : finite_dimensional.finrank K E finite_dimensional.finrank K F) :
F = E
theorem intermediate_field.eq_of_le_of_finrank_eq {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F E : intermediate_field K L} [finite_dimensional K L] (h_le : F E) (h_finrank : finite_dimensional.finrank K F = finite_dimensional.finrank K E) :
F = E
theorem intermediate_field.eq_of_le_of_finrank_le' {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F E : intermediate_field K L} [finite_dimensional K L] (h_le : F E) (h_finrank : finite_dimensional.finrank F L finite_dimensional.finrank E L) :
F = E
theorem intermediate_field.eq_of_le_of_finrank_eq' {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {F E : intermediate_field K L} [finite_dimensional K L] (h_le : F E) (h_finrank : finite_dimensional.finrank F L = finite_dimensional.finrank E L) :
F = E
def subalgebra_equiv_intermediate_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (alg : algebra.is_algebraic K L) :

If L/K is algebraic, the K-subalgebras of L are all fields.

Equations
@[simp]
theorem mem_subalgebra_equiv_intermediate_field {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (alg : algebra.is_algebraic K L) {S : subalgebra K L} {x : L} :
@[simp]
theorem mem_subalgebra_equiv_intermediate_field_symm {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (alg : algebra.is_algebraic K L) {S : intermediate_field K L} {x : L} :