/teal-sea
teal-sea / zeta-labstate of record · compiled 02 Nov 2026 · revision b09fa4dd · source

Library · hunts/weil_propagation/c4_s2/two_adic/RESULTS.md

RESULTS: two_adic/, gap (b), P_2 through E_S and the assembly of T_S

12,525 words · 956 lines · source

Worker two_adic/, 2026-09-23, branch teal-sea/weil-c4-s2, time box 21:10 to 00:10, closed at about 22:45 with T_S evaluated. Nothing here is a claim about RH. Positivity on c ∈ [2, 3) is already known (Zhu arXiv:2608.24827); this folder builds the 2-adic half of the C4 trace term. Grades follow the AGENTS.md ladder. No kernel-checked statement is made (AXLE not attempted: nothing here reduced to a lemma small enough to be worth it within the box). Every number below is pinned by a test in this folder; raw values are in ta_es_cells.json, ta_ts_cells.json and ta_ts_prolate.json. The rejected cabinet attempt (req-c4-s2-remainder/a1) was read and not reused: its split of Q is superseded by §3's closed form.

0. Sources and conventions

S = {∞, 2}, Γ_S = {±2^n}, C_S = (ℝ^* × Q_2^)/Γ_S, module |x|S = |x∞||x_2|_2, K_S = its kernel ≅ Z_2^. In the log variable x = log u of L²(ℝ_+^*, d^*u), scaling is translation, D := translation by log 2 (CCM's g(λ) ↦ g(λ/2)), and P := time limiting to u ≤ 1 (the module ball; on this sector it is the archimedean interval cutoff).

1. Task 1: the objects, and the recheck of theory §7.3 item 2

At the place 2 alone (ta_local.py, exact rational arithmetic on the Z_2^*-invariant sector, ball basis B_r = 1_{|x|_2 ≤ 2^r}, F(B_r) = 2^r B_{−r}):

statementvalue
F unitary, F² = 1, F(1_{Z_2}) = 1_{Z_2}, F(σ_2) = σ_2, F(ε_0) ≠ ε_0all true
P_2 := multiply by 1_{Z_2}, P̂_2 := F P_2 F: both orthogonal projectionstrue
P_2 = P̂_2false
P_2 P̂_2 = P̂_2 P_2 = rank one projection onto 1_{Z_2}true
P_2 ∨ P̂_2 = 1 (closed ball |x|_2 ≤ 1)true: local Sonin space dim 0
open ball |x|_2 < 1 (CCM Def 4.4)local Sonin space dim 1, spanned by σ_2 = ε_0 − ε_1/2
‖σ_2‖², ‖1_{Z_2}‖²3/4, 1

Pinned by test_ta_local_and_data.py for truncations K = 3, 5, 6, 8 (the span V_K of the balls is invariant under P_2, P̂2 and F, so the kernels are not truncation artefacts). Grade: exact. Theory §7.3 item 2 ("1{Z_p} is its own Fourier transform, so time and frequency limiting to Z_p are the same projection") is refuted: self-duality is a statement about one vector. What is true is that the two projections commute and meet in that vector, so the p-adic uncertainty is exact with a one-dimensional joint range.

2. The product-ball obstruction (graded result on its own)

Ordinary argument, unreviewed. cutoff/ reached the same conclusions in its milestone 1 (its RESULTS lines 1 and 4):

  1. The product ball B = [−λ, λ] × Z_2 is not Γ_S-invariant (2B ≠ B), so multiplication by 1_B is not an operator on L²(X_S), where eq. (22) and the prime term live (Connes (17): the trace on X_S is a sum over S-units).
  2. Pushed through the periodization J = E_S (Connes (5)), the ranges of the product-ball time and frequency limits become the module ranges: every f supported in B has J f supported in |x|_S ≤ λ, and every function on {|x|_S ≤ λ} is J of its restriction to the shell |x_2|2 = 1 times 1{|x_∞| ≤ λ}. F commutes with J (Connes Lemma 1(b)), so the same holds for the frequency side.
  3. The summand 1 ⊗ (1 − P_2) is pushed onto all of L²(X_S) (every Γ_S-orbit meets the shell |x_2|_2 = 2), so the literal Π_S of theory §7.3 has trace +∞ against ϑ(g)ϑ(g)^*. The brief's "start with the 1 ⊗ (1 − P_2) piece" therefore has no finite matrix entries to deliver.
  4. The finite, positive, E_S-compatible object is the one CCM Thm 4.6 supplies: the semilocal Sonin space is θ_S(S_λ(ℝ)), i.e. S_∞ tensored with the open-ball 2-adic Sonin vector σ_2 and periodized. This is the T_S built below (coordinator decision on milestone 1).

3. Task 2: P_2 through E_S on the shared basis (closed form)

In the w_S picture θ_S = Θ_α := 1 − α 2^{−1/2} D (Mellin multiplier 1 − α 2^{−1/2−is}, CCM (57)-(58)) and E_S = Σ_{k≥0} (ᾱ 2^{−1/2})^k D^{−k} (multiplier L_2(1/2 − is), CCM (47)). On a window of length L, ⟨f, D^k f⟩ = 0 once k log 2 ≥ L, so for 2 < c < 4 every Gram form of θ_S or E_S on window functions is built from one matrix,

C_{mn} = ⟨U_m, D U_n⟩ = e^{−2πinh/L} (1 − e^{2πi(n−m)h/L}) / (2πi(n−m)), m ≠ n, C_{nn} = e^{−2πinh/L} (L − h)/L, h = log 2,

and:

The 2-adic atom of the Weil form on these windows is the failure of the Sonin map θ_S to be a multiple of an isometry on window functions. The orientation for complex α is fixed by matching Θ_α's multiplier; no mission cell uses complex α.

Checks (test_ta_es.py, dps 40; tolerance = measured deviation rounded up):

checkmeasured max deviationtest tolerance
closed form C against direct quadrature (dps 50), 25 entries per cell2.1e−421e−39
Wp from C against galerkin.py's prime block (independent code)4.5e−405e−39
identity −Wp_α = log 2 (Gram − shift), α ∈ {(1), (1,1), (−1), (i)}1.2e−411e−39
Gram(E_S) closed form against its operator series (140 terms), α ∈ {1, −1, i}4.6e−415e−39

Grade: the identity is exact algebra from the closed form; the closed form is hardened (quadrature and an independent implementation agree to working precision).

Mission cells (ta_es_cells.json, dps 40, runtime 13 s for all nine):

cNGram(θ_S) minGram(θ_S) maxWp minWp max
2.280.805472318665126262.19834594065960534−0.484056519823688320.48140990413810388
2.2160.792931625160695612.20708619002499827−0.490114799028701280.49010245048296641
2.2320.792893219108678562.20710678105946315−0.490129071646185420.49012907152963847
2.580.792907663000016622.20708688175546311−0.490115278499722690.49011905978708118
2.5160.792893218904532242.20710678106376477−0.490129071649167080.49012907167114192
2.5320.792893218813452482.20710678118654752−0.490129071734273600.49012907173427360
2.980.792893233040640582.20710673297045489−0.490129038313424930.49012906187273828
2.9160.792893218813453102.20710678118654718−0.490129071734273360.49012907173427316
2.9320.792893218813452482.20710678118654752−0.490129071734273600.49012907173427360

The band is [3/2 − 1/√2, 3/2 + 1/√2] = [0.79289321881345248, 2.20710678118654752]: window and shifted window overlap in less than half when c < 4, so |Re⟨f, Df⟩| ≤ ‖f‖²/2 (Cauchy-Schwarz; ordinary argument). Every cell lies in it; at N = 32 the ends are on it to 1e−18 (c = 2.5, 2.9) and 3e−10 (c = 2.2). Correspondingly Wp's spectrum fills [−log 2/√2, log 2/√2] = ±0.49012907173. Grade: measured spectra (mpmath eigsy at dps 40) of hardened matrices.

4. Kill-control 2: the refusal gate (ta_data.py)

Local data at 2 enter as Satake parameters or as a tower s_k(2) = Λ(2^k)/log 2 with degree d. The gate checks |s_k| ≤ d, recovers the α_j by Newton's identities, checks |α_j| = 1, and requires the α_j to reproduce every given s_k. Exact arithmetic (sympy); float inputs need an explicit tolerance, which is recorded.

data at 2outcome
ζ, α = (1)accepted
Dedekind ζ_{Q(√−23)}, α = (1, 1); also its tower s_k = 2 (k ≤ 7, numerics us_check.json)accepted, α = (1, 1)
W_a, a = 1/4: α = 2^{±1/4}refused (|α| ≠ 1); its tower refused at k = 1 (s_1 = 2^{1/4} + 2^{−1/4} = 2.030103 > 2; theory §7.1 prints 2.0303, a slip in the fourth digit that changes nothing)
Epstein (1,1,6) tower (0, 2, 6, 2, 0, 2, 0)refused at k = 3 (|s_3| = 6 > 2, n = 8)
Epstein's s_1, s_2 aloneaccepted as α = (1, −1): the window c < 4 sees only s_1, so detecting Epstein needs the tower beyond the window, as the mission says
synthetic tower (0, 2, 1), d = 2refused: not a power-sum tower

T_S_matrix runs the gate before anything else, so no code path returns a trace term for W_a or Epstein data (test_ta_ts.py). Grade: exact. Why the gate is a correctness condition and not a guard: T_S uses the local data only through Θ_α, and the trace term is a diagonal (nonnegative) quantity only when α enters as a unitary twist of the scaling action; for W_a the form is a pairing of two different vectors (theory §4, C2).

5. Task 3: the assembly of T_S

Definition (module/quotient form, coordinator decision): on L²(X_S)^{K_S} = L²(ℝ_+^*, d^*u),

T_S(g) = Tr(ϑ(g) Π_S ϑ(g)^*), Π_S = orthogonal projection onto Θ(range S_∞), Θ = Π_j (1 − α_j 2^{−1/2} D) per Satake parameter (degree d: sum over j).

Derivations (ordinary arguments, unreviewed):

  1. Finite and nonnegative. ϑ(g)Π_S = Θ·ϑ(g)S_∞·G^{−1}S_∞Θ^* with G = S_∞Θ^*ΘS_∞ invertible on range S_∞ (Θ is bounded with bounded inverse since ‖2^{−1/2}D‖ < 1). So T_S(g) is finite whenever T_∞(g) = ‖ϑ(g)S_∞‖²_HS is, and T_S ≥ 0 by construction.
  2. Composition with kernel/'s data. Θ^* maps range P onto itself (D^{−1} moves support towards u = 0), and 1 − S_∞ = P + Q_∞ with Q_∞ the projection onto span{ζ_n} (CC (81)). Hence

1 − Π_S = P + Q_S, Q_S = projection onto span{(1 − P) Θ^{−1} ζ_n}, Θ^{−1} = Σ_{k≥0} (ᾱ 2^{−1/2})^k D^{−k}, T_S = T_∞ + ΔT, ΔT(g) = Tr(ϑ(g)(Q_∞ − Q_S)ϑ(g)^*).

ΔT is the whole 2-adic part of T_S; it needs P, F and Θ only, plus the ζ_n from kernel/.

  1. Only |Θ| matters. Θ = W|Θ| with W unitary and both commuting with ϑ(g); trace is invariant under unitary conjugation, so T_{ΘV} = T_{|Θ|V}. T_S depends on α only through |1 − α 2^{−1/2−is}| on the critical line. (For complex unitary α the twisted semilocal Fourier transform was not rechecked here; every mission data set has real α.)
  2. Place 2 off. α = 0 (or local_data=None) gives Θ = 1, Q_S = Q_∞, ΔT = 0, T_S = T_∞.
  3. The oblique projection carries no 2-adic content. ΘS_∞Θ^{−1} has range Θ(range S_∞) and Tr(ϑ(f)ΘS_∞Θ^{−1}) = Tr(ϑ(f)S_∞): the 2-adic part of T_S is entirely the difference between the orthogonal and the oblique projection onto the same space (cutoff/ line 4 says the same).
  4. Γ_C is a framework limit. A component of L²(X_S) with archimedean parity ε is an idele class character χ_∞ ⊗ χ_2 trivial on Γ_S; at −1 this forces (−1)^ε χ_2(−1) = 1, so an odd component is ramified at 2 and has no Satake parameter. L(s, χ_{−23}) (odd, unramified at 2) needs 23 ∈ S, or the construction over K = Q(√−23). The Dedekind positive control is therefore not exercised here (FrameworkLimit, message in ta_ts_cells.json).

Implementation (ta_ts.py): delta_T_matrix builds Q_∞ and Q_S from a finite mode family on a uniform log grid with spacing log 2/m (D is an exact grid shift) and returns ΔT with its two PSD pieces. It was exercised on synthetic smooth modes only; no synthetic number is a value of T_S. Checks (test_ta_ts.py, float64): α = 0 gives ΔT = 0 exactly (measured 0.0); both pieces Hermitian PSD for α ∈ {1, i, −1}; the direct trace route agrees with an independent FFT route to 5.9e−16 relative. The grid form does not suit real ζ_n: ζ_n(v) oscillates like sin(2πv)/v, which a log grid cannot resolve beyond u of a few tens; the evaluation has to be done in the Mellin variable, which is what §5b does.

T_S_matrix on the mission cells (ta_ts_cells.json): ζ and place 2 off → matrix (§5b); Dedekind with Γ_C → framework_limit; W_a and the Epstein tower → refused_nonunitary.

5b. T_S for ζ on the mission cells (ta_prolate.py, ta_run_prolate.py)

kernel/ was routed at 22:10 (its INTERFACE.md s3, commit af756a5; read-only import of kernel/sonin.py). ΔT is computed in the Mellin variable (ta_mellin.py has the formulas): for each prolate mode, ζ̂_n(s) and b̂_n(s) = Σ_k (2^{−1/2+is})^k T_n(2^k; s), T_n(W; s) = ∫_W^∞ ζ_n(w) w^{−1/2−is} dw, from Gauss panels on [1, 2^Kmax], Kmax = kmax_for(nvec) = 10, 10, 12, 12, 13 for the five configurations below (η_n in float64 through scipy's spherical Bessel functions, agreeing with kernel/'s mpmath η_n to 7e−15) plus the asymptotic tail from φ̃_n's derivatives at 1. Densities ρ = ŵ^T G^{−1} conj ŵ with Gram matrices taken on the same s-quadrature plus the order-1/S tails (jump at u = 1 and the sin(2πv)/v oscillation). T_S = T_∞ (kernel/'s moments, dps 40) + ΔT.

