from research import *
s=begin(767,'Recover rounded bridge changes locally','Do changes in adjacent bridge gaps equal row rounding differences?',{},['C766; File51a strict comparison'])
p=json.loads((ROOT/'model/rounding_inputs.json').read_text());b=json.loads((ROOT/'model/MT_rounding_bridge.json').read_text());q=lambda n:5*((n+2)//5)
row={x['name']:x for x in p['native_rows']['MT_native_OFF']};out=[]
for i in range(len(b)-1):
x=row[b[i]['name']];got=b[i]['delta_G']-b[i+1]['delta_G'];expected=(q(x['lifespan'])-x['lifespan'])-(q(x['begetting'])-x['begetting'])
out.append({'name':x['name'],'field_difference':got,'row_prediction':expected})
finish(s,{'local_changes':out,'scope':'21 consecutive strict regular edges Adam→Jacob; Jacob/Joseph collateral is not continued to Levi'},'The rounded bridge itself is generated locally by e(L)−e(b). This joins source rows, mode choice, and rounding in one recurrence.','Test direct rounding of date labels against the source-derived field.',{'all_edges':all(x['field_difference']==x['row_prediction'] for x in out),'count':len(out)==21})
Evidence
s767.py
Linked sources and evidence
Edition and provenance
s767.py
SHA-256 24f887bc7eabb07b3b6d4149a527fc1620fe58b186572faea1b4ec1920ce40cb
C480–C1634/Research_Cycles/C0732_C0831/evidence/s767.py