Hensel's lemma: over a complete local ring, a coprime monic factorization `g * h` of the residue reduction of a monic `F` lifts to a monic factorization `F = G * H` with the same degrees.
ProvedTypeDensity.hensel_pair_existstype-density
Hensel's lemma: over a complete local ring, a coprime monic factorization g * h of the residue reduction of a monic F lifts to a monic factorization F = G * H with the same degrees.
Preamble
import Definitions.Def_TypeDensity_Basic import Definitions.Def_TypeDensity_Measure_AdicCylinders import Definitions.Def_TypeDensity_Measure_HenselProducts import Mathlib.FieldTheory.RatFunc.Basic import Mathlib.MeasureTheory.Measure.Haar.Unique import Mathlib.NumberTheory.ArithmeticFunction.Moebius import Mathlib.NumberTheory.Padics.PadicIntegers import Mathlib.RingTheory.IntegralClosure.IntegralRestrict import Mathlib.RingTheory.MvPowerSeries.Basic import Mathlib.RingTheory.RamificationInertia.Basic import Mathlib.Topology.Algebra.Nonarchimedean.AdicTopology import Mathlib.Topology.Algebra.MvPolynomial import Mathlib.Algebra.Group.Pi.Units import Mathlib.Order.CompletePartialOrder import Mathlib.RingTheory.Henselian import Mathlib.RingTheory.Polynomial.Resultant.Basic import Mathlib.RingTheory.RegularLocalRing.Defs import Mathlib.RingTheory.SimpleRing.Principal set_option autoImplicit false open TypeDensity open MeasureTheory open scoped BigOperators ENNReal
Formal statement
theorem TypeDensity.hensel_pair_exists (O : Type) [CommRing O] [IsLocalRing O]
[IsAdicComplete (IsLocalRing.maximalIdeal O) O] (F : Polynomial O) (hF : F.Monic)
(g h : Polynomial (IsLocalRing.ResidueField O)) (hg : g.Monic) (hh : h.Monic)
(hc : IsCoprime g h) (hred : F.map (IsLocalRing.residue O) = g * h) :
∃ G H : Polynomial O, G.Monic ∧ H.Monic ∧ F=G*H ∧ G.map (IsLocalRing.residue O)=g ∧
H.map (IsLocalRing.residue O)=h ∧ G.natDegree=g.natDegree ∧ H.natDegree=h.natDegree := by sorrySource
TypeDensity/Measure/HenselProducts.lean#L515-L524