Checks: ζ̂n against kernel/'s closed-form Tate route (zeta_mellin_all), max 8.8e−14 (hardened: two routes); on a synthetic ξ = (1 − y²)², ζ̂ against Tate to 1.4e−17, ‖ζ‖² against Plancherel to 6.7e−7, and both pieces of ΔT against a direct v-domain quadrature to 2.7e−8 and 2.2e−7 (run once, about 150 s, not in the suite). The error of ΔT is set by the Gram matrices: the probe replacing Q∞'s Gram by the exact identity moves ΔT by 3.5e−3 to 5.9e−3 up to 130 modes and by 7.6e−3 to 8.2e−3 at 200 modes. (Corrected: 88d9dd1 said the probe fails at 200 modes, 5.5e−1; that was the divergent Kmax-10 tail, see the correction notice.)

nvecSNcT_∞ min eigT_S lowest threeGram probeΔT + Wp, largest in modulusbeyond ±0.1
4080082.21.23e−030.0057, 0.0290, 0.20546.3e−04+0.321, −0.258, −0.089, +0.077, +0.035, +0.0311+1
4080082.54.92e−040.0050, 0.0130, 0.08257.3e−04+0.442, −0.387, +0.206, −0.184, +0.088, −0.0602+2
4080082.91.92e−040.0047, 0.0074, 0.03107.5e−04+0.488, −0.453, +0.363, −0.305, +0.174, −0.1373+3
80120082.21.23e−030.0035, 0.0265, 0.20023.8e−03+0.318, −0.259, +0.074, −0.072, +0.025, +0.0221+1
80120082.54.92e−040.0028, 0.0107, 0.07933.5e−03+0.439, −0.390, +0.204, −0.191, +0.077, −0.0642+2
80120082.91.92e−040.0025, 0.0052, 0.02843.8e−03+0.485, −0.456, +0.360, −0.312, +0.171, −0.1443+3
801200162.21.21e−030.0035, 0.0254, 0.19823.8e−03+0.318, −0.274, −0.087, +0.086, −0.060, −0.0581+1
801200162.54.78e−040.0028, 0.0104, 0.07783.5e−03+0.439, −0.397, +0.217, −0.191, +0.078, −0.0742+2
801200162.91.85e−040.0025, 0.0051, 0.02763.8e−03+0.485, −0.458, +0.372, −0.312, +0.171, −0.1523+3
1201600162.21.21e−030.0026, 0.0244, 0.19625.9e−03+0.317, −0.273, +0.086, −0.075, +0.029, +0.0261+1
1201600162.54.78e−040.0019, 0.0094, 0.07655.4e−03+0.438, −0.398, +0.216, −0.194, +0.075, −0.0732+2
1201600162.91.85e−040.0017, 0.0042, 0.02665.9e−03+0.484, −0.460, +0.371, −0.314, +0.170, −0.1553+3
1301800322.21.20e−030.0025, 0.0236, 0.19545.5e−03+0.317, −0.282, −0.179, −0.177, +0.150, +0.1403+3
1301800322.54.74e−040.0018, 0.0091, 0.07595.1e−03+0.438, −0.402, +0.223, −0.194, −0.152, −0.1524+6
1301800322.91.83e−040.0016, 0.0040, 0.02635.5e−03+0.484, −0.461, +0.376, −0.315, +0.170, −0.1593+3
2002400322.21.20e−030.0024, 0.0236, 0.19508.2e−03+0.316, −0.280, +0.090, −0.076, +0.028, −0.0261+1
2002400322.54.74e−040.0018, 0.0091, 0.07597.6e−03+0.438, −0.402, +0.222, −0.194, −0.076, +0.0752+2
2002400322.91.83e−040.0015, 0.0040, 0.02638.2e−03+0.484, −0.461, +0.376, −0.315, +0.169, −0.1603+3

