from fractions import Fraction as Q from collections import Counter def rat(x):return {'numerator':x.numerator,'denominator':x.denominator} def run(load,check): reg=load('C286_DATA.json')['target_register'];by={} for i,r in enumerate(reg):by.setdefault(r['center'],[]).append(i) templates=load('C426_DATA.json')['context_templates'];ops={'E':Q(25,23),'E2':Q(625,529),'P':Q(70,69),'J':Q(300,299)};rows=[];counts=Counter();ladders=[] for p in load('C414_DATA.json')['source_pairs']: h,x=p['upper'],p['lower'];mid=Q(h)-Q(25,23)*(h-x);ts=[t['template'] for t in templates if [h,x] in t['coordinate_pairs']] for name,m in ops.items(): y=Q(h)-m*(h-x);ids=by.get(y,[]);row={'held_upper':h,'input_lower':x,'templates':ts,'operator':name,'multiplier':rat(m),'output':rat(y),'source_record_indices':ids,'source_records':[reg[i] for i in ids],'upper_source_record_indices':p['levels'][0]['upper_record_indices'],'input_source_record_indices':p['levels'][0]['lower_record_indices']};rows.append(row);counts[name]+=bool(ids) check('2K gap scaling '+str((h,name)),Q(h)-y==1058*m) if name=='E2':row.update({'E_intermediate':rat(mid),'intermediate_source_record_indices':by.get(mid,[]),'two_sourced_E_steps':bool(ids and by.get(mid,[]))});check('E2 composition '+str(h),y==Q(h)-Q(25,23)*(h-mid)) if row.get('two_sourced_E_steps'):ladders.append(row) return {'step':'C429','operator_trials':rows,'sourced_output_trials':[x for x in rows if x['source_record_indices']],'complete_fixed_pivot_E2_ladders':ladders,'counts':{'source_2K_coordinate_pairs':26,'operator_trials':len(rows),'sourced_E_outputs':counts['E'],'sourced_E2_outputs':counts['E2'],'sourced_P_outputs':counts['P'],'sourced_J_outputs':counts['J'],'complete_two_E_ladders':len(ladders),'E2_endpoint_only_cases':counts['E2']-len(ladders)},'interpretation':'Fixed-upper scalar gap diagnostics cover all existing2K pairs; pivot source roles are retained rather than granting every record a prescribed operator status. P/J are nonintegral at this gap. Existing complete Noah ladders remain prior results. An E2 endpoint with an absent intermediate is not a sourced path.'}