|
| 1 | +# Certified First 1,000 Zeros of the Riemann Zeta Function |
| 2 | + |
| 3 | +This repository contains the final certified dataset of the first **1,000 nontrivial zeros** |
| 4 | +of the Riemann zeta function |
| 5 | +\[ |
| 6 | +\zeta\!\left(\tfrac12 + it\right), |
| 7 | +\] |
| 8 | +produced using a **dual-evaluator method**, a **hexagonal argument-principle contour**, strict |
| 9 | +**Krawczyk uniqueness isolation**, and an **automatic refinement pipeline** that corrects any |
| 10 | +multi-zero contours or weak contraction regions. |
| 11 | + |
| 12 | +The goal is to provide a clean, reproducible, and verifiable reference dataset for research, |
| 13 | +analysis, numerical experiments, or independent verification. |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +## Contents |
| 18 | +data/ |
| 19 | +zeros_1_to_1000_final.json # Final certified dataset |
| 20 | + |
| 21 | +scripts/ |
| 22 | +unified_zeta_framework_v2.5.py # Full certification engine |
| 23 | +zero_analysis_and_scaling.py # Spacing analysis + stability metrics |
| 24 | +merge_zero_certs.py # Utility to merge per-range JSONs |
| 25 | +These are the only files needed to reproduce the dataset from scratch. |
| 26 | + |
| 27 | +--- |
| 28 | + |
| 29 | +## Method Summary |
| 30 | + |
| 31 | +### **1. Dual ζ Evaluators (Consistency Check)** |
| 32 | +Each contour evaluation uses two independent ζ functions: |
| 33 | + |
| 34 | +- `mpmath.zeta(s)` |
| 35 | +- Dirichlet η-series partial summation |
| 36 | + |
| 37 | +The maximum disagreement (`max_evaluator_diff_on_contour`) confirms numerical stability. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +### **2. Hexagonal Contour + Argument Principle** |
| 42 | +Each zero is enclosed inside a hexagonal contour. |
| 43 | +Winding numbers are computed for both evaluators: |
| 44 | + |
| 45 | +- `wA_int = 1` |
| 46 | +- `wB_int = 1` |
| 47 | + |
| 48 | +Any contour that encloses more than one zero (`w = 2`) automatically triggers refinement. |
| 49 | + |
| 50 | +--- |
| 51 | + |
| 52 | +### **3. Wavelength-Limited Sampling** |
| 53 | +Contour sampling is governed by a Nyquist-style bound using the local phase speed of |
| 54 | +\[ |
| 55 | +\frac{\zeta'}{\zeta}, |
| 56 | +\] |
| 57 | +ensuring correct resolution of phase jumps and preventing aliasing. |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +### **4. Krawczyk Uniqueness Test** |
| 62 | +Each zero is validated with a 2D Krawczyk operator, verifying: |
| 63 | + |
| 64 | +- `β < 1` (contraction) |
| 65 | +- `ρ ≤ r_box` (isolation) |
| 66 | +- exactly **one** zero exists in the box |
| 67 | + |
| 68 | +If any condition fails, refinement is automatically applied. |
| 69 | + |
| 70 | +--- |
| 71 | + |
| 72 | +### **5. Automatic Refinement** |
| 73 | +For any zero where the contour or Krawczyk test fails: |
| 74 | + |
| 75 | +- contour radius is reduced |
| 76 | +- Krawczyk box is reduced |
| 77 | +- evaluator agreement rechecked |
| 78 | +- the full certification cycle repeats |
| 79 | + |
| 80 | +This continues until the zero satisfies: |
| 81 | + |
| 82 | +- `wA_int = wB_int = 1` |
| 83 | +- `β` safely below 1 |
| 84 | +- `ρ ≤ r_box` |
| 85 | +- evaluator agreement is stable |
| 86 | + |
| 87 | +--- |
| 88 | + |
| 89 | +## Dataset |
| 90 | + |
| 91 | +The file: |
| 92 | +data/zeros_1_to_1000_final.json |
| 93 | + |
| 94 | +contains, for each zero: |
| 95 | + |
| 96 | +- `zero_index` |
| 97 | +- `approx_zero.t` (the height) |
| 98 | +- modulus bounds (`min_abs_zeta_on_contour`) |
| 99 | +- evaluator agreement (`max_evaluator_diff_on_contour`) |
| 100 | +- winding numbers (`wA`, `wB`, `wA_int`, `wB_int`) |
| 101 | +- full Krawczyk isolation fields (`beta`, `rho`, `r_box`, `success`) |
| 102 | +- contour geometry parameters |
| 103 | + |
| 104 | +This dataset is ready for: |
| 105 | + |
| 106 | +- visualization |
| 107 | +- GUE spacing experiments |
| 108 | +- analytic number theory research |
| 109 | +- replication or extension |
| 110 | + |
| 111 | +--- |
| 112 | + |
| 113 | +## Usage |
| 114 | + |
| 115 | +### Certify a new range: |
| 116 | + |
| 117 | +```bash |
| 118 | +python scripts/unified_zeta_framework_v2.5.py --range 101 150 |
| 119 | + |
| 120 | +Analyze spacing statistics: |
| 121 | +python scripts/zero_analysis_and_scaling.py --analyze data/zeros_1_to_1000_final.json |
| 122 | +Merge multiple certificate files: |
| 123 | +python scripts/merge_zero_certs.py --output merged.json zeros_*.json |
| 124 | + |
| 125 | +Authors |
| 126 | + |
| 127 | +Kristin Nicholson |
| 128 | +Chance Nicholson |
| 129 | + |
| 130 | +Both authors contributed to the methodology, numerical design, |
| 131 | +refinement system, and certification pipeline used to generate the |
| 132 | +final verified dataset of the first 1,000 nontrivial zeros of the |
| 133 | +Riemann zeta function. |
| 134 | + |
| 135 | +License |
| 136 | + |
| 137 | +MIT License — free for academic, commercial, and independent research use. |
0 commit comments