from collections import defaultdict from math import prod def run(load,read,check): r=load('C286_DATA.json')['target_register'];old=defaultdict(list);new=defaultdict(list) for i,z in enumerate(r): old[z['center']].append(i) if not(z['tradition']=='LXX' and z['Cainan']==0):new[z['center']].append(i) check('coordinate equality',set(old)==set(new)) arrows=load('C451_DATA.json')['arrows'];check('all operator anchors and endpoints survive',all(all(a[k] in new for k in ['input','output','anchor']) for a in arrows)) pairs=load('C454_DATA.json')['K_pairs'];oldlabels=sum(len(old[p['lower']])*len(old[p['upper']]) for p in pairs);newlabels=sum(len(new[p['lower']])*len(new[p['upper']]) for p in pairs) witnesses={'first_interval_ladder':[3620,1895,2953,1745,2895],'complete_two_E_ladder':[3620,2756,2148,3206,2020,3170,1956],'ordinary_reflection_cycle':[2610,3766,2730,3770],'mixed_E_cycle':[2731,3765,2735,2733]};counts=[] for k,xs in witnesses.items():counts.append({'witness':k,'coordinates':xs,'old_distinct_coordinate_record_assignments':prod(len(old[x]) for x in xs),'retained_assignments':prod(len(new[x]) for x in xs),'retained_record_indices':{str(x):new[x] for x in xs}}) return {'step':'C465','control':'Remove LXX Cainan0 labels only; do not alter the controlling register.','witness_assignments':counts,'removed_labels':[i for i,z in enumerate(r) if z['tradition']=='LXX' and z['Cainan']==0],'counts':{'retained_labels':sum(map(len,new.values())),'retained_coordinates':len(new),'removed_coordinates':len(set(old)-set(new)),'retained_operator_arrows':len(arrows),'K_coordinate_pairs':len(pairs),'old_K_label_pairs':oldlabels,'retained_K_label_pairs':newlabels},'interpretation':'Assignments count one source record per distinct coordinate, with repeated occurrences bound to that same record. They are not independent historical witnesses.'}