from fractions import Fraction from math import gcd def run(load,read,check): prev=load('PREVIOUS_DATA.json');X=sorted({z['center'] for z in load('C286_DATA.json')['target_register']});S=set(X);groups=[];cases=[] check('coprime_625_529',gcd(625,529)==1);check('coprime_529_96',gcd(529,96)==1) for w in prev['word_profiles']: if not w['effective_pivot_sourced']:continue a,b=w['first_pivot'],w['second_pivot'];H=int(Fraction(w['effective_pivot']));counts={'integer_output':0,'sourced_output':0,'complete':0,'nonzero_integer_output':0,'nonzero_sourced_output':0,'nonzero_complete':0} for x in X: m=Fraction(25*x-2*a,23);y=(25*m-2*b)/23;integer=y.denominator==1 check(f'integral_iff_{a}_{b}_{x}',integer==((H-x)%529==0)) if integer: sourced=int(y) in S;complete=sourced and m.denominator==1 and int(m) in S counts['integer_output']+=1;counts['sourced_output']+=sourced;counts['complete']+=complete if x!=H:counts['nonzero_integer_output']+=1;counts['nonzero_sourced_output']+=sourced;counts['nonzero_complete']+=complete cases.append({'first_pivot':a,'second_pivot':b,'H':H,'input':x,'middle':str(m),'output':int(y),'sourced_output':sourced,'complete':complete,'K_input_multiple':(H-x)//529}) groups.append({**w,**counts}) displacements=[] for p in prev['complete_paths']: x,m,y=p['coordinates'];d=x-y;H=Fraction(p['effective_pivot']) check('displacement_'+str(p['first_pivot'])+'_'+str(p['second_pivot'])+'_'+str(x),H-x==Fraction(529*d,96) and (H.denominator==1)==(d%96==0)) displacements.append({'path':p['coordinates'],'displacement':d,'effective_gap':str(H-x),'gap_forced_by_displacement':str(Fraction(529*d,96))}) return {'step':'C456','theorem':'For integer x,H, E_H^2(x) is integer iff529 divides H-x. For a complete integer-endpoint two-E path, H-x=529(x-y)/96; H is integral iff96 divides x-y.','word_gate_counts':groups,'integer_output_cases':cases,'displacement_checks':displacements,'totals':{k:sum(g[k] for g in groups) for k in ['integer_output','sourced_output','complete','nonzero_integer_output','nonzero_sourced_output','nonzero_complete']}}