Evidence

s1350.py

Download source fileOpen in research workspace
from research import *
s=begin(1350,'Verify SP tables and capture the placement clarification','Are the cap outputs and rectangle numbers correct?',{},['draft/04a_SP_cap.md','draft/04b_SP_rectangle.md','model/SP_rectangle_source_to_keys.json'])
t=(ROOT/'draft/04a_SP_cap.md').read_text(); rows=[]
for line in t.splitlines():
 cells=[x.strip() for x in line.split('|')[1:-1]]
 if len(cells)==5 and all(x.isdigit() for x in cells[1:]):
  name=cells[0];L,c,out,loss=map(int,cells[1:]);rows.append({'name':name,'values':[L,c,out,loss],'valid':out==min(L,c) and loss==L-out})
d=json.loads((ROOT/'model/SP_rectangle_source_to_keys.json').read_text())
r={'cap_rows':rows,'rectangle':d,'required_clarification':'Hold source openings 4206 and13406 during the expansions; the lower comparison endpoint moves1446→1406. The initial1446 reference is not the held expansion pivot.'}
a=artifact('model/main_SP_table_check.json',json.dumps(r,indent=2)+'\n')
finish(s,{'check':a},'All nine cap rows and both Key gains are correct. Independent review identified a wording issue: the rectangle must explicitly name its held source openings before discussing the moving lower endpoint.','Verify the printed Moses blocks and residuals.',{'nine':len(rows)==9,'caps':all(x['valid'] for x in rows),'losses':sum(x['values'][3] for x in rows)==488,'keys':F(d['inputs'][0])*P==d['outputs'][0] and F(d['inputs'][1])*J==d['outputs'][1]})
Edition and provenance

s1350.py

SHA-256 ffb9886de40a58d7a92cfe131b114a7ee8366c84c87cffb8401aa12dab602afa

C480–C1634/Research_Cycles/C1132_C1431_Recovered/evidence/s1350.py