from collections import defaultdict,deque 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): if z.get('rail')!='companion':ix[z['center']].append(i) S=set(ix);allS={z['center'] for z in r};old=load('C451_DATA.json')['arrows'];endpoint=[a for a in old if a['input'] in S and a['output'] in S];valid=[a for a in endpoint if a['anchor'] in S] seeds=[(p['lower'],p['upper']) for p in load('C454_DATA.json')['K_pairs'] if p['lower'] in S and p['upper'] in S];ops=[('R',c) for c in [3188,3190,3248,3250] if c in S]+[('E',h) for h in load('C450_DATA.json')['pivots'] if h in S];seen=set(seeds);q=deque(seeds);pair_edges=[] while q: p=q.popleft() for op,h in ops: yy=[Fraction(2*h-x) if op=='R' else Fraction(25*x-2*h,23) for x in p] if all(y.denominator==1 and int(y) in S for y in yy): y=tuple(sorted(map(int,yy)));pair_edges.append({'input_pair':list(p),'output_pair':list(y),'operator':op,'anchor':h}) if y not in seen:seen.add(y);q.append(y) 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,3188,3248,3250,3190],'mixed_cycle':[2731,3765,2735,2733,3248,3250,2758,2756],'inherited_primary_corners_regular':[2648,3706,2650,3708]} rows=[{'witness':k,'required_coordinates':v,'missing_coordinates':[x for x in v if x not in S],'survives':all(x in S for x in v)} for k,v in witnesses.items()] check('main endpoints survive',all(x in S for x in [2148,3206,2020,3170,1956,2756]));check('main pivot removed',3620 not in S) return {'step':'C464','control':'Temporarily discard SP companion labels; all original results remain unchanged.','removed_coordinate_list':sorted(allS-S),'witness_tests':rows,'surviving_pair_edges':pair_edges,'counts':{'retained_source_records':sum(map(len,ix.values())),'retained_coordinates':len(S),'removed_coordinates':len(allS-S),'endpoint_only_operator_arrows':len(endpoint),'anchor_qualified_operator_arrows':len(valid),'surviving_K_seed_pairs':len(seeds),'reached_pairs':len(seen),'shared_word_pair_edges':len(pair_edges)},'retained_pivots':[h for h in load('C450_DATA.json')['pivots'] if h in S]}