Skip to content

About

Verification code and data for the Krein programme: exact rational certificates for "An Exact Derivative Calculus for Discrete Krein Strings" (satz1/) and for its application "What a Krein String Sees in Its Weights", with the Riemann zeros as a case study (krein/).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

krein-strings

Verification code and data for the Krein research programme: inverse spectral analysis of discrete Krein–Stieltjes strings.

Each paper of the programme lives in its own directory and carries its own manifest naming, script by script, which statement of the paper that script certifies. Tools and cached data used by more than one paper sit at the top level, so those papers use the same routines rather than private copies; material used by one paper only lives in that paper's directory.

Contents

satz1/      An Exact Derivative Calculus for Discrete Krein Strings
            paper (.tex/.pdf), manifest, all verification scripts,
            run logs in satz1/logs/
krein/      What a Krein String Sees in Its Weights
            (an application of satz1/): paper, exact certificates,
            world builders, drift expansion, case study, the sealed
            preregistration, its own data and run_all.sh;
            see krein/README.md
run_all.sh  runs and checks every script of satz1/ (see below)
lib/        chain_lab.py    RKPW reconstruction of Jacobi data
            string_lab.py   Jacobi data -> string (l, m)
data/       zeros_cache_1500.json    ordinates 1..1500, 45 digits
            zprime_cache_1500.json   the corresponding |zeta'(rho)|

Requirements and use

satz1/: Python 3.8 or later. The exact certification scripts need only sympy and the standard library; the one benchmark additionally needs mpmath and numpy (≥ 1.17, for default_rng).

krein/: Python 3.10 or later with numpy, scipy, mpmath, sympy and matplotlib; krein/README.md lists which part needs which package and the versions the scripts were tested with. Older versions that are available as binary wheels suffice: the exact parts are rational, and the string reconstructions run in mpmath.

pip install sympy mpmath numpy scipy matplotlib
./run_all.sh                     # satz1/: exact certificates, about 3 minutes
./run_all.sh --full              # plus the numerical benchmark, about 10 minutes
cd krein && ./run_all.sh         # krein/: every number of the paper, about 1.5 hours on one core
cd krein && ./run_all.sh --full-only   # the class-test control worlds alone, several hours

Each run_all.sh runs the scripts of its paper and checks their output against the expected result; it exits with 0 only if all checks pass. Output goes to runlogs/ (for satz1/) and to krein/run_output/; the committed reference logs are satz1/logs/ and krein/certify/logs/. The first command of krein/run_all.sh is a pre-push guard, and krein/SHA256SUMS seals every file of that folder (cd krein && sha256sum -c SHA256SUMS). Individual scripts can also be run directly, from any working directory: paths are resolved relative to the repository, not to the shell.

For the exact scripts the standard is that every reported difference is exactly zero in rational arithmetic — not small — and every certificate comes with negative probes that must fail. Numerical results reproduce the figures printed in the papers; where double precision enters, the last digit may vary with the numpy/BLAS build, as the papers state.

On systems with glibc older than 2.28 (e.g. CentOS 7), install the numerical packages with pip install --only-binary=:all: <package>; current wheels require a newer glibc, and without the flag pip attempts a source build.

The manifests satz1/satz1_checks_MANIFEST.md and krein/checks/krein_checks_MANIFEST.md are the authoritative maps from script to certified statement, including expected output and runtime.

Citing

The papers are archived on Zenodo; each identifier resolves to the current version of its paper. Please cite the papers rather than this repository.

Paper Directory DOI
An Exact Derivative Calculus for Discrete Krein Strings satz1/ 10.5281/zenodo.22847188
What a Krein String Sees in Its Weights krein/ 10.5281/zenodo.23038257

Releases

  • v1.0.0 — satz1/ (research note v1.0), with lib/ and data/.
  • v2.0.0 — adds krein/ (research note v1.0); satz1/, lib/, data/ and the top-level run_all.sh are unchanged.

Scope

The formal results are statements about finite positive discrete measures on the half-line with distinct positive nodes. They use no hypothesis about the distribution of the Riemann zeros, and no claim concerning the Riemann Hypothesis is made or implied anywhere in this repository. The benchmark of satz1/ consumes a concrete list of ordinates purely as a reproducible supply of distinct positive numbers. The case study of krein/ consumes lists of ordinates and of the moduli of the derivative of zeta at the zeros as declared, hashed numerical inputs; no property of their distribution is assumed, the definitions and proofs do not contain these lists, and nothing is offered as evidence for or against any conjecture about them.

License

The code — all scripts in satz1/ and krein/, the tools in lib/, and the run_all.sh scripts — is released under the MIT License; see LICENSE.

The papers (satz1/*.tex, satz1/*.pdf, krein/paper/), the cached data in data/ and krein/data/, and the world files, prediction curves and preregistration in krein/ are released under the Creative Commons Attribution 4.0 International License (CC BY 4.0), matching the Zenodo records.

About

Verification code and data for the Krein programme: exact rational certificates for "An Exact Derivative Calculus for Discrete Krein Strings" (satz1/) and for its application "What a Krein String Sees in Its Weights", with the Riemann zeros as a case study (krein/).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages