Documentation

HexRootsMathlib.RootFree

theorem HexRootsMathlib.pelletFold (cs : Array Hex.GaussDyadic) (k : ) (r : Dyadic) (n : ) :
have result := List.foldl (fun (acc : Dyadic × Dyadic) (i : ) => have acc' := if i = k then acc.1 else acc.1 + (cs.getD i (0, 0)).hi * acc.2; (acc', acc.2 * r)) (0, 1) (List.range n); (Dyadic.toReal result.1 = iFinset.range n, if i = k then 0 else Dyadic.toReal (cs.getD i (0, 0)).hi * Dyadic.toReal r ^ i) Dyadic.toReal result.2 = Dyadic.toReal r ^ n

Closed form of the accumulator used by pelletAt: its first component is the sum with coefficient k omitted, and its second component is the next power of the radius. Shared by the elementary rootFree proof here and the general Pellet correspondence in Pellet.lean.

A successful root-exclusion test can only occur for a nonempty stored polynomial.

A nonempty polynomial's shift has degree strictly below its executable coefficient count. Shared by the elementary and general Pellet proofs.

The Boolean rootFree result exposes the strict real Taylor-dominance inequality used by its soundness proof.

Combined T₀ soundness. The bounded-precision filter and the exact Taylor fallback both exclude every zero from the executable upper-radius disc.

A successful rootFree test excludes roots from the represented closed square.

The stated circumscribed closed disc is root-free as well; its radius is strictly below the executable upper-radius bound used by rootFree.