from research import *
s=begin(607,'Derive role-specific generation carrier transport','Can the91/90 volume ratio describe coordinate transport when role offsets are retained?',{'u':[180,182],'ratio':F(91,90),'role_constants':[46,-64,156,46]},['File69 generation cell rule; C587,C588,C606'])
q=F(91,90);out=[]
for N in [77,63,50]:
 coeff=[N-7,N-7,N-8,N-8];constants=[46,-64,156,46];a=[k*180+c for k,c in zip(coeff,constants)];b=[k*182+c for k,c in zip(coeff,constants)];mapped=[q*(x-c)+c for x,c in zip(a,constants)];out.append({'N':N,'source':a,'target':b,'role_maps_match':mapped==b})
finish(s,{'role_maps':out,'map':'y=q(x−c_role)+c_role','width_pairs':[[4680,4732],[5040,5096]]},'The generation cells admit affine transport separately by role, with constants46,−64,156,46. Their envelope widths scale91/90, but the different role constants prevent one global affine map. Indexed carrier substitution compiles into a family of role-specific maps.','Test translation/dilation composition to distinguish moving a complete frame from moving dates alone.',{'role_maps':all(r['role_maps_match'] for r in out),'widths':4680*q==4732 and 5040*q==5096,'different_offsets':len(set([46,-64,156,46]))==3})