Readings (all measured):

6. The semilocal time-frequency operator is not Hilbert-Schmidt (ta_hs.py)

For real α (all mission data; F Θ = Θ^* F uses FD = D^{−1}F and a real), F_S = Θ F Θ^{−1} = U_2 F, U_2 = −aD + (1 − a²) Σ_{j≥0} a^j D^{−j}, a = α/√2 (CCM Prop 4.7 (i)), P F_S P = Σ_{j≥−1} c_j A_j with A_j := P D^{−j} F P, whose kernel is K(2^j u v), K(t) = 2 t^{1/2} cos 2πt. Exactly,

⟨A_j, A_l⟩_HS = 2 · 2^{(j+l)/2} [S(2π|2^j − 2^l|) + S(2π(2^j + 2^l))], S(w) = Si(w)/w, S(0) = 1,

so the diagonal terms c_j²⟨A_j, A_j⟩ tend to 1/2 each. Measured at dps 30 (test_ta_hs.py):

K (Euler levels j ≤ K)0816243240
‖P F_S^{(K)} P‖²_HS0.4050375.0521459.07065313.07078617.07078721.070787

The partial sums lie on K/2 + 1.0707867954 (within 2e−5, 1e−7, 4e−9 at K = 24, 32, 40); the archimedean value (α = 0, place 2 off) is Tr(P P̂ P) = 2 + 2 Si(4π)/(4π) = 2.23748483494183. The kernel of P F_S P is the lacunary series Σ_j c_j K(2^j uv), whose coefficients c_j 2^{j/2} = 1/2 are not square summable, so P F_S P is bounded but not Hilbert-Schmidt and P P̂^S P is not trace class. Grade: closed form, ordinary argument (unreviewed), partial sums measured. Consequence for the mission: the semilocal Sonin problem has no super-exponential eigenvalue decay; the 2-adic dilation copies of the prolate problem at scales 2^j each contribute. Any truncation of the data feeding ΔT must be by Mellin band. T_S itself stays finite (§5, item 1).

