Algebraically Closed Field #
In this file we define the typeclass for algebraically closed fields and algebraic closures, and prove some of their properties.
Main Definitions #
-
is_alg_closed k
is the typeclass sayingk
is an algebraically closed field, i.e. every polynomial ink
splits. -
is_alg_closure R K
is the typeclass sayingK
is an algebraic closure ofR
, whereR
is a commutative ring. This means that the map fromR
toK
is injective, andK
is algebraically closed and algebraic overR
-
is_alg_closed.lift
is a map from an algebraic extensionL
ofR
, into any algebraically closed extension ofR
. -
is_alg_closure.equiv
is a proof that any two algebraic closures of the same field are isomorphic.
Tags #
algebraic closure, algebraically closed
- splits : ∀ (p : k[X]), polynomial.splits (ring_hom.id k) p
Typeclass for algebraically closed fields.
To show polynomial.splits p f
for an arbitrary ring homomorphism f
,
see is_alg_closed.splits_codomain
and is_alg_closed.splits_domain
.
Instances
Every polynomial splits in the field extension f : K →+* k
if k
is algebraically closed.
See also is_alg_closed.splits_domain
for the case where K
is algebraically closed.
Every polynomial splits in the field extension f : K →+* k
if K
is algebraically closed.
See also is_alg_closed.splits_codomain
for the case where k
is algebraically closed.
- alg_closed : is_alg_closed K
- algebraic : algebra.is_algebraic R K
Typeclass for an extension being an algebraic closure.
Instances
- carrier : subalgebra K L
- emb : ↥(self.carrier) →ₐ[K] M
This structure is used to prove the existence of a homomorphism from any algebraic extension into an algebraic closure
Equations
- lift.subfield_with_hom.inhabited = {default := {carrier := ⊥, emb := (algebra.of_id K M).comp (algebra.bot_equiv K L).to_alg_hom}}
Equations
- lift.subfield_with_hom.preorder = {le := has_le.le lift.subfield_with_hom.has_le, lt := λ (a b : lift.subfield_with_hom K L M hL), a ≤ b ∧ ¬b ≤ a, le_refl := _, le_trans := _, lt_iff_le_not_le := _}
The maximal subfield_with_hom
. We later prove that this is equal to ⊤
.
Equations
A (random) homomorphism from an algebraic extension of R into an algebraically closed extension of R.
Equations
- is_alg_closed.lift hS = let _inst : is_domain R := is_alg_closed.lift._proof_1, f : fraction_ring S →ₐ[fraction_ring R] M := lift_aux (fraction_ring R) (fraction_ring S) M _ in (alg_hom.restrict_scalars R f).comp (alg_hom.restrict_scalars R (algebra.of_id S (fraction_ring S)))
Equations
Algebraically closed fields are infinite since Xⁿ⁺¹ - 1
is separable when #K = n
A (random) isomorphism between two algebraic closures of R
.
Equations
- is_alg_closure.equiv R L M = let f : L →ₐ[R] M := is_alg_closed.lift is_alg_closure.algebraic in alg_equiv.of_bijective f _
A (random) isomorphism between an algebraic closure of R
and an algebraic closure of
an algebraic extension of R
Equations
- is_alg_closure.equiv_of_algebraic' R S L M hRL = let _inst : no_zero_smul_divisors R L := _, _inst_1 : is_alg_closure R L := _ in is_alg_closure.equiv R L M
A (random) isomorphism between an algebraic closure of K
and an algebraic closure
of an algebraic extension of K
Equations
- is_alg_closure.equiv_of_algebraic K J L M hKJ = is_alg_closure.equiv_of_algebraic' K J L M _
Used in the definition of equiv_of_equiv
Equations
- is_alg_closure.equiv_of_equiv_aux L M hSR = let _inst : algebra R S := hSR.symm.to_ring_hom.to_algebra, _inst_1 : algebra S R := hSR.to_ring_hom.to_algebra, _inst_2 : is_domain R := _, _inst_3 : is_domain S := _, _inst_10 : algebra R L := ((algebra_map S L).comp (algebra_map R S)).to_algebra in ⟨↑(is_alg_closure.equiv_of_algebraic' R S L M _), _⟩
Algebraic closure of isomorphic fields are isomorphic
Equations
- is_alg_closure.equiv_of_equiv L M hSR = ↑(is_alg_closure.equiv_of_equiv_aux L M hSR)