Polynomial root stability
Fixed-degree stability of polynomial root-generated intermediate fields inside a common Krasner normed extension, including monic, normalized, and ordinary-coefficient versions with derived nearby separability, plus quantitative Newton lifting with convergence and resultant-controlled factorization over complete ultrametric normed fields, together with polynomial estimates for valuations in linearly ordered commutative value monoids with zero.
Quoted from the project description in formalization.yaml of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
4 articles: 4 for headline results in its README whose declaration link names a declaration the scan finds in the linked file. Its other headline results are quoted where they stand.
Facts
From the repository and its formalization.yaml; the review and automation statements are quoted as written.
- Repository: FormalFrontier/polynomial-root-stability, read at commit efade497 (2026-11-04).
- Lean toolchain v4.34.0-rc2, Mathlib at 83abb3e7.
- License: Apache-2.0.
- Authors: Formal Frontier Agents.
- Review status: “pending”.
- Automation: agent; framework “Codex CLI”; tool setup “AI-assisted Lean proof development, mathematical examples and documentation with repository-pinned Lean and mathlib compilation.”
- Automation notes: “Automated assistance is not a substitute for proof-term validation, mathematical review or source-correspondence review.”
Literature
The sources its formalization.yaml names, with their relationship to it.
- Fixed-ambient-field root-generated-field stability (original-proof; other).
- Cohomology of Number Fields, corrected second edition 2.3, Jürgen Neukirch, Alexander Schmidt, Kay Wingberg, Section 12.1.1; corrected edition 2.3, May 2020 (book; background).
- Local Fields and Their Extensions, second edition, Ivan B. Fesenko, Sergei V. Vostokov, Chapter II, Section 1, Proposition 1.1 (p. 36), Corollary 3 (p. 37), Exercise 1 (p. 38) (book; background).
Builds on
No other Formal Frontier library.
Used by
Headline results
Quoted from the headline results in README.md of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
Root-generated fields are locally constant at fixed degree. Fix normed
fields K, L with a normed algebra structure L / K satisfying
IsKrasner K L. For any nonzero separable polynomial f : K[X] that splits
in L, there is a radius ε > 0 such that every polynomial g : K[X] with
the same natDegree, also splitting in L, and with
‖g.coeff i - f.coeff i‖ < ε for every coefficient index i, is separable
and generates exactly the same intermediate field over K as f.
The ordinary-coefficient theorem
applies without monicity and derives comparison nonzeroness internally.
There are also monic and
scale-invariant normalized-coefficient
versions of this result. The normalized version measures closeness after
dividing each polynomial by its own leading coefficient and requires g ≠ 0
explicitly; do not interchange the normalized and ordinary coefficient bounds.
These results let downstream developments perturb coefficients while keeping
the root-generated subfield fixed. The ambient extension and both splitting
assumptions are inputs, not conclusions. Equality is between the subfields
IntermediateField.adjoin K (f.rootSet L) and
IntermediateField.adjoin K (g.rootSet L) inside that fixed L, not an
equivalence of canonical splitting-field objects. Fixed degree is essential;
no stability for arbitrary variable-degree families or nonseparable references
is asserted. Mathlib supplies Krasner's lemma and polynomial-root continuity;
this library combines them with finite-root estimates and coefficient
normalization to obtain the stated local-constancy interfaces. See the
historical root-field API reference and the
generic checked-use clients.
TheoremPolynomial root scaling#
For a fixed polynomial p : R[X] over a topological semiring R, evaluation
of Mathlib's root-scaling operation is jointly continuous by
Polynomial.continuous_eval_scaleRoots:
(t, z) ↦ (p.scaleRoots t).eval z. The polynomial is fixed; no continuity
across changes of degree is asserted, and multiplication need not be commutative.
Over any normed field K, suppose p : K[X] satisfies
∀ w, 1 ≤ ‖w‖ → p.eval w ≠ 0. If ‖t‖ ≤ ‖z‖ and z ≠ 0, then
Polynomial.scaleRoots_eval_ne_zero_of_norm_le
gives (p.scaleRoots t).eval z ≠ 0. In particular this applies when ‖t‖ ≤ 1
and ‖z‖ = 1. The outside condition holds for X over every normed field
and for X - C (1/2) over ℂ; it implies p ≠ 0 by evaluation at 1.
At parameter zero the scaled polynomial is p.leadingCoeff • X ^ p.natDegree,
so nonzero constants are included without a positive-degree hypothesis.
No completeness, algebraic-closure or nontrivial-norm assumption is needed.
Quoted from the headline results in README.md of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
Lean
Polynomial.continuous_eval_scaleRoots(theorem), declared in PolynomialRootStability/ScaleRoots.lean, line 47.
Read from the source at commit efade497, without running Lean.
Sources
TheoremPolynomial scaling in valuation balls#
Let R : Type u be a commutative ring and Γ₀ : Type w a
LinearOrderedCommMonoidWithZero, with independent universes, and let v : Valuation R Γ₀.
For f : R[X], M : Γ₀ and a : R, assume ∀ n > 0, v (f.coeff n) ≤ M and v a ≤ 1; the constant coefficient is unrestricted.
Set D = v (f.derivative.eval a) and B = {b | M * v (b - a) < D}.
Valuation.map_eval_sub_eq_of_mul_map_sub_lt_map_derivative gives
v (f.eval b - f.eval a) = D * v (b - a) for b ∈ B, and
Valuation.map_derivative_eval_eq_of_mul_map_sub_lt_map_derivative
gives v (f.derivative.eval b) = D there. For b, c ∈ B,
Valuation.map_eval_sub_eval_eq_of_mul_map_sub_lt_map_derivative
gives v (f.eval c - f.eval b) = D * v (c - b).
Only Valuation.injOn_eval_of_mul_map_sub_lt_map_derivative
additionally assumes v.supp = ⊥ to conclude Set.InjOn on B; value-zero displacement alone need not identify points.
These estimates need no root, domain, field, Henselianity, completeness, rank-one or real-valued realization,
normalization, uniformizer, value-one derivative or separate 0 < M assumption. Value inverses are not required;
multiplication in Γ₀ by positive elements is strict and cancellative. No arbitrary-rank root-existence theorem is asserted.
The estimates reuse Mathlib's valuation, Taylor and geometric-sum APIs.
Quoted from the headline results in README.md of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
Lean
Valuation.map_eval_sub_eq_of_mul_map_sub_lt_map_derivative(theorem), declared in PolynomialRootStability/Valuation.lean, line 163.
Read from the source at commit efade497, without running Lean.
Sources
Local polynomial norm scaling
Let R be an ultrametric commutative seminormed ring with multiplicative
seminorm. If f : R[X] satisfies ∀ n, ‖f.coeff n‖ ≤ M, ‖a‖ ≤ 1, and
M * ‖b - a‖ < ‖f.derivative.eval a‖, then
‖f.eval b - f.eval a‖ = ‖f.derivative.eval a‖ * ‖b - a‖
The theorem
Polynomial.norm_eval_sub_eq_of_mul_norm_sub_lt_norm_derivative
requires no root, division, completeness or separated norm. Only the anchor
a is assumed to lie in the unit ball; the bound on b follows from the
hypotheses. Zero seminorm distance is allowed without identifying the points.
The 3-adic Newton example
instantiates this identity at a = 1 and b = 5 / 2 for X² - 4, with
nonzero evaluation-difference norm and displacement norm both equal to 1 / 3.
The two-point theorem
Polynomial.norm_eval_sub_eval_eq_of_mul_norm_sub_lt_norm_derivative
gives ‖f.eval c - f.eval b‖ = ‖f.derivative.eval a‖ * ‖c - b‖
under the same assumptions on R, f, M, and a whenever both
M * ‖b - a‖ < ‖f.derivative.eval a‖ and
M * ‖c - a‖ < ‖f.derivative.eval a‖; the derivative factor remains at the
original anchor a.
When R is a normed commutative ring, the same coefficient and anchor bounds
give injectivity on this strict ball. The theorem
Polynomial.injOn_eval_of_mul_norm_sub_lt_norm_derivative
expresses this as Set.InjOn; the anchor need not be a root.
Root existence and bounds under coefficient perturbation
For an ultrametric commutative seminormed ring with multiplicative seminorm, assume
∀ n, ‖f.coeff n‖ ≤ M, ‖a‖ ≤ 1, f.eval x = 0, and g.eval y = 0.
If M * ‖x - a‖ < ‖f.derivative.eval a‖ and M * ‖y - a‖ < ‖f.derivative.eval a‖,
and ∀ n, ‖f.coeff n - g.coeff n‖ ≤ ε, then ‖f.derivative.eval a‖ * ‖x - y‖ ≤ ε.
This is a bound on two given roots. No separation or completeness is needed;
ε = 0 gives zero seminorm distance, not necessarily equality of roots.
For local root existence, set D = ‖f.derivative.eval a‖. In a complete ultrametric
normed commutative ring with multiplicative norm,
Polynomial.exists_root_of_norm_coeff_sub_le_of_isUnit takes the coefficient and
anchor bounds, the root x of f, its strict ball inequality M * ‖x - a‖ < D,
the coefficient-difference bound, M * ε < D ^ 2, and a unit original derivative.
It constructs a root y of g in the same original strict derivative ball with
D * ‖x - y‖ ≤ ε. Every root of g in that ball equals y, whether or not a
scaled distance bound was supplied for it. No root of g is an input.
Over a complete ultrametric normed field,
Polynomial.exists_root_of_norm_coeff_sub_le derives the derivative unit from
the strict ball inequality, so only the six coefficient, anchor, original-root,
strict-ball, difference, and smallness conditions are inputs. These existential
conclusions are the root-construction and characterization API, not a chosen-root
object: use the witness for existence and its uniqueness clause to identify any
other root in the original ball. The ring construction requires inverse data in
the form of a unit original derivative; it does not assert existence over all
complete ultrametric normed rings without such data.
The same ℚ_[3] model with f = X² - 4, g = X² - 25/4, a = 1, and x = -2
has M = D = 1 and positive ε = 1/9. The constructed root is y = 5/2, and
D * ‖x - y‖ = 1/9, so the bound is sharp. Zero perturbation is also supported:
with g = f and ε = 0, the constructed root equals x.
See coefficient perturbation.
TheoremRoot uniqueness in an ultrametric normed ring#
Let R be an ultrametric normed commutative ring with multiplicative norm,
let f : R[X] satisfy ∀ n, ‖f.coeff n‖ ≤ M, and let y be a root with
‖y‖ ≤ 1. Then every root x satisfying
M * ‖x - y‖ < ‖f.derivative.eval y‖ equals y. The criterion
Polynomial.eq_of_eval_eq_zero_of_mul_norm_sub_lt_norm_derivative
requires neither division nor completeness, and does not assume ‖x‖ ≤ 1:
the derivative bound and the strict inequality imply that bound. The local norm
scaling identity forces ‖x - y‖ = 0, and separation gives equality.
The coefficient bound is arbitrary; it need not be one.
The 3-adic Newton example
for X² - 4 at 1 uses this criterion to identify every source root in the
strict radius-one ball with -2. The same example retains convergence under
the embedding into the 3-adic complex field and uniqueness among all target
roots in the target ball; the other root 2 lies on the excluded boundary.
Quoted from the headline results in README.md of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
Lean
Polynomial.eq_of_eval_eq_zero_of_mul_norm_sub_lt_norm_derivative(theorem), declared in PolynomialRootStability/RootUniqueness.lean, line 73.
Read from the source at commit efade497, without running Lean.
Sources
Quantitative Newton lifting
For a complete ultrametric normed field K, a polynomial f : K[X] with
∀ n, ‖f.coeff n‖ ≤ 1, and ‖a₀‖ ≤ 1, the hypothesis
‖f.eval a₀‖ < ‖f.derivative.eval a₀‖² gives an integral root at exact distance
‖f.eval a₀‖ / ‖f.derivative.eval a₀‖, with derivative-norm stability and
uniqueness in the open initial-derivative-radius ball. The statement also includes
convergence of the explicit iterates f.newtonMap^[n] a₀, integrality of all
iterates, nonzero denominators and derivative-norm stability at every iterate. No monicity, characteristic-zero,
nontrivial-norm, or norm-one derivative hypothesis is imposed. This formulation
uses a real-valued norm, not an arbitrary higher-rank valuation.
The theorem Polynomial.exists_root_tendsto_iterate_newtonMap
uses coefficient-controlled ultrametric estimates and Mathlib’s Banach fixed
point theorem. On the closed ball of radius δ / d, where δ is the initial
error and d the initial derivative norm, the Newton map has contraction constant
δ / d². The proof includes zero initial error and trivially normed fields.
The field-target quotient formula and
boundary examples use the
stock polynomial Newton map and function iteration.
The independent 2-adic input calculation
uses X² - 17 at 1, with nonzero error of norm 1 / 16 and derivative of norm
1 / 2, a nonunit in ℤ_[2]. Its further convergence client applies the general
theorem; the input calculation is independent of the root-existence proof.
The private p-adic compatibility clients
recover the complete existing Hensel interface for arbitrary commutative-semiring
coefficients and the p-adic polynomial distance estimate, without calling the old
root-existence theorem or adding a duplicate public API. The X² - 1 boundary
calculation shows that uniqueness cannot use the closed derivative-radius ball.
TheoremQuantitative resultant-controlled factorization#
Let K be a complete ultrametric normed field, and let f, g₀, h₀ : K[X].
Write m = g₀.natDegree, n = h₀.natDegree, e = f - g₀ * h₀,
δ = e.supNorm and r = ‖g₀.resultant h₀‖, using the natural-degree resultant.
Assume g₀.supNorm ≤ 1, h₀.supNorm ≤ 1, e.degree < (m + n : WithBot ℕ)
and δ < r². Then
Polynomial.exists_factorization_of_supNorm_lt_resultant_sq
gives f = g * h, preserving each initial factor's degree and leading coefficient.
The corrections have degrees strictly less than m and n, both factors have
sup norm at most one, and both correction sup norms are at most δ / r.
There is no monicity, norm-one-leading-coefficient, characteristic-zero, discreteness,
nontrivial-norm or positive-factor-degree assumption. The strict degree bounds use
WithBot ℕ, so degree less than zero forces the zero polynomial. In particular,
both constant initial factors force zero error, and zero error returns the
initial factors. The proof uses the initial Sylvester inverse, finite coefficient
coordinates and Mathlib's Banach fixed-point theorem.
The 5-adic example uses
g₀ = 5X² + 2, h₀ = 5X² + 7 and f = g₀h₀ + 5⁹X. Its independently proved
inputs give r = 5⁻⁴, δ = 5⁻⁹ and correction bounds 5⁻⁵. The full-output client
produces degree-two factors with leading coefficients 5 and these correction
bounds. The leading coefficients and resultant are nonunits in the valuation
integer ring, not in the field.
Quoted from the headline results in README.md of FormalFrontier/polynomial-root-stability at commit efade497, Apache-2.0.
Lean
Polynomial.exists_factorization_of_supNorm_lt_resultant_sq(theorem), declared in PolynomialRootStability/ResultantFactorization.lean, line 214.
Read from the source at commit efade497, without running Lean.
Sources
Main results
Its formalization.yaml lists 9 main results, and the scan finds 9 of them declared in the file the yaml gives; they are on their own page, not made articles.
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.