from itertools import product from collections import defaultdict,Counter def run(load,check): reg=load('C286_DATA.json')['target_register'];base={'Noah birth':2841,'Shem birth':2341,'Flood start':2241,'Flood close':2240,'Noah death':1891,'Shem death':1741};rows=[];groups={};bycoord=defaultdict(set) def theta(r):return 650*int(r['tradition']!='MT')+130*r['Cainan']+60*r['Terah60']+215*r['full430']+2*(r['gear']-1) def epsilon(r):return int(r.get('rail')=='companion') for i,r in enumerate(reg):check('normal source coordinate '+str(i),base[r['role']]+theta(r)-epsilon(r)==r['center']) for p in load('C414_DATA.json')['source_pairs']: lev=p['levels'][0] for i,j in product(lev['upper_record_indices'],lev['lower_record_indices']): a,z=reg[i],reg[j];terms=(650*(int(a['tradition']!='MT')-int(z['tradition']!='MT')),130*(a['Cainan']-z['Cainan']),60*(a['Terah60']-z['Terah60']),215*(a['full430']-z['full430']),2*(a['gear']-z['gear']));role=base[a['role']]-base[z['role']];rail=epsilon(z)-epsilon(a);ctx=sum(terms);check('2K decomposition '+str((i,j)),role+ctx+rail==1058) rows.append({'upper_record_index':i,'lower_record_index':j,'upper':a,'lower':z,'role_difference':role,'context_terms':list(terms),'context_offset':ctx,'person_rail_correction':rail,'total':1058});key=terms if key not in groups:groups[key]={'context_terms':list(terms),'context_offset':ctx,'labelled_pairs':[],'role_equations':Counter(),'coordinate_pairs':set()} g=groups[key];g['labelled_pairs'].append([i,j]);g['role_equations'][a['role'],z['role'],role,rail]+=1;g['coordinate_pairs'].add((a['center'],z['center']));bycoord[a['center'],z['center']].add(key) templates=[] for num,(k,g) in enumerate(sorted(groups.items(),key=lambda x:sum(x[0]))): g['template']='T'+str(num+1);g['role_equations']=[{'upper_role':a,'lower_role':z,'role_difference':d,'rail_correction':r,'labelled_pairs':v} for (a,z,d,r),v in sorted(g['role_equations'].items())];g['coordinate_pairs']=sorted([list(x) for x in g['coordinate_pairs']]);templates.append(g) overlaps=[{'coordinate_pair':list(c),'context_term_sets':[list(k) for k in sorted(ks)],'labelled_rows':[r for r in rows if [r['upper']['center'],r['lower']['center']]==list(c)]} for c,ks in sorted(bycoord.items()) if len(ks)>1] check('C414 coverage',len(rows)==46 and len(bycoord)==26) return {'step':'C426','role_baselines':base,'coordinate_normal_form':'x = b_role +650*[tradition is SP or LXX]+130*C+60*T+215*F+2*(Gear−1)−epsilon_SP_person_companion','labelled_pairs':rows,'context_templates':templates,'coordinate_template_overlaps':overlaps,'counts':{'reconstructed_regular_records':len(reg),'labelled_2K_pairs':len(rows),'coordinate_2K_pairs':len(bycoord),'context_templates':len(templates),'sum_of_template_coordinate_counts':sum(len(g['coordinate_pairs']) for g in templates),'coordinate_pairs_in_multiple_templates':len(overlaps)},'interpretation':'CainanOFF-normalized SP/LXX coordinates share a baseline but not a source identity. The normal form is a finite arithmetic description of the frozen register. Role differences and companion corrections are separate from context offsets. This classifies observed source pairs; no global date operator or independent historical calibration is implied.'}