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

    Reflect an isolation, transporting its certificate without numerical checks.

    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