Documentation

Atlas.NumberTheoryI.code.HenselFactorization

theorem hensel_kurschak_scaling_step {A : Type u_3} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_4} [Field K] [Algebra A K] [IsFractionRing A K] (f : Polynomial K) (hirr : Irreducible f) (hlead : ∃ (a : A), (algebraMap A K) a = f.leadingCoeff) (hconst : ∃ (a : A), (algebraMap A K) a = f.coeff 0) (hnotinA : ¬∃ (g : Polynomial A), f = Polynomial.map (algebraMap A K) g) :
theorem hensel_kurschak {A : Type u_1} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_2} [Field K] [Algebra A K] [IsFractionRing A K] (f : Polynomial K) (hirr : Irreducible f) (hlead : ∃ (a : A), (algebraMap A K) a = f.leadingCoeff) (hconst : ∃ (a : A), (algebraMap A K) a = f.coeff 0) :
∃ (g : Polynomial A), f = Polynomial.map (algebraMap A K) g
theorem norm_eq_minpoly_const_power {K : Type u_2} [Field K] {L : Type u_3} [Field L] [Algebra K L] [FiniteDimensional K L] (α : L) :
∃ (e : ), 0 < e (Algebra.norm K) α = (-1) ^ Module.finrank K L * Polynomial.eval 0 (minpoly K α) ^ e
theorem norm_integral_of_integral {A : Type u_4} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_5} [Field K] [Algebra A K] [IsFractionRing A K] {L : Type u_6} [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra A L] [IsScalarTower A K L] (α : L) ( : IsIntegral A α) :
∃ (a : A), (algebraMap A K) a = (Algebra.norm K) α
theorem integral_of_norm_integral {A : Type u_4} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_5} [Field K] [Algebra A K] [IsFractionRing A K] {L : Type u_6} [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra A L] [IsScalarTower A K L] (α : L) (hα_norm : ∃ (a : A), (algebraMap A K) a = (Algebra.norm K) α) :
theorem integral_iff_norm_integral {A : Type u_1} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_2} [Field K] [Algebra A K] [IsFractionRing A K] {L : Type u_3} [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra A L] [IsScalarTower A K L] (α : L) :
IsIntegral A α ∃ (a : A), (algebraMap A K) a = (Algebra.norm K) α
theorem isLocalRing_of_unique_maximal (R : Type u_1) [CommRing R] [IsDomain R] (𝔮 : Ideal R) (h𝔮 : 𝔮.IsMaximal) (huniq : ∀ (I : Ideal R), I.IsMaximalI = 𝔮) :
theorem maximal_lies_over_in_AKLB (A : Type u_1) [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] (K : Type u_2) [Field K] [Algebra A K] [IsFractionRing A K] (L : Type u_3) [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra.IsSeparable K L] [Algebra A L] [IsScalarTower A K L] (B : Type u_4) [CommRing B] [IsDomain B] [Algebra A B] [Algebra B L] [IsScalarTower A B L] [IsIntegralClosure B A L] (𝔮 : Ideal B) (h𝔮 : 𝔮.IsMaximal) :
theorem two_maximal_ideals_give_coprime_factorization {A : Type u_1} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] {K : Type u_2} [Field K] [Algebra A K] [IsFractionRing A K] {L : Type u_3} [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra.IsSeparable K L] [Algebra A L] [IsScalarTower A K L] {B : Type u_4} [CommRing B] [IsDomain B] [Algebra A B] [Algebra B L] [IsScalarTower A B L] [IsIntegralClosure B A L] (𝔮₁ 𝔮₂ : Ideal B) (h₁ : 𝔮₁.IsMaximal) (h₂ : 𝔮₂.IsMaximal) (_hne : 𝔮₁ 𝔮₂) (b : B) (hb₁ : b 𝔮₁) (hb₂ : b𝔮₂) (hbint : IsIntegral A b) (_hirr : Irreducible (minpoly A b)) :
theorem unique_maximal_ideal_of_complete_DVR (A : Type u_1) [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] [IsAdicComplete (IsLocalRing.maximalIdeal A) A] (K : Type u_2) [Field K] [Algebra A K] [IsFractionRing A K] (L : Type u_3) [Field L] [Algebra K L] [FiniteDimensional K L] [Algebra.IsSeparable K L] [Algebra A L] [IsScalarTower A K L] (B : Type u_4) [CommRing B] [IsDomain B] [Algebra A B] [Algebra B L] [IsScalarTower A B L] [IsIntegralClosure B A L] (𝔮₁ 𝔮₂ : Ideal B) (h₁ : 𝔮₁.IsMaximal) (h₂ : 𝔮₂.IsMaximal) :
𝔮₁ = 𝔮₂