README.md
8.9 kB · markdown
zeta-locus
- The locus of the zeros of the design zeta
zeta_F(s) = sum_(n in S_F) n^(-s), withFthe digits of the code andS_Fthe integers they write: where the zeros sit across bases and digit sets, and which law the real part obeys. - The ladder, the contour engine and the truncation bounds are imported from
../design-zetaand never copied; this study adds the cofactor, the Laurent data at the poles, the derived shadow law and the falsification sweep.
THE COFACTOR
Z(s) = zeta_F(s) (1 - fill base^(-s))is the Lyndon cofactor:1/(1 - fill base^(-s))is the zeta of the free monoid onFwith normbase^(length), is zero free, and carries the whole pole lattice.Zis analytic onRe s > alpha - 1, because1 - fill base^(-s)cancels exactly them = 0line of the ladder's poles and no other; its own poles are thes_(m,j)withm >= 1at whichzeta_Fhas a nonvanishing residue, the nearest to the strip beingRe s = alpha - 1with residue-s_(1,j) gamma_1 r_j/fill, and on a full digit set there are none at all,Zbeing entire.Z(s) -> a_min^(-s)asRe s -> +infinitywitha_minthe least nonzero digit, so every zero ofzeta_Fright ofalpha - 1is a zero of one analytic function.- The transfer runs one way without exception and the other way with one: a zero of
zeta_Fis always a zero ofZ; a zero ofZis a zero ofzeta_Fexcept at a poles_(0,j)where the residue vanishes, and thereZvanishes whilezeta_Fis regular. - The one-level digit recursion gives it in closed form:
Z(s) = E_1(s) + sum_(l >= 1) binom(-s, l) base^(-s-l) gamma_l zeta_F(s+l)withE_1(s) = sum_(a in F, a != 0) a^(-s)andgamma_l = sum_(a in F) a^l; the peeled ladder of../design-zetaevaluates it as(1 - fill base^(-s)) D_(P-1)(s)plus the ladder numerator, so the printed VALUE ofZcarries the same propagated bound. The Laurent coefficients do not:Z_1andZ_2are central differences at step1e-5carrying about1e-10of truncation, far above the ladder's own bound, enough for a prediction compared at1e-3and not a certificate.
THE DERIVED SHADOW
- At a pole
s_(0,j) = alpha + 2 pi i j/log baseone hasfill base^(-s_(0,j)) = 1exactly for everyj, so1 - fill base^(-s) = 1 - base^(-u)inu = s - s_(0,j)with nojdependence at all. - With
Z(s) = Z_0 + Z_1 u + Z_2 u^2 + ..., the identity1/(1 - e^(-x)) = 1/x + 1/2 + x/12 - x^3/720 + ...atx = u log basegives the Laurent expansion ofzeta_Fat the pole term by term. - Residue
r_j = Z_0/(log base), regular partR_j = Z_1/(log base) + Z_0/2, its derivativeR'_j = Z_2/(log base) + Z_1/2 + Z_0 (log base)/12. The residues are Burnol'slambda_(0,j), certified by../burnol-residue; on the full digit setr_0 = 1andR_0is Euler-Mascheroni, which is whatzetahas ats = 1. - A zero near the pole solves
u (R_j + R'_j u + ...) = -r_j. First orderu_1 = -r_j/R_j; second order the root ofR'_j u^2 + R_j u + r_j = 0nearestu_1. Nothing is fitted: the prediction is built from the residue and the regular part alone and is then compared with the polished zero. - The pole index
jis the only label; the disc count, not the size of the prediction, decides whether a pole carries a zero at all.
THE SWEEP
- Every printed zero carries
Re s,Im s,Im s log base/(2 pi), its fractional part,alpha,fill/base, the pole index and the first-order prediction, so a curve law, a comb law and a family law each have a column to die in. - Equal-
alphapairs at different bases are the falsifier: base 4{0,1}, base 9{0,1,2}and base 16{0,1,2,3}all havealpha = 1/2, and base 4{0,1}and base 16{0,1,2,3}also sharefill/base = 1/2. - Equal-
alphapairs at one base are the cheaper falsifier: all fill 2 sets at base 4 sharealphaandfill/baseand differ only inF. - Scaling classes are quotiented first:
zeta_(aF)(s) = a^(-s) zeta_F(s)has the same zeros, so one representative per class is censused. - The base 2 full digit set is the line control: there
zeta_F = zetaand the locus is the critical lineRe s = 1/2 = alpha/2.
THE CENSUS
- The strip is
alpha - 0.92 < Re s < alpha + 3.02, one box, no pole inside and no blind sliver, the winding ofZon it counted by the argument principle with the largest surviving phase step printed as the certificate. - Each pole gets its own contour, a circle of radius
0.45abouts_(0,j), an assignment radius fixed by the discs not overlapping and not by the tooth law, so every count is conditional on it; that ONE radius serves both the count and the tooth: the winding gives the number of zeros ofZin the disc, the residue-null centre is subtracted to give the number of zeros ofzeta_F, and exactly that many are then located by a polar grid inside the disc. - The teeth are located without the prediction: the grid seeds the polish and the prediction is compared afterwards, so no tooth is selected by the law it tests, and a pole whose zero the search fails to pin is reported as such.
N_F(T)is the running winding at the box boundaries, printed per design, and the zeros per period isN_F(T) 2 pi/(T log base).- A zero is either matched to a tooth or tagged second family; the second family is what remains when the pole lattice is stripped, and on the base 2 full digit set it is the critical line.
THE ROUCHE CERTIFICATE
- The disc count is an argument principle on a resolved contour, which is a measurement. The certificate replaces it by an inequality, and the inequality is what a proof needs.
- Split
Z(s_0 + u) = P(u) + T(u)withP(u) = (1 - base^(-u)) D_(P-1)(s_0+u) + E_P(s_0+u)andTthel >= 1part of the ladder numerator. The split matters: a modulus bound on the Dirichlet polynomialD_(P-1)throws away its cancellation and runs about fifty times its true size, soPis never bounded, only expanded. Pis entire with Taylor coefficients in closed form,d_m = sum_(n) n^(-s_0)(-log n)^m/m!over the two string pools convolved with the coefficients of1 - e^(-u log base), computed exactly tom = 60with a remainder bounded bysum_n n^(rho - Re s_0)(rho log n)^(M/2+1)/(M/2+1)!and its mirror on the other factor.Tis bounded onabs(u) <= R_2by the ladder's own majorant,sum_(l >= 1) binom(abs(s_0)+R_2+l-1, l) base^(-sigma-l) gamma_l G(sigma+l)withsigma = Re s_0 - R_2,Gbounded by summing two peel levels exactly before the geometric tail, worth about a factor three over the raw tail. Thelsum is closed by a majorant ratio and not by an observed one:gamma_(l+1)/gamma_l <= a_maxandG(sigma+l+1)/G(sigma+l) <= base^(-(P-1))because every string in the pools is at leastbase^(P-1), so the term ratio is at mostR_l = ((abs(s_0)+R_2+l)/(l+1)) a_max base^(-P), which decreases inlonceabs(s_0)+R_2 >= 1and is belowa_max base^(-P)otherwise; stopping at the firstlwithR_l < 1and addingterm_l R_l/(1-R_l)is a proof, where the term ratio itself is not monotone.Z_0comes from the ladder ats_0with its propagated bound.Z_1is NOT the central difference: it is the first Fourier mode ofTon a circle of radiusR, whose aliasing is(B_T/R_2)(R/R_2)^N/(1 - (R/R_2)^N)by Cauchy, plus the exactp_1, so no step of the certificate uses a differenced quantity.- Rouche against the model
Z_0 + Z_1 u, whose zero count in the disc is exactly one whenabs(Z_0/Z_1) < rho: certified whenmargin = (abs(Z_1)_low rho - abs(Z_0)_up) - sum_(m >= 2) abs(P_m) rho^m - B_T tau^2/(1 - tau) > 0,tau = rho/R_2. - A positive margin proves exactly one zero of
Z, hence ofzeta_Fwhen the residue does not vanish, inabs(u) < rho.rhoandR_2are free parameters of the proof and the verb reports the pair it used. - The peel depth is a free parameter of the proof, not a constant: the verb raises
Pat a pole until the certificate fires or the string pool passes its cap, and prints the depth each certified pole used. A pole that fails at the depthbuildpicks automatically may certify two levels deeper.
RUN
uv run python research/lab/py/zeta-locus/zeta_locus.py shadow 40 all- the derived law at every design: residue, regular part, prediction, disc counts ofZand ofzeta_F, the located tooth and both misses.uv run python research/lab/py/zeta-locus/zeta_locus.py rouche 40 rou- the certificate at every pole of the nine designs the landed census counts: margin, therhoandR_2achieving it,B_T, the bounds onabs(Z_0)andabs(Z_1), the sample count, and the argument principle count in the same disc for comparison.uv run python research/lab/py/zeta-locus/zeta_locus.py census 40 all- the same plus the strip census,N_F(T), one row per zero and the falsification lines.- The third argument selects a family:
q3,q4,q5,half,wide,ctl,routhe nine designs of the Rouche census,all. The second is the height. - Prints only, writes nothing. The full census to height 40 is about fifteen minutes; base 10 costs about nine times base 3 per evaluation.