7. What is open, and the next step

7b. The accuracy item on c = 2.2, N = 8 (ta_gram_probe.py, ta_gram_probe.json)

Target: Q's lowest eigenvalue on this cell, 2.5738e−4 (checker/'s checker_q_cells.json, dps 40; the 2.33e−4 quoted for c = 2.2 is the N = 32 value). The criterion was fixed in the script's docstring before the S = 4800 runs were read. It is a spectral norm, so that Weyl's inequality turns it into an eigenvalue error:

band(80, 4800) = max( ‖ΔT(80, 4800) − ΔT(80, 2400)‖₂, ‖ΔT(100, 4800) − ΔT(80, 4800)‖₂, probe₂(80, 4800) ).

At another nvec n the same three terms are taken at n (band_terms, as the follow-up in BRIEF.md names it): the nvec response n → n + 20 at S = 4800, the S response at n (against 2400 as above, or against 9600 where that is the run there is), and probe₂(n, 4800). A term with no run to form it is left out, and the band is then a lower bound.

Runs 80 to 120 are this laptop's. The runs 140 to 200 at S = 4800 and 160 at S = 9600 are modal/'s units (tree 284eff6, Linux x86_64, Python 3.12; provenance and cost in modal/RUNS.md), merged unchanged by ta_gram_probe.py --merge-modal, each run carrying its source. Modal's copy of the (80, 4800) run reproduces the laptop's to 8.2e−15 (ΔT) and 7.6e−15 (the scalars): the same code on two machines, not a second route.

