Documentation

TauCeti.RingTheory.DiscreteValuationRing.Hensel

Hensel's lemma with an estimate over a discrete valuation ring #

Let A be a discrete valuation ring with additive valuation v = IsDiscreteValuationRing.addVal, and let F be a polynomial over A. If y₀ is an approximate root of F in the sense that 2 v(F'(y₀)) < v(F(y₀)), then F has a root z with v(F(y₀)) = v(F'(y₀)) + v(z − y₀), and z is the only root of F with v(F'(y₀)) < v(z − y₀). This is Mathlib's hensels_lemma, which is stated over ℤ_[p] in norm spelling, here over an arbitrary Henselian discrete valuation ring (for instance a complete one, by TauCeti.IsAdicComplete.henselianLocalRing) in addVal spelling.

The quantitative statement is what distinguishes this from HenselianLocalRing, which lifts a simple root modulo the maximal ideal without a distance bound: the estimate locates the root in a ball around y₀ whose radius is read off F(y₀) and F'(y₀), which is what is needed to count roots of nearby polynomials. If U f + V f' = β is a Bézout certificate for f and its derivative, then every g whose coefficients differ from those of f by elements of order larger than 2 v(β) has as many roots as f: each root of f lifts to a root of g close to it, and conversely.

Three parts of the argument need no Henselian hypothesis and are stated separately. Two distinct roots z ≠ z' of F satisfy v(z' − z) ≤ v(F'(z)), by the Taylor expansion of F at z; the order of F' is constant on the ball v(y' − y) > v(F'(y)); and a root at distance of order at least r ≥ d from x, with v(F'(x)) ≥ d, forces v(F(x)) ≥ r + d.

Main results #

Implementation notes #

Write d = F'(y₀). The polynomial F(y₀ + d X) has all its coefficients divisible by d²: its constant coefficient F(y₀) by the hypothesis, its linear coefficient d · d, and its higher coefficients through the factor dᵏ. The quotient G satisfies G(0) = F(y₀) / d² ∈ 𝔪 and G'(0) = 1, so Hensel's lemma without monicity (Polynomial.exists_isRoot_sub_mem) gives a root t ∈ 𝔪 of G. Writing 0 = G(t) = G(0) + t + k t² shows v(t) = v(G(0)), which is the estimate for z = y₀ + d t.

References #

theorem Polynomial.eq_of_isRoot_of_addVal_lt {A : Type u_1} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] (F : Polynomial A) {z z' : A} (hz : F.IsRoot z) (hz' : F.IsRoot z') (hlt : (IsDiscreteValuationRing.addVal A) (eval z (derivative F)) < (IsDiscreteValuationRing.addVal A) (z' - z)) :
z' = z

Separation of roots. A root z' of F whose distance to a root z has order larger than that of F'(z) is equal to z. Equivalently, two distinct roots z ≠ z' of F satisfy addVal (z' - z) ≤ addVal (F'(z)).

The order of the derivative is constant on a ball whose radius exceeds it: if addVal (F'(y)) < addVal (y' - y), then F'(y') and F'(y) have the same order.

The order of the derivative is bounded by a Bézout certificate. If U F + V F' = β, then at every point where F has order larger than β (for instance at a root of F, when β ≠ 0), the order of F' is at most that of β.

Hensel's lemma with an estimate over a Henselian discrete valuation ring. If the order of F at y₀ exceeds twice the order of its derivative there, then F has a root z whose distance to y₀ has order exactly addVal (F(y₀)) - addVal (F'(y₀)). This is the existence part of Mathlib's hensels_lemma in addVal spelling; the uniqueness of z in that ball is Polynomial.existsUnique_isRoot_addVal_lt.

Hensel's lemma with uniqueness over a Henselian discrete valuation ring. If the order of F at y₀ exceeds twice the order of its derivative there, then F has exactly one root z whose distance to y₀ has order larger than that of F'(y₀). Its distance to y₀ is given by Polynomial.exists_isRoot_addVal_eval_eq.

theorem Polynomial.le_addVal_eval_of_isRoot {A : Type u_1} [CommRing A] [IsDomain A] [IsDiscreteValuationRing A] {F : Polynomial A} {x z : A} {d r : ℕ∞} (hd : d ≤ (IsDiscreteValuationRing.addVal A) (eval x (derivative F))) (hdr : d ≤ r) (hz : F.IsRoot z) (hball : r ≤ (IsDiscreteValuationRing.addVal A) (z - x)) :

A root in a ball of radius order r ≥ d forces the value at its center to have order at least r + d, provided the derivative there has order at least d. No Henselian hypothesis is needed, and infinite orders are allowed.

A closed ball strictly smaller than the derivative scale contains exactly one root precisely when evaluation at its center has the corresponding extra order. Radius orders may be extended naturals; order ⊤ gives the singleton ball {x}.

A small perturbation has at least as many roots. Let G = F + δ k be nonzero, where at every root y of F the order of δ exceeds twice that of F'(y). Then G has at least as many roots as F, counted with multiplicity.

Nearby polynomials have equally many roots. Let U f + V f' = β be a Bézout certificate for f and its derivative over a Henselian discrete valuation ring. If every coefficient of g - f has order larger than 2 v(β), then g has as many roots as f.