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 ⁻¹,

TODO

Tags

intermediate field, field extension

def intermediate_field.to_subalgebra {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 subalgebra.

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.

@[instance]
def intermediate_field.has_coe {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :

Equations
@[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) :

@[instance]
def intermediate_field.has_coe_to_sort {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :

Equations
@[instance]
def intermediate_field.has_mem {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :

Equations
@[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 ∈ s → b ∈ s → a * b ∈ s) (hz : 0 ∈ s) (ha : ∀ {a b : L}, a ∈ s → b ∈ s → a + b ∈ s) (hn : ∀ {x : L}, x ∈ s → -x ∈ s) (hi : ∀ (x : L), x ∈ s → x⁻¹ ∈ s) (x : L) :
x ∈ {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_coe {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

@[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.ext' {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] ⦃s t : intermediate_field K L⦄ (h : ↑s = ↑t) :
s = t

Two intermediate fields are equal if the underlying subsets are equal.

theorem intermediate_field.ext'_iff {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] {s t : intermediate_field K L} :
s = t ↔ ↑s = ↑t

Two intermediate fields are equal if and only if the underlying subsets are equal.

@[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.

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} (a : x ∈ S) (a_1 : y ∈ S) :
x * 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} (a : 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} (a : x ∈ S) (a_1 : y ∈ S) :
x + 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} (a : 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} (a : x ∈ 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} (a : ∀ (x : L), x ∈ l → x ∈ 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} (a : ∀ (x : L), x ∈ l → x ∈ 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 : ∀ (a : L), a ∈ m → a ∈ 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 : ∀ (a : L), a ∈ m → a ∈ 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 ∈ t → f 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 ∈ t → f 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

@[instance]
def intermediate_field.inhabited {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :

Equations
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 ∈ S → x⁻¹ ∈ S) :

Turn a subalgebra closed under inverses into an intermediate field

Equations
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

@[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) :

Equations
@[instance]
def intermediate_field.is_scalar_tower {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] (S : intermediate_field K 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'

@[instance]
def intermediate_field.partial_order {K : Type u_1} {L : Type u_2} [field K] [field L] [algebra K L] :

Equations
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) :