FLT/Mathlib/RingTheory/DiscreteValuationRing/AdjoinRoot.lean
Explanation legend Lean4 Domain Explanation Language (L4DEL)
L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.
- L4DEL
- Lean4 Domain Explanation Language
Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.
Project sources: Pinned project documentation, Pinned FLT blueprint introduction
11 declarations, 0 contain sorry, 0 declared as axioms
R[X]/(P) as an unramified discrete valuation ring
Proposed new Mathlib file Mathlib.RingTheory.DiscreteValuationRing.AdjoinRoot: for a monic
P over a discrete valuation ring R with irreducible reduction, S = R[X]/(P) is a discrete
valuation ring, unramified over R, with fraction field K[X]/(P) and residue field
k[X]/(P̄); separability of simple extensions; auxiliary local-ring lemmas.
Imports (9)
- Mathlib.RingTheory.AdjoinRoot
- Mathlib.RingTheory.DiscreteValuationRing.TFAE
- Mathlib.FieldTheory.PrimitiveElement
- Mathlib.RingTheory.LocalRing.Quotient
- FLT.Mathlib.FieldTheory.SeparableDegree
- FLT.Mathlib.RingTheory.AdjoinRoot
- Mathlib.Algebra.Polynomial.Lifts
- Mathlib.RingTheory.Ideal.GoingUp
- Mathlib.RingTheory.DedekindDomain.Basic
Imported by 2 files
- theorem
IsDiscreteValuationRing.injective_of_not_maximalIdeal_le_kerDocumented declaration: injective_of_not_maximalIdeal_le_ker line 37 sourceSource documentation
A ring homomorphism from a discrete valuation ring to a domain is injective as soon as its kernel does not contain the maximal ideal: the kernel is a prime ideal, so it is either
⊥or the maximal ideal.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsDomain,IsDiscreteValuationRing,RingHom,Not,LE.le,Ideal,IsLocalRing.maximalIdeal,RingHom.ker,Function.InjectiveProof uses:
Eq.mpr,Eq,Bot.bot,id,congrArg,propext,RingHom.injective_iff_ker_eq_bot,Decidable.byContradiction,Eq.ge,IsLocalRing.eq_maximalIdeal,Ideal.IsPrime.isMaximal,RingHom.ker_isPrime32 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem IsDiscreteValuationRing.injective_of_not_maximalIdeal_le_ker {S L : Type*} [CommRing S] [IsDomain S] [IsDiscreteValuationRing S] [CommRing L] [IsDomain L] (φ : S →+* L) (h : ¬maximalIdeal S ≤ RingHom.ker φ) : Function.Injective φ := by … - theorem
Field.exists_monic_irreducible_adjoinRoot_algEquivDocumented declaration: exists_monic_irreducible_adjoinRoot_algEquiv line 46 sourceSource documentation
A finite separable field extension
k'/kisk[X]/(p)for a monic separable irreducible polynomialpof degree[k' : k](the primitive element theorem, packaged viaAdjoinRoot).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,Algebra,FiniteDimensional,Algebra.IsSeparable,Exists,Polynomial,And,Polynomial.Monic,Polynomial.Separable,Irreducible,Eq,Nat,Polynomial.natDegree,Module.finrank,Nonempty,AlgEquiv,AdjoinRootProof uses:
PowerBasis,Field.powerBasisOfFiniteOfSeparable,rfl,IsIntegral,PowerBasis.gen,Algebra.IsIntegral.isIntegral,Exists.intro,minpoly,And.intro,minpoly.monic,Algebra.IsSeparable.isSeparable,minpoly.irreducible,Eq.mpr,PowerBasis.dim,id,congrArg,PowerBasis.natDegree_minpoly,PowerBasis.finrank,Eq.refl,Nonempty.introand 10 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem Field.exists_monic_irreducible_adjoinRoot_algEquiv (k k' : Type*) [Field k] [Field k'] [Algebra k k'] [FiniteDimensional k k'] [Algebra.IsSeparable k k'] : ∃ p : k[X], p.Monic ∧ p.Separable ∧ Irreducible p ∧ p.natDegree = Module.finrank k k' ∧ Nonempty (AdjoinRoot p ≃ₐ[k] k') := by … - theorem
IsLocalRing.exists_monic_map_residue_eqA monic polynomial over the residue field of a local ring lifts to a monic polynomial of the same degree over the ring line 58 sourceSource documentation
A monic polynomial over the residue field of a local ring lifts to a monic polynomial of the same degree over the ring.
standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Polynomial,IsLocalRing.ResidueField,Polynomial.Monic,Exists,And,Eq,Polynomial.map,IsLocalRing.residue,Nat,Polynomial.natDegreeProof uses:
Polynomial.map_surjective,Ideal.Quotient.mk_surjective,IsLocalRing.maximalIdeal,Polynomial.lifts_and_natDegree_eq_and_monic,Exists.intro,RingHom,Polynomial.mapRingHom,And.intro18 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem IsLocalRing.exists_monic_map_residue_eq {A : Type u} [CommRing A] [IsLocalRing A] {pbar : (ResidueField A)[X]} (h : pbar.Monic) : ∃ P : A[X], P.Monic ∧ P.map (residue A) = pbar ∧ P.natDegree = pbar.natDegree := by … - theorem
IsLocalRing.of_isMaximal_map_maximalIdealDocumented declaration: of_isMaximal_map_maximalIdeal line 69 sourceSource documentation
An integral algebra
Sover a local ringRsuch that𝔪_R · Sis a maximal ideal is itself local, with maximal ideal𝔪_R · S: any maximal ideal ofScontracts to𝔪_Rby integrality, hence contains𝔪_R · S, hence equals it.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Algebra,Algebra.IsIntegral,Ideal.IsMaximal,Ideal.map,RingHom,Algebra.algebraMap,IsLocalRing.maximalIdealProof uses:
IsLocalRing.of_unique_max_ideal,Exists.intro,Ideal,And,Eq,And.intro,Ideal.comap,Ideal.isMaximal_under_of_isIntegral_of_isMaximal,LE.le,Eq.mpr,id,congrArg,Eq.symm,IsLocalRing.eq_maximalIdeal,Ideal.map_comap_le,Ideal.IsMaximal.eq_of_le,Ideal.IsMaximal.ne_top16 instances, coercions and auxiliary constants left out.
Tactic trace: 5 steps
Open to load the checked before-and-after goal states.
theorem IsLocalRing.of_isMaximal_map_maximalIdeal {R S : Type*} [CommRing R] [IsLocalRing R] [CommRing S] [Algebra R S] [Algebra.IsIntegral R S] (hmax : ((maximalIdeal R).map (algebraMap R S)).IsMaximal) : IsLocalRing S := … - def
AdjoinRoot.residueFieldEquivIfS = A[X]/(P)is local with maximal ideal𝔪_A · S, then its residue field is(A/𝔪_A)[X]/(P mod 𝔪_A)line 81 sourceSource documentation
If
S = A[X]/(P)is local with maximal ideal𝔪_A · S, then its residue field is(A/𝔪_A)[X]/(P mod 𝔪_A).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Polynomial,AdjoinRoot,Eq,Ideal,IsLocalRing.maximalIdeal,Ideal.map,RingHom,Algebra.algebraMap,AlgEquiv,IsLocalRing.ResidueField,Polynomial.map,IsLocalRing.residueProof uses:
AlgEquiv.trans,HasQuotient.Quotient,Ideal.quotientEquivAlgOfEq,AdjoinRoot.quotEquivQuotMap28 instances, coercions and auxiliary constants left out.
noncomputable def AdjoinRoot.residueFieldEquiv {A : Type*} [CommRing A] [IsLocalRing A] {P : A[X]} [IsLocalRing (AdjoinRoot P)] (hmax : maximalIdeal (AdjoinRoot P) = (maximalIdeal A).map (algebraMap A (AdjoinRoot P))) : ResidueField (AdjoinRoot P) ≃ₐ[A] AdjoinRoot (P.map (residue A)) := … - theorem
AdjoinRoot.isSeparable_rootThe root of an irreducible separable polynomialqis a separable element ofF[X]/(q): its minimal polynomial isqup to a unit line 89 sourceSource documentation
The root of an irreducible separable polynomial
qis a separable element ofF[X]/(q): its minimal polynomial isqup to a unit.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,Polynomial,Fact,Irreducible,Polynomial.Separable,IsSeparable,AdjoinRoot,AdjoinRoot.rootProof uses:
Ne,OfNat.ofNat,Irreducible.ne_zero,Fact.out,Eq.mpr,HMul.hMul,RingHom,Polynomial.C,Inv.inv,Polynomial.leadingCoeff,id,Eq,congrArg,minpoly,AdjoinRoot.minpoly_root,Polynomial.Separable.mul_unit,Iff.mpr,IsUnit,Polynomial.isUnit_C,isUnit_iff_ne_zeroand 2 more46 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem AdjoinRoot.isSeparable_root {F : Type*} [Field F] {q : F[X]} [Fact (Irreducible q)] (hq : q.Separable) : IsSeparable F (root q) := by … - theorem
AdjoinRoot.isSeparable_of_separableThe simple extensionF[X]/(q)by a root of an irreducible separable polynomial is separable line 98 sourceSource documentation
The simple extension
F[X]/(q)by a root of an irreducible separable polynomial is separable.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
Field,Polynomial,Fact,Irreducible,Polynomial.Separable,Algebra.IsSeparable,AdjoinRootProof uses: Algebra.IsSeparable.of_isSeparable_of_adjoin_eq_top,
AdjoinRoot.root, AdjoinRoot.isSeparable_root,IntermediateField.adjoin_eq_top_of_algebra,Singleton.singleton,Set,AdjoinRoot.adjoinRoot_eq_top23 instances, coercions and auxiliary constants left out.
theorem AdjoinRoot.isSeparable_of_separable {F : Type*} [Field F] {q : F[X]} [Fact (Irreducible q)] (hq : q.Separable) : Algebra.IsSeparable F (AdjoinRoot q) := … - theorem
AdjoinRoot.isMaximal_map_maximalIdealIf the reduction ofPmodulo the maximal ideal of a local ringAis irreducible, then𝔪_A · A[X]/(P)is a maximal ideal: the quotient by it is the field(A/𝔪_A)[X]/(P̄)line 105 sourceSource documentation
If the reduction of
Pmodulo the maximal ideal of a local ringAis irreducible, then𝔪_A · A[X]/(P)is a maximal ideal: the quotient by it is the field(A/𝔪_A)[X]/(P̄).standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsLocalRing,Polynomial,Irreducible,IsLocalRing.ResidueField,Polynomial.map,IsLocalRing.residue,Ideal.IsMaximal,AdjoinRoot,Ideal.map,RingHom,Algebra.algebraMap,IsLocalRing.maximalIdealProof uses:
Fact,Fact.mk,Eq.mpr,AdjoinRoot.of,id,Eq,congrArg,AdjoinRoot.algebraMap_eq,Ideal.Quotient.maximal_of_isField,MulEquiv.isField,HasQuotient.Quotient,Ideal,Field.toIsField,RingEquiv.toMulEquiv,Ideal.span,Singleton.singleton,Set,Ideal.Quotient.mk,AdjoinRoot.quotAdjoinRootEquivQuotPolynomialQuot38 instances, coercions and auxiliary constants left out.
Tactic trace: 3 steps
Open to load the checked before-and-after goal states.
theorem AdjoinRoot.isMaximal_map_maximalIdeal {A : Type*} [CommRing A] [IsLocalRing A] {P : A[X]} (hirr : Irreducible (P.map (residue A))) : ((maximalIdeal A).map (algebraMap A (AdjoinRoot P))).IsMaximal := by … - theorem
AdjoinRoot.isDiscreteValuationRing_of_irreducible_map_residueDocumented declaration: isDiscreteValuationRing_of_irreducible_map_residue line 121 sourceSource documentation
For a monic
Pover a discrete valuation ringRwhose reduction is irreducible over the residue field,S = R[X]/(P)is again a discrete valuation ring, unramified overR: its maximal ideal is𝔪_R · S(residue field(ResidueField R)[X]/(P̄)), soR → Sis a local homomorphism.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsDomain,IsDiscreteValuationRing,Polynomial,AdjoinRoot,Polynomial.Monic,Ne,WithBot,Nat,Polynomial.degree,OfNat.ofNat,Irreducible,IsLocalRing.ResidueField,Polynomial.map,IsLocalRing.residue,And,Ideal.IsMaximal,Ideal.map,RingHom,Algebra.algebraMapand 2 moreProof uses:
Module.Finite,Polynomial.Monic.finite_adjoinRoot,Algebra.IsIntegral, AdjoinRoot.isMaximal_map_maximalIdeal,IsLocalRing, IsLocalRing.of_isMaximal_map_maximalIdeal,Eq,Ideal,Eq.symm,IsLocalRing.eq_maximalIdeal,Function.Injective,Eq.mpr,AdjoinRoot.of,id,congrArg,AdjoinRoot.algebraMap_eq,AdjoinRoot.of.injective_of_degree_ne_zero,Not,IsField,IsDiscreteValuationRing.not_a_fieldand 35 more68 instances, coercions and auxiliary constants left out.
Tactic trace: 11 steps
Open to load the checked before-and-after goal states.
theorem AdjoinRoot.isDiscreteValuationRing_of_irreducible_map_residue {P : R[X]} [IsDomain (AdjoinRoot P)] (hPm : P.Monic) (hP0 : P.degree ≠ 0) (hirr : Irreducible (P.map (residue R))) : ((maximalIdeal R).map (algebraMap R (AdjoinRoot P))).IsMaximal ∧ IsDiscreteValuationRing (AdjoinRoot P) ∧ IsLocalHom (algebraMap R (AdjoinRoot P)) := by … - theorem
AdjoinRoot.exists_nonZeroDivisor_mul_eq_algebraMapDocumented declaration: exists_nonZeroDivisor_mul_eq_algebraMap line 148 sourceSource documentation
Clearing denominators in
L = K[X]/(P·K)overS = R[X]/(P): any element ofL, multiplied by (the image of) a suitable nonzero element ofR, lies in the image ofS(IsLocalization.integerNormalizationfor the polynomialgrepresenting the element). The hypothesishmaprecords thatalgebraMap S Lreducesmk Ptomk (P·K) ∘ map.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,Field,Algebra,IsFractionRing,Polynomial,AdjoinRoot,Polynomial.map,Algebra.algebraMap,Eq,RingHom,RingHom.comp,AdjoinRoot.mk,Polynomial.mapRingHom,Exists,And,Membership.mem,Submonoid,nonZeroDivisors,HMul.hMulProof uses:
AdjoinRoot.mk_surjective,IsLocalization.integerNormalization,HSMul.hSMul,IsLocalization.integerNormalization_spec,Exists.intro,And.intro,RingHom.congr_fun,Polynomial.C,Eq.mpr,id,congrArg,IsScalarTower.algebraMap_apply,AdjoinRoot.of,AdjoinRoot.algebraMap_eq,Eq.symm,AdjoinRoot.mk_C,Eq.refl,Algebra.smul_def,Polynomial.algebraMap_eq,Eq.mpand 4 more74 instances, coercions and auxiliary constants left out.
Tactic trace: 10 steps
Open to load the checked before-and-after goal states.
theorem AdjoinRoot.exists_nonZeroDivisor_mul_eq_algebraMap {R : Type*} [CommRing R] {K : Type*} [Field K] [Algebra R K] [IsFractionRing R K] {P : R[X]} [Algebra (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K)))] (hmap : (algebraMap (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K)))).comp (mk P) = (mk (P.map (algebraMap R K))).comp (Polynomial.mapRingHom (algebraMap R K))) (z : AdjoinRoot (P.map (algebraMap R K))) : ∃ b ∈ nonZeroDivisors R, ∃ x : AdjoinRoot P, z * algebraMap R (AdjoinRoot (P.map (algebraMap R K))) b = algebraMap (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K))) x := by … - theorem
AdjoinRoot.isFractionRing_mapDocumented declaration: isFractionRing_map line 177 sourceSource documentation
L = K[X]/(P·K) = Frac(S)forS = R[X]/(P)a discrete valuation ring:algebraMap S Lis injective (its kernel is a prime of the DVRS, and it does not kill a uniformizer), and every element ofLclears itsK-denominators (exists_nonZeroDivisor_mul_eq_algebraMap) to a multiple in the image ofS. The hypothesishmaprecords thatalgebraMap S Lreducesmk Ptomk (P·K) ∘ map.standard axioms: Classical.choice, Quot.sound, propext what this means
Statement uses:
CommRing,IsDomain,IsDiscreteValuationRing,Field,Algebra,IsFractionRing,Polynomial,Ne,WithBot,Nat,Polynomial.degree,OfNat.ofNat,AdjoinRoot,Fact,Irreducible,Polynomial.map,Algebra.algebraMap,IsScalarTower,Eq,Idealand 6 moreProof uses:
Function.Injective,Eq.mpr,AdjoinRoot.of,id,congrArg,AdjoinRoot.algebraMap_eq,AdjoinRoot.of.injective_of_degree_ne_zero,Eq.mp,rfl,IsScalarTower.algebraMap_eq,Function.Injective.comp,RingHom.injective,IsFractionRing.injective, IsDiscreteValuationRing.injective_of_not_maximalIdeal_le_ker,LE.le,RingHom.ker,And,Membership.mem,Submodule,Existsand 31 more114 instances, coercions and auxiliary constants left out.
Tactic trace: 25 steps
Open to load the checked before-and-after goal states.
theorem AdjoinRoot.isFractionRing_map {P : R[X]} (hP0 : P.degree ≠ 0) [IsDomain (AdjoinRoot P)] [IsDiscreteValuationRing (AdjoinRoot P)] [Fact (Irreducible (P.map (algebraMap R K)))] [Algebra (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K)))] [IsScalarTower R (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K)))] (hmaxS : maximalIdeal (AdjoinRoot P) = (maximalIdeal R).map (algebraMap R (AdjoinRoot P))) (hmap : (algebraMap (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K)))).comp (mk P) = (mk (P.map (algebraMap R K))).comp (Polynomial.mapRingHom (algebraMap R K))) : IsFractionRing (AdjoinRoot P) (AdjoinRoot (P.map (algebraMap R K))) := by …