from collections import defaultdict from fractions import Fraction def run(load,read,check): r=load('C286_DATA.json')['target_register'];ix=defaultdict(list) for i,z in enumerate(r):ix[z['center']].append(i) bases={'Noah birth':2841,'Shem birth':2341,'Flood start':2241,'Flood close':2240,'Noah death':1891,'Shem death':1741} needed=sorted({3620,2756,1895,2953,1745,2895,2148,3206,2020,3170,1956});records=[] for x in needed: rows=[] for i in ix[x]: z=r[i];terms={'role_base':bases[z['role']],'tradition_offset':650 if z['tradition']!='MT' else 0,'Cainan':130*z['Cainan'],'Terah':60*z['Terah60'],'full430':215*z['full430'],'Gear':2*(z['gear']-1),'companion':-int(z.get('rail')=='companion')} check('source_terms_'+str(i),sum(terms.values())==x);rows.append({'index':i,'record':z,'terms':terms}) records.append({'coordinate':x,'source_records':rows}) equations=[{'label':'first seed','terms':[350,650,60,-2],'value':1058},{'label':'second seed','terms':[600,650,-130,-60,-2],'value':1058},{'label':'both first outputs','terms':[500,650],'value':1150},{'label':'final output','terms':[600,650],'value':1250}] for e in equations:check(e['label'],sum(e['terms'])==e['value']) units=[] for e in load('PREVIOUS_DATA.json')['admitted_edges']: for x,y in zip(e['input_pair'],e['output_pair']): h=e['anchor'];u=Fraction(x-h,23);v=Fraction(y-h,25);check(f'unit_{h}_{x}',u==v and u.denominator==1);units.append({'pivot':h,'input':x,'output':y,'signed_unit':int(u)}) return {'step':'C458','source_resolution':records,'gap_equations':equations,'signed_23_to_25_units':units,'shared_pivots':[3620,2756],'counts':{'distinct_required_coordinates':len(needed),'source_records':sum(len(x['source_records']) for x in records),'expansion_endpoint_arrows':len(units)}}