Documentation

LeanPool.Sendov.Defs

Definitions for the finite-range numerical claim #

This file fixes the notation of the numerical claim stat, the one step of the proof that is discharged by computation rather than by argument. It contains definitions only; no statement is made here.

stat cannot be stated in this file, because every other file in the development imports it for the definitions below, and putting the claim at the bottom of the import graph would prevent it from being proved. It is stated and proved in Sendov.FiniteRange.Cover, so auditing it means reading this file for the definitions and that one for the claim built from them.

For where stat enters the proof as a whole, see Sendov.Reduction.Main and the repository README; for the finite-range component on its own, see docs/finite-range.md.

Background #

In the blog post one argues by contradiction from a degree n polynomial with all zeroes in the unit disk, a zero 0 ≤ a < 1, and all critical points at distance ≥ 1 from a. Writing α := (n-1)(1-a²)/2 and β(1) := 1 - 2ax + a² (where x is the real part of the mean of the reciprocal critical-point data), the post derives:

Monotonicity in β(1) lets one replace β(1) by α/(3+α) in (1le), which replaces a x by c and β(t) by Q t below. The resulting inequality is equation stat of the post, namely 1 ≤ R n α. The upper bound c ≤ a x moreover forces the feasibility constraint c ^ 2 ≤ A, which is what keeps α away from its formal upper limit (n-1)/2.

What is left open is that stat is infeasible on the remaining range

5 ≤ n ≤ 97, 0 ≤ α ≤ 17, c ^ 2 ≤ A,

which is exactly Sendov.finite_range below.

Main statements #

The claim assembled from them lives in Sendov.FiniteRange.Cover:

Implementation notes #

Numerical diagnostics #

These are not inputs to the proof, and must not be used as hypotheses; they are recorded only to indicate the size of the margin. Numerically, R n α attains a maximum of about 0.8529 over the feasible range, at n = 53, α = 17 — which remains inside the range below, so shortening it does not make the claim easier. For comparison, R 5 0 ≈ 0.6458 and R 97 17 ≈ 0.2921. The feasibility constraint is binding at low degree: it caps α ≲ 1.68 when n = 5 and α ≲ 2.19 when n = 6, and only ceases to cut into [0, 17] from n = 36 onwards.

References #

noncomputable def Sendov.M (n : ℕ) :

M n = n - 1. All of the quantities below are naturally expressed in terms of it.

Equations
Instances For
    noncomputable def Sendov.A (n : ℕ) (α : ℝ) :

    A n α = a ^ 2 = 1 - 2α/(n-1), from the definition α = (n-1)(1-a²)/2 of α. The blog post's a ^ 4 is therefore A n α ^ 2.

    Equations
    Instances For
      noncomputable def Sendov.c (n : ℕ) (α : ℝ) :

      c n α = 1 - α/(n-1) - α/(2(3+α)): the value taken by a * x after the substitution of α/(3+α) for β(1). This is c(α) in the blog post.

      Equations
      Instances For
        noncomputable def Sendov.Q (n : ℕ) (α t : ℝ) :

        Q n α t = 1 - 2 c t + A t ^ 2: the quadratic replacing β(t) = 1 - 2 a x t + a² t² after the substitution of α/(3+α) for β(1). Note Q n α 1 = α/(3+α).

        Equations
        Instances For
          noncomputable def Sendov.R (n : ℕ) (α : ℝ) :

          R n α is the right-hand side of equation stat of the blog post: 1/6 + 1/(4(3+α)) + 1/(2(n-1)) + 1/(4(n-1)(3+α)) + a⁴ n (n-1) (n-2)/(4(3+α)) * ∫ t in 0..1, t³ (1 - 2c(α)t + a²t²) ^ ((n-4)/2).

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            The claim itself is stated and proved in Sendov.FiniteRange.Cover (Sendov.finite_range, Sendov.finite_range_contradiction). It cannot live here: this file sits at the bottom of the import graph, since every other file needs these definitions.