← The Zeta Project · the elementarity screen No RH claim

19 August 2026 · fourth pass, 4 September 2026 — and the line is closed · a standalone paper · instrument, not a result about zeros

A criterion that never mentions the primes cannot forbid a zero off the line

That sentence is the filter this programme has leaned on for seven papers, and for seven papers it was applied by judgement. It is now a decision procedure — an ordinary walk over the syntax tree of the formula itself. (The screen is the walk, and the walk needs no calculator language: Odrzywołek's discovery that a single binary operator generates every elementary function is what the second axis of this note is built on, and the second axis is not the screen. Section 3 keeps the two apart.) Run over 188 banked results: 162 never mention the primes, 26 do, and every one of the 26 was already known to sit on that side. The census produces no new candidate. It computes, object by object, the partition the papers argued for — and it computes it over transcriptions this programme wrote, which is the whole of what it certifies.

Fourth pass, 4 September 2026 — and this line is now closed. The one live exposure the third pass declared is discharged: Paper 7's margin, whose objective had never been written out, is written out, and the row crosses over. The census is 162 / 26 and the prime-magnitude split 8 / 18. No further screen will be built. Complexity is not an observable about zeros, and the one test that would separate ζ from the counterexample is semantic rather than syntactic; the remaining lever is an entry card in the object ledger, filled in when a candidate is banked. The material that audited another author's prototype compiler has been taken off this page and addressed to him instead.

Ondřej Dvořák · Riemann zeta geometric decomposition programme. This paper is about an instrument. Nothing in it locates, excludes or constrains any zero of ζ, and nothing in it is evidence for or against the Riemann Hypothesis.

Decided exact — a decision procedure, not a measurement Candidacy checked at finitely many points; not a proof Limit a boundary of the instrument, stated as one
The result, in one paragraph

Screen the programme's entire banked stock of exact statements by asking, mechanically, whether each one mentions the prime numbers anywhere in its own syntax. 162 of 188 do not. 26 do. (The first pass covered 162 statements at 142/20; Papers 8 and 9 were added on the second pass; the fourth pass moved one row, Paper 7's margin, when its objective was finally written out. No other verdict has ever moved.) And all 26 are objects the papers had already placed on the coefficient-carrying side — the Weil arithmetic side, the prime-zeta value-region laws, the Liouville stem, the prime-side register of the arXiv paper. No object changed sides. No new candidate appeared. No further test is owed. The census does not discover the programme's partition; it recomputes it from the formulas, and agrees.

And here is what that agreement is worth, said where the number is. The audit reads the strings this programme wrote. The transcription, the permitted alphabet and the forbidden list were all authored by the same hand as the judgements they are being checked against. So the census certifies that our transcriptions and our judgements agree — not that either is right about the object. It is a consistency check of one reading against itself, run at 188 points, and it is worth exactly what such a check is worth: it would have caught drift, and there was none. Decided relative to transcription

Third pass · what is new since the second version of this page Finds — new facts Improvements — to the instrument and the record
  • The transcription rule is now written down and re-passed over all 188 rows. Four defects of ours had the same shape; they are now one stated rule in four clauses, and every row was re-checked against it. It found one live exposure — a single row whose content is hidden behind an unwritten infimum — and established that the domain defect which had bitten four times has no fifth instance.
  • Three more pre-registered gates failed and none was rewritten to pass. Two of the three failures were in the prediction rather than in the material, and both are printed as such.
Fourth pass · 4 September 2026 · what changed, and why this is the last pass The one live exposure, discharged
  • Paper 7's margin row crosses over, and the census is now 162 / 26. The third pass flagged it: the row was transcribed as a bare infimum inf(L) with the quantity being minimised left unwritten, so it audited clean over a functional built on the von Mangoldt coefficients. Paper 7 now writes that objective out — it is the Rayleigh quotient of the discretised Weil form, and it carries ΛF(n) explicitly and linearly for n ≤ eL, each weighted n−1/2 times the autocorrelation of the test function at lag log n. Transcribed at that depth the row reads mentions coefficients. Axis 1: 163 / 25 → 162 / 26. The prime-magnitude split: 8 / 17 → 8 / 18 — Λ is a coefficient value, not a prime size. Axis 2 does not move: the head is still an infimum over an unbounded set. The headline survives, because Paper 7 already placed the margin on the arithmetic side — what moved was this census's transcription, not a judgement. Decided
  • The domain caveat is sized, and it costs nothing. The 34 rows whose label was not invariant across four test domains were adjudicated one at a time. Two were already ruled genuinely domain-conditional in the object. Of the remaining 32, none carries a forced domain on the only criterion that makes a declaration mean anything — that the object is undefined outside it — and no label moves. The two rows that do carry a forced domain are the two already declared, and they are the only two in the census with the signature (a logarithm of a logarithm). The transcription debt is closed. Decided
