Documentation

HexRootsMathlib.IsolateTotal

Isolate all complex roots of a nonzero squarefree integer polynomial.

Unlike Hex.ZPoly.isolateComplexRoots?, this proof-facing wrapper cannot return none: its required hypotheses discharge the driver's completeness conditions. The result is characterized by isolateComplexRoots_eq as the successful executable output, with the same atom strategy and requested-precision parameters.

Equations
Instances For
    theorem HexRootsMathlib.isolateComplexRoots_eq (p : Hex.ZPoly) (h : Hex.HasOnlySimpleRoots p) (hp : p 0) (atomPrec : ) (strategy : Hex.AtomStrategy := Hex.AtomStrategy.nkThenPellet) :
    p.isolateComplexRoots? h atomPrec strategy = some (isolateComplexRoots p h hp atomPrec strategy)

    The total wrapper is exactly the successful result of Hex.ZPoly.isolateComplexRoots?.

    The total wrapper returns one atom for each complex root, counted with multiplicity.

    The semantic roots selected by the returned atoms are exactly the roots of the input polynomial.

    theorem HexRootsMathlib.isolateComplexRoots_prec (p : Hex.ZPoly) (h : Hex.HasOnlySimpleRoots p) (hp : p 0) (atomPrec : ) (strategy : Hex.AtomStrategy := Hex.AtomStrategy.nkThenPellet) (iso : Hex.DyadicRootIsolation p) :
    iso (isolateComplexRoots p h hp atomPrec strategy).toListatomPrec iso.square.prec

    Every returned atom meets the requested precision.

    theorem HexRootsMathlib.isolateComplexRoots_disjoint (p : Hex.ZPoly) (h : Hex.HasOnlySimpleRoots p) (hp : p 0) (atomPrec : ) (strategy : Hex.AtomStrategy := Hex.AtomStrategy.nkThenPellet) {i j : } (hi : i < (isolateComplexRoots p h hp atomPrec strategy).size) (hj : j < (isolateComplexRoots p h hp atomPrec strategy).size) (hij : i j) :

    Distinct atoms returned by the total wrapper have disjoint closed circumscribed discs.