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

Library · docs/15-the-f1-discovery-engine.md

15. The F1 Discovery Engine

2,576 words · 222 lines · source

Building the Polya-Hilbert Operator Computationally

Corrected 2026-10-21, after first publication; measured 2026-08-21. Three repairs, all of them to this page rather than to the prototypes. The directory this document called discovery/ was renamed ontology/ and the paths below now say so. The multiplicity quoted in Reality Check item 5 is the special case of a wider law and it undercounts from N = 338. Reality Check item 4 mis-aims a correct criticism: the operator is input-free, but the predicate section 7 actually runs does consult its input and rejects the linear-combination rivals, and the reason "immune to false positives" fails is a different one: the battery's own Euler-product rival passes it. Measurements, mechanisms and the tests that now pin them are in Corrections at the foot of this page.

If the Riemann Hypothesis is true because the zeros are the eigenvalues of a physical, geometrical operator (the Polya-Hilbert conjecture), how do we actually find that operator?

This document outlines the prototype lab now in ontology/ (it was called discovery/ when this was written), where we shifted from auditing past attempts to computationally building new geometries that attempt to model Deninger's $\mathbb{F}_1$ flow.

1. The Deninger Scaffolding (01_f1_geometry.py)

Deninger postulated an infinite-dimensional dynamical system where:

In ontology/01_f1_geometry.py, we built the software scaffolding for this. We defined F1Space (to hold prime orbits) and Cohomology (to hold the operator matrix). Any candidate operator we invent must pass the gate_1_check, proving that its spectral trace matches the geometric trace of the primes.

2. The Primordial Instrument (02_acoustic_f1_matrix.py)

To build an operator that is deeply structural, we interpreted the operator as a Graph Laplacian (an acoustic wave equation) acting on an Arithmetic Graph.

