title: "Proof material for 'Optimised mollifiers and the bound Lambda <= 0.174 for the de Bruijn-Newman constant' (version 3)" author: "Pedro Caceres (Universidad Europea de Valencia, ORCID 0000-0002-6540-8993)" version: 3 date: 2026-11-12 archive_doi: "10.5281/zenodo.XXXXXXXX" code_hash: "6e909a06632570deb680" licence: data_logs_docs: CC-BY-4.0 code: MIT hexagon_note: | This anc/ folder is the Hexagon copy of the version-specific Zenodo record https://doi.org/10.5281/zenodo.XXXXXXXX (the full archive, with the weights as .npy files). Hexagon accepts only scripts and .json/.jsonl/.csv/.tsv/.yaml/.yml/.log data files in anc/, so here: * the weights are stored as lam_L0174.csv and lam_L0175.csv (exact float64 repr, columns index,lambda); `python restore_weights.py` rebuilds lam_L0174.npy and lam_L0175.npy and checks that their SHA-256 equal the hashes used in the runs (d71b379e...49b1235 and 813b5463...e1804a07); * the certificate summaries written by certify_all.py as CERTIFICATE_0.174.txt are stored unchanged (byte-identical) as CERTIFICATE_0.174.log and CERTIFICATE_0.174_linux.log; * this README.yaml carries the README, the archive description and the licence; * SHA256SUMS.tsv lists the hash of every file here and of the two restored .npy files. To reproduce: pip install python-flint numpy ; python restore_weights.py ; python certify_all.py 0.174 readme: | # Computer-assisted proof of Λ ≤ 0.174 (the Λ ≤ 0.175 run with D = 120 is not certified here) for the de Bruijn–Newman constant Ancillary files for: P. Caceres, *Optimised mollifiers and the bound Λ ≤ 0.174 for the de Bruijn–Newman constant* (Part 33 (Paper IX in the October numbering) of the series on the cross-energy of Dirichlet partial sums). ## Run pip install python-flint numpy python certify_all.py 0.175 # ~30-40 min on a laptop python certify_all.py 0.174 # ~1-4 h The driver certifies hypotheses (iii) (barrier, `cert_barrier.py`) and (ii) (zero-free region, `cert_region_ii.py`) of Polymath's Theorem 1.2 (arXiv:1904.12438); hypothesis (i) is the verification of RH up to 3·10^12 by Platt and Trudgian (arXiv:2004.09765). It resumes automatically after an interruption, refuses to mix logs of different code versions, checks that the certified y-intervals cover [y0, sqrt(1-2 t0)] without gaps, and writes `CERTIFICATE_.txt` (inputs, SHA-256 hashes, results). | target | t0 | y0 | X | mollifier weights | |---|---|---|---|---| | 0.175 | 0.15499 | 0.2 | 5998313329980.3135 | `lam_L0175.npy` (λ_d, d ≤ 120, float64) | | 0.174 | 0.15399 | 0.2 | 5998313329980.3135 | `lam_L0174.npy` (λ_d, d ≤ 240, float64) | ## Rigour * All transcendental quantities (log, exp, cos, sin, complex logarithms in M_0, phases (X/2) log n mod 2π) are computed with Arb ball arithmetic (python-flint) at 96/128 bits and converted to float intervals with one extra ulp outward. * Bulk sums (up to ~10^9 terms) use numpy float64 with +, −, × only, each result rounded outward by one ulp, and Higham's bound for sums. Monotone factors (n^{-σ}, b_n n^{-Re s*}, …) are bounded on short geometric blocks of n. * The only libm call in a certifying step is `np.angle` in the winding-number check, covered by a slack of 10^-6 rad per term. * Every check is an assertion: a failed check stops the program, so no false "CERTIFIED" line can be printed. * `mockflint.py` is a float stand-in for testing without python-flint (`CERT_MOCK=1`); such runs are labelled NOT a certificate. - torus_fig.py: Figure 3 (phase torus vs curve). orbit_check.py: recomputes the growth slope 0.308 in Figure 2(d) from Lambda_f(n), n<=3e7, produced by `python3 dh_lambda.py 3e7` (Davenport-Heilbronn). Illustrations only, not part of the proof. ## Reproduction and audit * `logs_0.174/` and `CERTIFICATE_0.174.txt`: the run on Windows 11 (Python 3.13.2, numpy 2.4.2, python-flint 0.9.0 wheel). * `logs_0.174_linux/` and `CERTIFICATE_0.174_linux.txt`: an independent second run of the same, unchanged scripts on Linux (Python 3.13, numpy 2.5.3, python-flint 0.9.0 compiled from source against FLINT 3.6.0, GMP 6.3.0, MPFR 4.2.2). * SHA-256 of the inputs (also printed in both certificate files): lam_L0174.npy d71b379ee04a299191ec31c420d4dcca6bba3fc61c707eb9ee4c71c0c49b1235 cert_region_ii.py 8ca106d8a5609d7f093529cdb1614f5da773bdb78484afd30dba4dc5a481c4ec cert_barrier.py 1882d2ce112ed1a551cff3d1ec4d7d131c2bfd46b628ec1b9cde8993921ea4fe common.py 22361af17deaffa7c7761367f84cc90bc7dbf44d44267e32ab5ddc5273211e18 certify_all.py a2ae5bc2137d4b96ce49e262a68c7ef1a58f0cdd9f0cfe12b5e09f461da1251a * `audit_lemmas.py` (not part of the certificate; numpy + mpmath, about one minute): checks the hashes, the algebra of Lemma 3 at exact values of s*, kappa, gamma, the side conditions used by the code (D^|kappa|-1 <= 1e-12, 3^y+3^-y <= 3 y_b + 1), the signs of the derivative bounds in the proofs of Lemmas 5 and 6, and recomputes the lower bound of Lemma 3 at the first chunk in plain floating point (0.02195 against the certified 0.02188). archive_description: | # Proof material for "Optimised mollifiers and the bound Λ ≤ 0.174 for the de Bruijn–Newman constant" **Paper:** P. Caceres, *Cross-Energy of Dirichlet Partial Sums. Part 33: Optimised mollifiers and the bound Λ ≤ 0.174 for the de Bruijn–Newman constant*, version 3 (12 November 2026), submitted to Hexagon. **This archive is version-specific.** It contains exactly the files on which Theorem 1 (Λ ≤ 0.17399) of version 3 depends, together with the complete logs of the two certificate runs reported in the paper. The files in `anc/` are byte-identical to those used in the runs; their SHA-256 hashes are printed in both certificate files and in Table "Inputs of the certificate" (Appendix B) of the paper, and are listed for every file in `SHA256SUMS.txt`. ## What is where | item promised in the paper | file(s) | |---|---| | mollifier weights used in the proof (d ≤ 240, t0 = 0.154, 240 float64) | `anc/lam_L0174.npy` | | weights of the uncertified D = 120 run (Table 1, Section 6) | `anc/lam_L0175.npy` | | driver: runs both certificates, resumes, checks coverage, writes the summary with hashes | `anc/certify_all.py` | | certificate of hypothesis (ii), zero-free region | `anc/cert_region_ii.py` | | certificate of hypothesis (iii), barrier | `anc/cert_barrier.py` | | shared interval-arithmetic helpers (`lo`, `hi`, outward rounding) | `anc/common.py` | | audit of the lemmas and side conditions (not part of the certificate) | `anc/audit_lemmas.py` | | float stand-in for testing without python-flint (runs labelled NOT a certificate) | `anc/mockflint.py` | | certificate summary, platform 1 (Windows 11, Python 3.13.2, numpy 2.4.2, python-flint 0.9.0 wheel) | `anc/CERTIFICATE_0.174.txt` | | complete logs, platform 1 (run of 13 Oct 2026) | `anc/logs_0.174/driver.log`, `barrier.log`, `region_ii.log` | | certificate summary, platform 2 (Linux, glibc 2.39, Python 3.13.16, numpy 2.5.3, python-flint 0.9.0 built against FLINT 3.6.0) | `anc/CERTIFICATE_0.174_linux.txt` | | complete logs, platform 2 (run of 20 Oct 2026, unchanged scripts) | `anc/logs_0.174_linux/driver.log`, `barrier.log`, `region_ii.log` | | scripts for the figures and illustrations (not part of the proof) | `anc/weights_fig.py`, `anc/torus_fig.py`, `anc/orbit_check.py`, `anc/dh_lambda.py`, `anc/gauss_euler.py` | | original README of the ancillary files | `anc/README.md` | Both runs used the same code version (code hash `6e909a06632570deb680` in every log header) and the same weights (`lam_L0174.npy`, SHA-256 `d71b379e…49b1235`). Each `driver.log` runs from the start of the computation to the line `ALL HYPOTHESES CERTIFIED: Lambda <= 0.17399 < 0.174`. ## Re-running the certificate pip install python-flint numpy cd anc python certify_all.py 0.174 # about one hour on a laptop The program stops at the first failed check; the line `CERTIFIED` is printed only after all checks pass. To verify the archive without re-running: `sha256sum -c SHA256SUMS.txt` (Linux/macOS) from the archive root. ## Licence Text, data and logs: CC BY 4.0. Code: MIT. See `LICENSE.txt`. licence_text: | Copyright (c) 2026 Pedro Caceres Data, logs and documentation in this archive are licensed under the Creative Commons Attribution 4.0 International licence (CC BY 4.0), https://creativecommons.org/licenses/by/4.0/. The source code (*.py) is licensed under the MIT licence: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.