Documentation

HexRoots.SimpleRoot

An isolation refined at least to separation precision. At this precision the disc radius is below sep(p)/4, so two refined isolations isolate the same root exactly when their discs intersect.

Equations
Instances For
    def Hex.Intersects {p : ZPoly} (i₁ i₂ : RefinedIsolation p) :

    The circumscribed discs intersect. A single exact dyadic comparison (squared centre distance against squared radius sum).

    Equations
    Instances For

      The identity of a simple root, independent of which isolation witnessed it. (Quot of a bare relation; the companion proves Intersects is an equivalence on RefinedIsolation whose classes are the simple roots.)

      Equations
      Instances For

        The simple root witnessed by a refined isolation.

        Equations
        Instances For
          def Hex.SimpleRoot.ofSquare (p : ZPoly) (s : DyadicSquare) (hw : atomWitness p s := by decide) (hp : (mahlerPrec p) s.prec := by decide) :

          The simple root of p isolated by the square s. Both side conditions are decidable checks on printable data, so a caller who has only a square -- a Repr output, a fixture, a literal -- rebuilds the certificate with decide and recovers the root. The companion's ofSquare_mk identifies the result with the root that any isolation on that square witnesses.

          Equations
          Instances For

            Boolean form of Intersects, used for equality tests on data containing roots (see hex-number-field).

            Equations
            Instances For

              Every structural atom certificate belongs to a polynomial with at least two stored coefficients. Exact reflection preserves that count.

              A certified atom needs at least two stored coefficients.

              A certified atom can only exist for a positive-degree polynomial.

              Every represented simple root belongs to a positive-degree polynomial.

              Wrap an isolation as a RefinedIsolation when it meets the separation precision, deciding the subtype bound. ZPoly.isolateComplexRoots?'s output always qualifies (its target has a separationDepth ≥ mahlerPrec floor); this is the constructor consumers use to record that fact.

              Equations
              Instances For