Kernel-checked Bernstein certificates #
Each batch file Sendov.FiniteRange.Degree<n₀>_<n₁> proves R n α < 1 for n₀ ≤ n ≤ n₁ by
bounding R n α through Sendov.R_le_batch by a rational function of α, and certifying that
the numerator of 1 - bound is positive on the batch's α-range. Upstream, each certificate
was an explicit polynomial identity closed by ring under a raised heartbeat budget, and the
rational bound was cleared by field_simp in every batch. Here the same data are checked by
the kernel instead:
Sendov.bern p q d bexpands∑ⱼ bⱼ Xʲ (p - q X)^(d-j)into a coefficient list, so the statement "p ^ d • Phas Bernstein coefficientsbon[0, p/q]" is a decidable equality of lists, andSendov.pev_pos_of_bernturns positive coefficients into positivity ofP;Sendov.batchP n₀ n₁ k L Nmomcomputes the numerator polynomial directly from the batch parameters and the moment numerator, andSendov.batch_lt_oneproves once, for symbolicn₀,n₁,k, that positivity of this polynomial gives the batch bound< 1.
Numerals beyond 90 digits cannot sit on one line; Sendov.big assembles them from decimal
chunks.
A large natural number assembled from little-endian chunks of at most 90 decimal digits, as an integer.
Equations
- Sendov.big chunks = ↑(Sendov.npev chunks (10 ^ 90))
Instances For
Polynomial arithmetic on coefficient lists #
Difference of dense integer polynomials.
Equations
- Sendov.psub p q = Sendov.padd p (Sendov.pscale (-1) q)
Instances For
Power of a dense integer polynomial.
Equations
- Sendov.ppow p 0 = [1]
- Sendov.ppow p k.succ = Sendov.pmul p (Sendov.ppow p k)
Instances For
Bernstein expansion #
bern p q d b is ∑ⱼ bⱼ Xʲ (p - q X)^(d-j) as a coefficient list, the entries of b
being listed from j = 0.
Equations
- Sendov.bern p q x✝ [] = []
- Sendov.bern p q x✝ (a :: rest) = Sendov.padd (Sendov.pscale a (Sendov.ppow [p, -q] x✝)) (0 :: Sendov.bern p q (x✝ - 1) rest)
Instances For
Positivity from a Bernstein certificate: if bern p q d B = pscale (p ^ d) P and every
entry of B is positive, then P is positive on [0, p/q]. All closed hypotheses are
decidable and are discharged by the kernel in the batch files.
The batch bound as a rational function #
The denominator of the batch bound of Sendov.R_le_batch, after the moment
substitution, as a polynomial in α: with m₀ = n₀ - 1 and m₁ = n₁ - 1,
12 m₀ m₁² L (2m₀)^k (3+α)^(k+1).
Equations
Instances For
The numerator of the batch bound over the denominator Sendov.batchD.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The numerator of 1 - bound: the polynomial that each batch certifies positive.
Equations
- Sendov.batchP n₀ n₁ k L Nmom = Sendov.psub (Sendov.batchD n₀ n₁ k L) (Sendov.batchN n₀ n₁ k L Nmom)
Instances For
The batch bound is below 1 once its numerator Sendov.batchP is positive. The
hypothesis hint is the packed moment identity of the batch (Sendov.integral_moment_packed),
and the conclusion is exactly the right-hand side of Sendov.R_le_batch.