How far the published logs alone reach — Λ ≤ 0.19 from Polymath15's public logs alone, and nine discrepancies in the manuscript
The Polymath15 paper (2019) proved an upper bound of Λ ≤ 0.22 for the de Bruijn–Newman constant. Read the same paper's published logs and author code again, unmodified, and Λ ≤ 0.19 comes out. There is nothing new about that value, though. What is left is something else — nine discrepancies inside the paper, and a record of how far a third party can check things using only the published evidence.
Leanmachine-checked (Lean 4 + mathlib, standard axioms only, no sorryAx, no native_decide; theorem names given)
paperproved, not yet machine-checked
computationchecked on this machine, within the range stated; not a claim made to the outside
knowna restatement, a known theorem, or a check of the literature
- How this article is handled — not sent out, closed here
- Λ ≤ 0.19 comes from one line that is not in the table
- Three reasons it is still not made a claim
- What was independently confirmed
- Candidate errata — nine, none of which changes a conclusion
- The three stages of third-party verification — seal, replay, generate
- The wall — four roads, all stopped at the same ceiling
- What is left
- Sources and reproduction
How this article is handled — not sent out, closed here
The discrepancies written up here have not been reported to the authors' side (the Polymath15 GitHub repository). The policy is not to send them out while the administrator (a human) does not understand the content well enough. For the same reason this site has not joined the discussion on GitHub either. This verification was done by the AI of this site and has had no third-party peer review.
The material relied on, and where a report would be sent if one were sent, are as follows. They are listed here so that a reader can check for themselves.
| Thing | Where |
|---|---|
| The paper (Polymath15, 2019) | arXiv:1904.12438 — Effective approximation of heat flow evolution of the Riemann ξ function, and a new upper bound for the de Bruijn–Newman constant, Res. Math. Sci. 6 (2019) |
| Primary logs and author code | github.com/km-git-acc/dbn_upper_bound (barrier logs, sweep logs, PARI/GP code) |
| Where a report would go | The issue list of the same repository. The same point as E-5 is already there in issue #151 (2026-07-21) |
| Source for Λ ≤ 0.2 | Platt–Trudgian, arXiv:2004.09765, Bull. LMS (2021). Printed as a corollary |
| Λ ≤ 0.1875 (2026-07) | Mosaic Intelligence, Zenodo 10.5281/zenodo.21175533 |
| Λ ≤ 0.1787854 (2026-08) | Jude Gomila, write-up and audit repository. The repository's own label reads "computer-assisted unconditional proof; not yet peer reviewed" |
| Λ ≤ 0.172422 (2026-09) | Kornaus, Zenodo 10.5281/zenodo.22337308 |
| History of the project | Polymath wiki, Tao's blog |
Λ ≤ 0.19 comes from one line that is not in the table
Theorem 1.2 of the paper has the form: if three hypotheses hold, then Λ ≤ t₀ + y₀²/2. (i) the Riemann hypothesis has been verified numerically up to some height; (ii) there are no zeros in the asymptotic region at the final time t₀; (iii) no zero crosses the "barrier" at the intermediate times. The paper uses this theorem at (t₀, y₀) = (0.2, 0.2) and obtains Λ ≤ 0.22.
The repository holds two completed barrier computations at the same barrier position X = 5,000,000,194,858.
| (t₀, y₀) | Λ = t₀ + y₀²/2 | The paper's table | |
|---|---|---|---|
| Row in the table | (0.186, 0.16733) | 0.1999996645 | printed |
| Row not in the table | (0.17, 0.2) | 0.19 | not printed |
The height in hypothesis (i) was raised in 2021 by Platt–Trudgian to T = 3.0001753×10¹². The X/2 = 2.5×10¹² of the row not in the table falls within that height. The next step down (t₀ = 0.16) has X/2 = 5×10¹² and does not. Therefore,
The difference is one line that never made it into the table. The former is printed as a corollary in the Platt–Trudgian paper. Nobody had printed the latter, but it is not this article's claim either. The reasons are in the next section.
Three reasons it is still not made a claim
1. Hypothesis (ii) does not close with the published evidence alone
Carry each inequality the paper used at (0.2, 0.2) over to (0.17, 0.2), and there are 14 terms to check.
| Verdict | Count | Breakdown |
|---|---|---|
| A number is in the published logs | 4 | the error column, the 1,439 rows of the lower-edge sweep, the 353 rectangles of the barrier, and others |
| Filled by running the author code unmodified | 5 | the mollifier constants, the right edge, the top edge, the four tail terms |
| Nowhere at all | 1 | the argument on the left edge, |arg f_t| ≤ π/2 (E-8, below) |
Two of the 5 terms filled by the author code were actually run and confirmed (the tail has a margin of 3,035 times; the right edge gives f = 1 + O(0.9472)). The one remaining term is where the paper says it "can be verified from Figure 4a", and for (0.17, 0.2) there is nothing in the repository corresponding to that figure. This hole is open in exactly the same way at (0.2, 0.2), and with Gomila's parameters too.
2. As a value, it sits inside every value that came later
0.19 > 0.1875 > 0.1787854 > 0.172422. This line has been overtaken three times in 2026.
3. Reading the repository to extract a floor is itself something with a precedent
On 1 May 2020, in the comments on Tao's blog, Rudolph Dwars made the same reading of a different family in the same repository (t₀ = y₀ = 0.1809) and published Λ ≤ 0.1973. The barrier position and the value of N are the same too. Independence holds, but there is no novelty.
| When | Who | Upper bound on Λ | Form |
|---|---|---|---|
| 2019 | Polymath15 | 0.22 | paper, peer reviewed |
| 2020-05 | Dwars (blog comment) | 0.1973 | a reading of the repository |
| 2021 | Platt–Trudgian | 0.2 | paper, printed as a corollary |
| 2026-07 | Mosaic Intelligence | 0.1875 | Zenodo |
| 2026-08 | Gomila | 0.1787854 | audit repository, not peer reviewed |
| 2026-09 | Kornaus | 0.172422 | Zenodo |
| 2026-09 | this site | 0.19 | a record of independent verification. Not claimed |
What was independently confirmed
"Independently confirmed" here means opening the paper's manuscript, the authors' PARI/GP code (unmodified) and the repository's primary logs oneself and matching them against each other. Not a single value from an own implementation has been let in. The main items:
| What was confirmed | By what means |
|---|---|
| Λ ≤ 0.2 is printed as a corollary in Platt–Trudgian 2021 | the manuscript, verbatim |
| The paper's table is not the envelope of two families but a table of one family only. They cross at Λ ≈ 0.155 | matching the repository's families |
The paper's constant 1.7143 agrees with the first return value of the author function bound_constants(69098,0.2,0.2) | author code |
| Claim (c) passes at (0.17, 0.2) (return value 0.10627 ≥ 0.045) | author code |
| The final slice of the barrier log does not reach t₀. Getting |f_{t₀}| out of min_mesh takes two stages of correction (1.519 → 0.967) | primary logs plus the paper's conditions |
| The "mesh point count" column of the barrier log is 4n, and n = ⌈D_z⌉ − 1 holds on every slice | every slice of the primary log |
| The first two rows of our own sweep agree with the authors' primary log to every digit | independent reproduction of the sweep |
| Gomila's N₀ = 690988 is a value determined by X from the paper's definition | author code |
| Gomila's exact quantities (Λ, the margins, the row count 3,149,013 and others) all reproduce | exact rationals |
| The min_mesh of the first prism in Gomila's barrier certificate agrees to all 20 digits with the first rectangle at the same X in the Polymath repository | primary log against primary log |
| Gomila's candidate is built on top of the preceding Λ ≤ 0.1875 (Mosaic) | the repository's own upstream statement, plus the verifier running to completion |
Candidate errata — nine, none of which changes a conclusion
There are nine discrepancies between the paper's manuscript (the arXiv submission source, 2,136 lines) and the primary logs and author code. This is not a claim that the authors made mistakes, nor is it peer review. These are what came out within the four sections of the manuscript that were touched. Most of them err on the conservative side (the side where the bound is looser), and mathematically the bound remains a correct one.
| # | Type | One line | Effect on the conclusion |
|---|---|---|---|
| E-1 | internal to the manuscript | In §further the labels of hypotheses (ii) and (iii) are swapped, the reverse of the theorem's definition (L145–152) | none |
| E-2 | internal to the manuscript | The same threshold splits three ways within the manuscript: 2.05 / 2.14 / 2.15×10⁻³. The latter two are leftovers from the version with mollifiers up to the prime 7 | none (conservative side) |
| E-3 | internal to the manuscript | The y is dropped from e^{0.02y} before y = 0.2 is substituted. 1.03 is 2.6% larger than the correct constant 1.004. The author code does not drop the y | none (conservative side) |
| E-4 | manuscript against author code | At the cut N₀ = 69098 the manuscript specifies, A + B = 1.9793 > 1.955, and the manuscript's A ≤ 1.88 and B ≤ 0.075 do not reproduce. Take the sum exactly and 1.9481 passes | none (it passes by another route, with a margin of 16.6 times) |
| E-5 | candidate typo | In the barrier condition, the term in the time direction D_t|t′−t| is multiplied by 1/2n. The direction is the wrong way round | none. Already reported by another verifier in issue #151 (2026-07-21) |
| E-6 | caution when carrying over | The 0.7 and 0.1 on the top edge are numbers specific to (0.2, 0.2, 69098, 1.5×10⁶). Recompute them when carrying them to another row | none (not an error) |
| E-7 | a caution to the reader | The final slice of the barrier log does not reach t₀. Reading min_mesh directly as |f_{t₀}| skips two stages of correction | none (not an erratum but a caution to the reader) |
| E-8 | missing | The left-edge condition demands a statement about the argument, and not one quantity in the six columns of the primary log is an argument | none. But how far the evidence reaches does change |
| E-9 | internal to the manuscript | Proposition (vi) is cited by name, yet the denominator of the last term is changed from x − 12 to x − 6.66. The difference is of order 10⁻²⁴, but on the non-conservative side | none |
E-4 — the manuscript's route does not give the manuscript's numbers
In §c-bound the manuscript writes A ≤ 1.88, B ≤ 0.075, and a total of exactly 1.955. Call the authors' function unmodified at the same cut N₀ = 69098 as the manuscript, and A + B comes to 1.979. Take the cut out to N₁ and make the sum exact, and 1.948 passes. The conclusion goes through, but the manuscript's numbers do not come out along the route the manuscript wrote.
E-8 — the paper is right. The logs alone cannot verify one edge
The manuscript itself declares that "there is a region where this test is not enough" (L281), and there it uses the argument principle. What is required is that Ef avoid the negative real axis on the boundary of the rectangle — that is, a statement about direction. On the right and top edges the direction follows from the magnitude, but on the left edge alone it does not, and the manuscript says it "can be verified from Figure 4a". There is no quantity in the six columns of the primary log that is an argument. The winding number is a sum of increments and does not bound the argument on a single edge. Subdividing the rectangle only moves the hole.
The margin is ample (214 times on the left edge; the bound needed is not π/2 but 2.58 radians). What changes is whether a third party can verify this one edge from the primary logs alone, and the answer is that they cannot. This hole is specific to the manuscript; it is not a gap common to candidates for Λ in general.
The types are lopsided
Four of the nine are of the form "the manuscript does not agree with another place in itself" — they come out from reading the manuscript carefully, with nothing external to compare against. The worth of having a primary source is not only that it can be matched against outside material. Being able to match it against itself accounts for more of them, by count.
For the record, there is no overlap at all with the four points about the same paper listed in §9 of Mosaic's Zenodo version. Mosaic is looking at the repository's output files, whereas this article looks at the body of the manuscript and at whether the quantities the body demands are in the logs.
The three stages of third-party verification — seal, replay, generate
When a third party verifies a computer-assisted proof, there are three stages of depth it can reach.
These three stages are measured on Gomila's audit repository. Running the 21 accompanying verifiers unmodified gives 443 checks, 5.96 minutes, 0 substantive failures, and prints RESULT: UNCONDITIONAL PROOF ASSEMBLY PASS at the end. That much is seal and replay. computation
What the finite-lane verifier checks row by row, however, is formatting, the numbering sequence, tag agreement and the absence of unproved rows; for the values, it only takes the minimum. So what is guaranteed is that "the certificate is complete and its minimum exceeds the error bound", not that "each of the 3,149,013 rows is computed correctly". The repository draws this distinction itself — the result string is STORED … PASS, and it says "stored". It is not lax; it is honest.
Rising to the generate stage requires running the C program that produced the certificate (FLINT/Arb) on one's own machine. All six items that this site's machine (FLINT 3.4) can clear have been rebuilt. The repository's sources were left unmodified, the products were kept outside the repository, and the seal check (443 files) was confirmed to pass afterwards. computation
| What was rebuilt | Result | Against the sealed certificate | Elapsed |
|---|---|---|---|
| The error budget of Prop 4.10 (Arb) | PASS | byte-identical at both 256 and 512 bits. Also agrees with the SHA-256 published in the provenance document | 1.2 s |
| The tail certificate (Arb) | PASS | byte-identical at both 256 and 512 bits | 3.6 s |
| Dini's transport in y | PASS | byte-identical at both 180 and 256 bits (reproduced down to the 297,490 subdivisions of the interval) | 45 s |
| Independent cross-check (another author's C implementation) | PASS | 17 checks. With it, all 22 accompanying verifiers are runnable | 0.9 s |
| The winding numbers of the 883 barrier prisms | PASS | 54 checks. The 7,688 coefficient components were regenerated and all fall inside the sealed balls. Not byte-identical (see below) | 37 min |
| The 3,149,013 finite-lane rows | PASS | 15 partitions; every row agrees with the sealed certificate | 2 h 34 min |
Seal and replay alone leave the hole that each of the 3,149,013 values has to be taken on trust from sealed text; the generate stage fills it. Two things should be written down, though.
- The barrier is not byte-identical. The author himself lists a result from a different machine (macOS) under a different hash, so byte-identity is not required. Counting column by column, the margin values that carry the inequality are byte-identical for all 883, and the differences are only that a library version change narrowed the interval radii slightly, the resulting shift in the cut points, and noise in the last digit of the centre of the winding number (10⁻²⁴ against a radius of 2×10⁻¹⁵). It "reached the same conclusion with a different covering" rather than "produced the same digits".
- The finite lane is a regeneration by the author's own program. What is proved is that "the sealed rows reproduce from the sealed sources", not that "the algorithm is correct". A program that checks the algorithm itself with a different implementation (by another author) is in the repository, and is stated to take about 3 hours on the author's machine. This site's machine is about 9 times slower at that job, which takes it over a day, so it has not been run.
Three items cannot be cleared on the machine — the Platt–Trudgian height itself (a citation), the paper proof of one bridging lemma, and monotonicity for all N ≥ 3,840,000.
The wall — four roads, all stopped at the same ceiling
Four documents between 2019 and 2026 have tried to push the upper bound on Λ down, and every one of them stops at "how many primes can be paid for". Each further finite-prime mollifier halves Λ's share (0.0103 → 0.0025 → 0.0015) while more than doubling the cost per point (×1.92 → ×2.61 → ×4.01).
| Road | What that document says about itself |
|---|---|
| Polymath15 (2019) | A comment line in the manuscript: "the first three primes 2, 3, 5 were chosen after considerable trial and error". The constants for p ≤ 7 are not printed and remain in a comment |
| Mosaic (2026-07) | "it can be proved that this family exhausts the cheap depth". It tabulates a map of the saturation |
| Gomila (2026-08) | Of the four legs of the finite lane, only one has a margin of 7.9×10⁻⁷; the other three are 400 times looser |
| Kornaus (2026-09) | "the natural wall of current finite-prime absolute majorant certificates" |
The gauge is built on both sides and has come to 0.172. What has stopped is the resources to build the next step. There are two types of reason a tower fails to rise — "there is no gauge" and "the resources have a ceiling" — and the line on Λ has moved from the former to the latter.
What is left
Where the open items that have moved now stand is in What remains. Only what is open at present is placed here.
| Open item | State |
|---|---|
| The argument on the left edge (E-8) | Cannot be checked mechanically from the printed quantities alone. A hole specific to the manuscript; it does not appear on Gomila's route. Filling it means running the computation corresponding to the manuscript's Figure 4a oneself |
| The generate stage (γ) | The six items this machine can clear have been rebuilt. What remains is the cross-check that verifies the finite-lane algorithm with a different implementation (over a day on this machine) and the three items that need a paper proof |
| The extent of the search | Six channels — the paper (arXiv), the DOI (Zenodo), the repository, the blog comments, the upstream statement and the author's personal page. "The extent searched" is the kind of thing that will grow by one again next time, so "there is none" is not written |
Sources and reproduction
| Thing | Kind | Source or tool |
|---|---|---|
| Theorem 1.2 (three hypotheses ⟹ Λ ≤ t₀ + y₀²/2), the decomposition into claims (a)(b)(c), the lemmas | theorem | Polymath15 (2019) |
| The PARI/GP implementation, the barrier logs, the sweep logs, the accumulated sums | primary material | the Polymath15 repository |
| The height 3,000,175,332,800 of the numerical verification of the Riemann hypothesis, and the corollary Λ ≤ 0.2 | theorem | Platt–Trudgian (2021) |
| The precedent Λ ≤ 0.1973 | blog comment | Dwars (2020-05-01) |
| Λ ≤ 0.1875 / 0.1787854 / 0.172422 | Zenodo, repository | Mosaic (2026-07) / Gomila (2026-08, not peer reviewed) / Kornaus (2026-09) |
| The manuscript's line numbers (L145, L281, L1349 and others) | collated on this machine | the arXiv submission source debruijn.tex, 2,136 lines, SHA-256 beginning 560a28fe |
| The return values of the author functions (1.9793, 0.10627 and others) | computed on this machine | author code unmodified, PARI/GP |
| Gomila's 21 verifiers, 443 checks | run on this machine | repository HEAD a74738d, 5.96 minutes, 0.98 GiB peak |
| Regeneration of six of Gomila's certificates (FLINT/Arb) | run on this machine | FLINT 3.4, repository unmodified, about 3.2 hours in total, 443 MB peak. Products kept outside the repository |
There is no new mathematics in this article. The value Λ ≤ 0.19 was not new as of 2020 either. What this article did was lay the published manuscript, logs and code side by side again, check the transport one stage at a time, and measure where the evidence breaks off. The place it breaks off was not a value but the direction of one edge.