mathlib documentation

field_theory.adjoin

Adjoining Elements to Fields

In this file we introduce the notion of adjoining elements to fields. This isn't quite the same as adjoining elements to rings. For example, algebra.adjoin K {x} might not include x⁻¹.

Main results

Notation

def field.adjoin (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

adjoin F S extends a field F by adjoining a set S ⊆ E.

Equations
theorem field.adjoin_eq_range_algebra_map_adjoin (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

theorem field.adjoin.algebra_map_mem (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) (x : F) :

theorem field.subset_adjoin_of_subset_left {E : Type u_2} [field E] (S : set E) {F : set E} {HF : is_subfield F} {T : set E} (HT : T F) :

theorem field.adjoin.range_algebra_map_subset (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

@[instance]
def field.adjoin.field_coe (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

Equations
theorem field.subset_adjoin (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

@[instance]
def field.adjoin.set_coe (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

Equations
theorem field.adjoin.mono (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S T : set E) (h : S T) :

@[instance]
def field.adjoin.is_subfield (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

@[instance]
def field.adjoin.is_field (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) :

Equations
theorem field.adjoin_contains_field_as_subfield {E : Type u_2} [field E] (S F : set E) {HF : is_subfield F} :

theorem field.subset_adjoin_of_subset_right (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) {T : set E} (H : T S) :

theorem field.adjoin_subset_subfield (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) {K : set E} [is_subfield K] (HF : set.range (algebra_map F E) K) (HS : S K) :

If K is a field with F ⊆ K and S ⊆ K then adjoin F S ⊆ K.

theorem field.adjoin_subset_iff (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S : set E) {T : set E} :

S ⊆ adjoin F T if and only if adjoin F S ⊆ adjoin F T.

theorem field.subfield_subset_adjoin_self {E : Type u_2} [field E] (S : set E) {F : set E} {HF : is_subfield F} {T : set E} {HT : T F} :

theorem field.adjoin_subset_adjoin_iff (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] {F' : Type u_3} [field F'] [algebra F' E] {S S' : set E} :

theorem field.adjoin_adjoin_left (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S T : set E) :

F[S][T] = F[S ∪ T]

theorem field.adjoin_adjoin_comm (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (S T : set E) :

F[S][T] = F[T][S]

@[class]
structure field.insert {α : Type u_3} (s : set α) :
Type u_3
  • insert : α → set α

Variation on set.insert to enable good notation for adjoining elements to fields. Used to preferentially use singleton rather than insert when adjoining one element.

Instances
@[instance]
def field.insert_empty {α : Type u_1} :

Equations
@[instance]
def field.insert_nonempty {α : Type u_1} (s : set α) :

Equations
theorem field.mem_adjoin_simple_self (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (α : E) :
α Fα

def field.adjoin_simple.gen (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (α : E) :

generator of F⟮α⟯

Equations
@[simp]
theorem field.adjoin_simple.algebra_map_gen (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (α : E) :

theorem field.adjoin_simple_adjoin_simple (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (α β : E) :

theorem field.adjoin_simple_comm (F : Type u_1) [field F] {E : Type u_2} [field E] [algebra F E] (α β : E) :

theorem field.adjoin_eq_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} (h : S ) :

theorem field.adjoin_simple_eq_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} (hα : α ) :

theorem field.adjoin_zero {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] :

theorem field.adjoin_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] :

theorem field.sub_bot_of_adjoin_sub_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} (h : field.adjoin F S = ) :

theorem field.mem_bot_of_adjoin_simple_sub_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} (h : Fα = ) :

theorem field.adjoin_eq_bot_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} :

theorem field.adjoin_simple_eq_bot_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} :

theorem field.sub_bot_of_adjoin_dim_eq_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} (h : vector_space.dim F (field.adjoin F S) = 1) :

theorem field.mem_bot_of_adjoin_simple_dim_eq_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} (h : vector_space.dim F Fα = 1) :

theorem field.adjoin_dim_eq_one_of_sub_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} (h : S ) :

theorem field.adjoin_simple_dim_eq_one_of_mem_bot {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} (h : α ) :

theorem field.adjoin_dim_eq_one_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} :

theorem field.adjoin_simple_dim_eq_one_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} :

theorem field.adjoin_findim_eq_one_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {S : set E} :

theorem field.adjoin_simple_findim_eq_one_iff {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] {α : E} :

theorem field.bot_eq_top_of_dim_adjoin_eq_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] (h : ∀ (x : E), vector_space.dim F Fx = 1) :

If F⟮x⟯ has dimension 1 over F for every x ∈ E then F = E.

theorem field.bot_eq_top_of_findim_adjoin_eq_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] (h : ∀ (x : E), finite_dimensional.findim F Fx = 1) :

theorem field.bot_eq_top_of_findim_adjoin_le_one {F : Type u_1} [field F] {E : Type u_2} [field E] [algebra F E] [finite_dimensional F E] (h : ∀ (x : E), finite_dimensional.findim F Fx 1) :

If F⟮x⟯ has dimension ≤1 over F for every x ∈ E then F = E.