nvecSKmaxprobe, ‖·‖₂max |G_z^s − I|T_S lowestsecondswhere
801200103.8e−38.9e−23.523e−315laptop
802400104.9e−43.5e−23.500e−330laptop
804800102.5e−58.4e−33.486e−3107laptop
1004800111.2e−41.8e−23.001e−3107laptop
1204800123.3e−42.8e−22.671e−3516 wall, 161 CPUlaptop
1404800126.1e−43.7e−22.480e−3274 (644 CPU)Modal, SkylakeX
1604800129.6e−44.5e−22.298e−3298 (637 CPU)Modal, Haswell
1804800131.4e−35.2e−22.156e−3471 (980 CPU)Modal, Haswell
2004800131.8e−35.9e−22.074e−3623 (1254 CPU)Modal, SkylakeX
1609600121.2e−41.8e−22.299e−3793 (1858 CPU)Modal, SkylakeX

SkylakeX and Haswell are the OpenBLAS kernel families Modal's hosts selected (AVX-512 present and absent); a Modal row's seconds are run()'s wall time.

Responses of ΔT, spectral norm: to S at 80 modes, 6.5e−4 (1200 → 2400) and 1.1e−4 (2400 → 4800); at 160 modes, 1.8e−4 (4800 → 9600). To nvec at S = 4800, per 20 modes from 80 to 200: 4.5e−3, 1.6e−3, 1.22e−3, 6.5e−4, 5.2e−4, 3.5e−4, every one above the target.

nS termnvec term, n → n + 20probe₂(n, 4800)band(n, 4800)binding
801.1e−44.48e−32.5e−54.48e−3nvec
100no run1.60e−31.2e−4≥ 1.60e−3nvec
120no run1.22e−33.3e−4≥ 1.22e−3nvec
140no run6.49e−46.13e−4≥ 6.49e−4nvec
1601.82e−4 (against 9600)5.21e−49.59e−49.59e−4probe
180no run3.46e−41.36e−3≥ 1.36e−3probe
200no runno run (needs 220)1.80e−3≥ 1.80e−3probe

Outcome: not met at any nvec from 80 to 200 at S = 4800. Every band, complete or a lower bound, is above 2.57e−4, so the missing terms cannot change it. The band is complete at 80 (4.48e−3) and 160 (9.59e−4); no band is below 6.49e−4, the lower bound at 140 modes (its S term was not run), 2.5 times the target. Readings (all measured, float64, one route):

8. Grading and ALIGNMENT s5 status

statementgrade
§1 local facts at 2; refutation of theory §7.3 item 2exact
§2 product-ball obstruction, infinite trace of the literal Π_Sordinary argument, unreviewed (cutoff/ reached the same)
§3 closed form of C, Gram forms, −Wp = log 2 (Gram(θ_S) − 3/2)exact algebra; closed form hardened (two routes)
§3 cell spectra, band ends reachedmeasured, on hardened matrices
§4 refusal outcomesexact
§5 items 1 to 6ordinary arguments, unreviewed; item 6 uses only the definition of C_S
§5 grid implementationtested on synthetic modes only
§5b ζ̂_nhardened (two routes, 8.8e−14)
§7b S- and nvec-responses of ΔT on c = 2.2, N = 8 through 200 modes (80 to 120 on the laptop, 140 to 200 and (160, 9600) on Modal); target not met at any nvec; the 0.36 prediction refutedmeasured (float64, one route; Modal's calibration run reproduces the laptop's to 8.2e−15, same code); the next-run estimate is an extrapolation, not run
§5b T_S spectra, residual profile, countsmeasured (float64, one route for the Gram matrices; error band 3.5e−3 to 8.2e−3 by (c, N))
§6 closed form for ⟨A_j, A_l⟩_HS and the divergenceordinary argument, unreviewed; partial sums measured
§10 the condition of ρ's Gram matrices set by the cutoff S; the QR route of ρ against ρ_inv (A1), the platform-drift proxy (A3), T_S at (200, 1200) (A4)measured (float64, one route)
§10 exact G_z = I, cond(G_b exact) <= 33.97ordinary argument, unreviewed; the compression bound checked on a synthetic family
§10 A2, the QR route against an end-to-end referencehardened in the sense of two routes: kernel/'s closed form in Arb at 256 bits, independent of the w-quadrature, against the float64 route
§10.6 s10.4's predictions against checker/'s rebuilt N = 32 rowsthe outcome is checker/'s: measured, float64, one route, one platform

Original to this session (novelty not searched): the identity of §3 in matrix form (first derived here, f1e912d; cutoff/ rechecked it by a third route, e678d94), the Hilbert-Schmidt divergence of §6, and the Γ_C framework limit, the Mellin route for ΔT from prolate data and the measurement of §5b. The objects are Connes', Connes-Consani's and Connes-Consani-Moscovici's; S_∞ and T_∞ are kernel/'s.