And a pre-registered gate that failed, kept as it ran
  • The domain pass was pre-stated on the wrong criterion — is the regime of interest large rather than is the object undefined outside the domain — and on that looser reading one row moved. Tracing it showed the move was the compiled chain hitting the bridge's own magnitude ceiling at moderate argument, which is a fact about the compiler and not about the object. The failed pass is kept on disk as it ran and the correction is labelled post-hoc, because it was made after the gate fired. The criterion it settled on was applied to the two already-declared rows first, where it confirms them.
And what came off the page
  • Everything auditing the source paper's prototype compiler has been removed — the ln 0 = −∞ route count, the sign of its generated i, the duplicated cell in its complexity table, and the search-frontier comparison. Sixteen and a half kilobytes of the previous version's text, close to a quarter of it. None of it is about ζ, the work was commissioned to use that discovery on this programme's objects rather than to audit its prototype, and a defect in someone else's unpublished code does not belong on a public page before its author has it. It is now a note addressed to him.

None of the above bears on the Riemann Hypothesis, and none of it locates, excludes or constrains a zero.

Second pass · what was new in the second version of this page Finds — new facts
  • A second screen mechanises; a third provably cannot. The prime-magnitude filter now runs as a decision procedure and splits the coefficient-mentioning objects 8 / 17 — 8 / 18 after the fourth pass: eight see the primes only through their sizes, the rest see the coefficients themselves. The archimedean filter cannot be mechanised this way, and the reason is exact rather than practical — see the new Section 4a. New
  • A structural claim about this language was tested and is false. It had been suggested that because the calculator class is holomorphic and the object this programme lacks is an inequality, the language could not express what the programme needs. It expresses it: the classical zero-free region's boundary and the positivity polynomial that carries it both compile. New
  • Two of the seven “not expressible” rows were mis-refused. The modulus argument is about complex modulus; two rows take a real absolute value, where |x| = √(x²) exactly. They are elementary after all, and the residue is five, not seven. New
  • Papers 8 and 9 add nothing the programme did not already hold. Twenty-six further statements censused; no object changed sides, no new category appeared. Decided
Improvements — to the instrument and the record
  • The census is complete over all nine papers — 188 statements, where the first pass covered 162.
  • The search frontier is measured rather than estimated, and it turned out a design note of ours was wrong against its own run log. Corrected in place, with the false sentence left standing and tagged.
  • Two verification passes that had never been run were run: all 17 witness expressions re-checked at 200 digits.
  • Six pre-registered predictions failed across the second pass and none was rewritten to pass. Four of the six turned out to be the findings.

None of the above bears on the Riemann Hypothesis, and none of it locates, excludes or constrains a zero.

What this turned upTwo things, and both are about this programme

An instrument note earns its place by saying what it changed. Ranked honestly, smallest claim first. (The fourth pass removed four further items that were findings about the source paper's prototype compiler rather than about this programme's objects; they are in the note addressed to its author.)

1. Seven papers of judgement calls, and not one of them was wrong Decided relative to transcription

This is the result, and it is a validation rather than a discovery. The screen had been applied by hand across the whole programme. Mechanised and re-run over all 188 banked statements, it agrees with every prior judgement. No object changed sides; the 26 that mention the primes are the 26 the papers already scored that way — one of them, Paper 7's margin, only after the fourth pass wrote its objective out, and it landed where Paper 7 had always put it. A hand-applied filter used that many times, on one's own work, is precisely the kind of thing that drifts toward the flattering answer — and this one did not drift.

The badge says relative to transcription, and that is not modesty. The audit walks a hand-typed string. The string, the permitted alphabet and the forbidden list were written by the same hand as the judgements being checked, so what is certified is that this programme's transcriptions agree with this programme's readings. It is a consistency check of one reading against itself. That is a real thing to have — drift would have shown up, and the one row where the transcription was too shallow did show up, was flagged in print before it was resolved, and then flipped. It is not an independent check on whether the readings are right about the objects, and nothing here should be quoted as one.

