repair-20261027T055528Z-checks.py

back to table · edit · history · where entries came from · files · download

2351 bytes, as of the version from 2026-10-27 06:00 (current). Recorded here, not run.

"""Recheck unchanged T539 entries with the existing attached generator.

Run with SageMath beside the unchanged generate.py attachment:
    sage -python numerical_recheck.py
Set NUMBERDB_KEY_FROM_STDIN=1 and pipe an authorized key to read the draft.

Policy: agents/runs/20261027T055528Z-repair-skills/manifest.json;
local and live SHA-256 e37efb7e2ededf6c1d7134c673f152f648f26e0267c556aebdf3ec65765d8b4c.
This is repair reproducibility evidence, not an independent critique.
"""
import hashlib,json
from decimal import Decimal
from fractions import Fraction
from pathlib import Path
import numberdb.sage as numberdb
from sage.rings.rational_field import QQ
from sage.rings.real_mpfi import RealIntervalField
from generate import DirichletDeterminants, authenticate_from_stdin
from numberdb._generate import _stored_entries

authenticate_from_stdin()
gen=DirichletDeterminants()
doc=numberdb.table('T539')
entries=_stored_entries(doc)
enumeration=[int(p['N']) for p in gen.enumerate()]
assert enumeration==[int(n) for n in entries]==list(range(1,13))
results=[]
for identity,stored in entries.items():
    d=Decimal(str(stored)); f=Fraction(d)
    c=QQ(f.numerator)/f.denominator; unit=QQ(10)**d.as_tuple().exponent
    interval=RealIntervalField(900)(c-unit,c+unit)
    measurements={}
    for digits in [100,200]:
        ball=gen.value({'N':identity},digits)
        assert ball.is_finite()
        assert ball.accuracy()>=numberdb.bits(digits,losing=0)
        assert RealIntervalField(900)(ball) in interval
        assert not RealIntervalField(900)(ball+QQ(1)/10**90).overlaps(interval)
        measurements[str(digits)]={'relative_accuracy_bits':int(ball.accuracy()),'enclosed_in_stored_interval':True,'perturbation_rejected':True}
    results.append({'N':int(identity),'precision_checks':measurements})
verify=gen.verify(sample=None)
assert verify.ok
print(verify)
print('EVIDENCE_JSON='+json.dumps({'table':'T539','role':'repair_reproducibility_not_independent_critique','entries':len(entries),'enumeration':enumeration,'checks':results,'software':gen.environment(),'generator_sha256':hashlib.sha256(Path(__file__).with_name('generate.py').read_bytes()).hexdigest(),'skill_manifest':'agents/runs/20261027T055528Z-repair-skills/manifest.json','skill_sha256':'e37efb7e2ededf6c1d7134c673f152f648f26e0267c556aebdf3ec65765d8b4c'},sort_keys=True))