ALIGNMENT s5: theory §7.3 item 2 refuted (exact). The product-ball Π_S obstructed (infinite trace; no finite reading carries the place 2 except the module one). C4 on the module form at S = {∞, 2} unresolved: T_S is built and evaluated, T_S ≥ −0.02 on every cell, and the residual against the prime atom has an N-independent top beyond ±0.1. That top is not bounded rank of R_S: checker/ counts n_−(R_S) below −band at 4, 10 (c = 2.9, N = 8, 16), the 4 → 10 step stable under 120 → 160 modes, and at c = 2.9 its measurement runs against bounded rank (checker/'s grade: measured, weakest step ΔT). At N = 32, on the rows rebuilt under this folder's QR ρ (checker/ s7.8, 3e36fa4), the count at c = 2.9 is 20 on the delivered row and on the 240, 280 and 319-mode rows (21 at 364), against 10 at N = 16, so the growth 4, 10, 20 survives there and checker/ reads its P5 (n_−(R_S) the same at N = 8, 16, 32) as failing at the measured grade on c = 2.9; at 2.5 it falls (6 and 5 against 9, a verdict that rests on the band rule) and at 2.2 every build counts 0. On the old ρ route (checker/ s7.7, 3dc0a74) the N = 32 count was undecided in float64 (the band rose past the negatives, and the negatives did not leave).

9. Reproduction

PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_local.py PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_run_es.py # 13 s PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_run_ts.py # 2 s PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_run_prolate.py # about 8 min, needs kernel/; arguments 0 to 4 rerun those configurations only PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_gram_probe.py 80 4800 # one (nvec, S) per process: 80 1200, 80 2400, 80 4800, 100 4800, 120 4800; 15 s to about 9 min PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_gram_probe.py --merge-modal # merges modal/out/gram_*.json (140 to 200 at 4800, 160 at 9600); reads, computes nothing; the units themselves are modal/run_modal.py's PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_rho_diag.py scan80 # also refine, lowdir, hats, nodes (10 to 55 s each); scan200 [npz] about 6 min PYTHONPATH=$PWD .venv/bin/python hunts/weil_propagation/c4_s2/two_adic/ta_rho_check.py a1 80 1200 # a1 120 1600 (3 min), a1 200 2400 NPZ, a3 NPZ, a4 NPZ (20 to 40 s with the saved hats), a2 [cache] (3 min, 2 processes), gp NVEC S PYTHONPATH=$PWD .venv/bin/python -m pytest -q -n 2 hunts/weil_propagation/c4_s2/two_adic tests/test_hunt_probe_discipline.py tests/test_docs_numbering.py # about 30 to 90 s

10. Follow-up 3 (2026-09-24): rho without the explicit inverse

BRIEF.md "Follow-up 3" (32b8112). checker/ s7.7 found cond(G_b) of 3.9e9 to 2.8e18 on the N = 32 rows and T_S failing T_S >= 0 by 14 to 37 at 319 and 364 modes; ta_mellin.rho inverted G with np.linalg.inv. This section is written in the order the work was done: s10.1 (diagnosis) and s10.2 (the acceptance for the fix) were committed before rho was changed.

10.1 Diagnosis: the cutoff S of the s-side Gram, not the functions

ta_rho_diag.py, ta_rho_diag.json, test_ta_rho_diag.py. Measured, float64, one route, except where stated.

Which Gram. T_S's Gram matrices are not gram_v's. ta_prolate.delta_T_cells takes both on the s side (gram_s): G = (1/2π) H* W_s H + (J Jᵀ + dil A Aᵀ)/(πS) from the hats H on s_grid(S, 1, 8). gram_v serves only the synthetic route ta_mellin.delta_T_mellin. The coordinator's trap (i) holds for gram_s all the same: G = F* F with F the weighted sample matrix plus two tail rows, so cond(G) = cond(F)².

row (nvec, S)S/nvec²s-nodes of Gw-nodes of the hatsgram_v's w-nodes (not on T_S's path)
(200, 2400)0.06038400139716196596
(240, 2400)0.04238400241200196596
(280, 2266)0.02936256238752196596
(319, 2633)0.02642128245484196596
(364, 3060)0.02348960454044196596

Every Gram is formed from far more nodes than functions; the node count is not the problem.

Not intrinsic. The exact Gram matrices are well conditioned: G_z = I (the ζ_n are orthonormal on v >= 1), and cond(G_b) <= ((1 + 2^−1/2)/(1 − 2^−1/2))² cond(G_z) = 33.97, because b_n = K ζ_n with K the compression of Θ^{*−1} to x >= 0, whose singular values lie in [0.586, 3.414] (ordinary argument, unreviewed, in ta_rho_diag.py's docstring; checked on a synthetic family on ta_ts's grid, where the singular values fall inside that interval). On a grid that holds the modes, the s-side G_b agrees: cond 13.2 at 80 modes and S = 2400.

Produced by the quadrature: the cutoff S, not the resolution inside [−S, S]. cond(G) = cond(F)² (from the singular values of F; the formed float64 G reads the same below 1e14):

nvecSS/nvec²cond(G_z)cond(G_b)
801500.0237.8e281.6e18
802000.0314.5e235.3e14
803000.0472.6e151.1e10
806000.0945.6e62.9e6
8012000.19273280
8024000.384.613.2
2003000.00751.1e301.4e30
2006000.0152.5e282.1e28
20012000.0307.8e252.0e16
20024000.0607.6e113.9e9

At (80, 300), a finer s-grid (8 to 12 nodes per panel), a finer w-grid for the hats (12 to 16) and Kmax 10 to 11 each leave cond(G_z) = 2.577e15 and cond(G_b) = 1.084e10 unchanged to four digits; doubling S takes them to 5.6e6 and 2.9e6. The lowest direction u of G_b at (80, 1200) has its s-energy rising towards the cutoff (8.4e−4, 5.0e−3, 7.9e−3, 1.1e−2 on |s| in [0, 100), [100, 500), [500, 1000), [1000, 1200]) and |A·u| = 2e−5: a combination whose norm lies mostly beyond S, which the order-1/S tail rows do not see. The controlling ratio is about S/nvec²: the span of nvec prolates holds combinations concentrated within about 1/nvec² of y = 1, whose transforms reach s of order nvec² (ordinary argument). The default rule (KernelProvider: nvec = 8N/L + 40, S = 24πN/L) keeps S proportional to nvec, so the ratio falls as N grows: 0.029, 0.026, 0.023 on the three default-rule rows.

What this changes in the record.

Decision. The ill-conditioning is produced by the quadrature (the cutoff S of the s-side Gram relative to nvec²), not by the functions. The fix has two parts. (1) The solve: rho from a QR factorization of F, never forming G, so that the arithmetic error scales with cond(F) and not with cond(F)². (2) The grid: S must grow like nvec², and each build must report cond(F) for Z and B so that a row whose projection its samples do not determine can be refused. Part (2) raises the cost of the N = 32 rows; its numbers are in s10.3.

