Algebraic Closure #
In this file we construct the algebraic closure of a field
Main Definitions #
AlgebraicClosure kis an algebraic closure ofk(in the same universe). It is constructed by taking the polynomial ring generated by indeterminatesx_fcorresponding to monic irreducible polynomialsfwith coefficients ink, and quotienting out by a maximal ideal containing everyf(x_f), and then repeating this step countably many times. See Exercise 1.13 in Atiyah--Macdonald.
Tags #
algebraic closure, algebraically closed
The subtype of monic irreducible polynomials
Equations
- AlgebraicClosure.MonicIrreducible k = { f // Polynomial.Monic f ∧ Irreducible f }
Instances For
Sends a monic irreducible polynomial f to f(x_f) where x_f is a formal indeterminate.
Equations
- AlgebraicClosure.evalXSelf k f = Polynomial.eval₂ MvPolynomial.C (MvPolynomial.X f) ↑f
Instances For
The span of f(x_f) across monic irreducible polynomials f where x_f is an
indeterminate.
Equations
Instances For
Given a finset of monic irreducible polynomials, construct an algebra homomorphism to the
splitting field of the product of the polynomials sending each indeterminate x_f represented by
the polynomial f in the finset to a root of f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A random maximal ideal that contains spanEval k
Equations
- AlgebraicClosure.maxIdeal k = Classical.choose (_ : ∃ M, Ideal.IsMaximal M ∧ AlgebraicClosure.spanEval k ≤ M)
Instances For
The first step of constructing AlgebraicClosure: adjoin a root of all monic polynomials
Equations
Instances For
Equations
- AlgebraicClosure.AdjoinMonic.inhabited k = { default := 37 }
The canonical ring homomorphism to AdjoinMonic k.
Equations
- AlgebraicClosure.toAdjoinMonic k = RingHom.comp (Ideal.Quotient.mk (AlgebraicClosure.maxIdeal k)) MvPolynomial.C
Instances For
The nth step of constructing AlgebraicClosure, together with its Field instance.
Equations
- AlgebraicClosure.stepAux k n = Nat.recOn n { fst := k, snd := inferInstance } fun x ih => { fst := AlgebraicClosure.AdjoinMonic ih.fst, snd := AlgebraicClosure.AdjoinMonic.field ih.fst }
Instances For
The nth step of constructing AlgebraicClosure.
Equations
- AlgebraicClosure.Step k n = (AlgebraicClosure.stepAux k n).fst
Instances For
Equations
- AlgebraicClosure.Step.field k n = (AlgebraicClosure.stepAux k n).snd
Equations
- AlgebraicClosure.Step.inhabited k n = { default := 37 }
The canonical inclusion to the 0th step.
Equations
Instances For
The canonical ring homomorphism to the next step.
Equations
Instances For
Equations
Equations
- AlgebraicClosure.Step.algebra k n = RingHom.toAlgebra (AlgebraicClosure.toStepOfLE k 0 n (_ : 0 ≤ n))
Auxiliary construction for AlgebraicClosure. Although AlgebraicClosureAux does define
the algebraic closure of a field, it is redefined at AlgebraicClosure in order to make sure
certain instance diamonds commute by definition.
Equations
- AlgebraicClosureAux k = Ring.DirectLimit (AlgebraicClosure.Step k) fun i j h => ↑(AlgebraicClosure.toStepOfLE k i j h)
Instances For
AlgebraicClosureAux k is a Field
Equations
- AlgebraicClosureAux.field k = Field.DirectLimit.field (AlgebraicClosure.Step k) fun i j h => AlgebraicClosure.toStepOfLE k i j h
Instances For
Equations
- AlgebraicClosureAux.instInhabitedAlgebraicClosureAux k = { default := 37 }
The canonical ring embedding from the nth step to the algebraic closure.
Equations
- AlgebraicClosureAux.ofStep k n = Ring.DirectLimit.of (AlgebraicClosure.Step k) (fun i j h => ↑(AlgebraicClosure.toStepOfLE k i j h)) n
Instances For
Canonical algebra embedding from the nth step to the algebraic closure.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical algebraic closure of a field, the direct limit of adding roots to the field for each polynomial over the field.
Equations
- AlgebraicClosure k = (MvPolynomial (AlgebraicClosureAux k) k ⧸ RingHom.ker ↑(MvPolynomial.aeval id))
Instances For
Equations
Equations
- AlgebraicClosure.inhabited k = { default := 37 }
Equations
Equations
- One or more equations did not get rendered due to their size.
The equivalence between AlgebraicClosure and AlgebraicClosureAux, which we use to transfer
properties of AlgebraicClosureAux to AlgebraicClosure
Equations
- AlgebraicClosure.algEquivAlgebraicClosureAux k = id (Ideal.quotientKerAlgEquivOfSurjective (_ : ∀ (x : AlgebraicClosureAux k), ∃ a, ↑(MvPolynomial.aeval id) a = x))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.