2. What our own proven result can and cannot be pushed to do Decided

The nine-point theorem was known to be built from spacings. It is now checked, row by row, that all 24 of its statements mention no prime anywhere — which converts an understanding into a decided fact, and fixes the ceiling on that whole family of arguments where Section 5 puts it: bound a proportion, forbid nothing. No amount of refinement moves that ceiling, because the reason is structural.

And what it did not turn up

No new candidate, no new mathematics about ζ, and nothing bearing on the Riemann Hypothesis. The pre-registered outcome that would have counted as a find — an object that mentions the primes and had not already been scored on that side — did not occur. It is stated here rather than left out, because a pre-registered outcome that fails to fire is part of the result. Limit

Against those six, the instrument also caught five defects in itself, three wrong numbers and one mis-cited source in this programme's own internal write-ups — including a first run that returned a flattering 111-out-of-111 and was wrong. Those are in Section 7, published beside the results for the same reason the rest of this programme publishes its failures: the error rate is the only honest calibration of the result.

Section 1Why the question “does it mention the primes?” decides so much

There is a function that looks like ζ in almost every structural respect and is known to have zeros off the critical line. It is the Davenport–Heilbronn function. It is a Dirichlet series, it continues to the whole plane, it satisfies a functional equation of the same shape as ζ's, and its zeros are counted by the same asymptotic law. What it does not have is an Euler product — its coefficients are not multiplicative. And it has, provably, infinitely many zeros off the line.

That single fact does an enormous amount of filtering, and it is the reason this programme survived seven papers without fooling itself:

If a proposed criterion for the critical line can be stated without ever mentioning the coefficients — if it uses only analyticity, the functional equation, and the strip — then it is true of Davenport–Heilbronn verbatim. And Davenport–Heilbronn has zeros off the line. So the criterion cannot forbid one.

No amount of numerical agreement rescues such a criterion. It is not that it is probably too weak; it is that a counterexample satisfying it already exists and is named. This is the oldest and sharpest of the programme's standing screens, and by a wide margin the most expensive one to learn the hard way.

The trouble is that applying it requires answering a question about a formula: does this expression, written out in full, mention the coefficients? For seven papers that was a reading. A careful reading, but a reading — and readings of one's own work drift toward the flattering answer. The whole point of what follows is to replace the reading with a procedure.

Section 2The instrument, and why a recent discovery makes it possible

To decide mechanically what a formula mentions, one first needs a canonical form for “formula” — otherwise the answer depends on how the expression happens to be written. In March 2026 Andrzej Odrzywołek published exactly the normal form required. He showed, by exhaustive search followed by constructive verification, that the single binary operator

eml(x, y) = exp(x) − ln(y)

together with the one constant 1, generates the entire repertoire of a scientific calculator: the constants e, π, i; the four arithmetic operations and exponentiation; and the standard transcendental and algebraic functions. A two-button calculator — this operator and the digit 1 — computes everything a full one does. Every elementary expression becomes a binary tree of identical nodes, over a grammar as simple as S → 1 | eml(S, S).

What that uniformity is and is not responsible for, said plainly, because this page previously said it two ways. The screen — axis 1, the terminal audit — is an ordinary walk over a parse tree checking leaf symbols against a declared alphabet. It does not need this operator, or any calculator language, and it would run over any canonical form of the expressions. What the single-operator basis makes possible is the second axis — asking whether an object is in the calculator-elementary class at all — which is a different and harder question and is not the screen. Section 3 sets the two side by side. The honest credit is therefore split: the discovery underwrites the class label; the screen is a tree walk, and would have been one without it.

What the canonical form does buy the screen is discipline. An expression written in a normal form has no formatting choices left in it: the alphabet of things it can mention is explicit, finite, and sitting at the leaves. Deciding whether a formula mentions the primes stops being a reading of mathematical prose and becomes a walk over a tree — and, as Section 7 records at length, the part that stayed soft is not the walk but the typing out.

Source and credit. Andrzej Odrzywołek, All elementary functions from a single operator, arXiv:2603.21852v2 [cs.SC]. The discovery of the operator, the verification methodology and the results there are entirely his. Everything in this paper that is his is used through his own code: the certifier here loads the emit layer of his published compiler out of his source file and executes it verbatim, rather than reimplementing it, and prints the checksum of the bytes it ran on every pass. What is ours is the application to this programme's own objects, and the mistakes.