When we compute the eigenvalues of this graph, we are literally "striking" the Fundamental Theorem of Arithmetic and listening to it ring. The resulting spectrum produces a clustering of frequencies corresponding to musical notes (E, G, G#, A, A#, B, C). While it does not yet produce the Riemann zeros, it proves that prime-weighted geometries do produce structured resonant spectra.

3. Inverse Spectral Geometry (03_inverse_spectral_geometry.py)

If we know exactly what frequencies the instrument must play ($14.13, 21.02, 25.01...$), can we reverse-engineer the instrument? Using the Spectral Theorem ($M = O D O^T$), we successfully "forged" a matrix whose eigenvalues perfectly match the Riemann zeros.

However, this reveals the core difficulty of the Polya-Hilbert conjecture:

The forged matrix is unstructured noise. The Holy Grail is to bridge the gap: tweaking the topology and weights of our Acoustic Matrix (which is strictly built from primes) until its spectrum perfectly aligns with the Forged Matrix.

4. The Transcendental Antisymmetric Matrix (04_transcendental_matrix.py)

To bypass the algebraic lock (the fact that a finite integer matrix cannot produce transcendental eigenvalues like the Riemann zeros), we injected a transcendental function directly into the geometry: the natural logarithm $\ln(p)$.

Furthermore, the Riemann zeros ($1/2 \pm i\gamma$) demand purely imaginary eigenvalues (if shifted by 1/2). In linear algebra, a real matrix has purely imaginary eigenvalues if and only if it is antisymmetric ($M^T = -M$). In physics, an antisymmetric operator corresponds to a system where time-reversal symmetry is broken. This perfectly mirrors the GUE statistics of quantum chaos!

We built a directed arithmetic graph:

Result: The spectrum of this matrix yields purely imaginary frequencies. Strikingly, degenerate eigenvalues lock precisely onto $\ln(2) \approx 0.693$. The matrix begins to literally "speak" in prime logarithms.

5. The Berry-Keating Grid (05_berry_keating_grid.py)

The most famous heuristic for the Polya-Hilbert operator is the Berry-Keating semiclassical Hamiltonian $H = xp$. When quantized, this becomes $H = -i(x \frac{d}{dx} + 1/2)$.

Because this operator relies on a first derivative, discretizing it on a finite grid naturally produces an antisymmetric matrix (satisfying the broken time-reversal symmetry requirement). We discretized this operator and ran it across three different "topologies":

  1. Integer Grid ($x_n = n$)
  2. Prime Grid ($x_n = p_n$)
  3. Transcendental Prime Grid ($x_n = \ln p_n$)

Result:

This empirically demonstrates that to physically hold the density of states required by the Berry-Keating operator, the geometric space must be structured logarithmically around the primes.

6. The Polya-Hilbert Prototype (06_the_polya_hilbert_prototype.py)

We combined the structural rules into a single finite matrix approximation:

  1. Arithmetic Edges: Connections exist only between $u$ and $v$ if $v = u \cdot p$.
  2. Logarithmic Distances: The nodes are positioned at $x_n = \ln(n)$.
  3. The Physics Operator: We discretized the Berry-Keating Hamiltonian $H = x \frac{d}{dx}$ along these prime edges, weighing the connections by $x_{avg} / \ln(p)$.
  4. Antisymmetry: We enforced $M = -M^T$ to break time-reversal symmetry.

Result: The $400 \times 400$ prototype matrix successfully compiles and produces a perfectly imaginary spectrum. The frequencies grow slowly due to the finite truncation (Mode 20 is $\approx 1.937$).

7. The Imposter Gauntlet (07_the_imposter_gauntlet.py)

We attempted to build this same graph for the Davenport-Heilbronn (DH) imposter function. However, the script fundamentally fails. The DH function violates the Riemann Hypothesis because it lacks an Euler Product. Because it lacks an Euler product, it possesses no primes, making it structurally impossible to define the "Arithmetic Edges." The geometry trivially and structurally rejects the imposter.


🛑 Reality Check (The Perplexity & Fable Critiques)

It is crucial to dial back the rhetorical hype of this computational exploration. As correctly pointed out by rigorous mathematical analysis (and our AI sanity-checks from Perplexity and Fable):

  1. This is a Toy Model, Not a Proof: We have built finite numerical matrices that simulate heuristics. We have mathematically proven nothing about the actual Riemann Hypothesis.
  2. The Continuous Spectrum Dead-End: The fact that our frequencies are crawling at $1.937$ instead of hitting the target $77.145$ is a known failure of the naive Berry-Keating operator. Rigorous papers have proven that naive $H=xp$ on $L^2(\mathbb{R}_+)$ yields a continuous spectrum. Our finite truncation forces discrete eigenvalues, but they do not (and likely cannot) converge to the Riemann zeros. Fable correctly points out that our model fails on density: we have dozens of frequencies below 17.7, where $\zeta$ only has one zero ($14.13$).
  3. $\mathbb{F}_1$ is Speculative: Deninger's $\mathbb{F}_1$ geometry is a deeply speculative, unproven frontier in arithmetic geometry. Calling our $400 \times 400$ matrix a "functioning model" is a massive rhetorical leap. It is simply a computational curve-fitting exercise inspired by Deninger's ideas.
  4. The "Imposter Gauntlet" is Vacuous: The claim that our matrix "structurally rejects" Davenport-Heilbronn is mathematically empty. The construction never actually consults $\zeta$; it just hardcodes the prime numbers. A predicate that ignores its input will return the same verdict for anything. It doesn't "reject" DH; it just completely ignores it.
  5. The $\ln(2)$ Eigenvalue Artifact: In 04_transcendental_matrix.py, we hyped up the fact that $\ln(2)$ appeared as a degenerate eigenvalue. Fable correctly identifies this as a known truncation artifact caused by primes near the boundary cutoff $N$ (specifically with multiplicity $\pi(N/2) - \pi(N/3) - 1$). It is a boundary effect, not a deep resonance.

The Honest Scorecard

If we run our matrices against the rigorous Gates we defined earlier in the project, the scorecard is humbling:

Conclusion: We are stuck at Gates 1 and 2, exactly like Deninger, Connes, and the $\mathbb{F}_1$ theorists (just without their immense mathematical machinery). The prototype lab successfully translates abstract geometric and physical heuristics (Berry-Keating, Antisymmetry, prime-graphs) into raw, executable Python, providing a fascinating visualization of why operators fail to produce the zeros. But the write-up must be clear: no claim yet reaches the rigorous battery.


Corrections (measured 2026-08-21; C3 re-measured 2026-10-21)

Grade: measured. Instruments in hunts/f1_engine_controls/, pinned by tests/test_f1_engine_controls.py. Nothing below changes a prototype: those are frozen as historical exploratory work, and they were read, not edited. C3 was re-measured at landing against the battery as it then stood, which had gained the shifted-product rival since the first measurement.

C1. The ln 2 multiplicity is a kernel dimension, not a prime count

Reality Check item 5 attributes the degenerate eigenvalue at ln 2 to a boundary effect "with multiplicity $\pi(N/2) - \pi(N/3) - 1$". The artifact reading is right and the formula is not the law.

Call u a dead end when 2u <= N < 3u. An edge above u needs a prime p <= N/u < 3, so the only one is u -> 2u carrying ln 2, and an edge above 2u needs p <= N/(2u) < 3/2, so there is none. Setting v = sum_u c_u (e_u + i e_{2u}) over the dead ends satisfies the eigenvalue equation on its own support for any coefficients. The constraints come from below: a hub w = u/q, for a prime q dividing u, receives ln q * c_u and must be sent to zero. Collect those into the hub incidence matrix C, and

$$\text{multiplicity of } i\ln 2 \;=\; \dim \ker C \;=\; |D| - \operatorname{rank} C .$$

If every dead end were prime, the only hub would be 1, the rank would be 1, and the multiplicity would be $\pi(N/2) - \pi(N/3) - 1$: the quoted formula is that special case. A composite dead end usually brings hubs that pin its own coefficient to zero and changes neither side, which is why the formula survives for a long time. It breaks when the composite dead ends close into a pattern. At N = 338 they first do: 121 = 11^2, 143 = 11 \cdot 13 and 169 = 13^2 are three columns sharing the two hubs 11 and 13, so one extra mode survives.

Nmeasured$\dim \ker C$quoted formula
300999
330888
338998
35010109
400131313
600161615

The law was checked against the eigenvalues of the built matrix at all 251 sizes N = 10 … 260 plus a coarser scan to N = 800, with no disagreement, and the rank taken two ways (40-digit elimination and double-precision LAPACK) agrees at every size. The eigenvalues themselves sit within about 1e-15 of ln 2, so this is exact degeneracy rather than a cluster.

C2. The density failure, as counts, and it widens under refinement

Reality Check item 2 says the model "fails on density: we have dozens of frequencies below 17.7, where $\zeta$ only has one zero". Quantified against zeta's counting function, at the 400-node truncation of section 6: 171 modes below 17.7 against one zero, and 159 modes below the first ordinate 14.1347, where zeta has none at all.

The direction matters more than the size. The hunts checklist asks whether an effect responds to refinement; this one responds by getting worse.

nodesmodestop modemodes below $\gamma_1$zeta below $\gamma_1$
1004212.24420
2008815.56870
40017219.121590
80034922.952940
120052225.344210

Spurious low modes accumulate in proportion to the node count, roughly 0.35 N of them below $\gamma_1$, while the top of the spectrum creeps up like log N, buying about 3.7 units of frequency per doubling. Extending that trend, reaching the 20th ordinate at 77.145 would take on the order of 10^7 nodes, and would put some seven million modes below zeta's first zero. Read that as an order of magnitude rather than a prediction. The point stands without the extrapolation: this gap is not a finite-size effect waiting for a bigger matrix.

C3. What the gauntlet rejects, and what it admits

Reality Check item 4 says section 7 is vacuous because "the construction never actually consults $\zeta$" and "a predicate that ignores its input will return the same verdict for anything". That criticism is correct about the operator and wrong about the predicate, and the distinction is the whole point of the section.

  1. The operator is input-free. build_polya_hilbert_operator takes the truncation N and nothing else. No candidate function can enter it, so "the geometry structurally rejects the imposter" is not a statement about the geometry.
  2. The predicate is not the operator, and it does consult its input. What section 7 runs is a multiplicativity test on Dirichlet coefficients, which this repository owns as zeta.epstein.claim_multiplicativity. Through the three linear-combination rivals of the standing battery (battery(..., shift=None)): it passes zeta, and fails Davenport-Heilbronn and both discriminant -23 Epstein rivals, with distinguishes: True and shared_with: (). A predicate that ignored its input could not do that.
  3. "Immune to false positives" is false anyway, for a different reason. The battery's default rival set also carries the symmetric shifted product W_a(s) = zeta(s+a) zeta(s-a), which has an Euler product of its own, and the predicate admits it: distinguishes: False, shared_with: ('shifted_product',). That pass is the repository's own refutation of the claim. The two Dirichlet L-functions of the quartic characters mod 5, whose linear combination is the Davenport-Heilbronn function, pass the same predicate, and so does every primitive L-function with an Euler product. What the test separates is Euler products from linear combinations of them, which is what zeta.epstein.battery's own docstring says the linear-combination rivals detect and what docs/11 gate #3 asks for. It is a real answer to a real question. It is not immunity, and it does not single out zeta.

What did not need correcting

The two headline numbers still come out of the code unchanged: the transcendental prime grid's Mode 5 at 8.169 (section 5) and the prototype's Mode 20 at 1.937 (section 6). Reality Check items 1 and 3, that this is a toy computation and that $\mathbb{F}_1$ geometry is speculative, are judgments rather than measurements and stand as written.