readback_checks.py

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

2507 bytes, as of the version from 2026-10-30 06:50 (current). Recorded here, not run.

"""Check T613's stored decimals, exact anchors, order and independent evidence.

    sage -python readback_checks.py
Set NUMBERDB_API_KEY, or pipe a token to stdin with NUMBERDB_KEY_FROM_STDIN=1.
Read-only. Numerical evidence and independent-evidence.json must be adjacent.
"""
import numberdb.sage as numberdb
from sage.rings.real_mpfi import RealIntervalField
from sage.rings.rational_field import QQ
from fractions import Fraction
from decimal import Decimal
from pathlib import Path
import os,sys,json

if os.environ.get('NUMBERDB_KEY_FROM_STDIN')=='1':
    key=sys.stdin.read().strip()
    if '=' in key and key.split('=',1)[0].replace('_','').isalnum():key=key.split('=',1)[1].strip().strip('\"\'')
    os.environ['NUMBERDB_API_KEY']=key

def rational(f):return QQ(f.numerator)/QQ(f.denominator)
def bracket(s):
    d=Decimal(s);ulp=Fraction(10)**d.as_tuple().exponent
    return Fraction(d)-ulp,Fraction(d)+ulp

p=Path(__file__).parent
primary=json.loads((p/'numerical-evidence.json').read_text())['values']
independent=json.loads((p/'independent-evidence.json').read_text())
doc=numberdb.table('T613');numbers=doc['Numbers']
if isinstance(numbers,list):
    rows=[(str(row['params']['n']),str(row['number'])) for row in numbers]
else:
    rows=[(str(n),str(v['number'] if isinstance(v,dict) else v)) for n,v in numbers.items()]
assert [n for n,_ in rows]==['0','1/2','1','3/2','2','5/2','3','7/2','4','9/2']
F=RealIntervalField(800);output={}
for n,value in rows:
    lo,hi=bracket(value);v=Fraction(primary[n]['high'])
    assert lo<v<hi,(n,'primary value outside written interval')
    rel=abs(Fraction(value)-Fraction(independent[n]['value']))/Fraction(value)
    assert rel<Fraction(1,10**35),(n,'independent mismatch')
    report={'number':value,'significant_digits':len(Decimal(value).as_tuple().digits),'primary_inside_written_interval':True,'radial_relative_difference':str(float(rel))}
    assert report['significant_digits']==100
    if n in ['0','1']:
        anchor=F(6).sqrt() if n=='0' else F.pi()
        assert F(rational(lo)).upper()<anchor.lower()<anchor.upper()<F(rational(hi)).lower()
        report['exact_anchor_contained']=True
        # Deliberately shift the written interval: this test must reject it.
        shift=Fraction(1,10**90)
        assert not (lo+shift<v<hi+shift)
        report['displaced_interval_rejected']=True
    output[n]=report
print(json.dumps({'table':'T613','rows':output,'skill_manifest':'../20261030T005732Z-build-skills/manifest.json'},indent=2))