Section 3Two questions, and only one of them is the screen

The work was commissioned as one instrument. It turned out to be two, and keeping them apart is the part worth reporting.

The terminal auditThe class label
QuestionDoes the object mention anything outside a declared alphabet? Is the object in the calculator-elementary class at all?
MethodA walk over the syntax tree Compile through the author's own code generators, then check the result numerically
StatusDecided exact Candidacy finitely many points, finite precision
Is it the screen?Yes. This is the whole of it.No.
CostMicrosecondsA compile plus four evaluations at 120 digits

The screen is mechanised by the first column alone — and the first column needs no calculator language at all. That is worth saying plainly, because the two were commissioned as one object. Asking whether a formula mentions the primes is a question about a declared alphabet. It is not a question about elementarity. The second column is a finer instrument, aimed at a different and harder question, and it is where the genuinely undecidable residue lives — by Richardson's theorem, deciding whether two elementary expressions are equal is not algorithmically possible in general, so a compiled-and-checked expression is a certificate of candidacy unless it is also reduced symbolically. Every number reported on that axis carries its search budget, and none of them is called a proof.

Section 4The census: 162 and 26

188 exact statements were transcribed from the programme's nine papers, the nine-point paper, and the arXiv paper — banked constants, identity ledgers, verdict boards — each row naming its source. (The papers' own informal count is “some seventy”; 188 is that set with cross-paper repeats kept as separate rows, so that each is audited where it is stated. The first pass covered 162 of them, before Papers 8 and 9 were added.)

Axis 1 — the screen, decided

162 of 188 never mention the coefficients. 26 do. Decided relative to transcription

First pass, seven papers plus the nine-point and arXiv papers: 142 of 162, with 20 mentioning. Second pass added Papers 8 and 9 — 26 further statements, 21 clean and 5 mentioning; no earlier verdict moved. Fourth pass: one row moved — Paper 7's margin, when its objective was written out for the first time, 163 / 25 → 162 / 26. It is the only verdict that has ever changed, it was declared as an exposure before it was resolved, and it changed in the direction the exposure predicted.

Here are the 26, each with the symbol that disqualifies it. Five entered on the second pass with Papers 8 and 9; the last entered on the fourth, when Paper 7's margin was written out at full depth:

ObjectMentionsWhere
Value-region arcsine sum W(σ)pPaper 3, sum over primes
Per-prime hole E_ppPaper 3
Prime-torus densitypPaper 4
Weight arithmetic a_nμPaper 4
Imaginary partial-sum registera_nPaper 4
Stem-rides ratepPaper 4
Shared constants-ladder offset AμPaper 6
Stem curvature κpPaper 6
Area lawpPaper 6
Perimeter lawpPaper 6
Next-order aread_jPaper 6, almost-prime coefficients
Weil explicit form W_FΛPaper 7, the arithmetic side
Stem identity Σλ(n)n−sλPaper 7
Liouville summatory functionλPaper 7
Landau predictionΛarXiv paper
Logarithmic-derivative seriesΛarXiv paper
Support of Λζ at log pparXiv paper
Coefficient recursionΛ, a_narXiv paper
Ladder constant CParXiv paper, through the prime zeta
Seam function h(s)μarXiv paper
Reflection family Im Πc_nPaper 8, ch. 5.1(i) — and see the note below
Multiplicativity certificatea_nPaper 9, ch. 2.4
Segment coefficient b_na_nPaper 9 §1
Fourier transform of χχPaper 9, ch. 2.1
Root number εχPaper 9 §1, through the Gauss sum
Weil margin μ(L)ΛPaper 7 — entered on the fourth pass, when the objective of the infimum was written out

And the deflationary reading, which is the correct one

Before the run, the pre-registered reading of a non-certifying object was that it would be “the first candidate anyone here has had”. It is not. Every one of the 26 is an object this programme has already scored, and scored on exactly the side this audit puts it on — with one row that the screen scores on that side for a reason that is the opposite of the others', which is Section 4a's subject:

So the census produces no new candidate observable, and no further test is owed. What it produces is the programme's own partition — the equalities that cannot separate the classes, and the coefficient-carrying objects where a separation could in principle live — computed rather than argued, object by object, from the syntax. That is a smaller claim than a discovery and a much smaller one than a candidate, and it is the one the data supports.

