Documentation

HexNumberFieldMathlib.ComponentRoots

theorem Hex.PolyQuot.Roots.componentRoots?_sound {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (f : DensePoly (PolyQuot p x)) (multiplicity : ) (hMultiplicity : 0 < multiplicity) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) {roots : Array RootCount} (hrun : componentRoots? f multiplicity hMultiplicity rep h = some roots) (entry : RootCount) :
entry roots.toListPolynomial.eval entry.root.toComplex (toPolynomialAt f rep h) = 0 entry.multiplicity = multiplicity

Every entry returned by a successful component run is a root at the selected embedding and carries the requested multiplicity.

theorem Hex.PolyQuot.Roots.componentRoots?_complete {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (f : DensePoly (PolyQuot p x)) (multiplicity : ) (hMultiplicity : 0 < multiplicity) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) (hf : (!f.isZero) = true) {roots : Array RootCount} (hrun : componentRoots? f multiplicity hMultiplicity rep h = some roots) (z : ) (hz : Polynomial.eval z (toPolynomialAt f rep h) = 0) :
entryroots.toList, entry.root.toComplex = z entry.multiplicity = multiplicity

Every semantic root of a nonzero component occurs in a successful component run with the requested multiplicity.

theorem Hex.PolyQuot.contains_roots_iff {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (f : DensePoly (PolyQuot p x)) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) (z : ) :
(roots f rep h).Contains z Polynomial.eval z (toPolynomialAt f rep h) = 0

Semantic membership in the fixed-field output is exactly polynomial vanishing.

Fixed-field root multiplicities agree with Mathlib multiplicities.

theorem Hex.PolyQuot.roots_positive {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (f : DensePoly (PolyQuot p x)) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
(roots f rep h).Positive

The fixed-field driver produces positive multiplicities.

The fixed-field driver merges all semantic duplicates.

theorem Hex.PolyQuot.roots_ordered {p : ZPoly} {x : SimpleRoot p} [p.CheckedIrreducible] (f : DensePoly (PolyQuot p x)) (rep : RefinedIsolation p) (h : SimpleRoot.mk rep = x) :
(roots f rep h).Ordered

The fixed-field driver uses its deterministic canonical root order.

For a nonzero fixed-field polynomial, the output multiplicities sum to its degree.