back to table · edit · history · where entries came from · files · download
2468 bytes, as of the version from 2026-10-29 04:58 (current). Recorded here, not run.
"""Read-only numerical preservation check for T600's editorial repair.
Run: sage -python repair_check.py, with generate.py and document-before.json.
This is a recomputation using the unchanged attached generator plus a circle
control, not a new independent argument-selection critique.
Governing manifest: agents/runs/20261029T045338Z-repair-skills/manifest.json.
Local and live skill SHA-256:
28ecbeeccb0c5e5d6eb541b5a5b0f88aec47b154374d909085116d34f5629199.
"""
import json, platform
from pathlib import Path
from decimal import Decimal
import numberdb.sage as numberdb
from sage.rings.rational_field import QQ
from sage.rings.real_arb import RealBallField
from sage.env import SAGE_VERSION
from generate import ProjectiveDeterminants
base=Path(__file__).resolve().parent
D=json.loads((base/'document-before.json').read_text())
G=ProjectiveDeterminants()
R=RealBallField(numberdb.bits(200))
actual=[{'d':d,'convention':c} for d,values in D['Numbers'].items() for c in values]
assert list(G.enumerate())==actual
results=[]
for params in actual:
raw=D['Numbers'][params['d']][params['convention']]
raw=raw['number'] if isinstance(raw,dict) else raw
decimal=Decimal(raw)
num,den=decimal.as_integer_ratio()
center=QQ(num)/QQ(den)
ulp=QQ(10)**int(decimal.as_tuple().exponent)
value=G.value(params,100)['number']
assert value.is_finite()
assert R(value.rad())<R(10)**(-130)
assert value>R(center-ulp) and value<R(center+ulp)
if params['d']=='1':
control=R.pi()**2 if params['convention']=='det' else 2*R.pi().log()
assert control.is_finite() and R(control.rad())<R(10)**(-190)
assert control>R(center-ulp) and control<R(center+ulp)
assert value.overlaps(control)
results.append({'params':params,'ball':str(value),'radius':str(value.rad()),'inside_stored_interval':True})
print(json.dumps({'table':'T600','sage_version':SAGE_VERSION,'python_version':platform.python_version(),'skill_manifest':'agents/runs/20261029T045338Z-repair-skills/manifest.json','skill_sha256':{'local':'28ecbeeccb0c5e5d6eb541b5a5b0f88aec47b154374d909085116d34f5629199','live':'28ecbeeccb0c5e5d6eb541b5a5b0f88aec47b154374d909085116d34f5629199'},'checked':len(results),'enumeration_matches_in_order':True,'maximum_radius_less_than':'1e-130','circle_control_passed':True,'scope':'Unchanged generator recomputation and circle control only; not a fresh independent critique. No values edited.','results':results},indent=2))