10.2 Acceptance for the fix, fixed before it was run

Written before the new rho was run on any case. Grades: measured unless stated.

10.3 The fix, against the acceptance

ta_mellin.rho(hat_rows, *, factor) takes the factor F (G = F* F), computes R from a Householder QR of F and returns ρ(s) = ||y(s)||² with R* y(s) = conj(ŵ(s)); G is never formed, so the arithmetic error grows like eps·cond(F), not eps·cond(F)². factor is keyword-only, so that a Gram matrix passed where a factor is expected raises instead of being used. rho_inv is the old route, unchanged, kept as the reference. ta_prolate.gram_factor_s and ta_mellin.gram_factor_v return the factors of gram_s and gram_v; delta_T_cells, delta_T_mellin, ta_run_prolate and ta_gram_probe pass factors, and delta_T_cells reports cond_Fz and cond_Fb. Only ta_mellin.py and ta_prolate.py changed in T_S's closure; the default rule in ta_ts.py did not (see A4). ta_rho_check.py, ta_rho_check.json, test_ta_rho_check.py; unit tests of the route itself in test_ta_mellin.py (against rho_inv at cond(G) = 1e6: 1.1e−11 relative; against a 60-digit mpmath reference at cond(G) = 1e20: 9.5e−8, where rho_inv is off by 1.0).

truncationcond(F_z), cond(F_b)Z: deviation, ratio to eps cond(G) max ρB: deviation, ratioΔT change (spectral)
(80, 1200)16.5, 16.73.6e−14, 0.183.4e−14, 0.17<= 1.2e−14 (N = 8, 16)
(120, 1600)510, 5178.6e−13, 0.0045.9e−12, 0.027<= 2.7e−13 (N = 16)
(200, 2400)8.7e5, 6.2e42.0e−6, 0.00281.3e−8, 0.00361.8e−7 to 2.0e−7 (N = 32)

The measured deviation is below the bound by a factor 55 to 3600. On the delivered N = 32 row the two routes differ by about 2e−7 in ΔT, the size of modal/'s platform drift.

(nvec, S)cond(F_z) (cond(G_z))QR routeρ_inv
(80, 300)5.1e7 (2.6e15)6.8e−9 (acceptance 1e−4)1.6e−2
(80, 200)6.7e11 (4.5e23)1.4e−50.26
(80, 150)3.8e14 (1.5e29)6.5e−20.92
(80, 120)7.3e14 (5.3e29)0.2116

The float64 samples differ from the reference by at most 3.0e−13 (ζ̂) and 1.8e−12 (J, A). My prediction at (80, 200), a deviation between 1e−3 and 1, is refuted: 1.4e−5. The first-order bound cond(F)·δ overstates the error there by about 5000. The QR route survives cond(F) = 6.7e11 (cond(G) = 4.5e23) at 1.4e−5 and stops between that and cond(F) = 3.8e14; the old route is off by 1.6e−2 already at cond(G) = 2.6e15.

cT_S lowest, QR routeT_S lowest, ρ_invQR at (200, 2400)‖T_S(1200) − T_S(2400)‖₂, QR
2.2+2.8e−3−1.3e−2+2.4e−35.6e−3
2.5+2.1e−3−1.5e−2+1.8e−36.2e−3
2.9+1.9e−3−1.6e−2+1.5e−38.0e−3

I predicted that ρ_inv would fail T_S >= 0 by order 1 and that the QR route would leave eigenvalues below −band(c, 32). ρ_inv fails by 1.3e−2 to 1.6e−2, and the QR route's T_S is positive, with no eigenvalue below −band, at cond(F_z) = 8.8e12, where A2 still reads 1e−5 or better. So the determinacy criterion of s10.1 (cond(F)·δ well below 1) is pessimistic for T_S, and the cutoff S moves T_S at 200 modes by 5.6e−3 to 8.0e−3 from S/nvec² = 0.03 to 0.06, below band(c, 32). This is why the default rule in ta_ts.py was left alone: the grid part of s10.1's decision is not required at 200 modes; whether it is at 319 and 364 is s10.4.

10.4 What the falsifier should show, and where the next constraint is

Checked against checker/'s outcome in s10.6 (follow-up 4). The text of this subsection is as committed at eea7eab.

The falsifier (BRIEF.md follow-up 3, run by modal/ and checker/): with the new ρ, T_S at 280 / 319 / 364 modes must have no eigenvalue below −band.

10.5 Inventory: what depends on ρ

ta_mellin.py and ta_prolate.py are in T_S's import closure, so this commit changes checker/'s T_S input digest, and every row of checker/'s snapshot (N = 8, 16, 32) stops being served until checker/ rebuilds it.