Section 4aThe other two filters — one mechanises, one provably cannot

The filter this page is about is the oldest of three the programme leans on. If declaring an alphabet and walking the tree turns one judgement call into a decision procedure, the obvious question is whether it turns the other two. The answer is one yes and one no, and the no is the more useful of the two.

The prime-magnitude filter mechanises New

That filter says: an observable depending on the primes only through their sizes is excluded. Written exactly, that is a statement about invariance under changing the phase of the coefficients — a semantic property, which a walk over syntax does not decide. What a walk does decide is the sufficient condition: the primes enter only through p raised to a real power, or through log p. It is delivered under that name, with the converse explicitly not claimed.

It splits the 26 coefficient-mentioning statements 8 / 18. The eight see the primes only through their magnitudes. The eighteen that survive are the content: every one carries Möbius μ, Liouville λ, von Mangoldt Λ or a raw coefficient — a sign or a value, never a size. μ and λ take values in {−1, 0, 1}: they are pure phase, and a size-blind filter cannot see them at all. (The split ran at 8 / 17 over the 25 of the second pass. Paper 7's margin joined the eighteen on the fourth pass rather than the eight, and by arithmetic rather than by a re-run: ΛF(n) is a coefficient value, not a prime size.)

The archimedean filter does not, and the reason is exact New

That filter says: an observable that is a function of the conductor and the gamma factor is built from the symmetry, and is excluded. Declaring an archimedean alphabet looks like the same construction. It fails, and it fails in the dangerous direction — a clean audit means excluded, so a false positive removes an object from evidence rather than merely leaving it in.

Three causes were found and repaired: constants counted as variables, one symbol reused with three different meanings across the papers, and summation indices that range over the Dirichlet series' own support. The repair does not save it. Run over the 162 rows of the first-pass census, the archimedean alphabet scores 21 clean, 29 bare constants and 112 not clean. Of those 21, twelve are sound archimedean verdicts, eight are clean only because an index symbol was admitted, and one is a plain false positive on the strictest alphabet available — Selberg's law for the argument, √(log log t)/√π, whose syntax is archimedean and whose content is not. It is a statement about the value distribution of log ζ, and it comes from the prime sum.

Why one filter mechanises and the other cannot

The prime filter's forbidden alphabet — p, μ, λ, Λ, the characters — is disjoint from every other symbol in the corpus. So writing an object without it proves the object can be derived without it. The archimedean filter's admitted alphabet contains σ and t, which every object in the corpus names. A walk over an alphabet that is not disjoint from what it is meant to exclude decides nothing about where an object came from — and that filter's question is about where an object came from. Limit

The same defect, from the other side New

Adding Papers 8 and 9 exposed the identical weakness in the prime filter. Paper 8's central negative is that a whole family of symmetry-built invariants can carry no information about zeros, because the construction never mentions the function at all — it locks on arbitrary coefficients, including deliberately meaningless ones. Paper 9's certificate, by contrast, is a test on the coefficient list. The filter scores both the same way, because a coefficient symbol looks identical whether it carries the arithmetic or ranges freely. Sharper still: Paper 8 prints its own structure factor in two forms, one carrying coefficients and one not, so the same object lands on either side of the filter depending on which of that paper's two printed lines is transcribed. The filter is reading the spelling, not the object — a limit worth knowing precisely, and one this census found only by being pushed onto fresh material.

Two rows were mis-refused, and the fix needs no new machinery New

Section 6's modulus argument is about the complex modulus. Of the seven rows refused under it, two take a real absolute value — where |x| = √(x²) holds exactly, as that same argument already noted. Rewriting them that way, which is not a new operator and not a change to the language, makes both elementary. A third row is mixed: one of its two absolute values is real and the other a genuine complex modulus, so it stays refused. Half a rewrite is not a rewrite. The residue is five, not seven.

And a structural claim about the language, tested and false New

It had been put that this language could not express what the programme actually needs: the class is holomorphic, the missing object is an inequality, inequalities are about real-valued quantities, and a non-constant real-valued function of a complex variable is holomorphic nowhere. The claim does not survive contact with the programme's own objects. The two known objects of the right shape are the classical zero-free region and one lemma of Paper 3. The zero-free region's boundary compiles; so does the positivity polynomial that carries it. Paper 3's lemma is refused — but for containing ζ and the functional-equation factor, the ordinary special-function boundary that refuses 34 other rows, and nothing to do with holomorphy.

Two further reasons it fails: an inequality is a predicate, and what a language would have to express is the quantity being bounded; and “a real-valued function is not holomorphic” is true of every holomorphic class, polynomials included, so it is not a fact about this one. The honest statement runs the other way. exp(x) − ln(y) is a perfectly good real function for x real and y > 0; written in the real coordinates the programme actually uses, an inequality's quantity is as expressible as anything else. The language's boundary and the programme's gap are not the same boundary — they are unrelated. The gap is about which statement is true; the boundary about which are writable. A language that can write what the programme needs cannot be the reason the programme has not found it.

Section 5The nine-point paper is unanimous, and that is the sharpest thing here

The most informative single block in the census is this programme's only computer-assisted proven headline — the nine-point simple-zeros result, published beside this page. All 24 of its rows are coefficient-free, without exception. The master constant, both kernels, the taper, the tilted window, the defect function, both certified inequalities, the block energies, both theorems, the route cap and the class ceiling: every one is built out of zero spacings and a Fourier kernel, and mentions no prime anywhere.

Against the screen that is not a curiosity. It is the clean statement of what that side of the register can do:

Bound a proportion, and forbid nothing. A result that never mentions the primes can prove that at least 67.3% of the zeros are simple and on the line — a real theorem, certified in interval arithmetic. What it cannot do, for the reason in Section 1, is exclude the other 32.7%, because everything it says is equally true of a function that has zeros off the line.

That is not a defect of the nine-point paper. It is the exact shape of what the two sides of this subject can and cannot buy, and having it fall out of a syntax walk rather than out of an argument is the reason this instrument was worth building.

Section 6What the second axis says, including where the language stops

The finer question — is the object expressible in the calculator language at all — sorts the 188 rows as follows.

LabelCountWhat forces it
Exact-elementary Candidacy94 Compiled and checked at four independent points, one held out, 120 digits
Infinite series37A sum, product, integral or infimum over an unbounded set
Special function34ζ, Γ, digamma, the functional-equation factor, the Riemann–Siegel angle, S(t)
Over budget14A rational literal this compiler chain cannot carry — see below
Not expressible / not transcribed75 complex moduli, 2 decimals not yet written as fractions — was 7; two rows were mis-refused, see below
Undecided2Domain-conditional: compiles, and holds only where its discriminant is positive

Three of these are boundaries of the instrument rather than properties of the objects, and are named as such.

Why the objects leave the elementary class, when they leave it

Thirty-four rows are special-function rows, and the breakdown is recomputed here over all thirty-four. Twenty of them leave the class through a gamma-bearing head — the functional-equation factor χ(s) = 2sπs−1sin(πs/2)Γ(1−s), the Riemann–Siegel angle, Γ itself, or the digamma, every one of which carries Γ, which is not in the calculator class; five of those twenty carry ζ as well. Nine more leave through ζ alone, one through a Dirichlet L-function, two through the argument function S(t) and two through a Fresnel integral. So a gamma factor is the reason for twenty of the thirty-four — the single commonest reason one of these objects is not calculator-elementary, which is a modest quantitative echo of something the papers concluded on other grounds: a large part of this stock lives in the archimedean part of the structure, governed by the gamma factor and the conductor — the territory of a different one of the standing screens. Candidacy

Two corrections, made here because this note is where the figures get published. The internal write-up of the first census run states that 22 of the objects are gamma-bearing; that number is wrong, and its own log says 14, on the 26 special-function rows the first pass had. And the previous version of this page then carried that 26 in its prose while its own table beside it said 34 — the first-pass figure was never re-run when Papers 8 and 9 added eight more. The breakdown above is recomputed over the thirty-four and is taken from the logs, not from the prose.

Where the language stops: absolute value, and it is not a missing feature

A permanent boundary of the instrument

Because the operator is exp(x) − ln(y) over the complex numbers, every expression in this language is a composition of exponentials and logarithms, and is therefore complex-differentiable wherever its branches are defined. The modulus |z| is real-valued and non-constant, so it is differentiable nowhere. No expression in this language is the complex modulus — not at any length, not with a better code generator. Limit

Five of the programme's rows are refused for this reason. (Seven were, until the second pass found that two of them take a real absolute value, where |x| = √(x²) is exact; a third is mixed and stays refused. Half a rewrite is not a rewrite.) It matters a great deal how that is read, so it is said twice: this is a statement about the grammar, not about the objects. |x| is perfectly elementary in the ordinary sense; on the real line |x| = √(x²) is exact. What the boundary means is that this particular instrument cannot see those rows — not that those rows are non-elementary, and certainly not that anything about ζ has been discovered. The pre-registered alternative reading was that a refusal here would be “the first genuinely non-elementary object in the programme”. It did not fire, and this is not it.

Over budget: elementary, but not carryable

Fourteen rows are rational literals like 39/10000 or 4733/1000000. They are trivially elementary. But the author's integer generator builds n by repeated doubling, so a literal's tree grows roughly like n itself: 39/10000 is 130,514 leaves, and one structure-factor ratio, 7646000, would be 99,397,988 leaves — a string of some 660 MB. They are labelled with the size they would take and never as non-elementary. The chain is what cannot carry them.

Section 7The instrument's own defects, and the rule they add up to

This programme's convention is that an instrument's failures are published beside its results, because the failure rate is the only honest calibration of the result. Four were found, three of them by the instrument catching its own output — and because all four have the same shape, the third pass turned them into one stated rule and re-checked every row against it, which found a fifth.

1. The elided summand — and the flattering answer it produced

The first census run returned 111 of 111 coefficient-free, which was the pre-registered good outcome and would have made a much better headline. It was wrong. Fifteen rows had their summand written as an opaque Sum(·) — and a summand is exactly where a coefficient hides: Σp arcsin p−σ, Σ λ(n), Σ μ(n)/n · log ζ(n). Writing the fifteen summands out moved the count to 97 of 111. The audit is exact on what it is given, and it cannot see inside a head written as opaque.

The transferable half. The screen is mechanised only to the depth the object is written out. An elided summand, an opaque head, a reused symbol — each silently converts a coefficient-bearing object into a coefficient-free one, i.e. converts a real result into a flattering one. The instrument is exact; the transcription is the soft layer, and it is where the next defect will be. Every count above is stated at the transcription depth of its own census file, and nothing stronger.

2. A symbol used for three different things

In the same run, the letter P was used in one file for the prime zeta function, for a pinned pair coordinate from Paper 2, and for a pole block from Paper 7. The audit dutifully flagged the last two as prime mentions. Renaming them moved the count from 95 to 97. This is the programme's own named failure class — a register conflation — reproduced by the person who had written the rule against it.

3. A cost model that ran after the build instead of before it

Adding the nine-point rows put large rational literals into the census for the first time. The certifier compiled them. Three such rows drove the process to 10 GB resident on a 16 GB machine, which means paging, which means writing to the operator's disk; it sat at 100% and the run had to be killed. The repair is the right shape rather than a bigger limit: the leaf count has a closed form, so it is now computed in integer arithmetic and nothing is built if the answer is too big.

A cost model comes before a build, never after it. When a constructor's output size has a closed form, evaluate the closed form and refuse on it. A limit applied after construction is not a limit.

4. A default that manufactured an apparent non-elementarity

The checker defaults every variable to “some positive number”, drawing small transcendentals — one of which is Euler's constant, 0.5772. One row is the Selberg–Tsang law √(ln ln t)/√π, which is asymptotic in t. At t = 0.5772, ln t is negative, ln ln t is complex, and the compiled expression and the reference evaluation land on opposite branches. The row read “not computable at any test point” — an apparent non-elementarity manufactured entirely by testing an asymptotic law outside its own domain. Evaluated where the law lives, the same row checks out at 120 digits. The domain is part of the transcription, and that now goes on the list with the elided summand.

A related reporting gap let it hide for a session: a row that compiled and then failed its numerical check printed a blank reason, which reads as no reason at all. It now prints one.

5. The rule those four add up to — written down, and every row re-checked against it

The four above are one failure wearing four coats: a count holds only to the depth its rows are written out. That is now a rule in four clauses rather than a lesson learned four times.

A transcription is at full depth when all four hold. (1) Every sum, product or integral carries its summand written out — a summand is where a coefficient hides. (2) Every symbol means one thing across the whole row set, or it is renamed — a symbol inside the permitted vocabulary that secretly denotes a coefficient produces a silent clean verdict. (3) Every domain the expression forces is declared, with its reason on the row. (4) Where a paper prints an object in more than one form, the row says which form it took.

All 188 rows were then re-passed. Clauses 1–3 are mechanical; clause 4 is not, because deciding it needs the paper rather than the transcription, so it stays manual and its one known instance is listed rather than counted. Three results, each of which failed a pre-registered expectation:

A separate finding of the same pass: a re-certification of every row under four different test domains showed 34 rows whose classification is not domain-invariant — they hold at the values actually used and break only when every symbol is forced to be large, which is not a domain any of them claims. Two of the 34 were already ruled genuinely domain-conditional in the object itself.

The fourth pass adjudicated the other 32, one at a time, and the caveat costs nothing. The question each row was asked is the only one that makes a domain declaration mean anything: is the object undefined outside the domain? — not is the regime of interest large?, which is a different question and answers yes for a great many perfectly ordinary formulas. On that criterion none of the 32 carries a forced domain and no label moves. The two rows in the whole census that do carry one are the two already declared, and they are exactly the two that carry the signature — a logarithm of a logarithm, which the default test values send complex. The transcription debt is closed and the caveat is sized rather than open.

That pass was itself pre-registered on the looser criterion, and on the looser reading one row moved. Tracing it: the move was the compiled expression exceeding the bridge's own magnitude ceiling at moderate argument — a boundary of the compiler chain, of the same kind as the over-budget rows, and not a fact about the object. The failed pass is kept on disk exactly as it ran and the corrected criterion is labelled post-hoc, because it was settled after the gate had fired. What makes it admissible rather than a repair: it was applied to the two already-declared rows first, where it confirms them, and it would have withdrawn the same eight provisional declarations whichever way they had come out.

Section 8What this does not show

Read this before quoting anything above

Nothing here is evidence about the Riemann Hypothesis, in either direction. An expression tree is a syntactic object: its complexity is computed from the formula and never from the value of ζ. So no complexity number here can distinguish ζ from a counterexample in a way that bears on zeros — and the programme's own standing screens exclude that use before it is measured. Any reading of the form “ζ is simpler / more complex, therefore the zeros” is refused here in advance. Limit

Section 9Provenance

The certifier loads the emit layer of Odrzywołek's published compiler out of his source file and executes it verbatim; his file is not modified, and its checksum (747584e6…, emit block 4f4418a5…) is printed on every run. The three code generators his emit layer lacks — sine, cosine, absolute value — were built beside his compiler, out of his own primitives and in the shape he uses for the hyperbolic functions; their sizes were predicted in closed form before being run and came out on the predicted number, and they reproduce sine and cosine to 120 digits. Absolute value was refused, for the reason in Section 6.

Every gate on this line is written down before the run, not after: the reproduction of the 32-row table, the sizes of the new generators, the memory ceiling and its measured peak, and the requirement that the screen's own verdict — 142 and 20 over the first pass's 162 rows, 163 and 25 over all 188, 162 and 26 after the fourth pass wrote Paper 7's margin out — be unchanged by any amount of instrument work, since a missing code generator can never affect a syntax walk. That last one is enforced as a pass/fail gate rather than left as an expectation; it has passed on every pass, including the fourth, where the single move was pre-stated as the gate's own target and every other row was gated to hold still.

What is left of this line, and it is not more software. The census is closed at 162 / 26. Of the four clauses of the programme's standing test for a candidate observable — value-coupled, not coefficient-magnitude-only, not archimedean-only, line-selective — the first two mechanise and are what this page delivers; the third provably does not, for the reason in Section 4a; and the fourth is semantic, since whether a definition treats σ = ½ differently is not readable off the leaves. So no fourth screen will be built. The remaining lever is an entry rule rather than an instrument: a ten-line candidate entry card — full-depth expression, declared alphabet, forced domain, which printed form — filled in at the moment a candidate is banked, which would have made this page's one transcription failure impossible at the source.

What was removed at the fourth pass, and where it went. Earlier versions of this page carried three findings about the source paper's own prototype compiler — how many of its 36 primitives compile through ln 0 = −∞, a sign disagreement between its emitted i and its own √(−1), and a duplicated cell in its published complexity table — together with a comparison of exhaustive-search reach. They were about a quarter of the page's text and none of them is about ζ. They are recorded in full, with their evidence, in a note addressed to that paper's author. A defect in someone else's unpublished prototype code belongs to its author before it belongs on a public page, and this page's subject is this programme's filter.