artifactdepends on ρdone
ta_ts_prolate.json (T_S rows (40, 800), (80, 1200), (120, 1600), (130, 1800), (200, 2400))yesregenerated locally under the QR route (7 s, 14 s, 162 s, 137 s, 302 s). Every recorded scalar moves by at most 1.9e−15, 1.1e−14, 1.2e−13, 2.1e−13 and 1.5e−7 respectively; no count changes (T_S below −0.02, the residual counts beyond ±0.1); rows now carry cond_Fz, cond_Fb (8.7e5 and 6.2e4 at (200, 2400))
ta_gram_probe.json (local runs 80 to 120 at S up to 4800; modal/'s 140 to 200 at 4800 and 160 at 9600)yesnot regenerated: at (80, 1200), (80, 4800), (100, 4800) the QR route moves its ΔT by at most 2.6e−14 and reproduces the committed dT to 1.1e−14 (cond(F) at most 17). Its other runs sit at S/nvec² >= 0.12, where s10.1's scans put cond(F) below about 1e3, so an expected change below 1e−10, under every digit §7b states; not measured
ta_rho_check.jsonuses both routes by designwritten by this follow-up
ta_rho_diag.json, ta_ts_cells.json, ta_es_cells.jsonno (formed Gram matrices only; dry runs; closed forms)none
checker/'s snapshot and modal/'s checker_* units (not this folder's)yes, through the digestchecker/ and modal/ rebuild (done: all eleven units in modal/out_rho/, 61ed0c1; checker/ s7.8, 3e36fa4)

For modal/ (estimates from the unit wall times in modal/out/ and the calibration's cost, 0.055 USD for 613 s of wall time on the 4-CPU container, about 9e−5 USD per second):

10.6 s10.4 against checker/'s outcome (follow-up 4, 2026-09-24)

checker/ rebuilt every T_S row under the QR route (modal/out_rho/, 61ed0c1) and graded the N = 32 rows by a reading committed before any rebuilt row was analysed (49db49f; outcome 3e36fa4, its RESULTS s7.8). Each prediction of s10 that its outcome tests is quoted below as committed; the wording of s10.1 to s10.4 is unchanged. The outcome numbers are checker/'s (checker_ts_cells.json, pinned in test_ta_checker_citations.py), grade measured, float64, one route.

prediction, as committed (s10.4 unless stated)checker/'s outcomeheld?
"Expected: it passes at 280 modes, and the order-10 failures at 319 and 364 are gone"passes on all fifteen N = 32 builds, at band_0 and at the old band(c, 32): T_S's lowest eigenvalue is +1.42e−3 to +2.40e−3 at 280 modes, +1.98e−3 to +2.87e−3 at 319 and +3.42e−3 to +4.41e−3 at 364 (the old route: −13.6 to −36.6 at 319 and 364)held
"By A4's analogue (same S/nvec²), I expect no eigenvalue below −band at 280."none, on any cellheld
"A rebuilt 319 or 364-mode row could still fail at order 1e−2 (past A2's stopping point, next bullet) or, less likely, by more."no build fails in any bin, so checker/ did not ask for batch 2 (the default-rule rows at S/nvec² = 0.04)did not occur
"the scans (s10.1) put cond(G_z) there at 1e26 or more, so cond(F_z) near 1e13 to 1e15, the range where A2 found the QR route stops"cond(F_z) = 1.9e13, 2.1e13, 2.1e13 at 280, 319, 364 modes (so cond(G_z) = cond(F_z)², 3.6e26 to 4.4e26); none reaches 1e14, so all three pass checker/'s determinacy gate, marked beyond A2's last clean case (6.7e11)held; the next constraint and its remedy were stated for a failure at order 1e−2, which did not occur, so they are untested
"A prediction for checker/, not a measurement: the 240-mode row, and band(c, 32) with it, will move."the 240-mode response moved from 3.9e−2, 2.4e−2, 3.2e−2 to 2.97e−2, 1.08e−2, 2.3e−3 (c = 2.2, 2.5, 2.9), and band(c, 32) from 3.92e−2, 2.37e−2, 3.16e−2 to 2.97e−2, 1.41e−2, 8.18e−3held on every cell
"Its lowest eigenvalues (−7.3e−3 to −8.9e−3, which checker/ s7.7 reads as the row being off by at least that much) fit an inverse artifact."rebuilt, T_S's lowest eigenvalue on the 240-mode row is +2.03e−3, +1.34e−3, +1.09e−3held
"If the rebuilt 240-mode row stays within about 1e−2 of the 200-mode row, band(c, 32) falls, and checker/'s N = 32 verdict is read again at its own criterion."the 240-mode row is 2.3e−3 from the 200-mode row at 2.9 and 1.08e−2 at 2.5, but 2.97e−2 at 2.2; band(c, 32) fell on every cell, at 2.2 to the 240-mode response itself; the verdict was read again: the growth survives at 2.9 and falls at 2.5 and 2.2the expectation that the row stays within about 1e−2 held at 2.9 and 2.5 and not at 2.2, where checker/ s7.8 calls it refuted; at 2.2 the 240-mode response fell only from 3.9e−2 to 2.97e−2
s10.1: "checker/'s cond(G_b) of 1.1e17, 2.8e18 and 5.1e17 for the default-rule rows are therefore lower bounds, not values."the rebuilt rows report cond(F_b) = 4.1e8, 4.4e9, 7.7e10 at 280, 319, 364 modes, so cond(G_b) = cond(F_b)² = 1.7e17, 1.9e19, 5.9e21, above each of the three; the rebuilt rows' formed cond(G_b), 2.9e17, 2.6e17, 1.2e18, are not values either (at 280 it exceeds cond(F_b)²)held

Two statements of s10.3 meet the rebuilt rows as well. A3's proxy for the platform drift under the QR route (a 2^−52 perturbation of the samples moves ΔT by 2.9e−12 to 3.2e−12 at (200, 2400), N = 32) now has one cross-platform datum beside it: this folder's laptop build of that row (ta_rho_check.json, A4) against checker/'s Modal row, T_S's lowest eigenvalue differing by at most 2.3e−12, the proxy's size (checker/ s7.8 reports at most 2.5e−12 over the three lowest). And s10.3 left open "whether it is at 319 and 364" (the grid part of s10.1's decision): at 280, 319 and 364 modes, at S/nvec² = 0.029, 0.026, 0.023, the falsifier passes without it.