from research import *
s=begin(1200,'Separate carry information from exact residual information','Can knowing the carry replace knowing the exact lifespan in joint recovery?',{},['C1199'])
bins={str(c):[z for z in range(-4,5) if 5*((z+2)//5)==c] for c in [-5,0,5]}
pairs={c:sum(5-abs(z) for z in zs) for c,zs in bins.items()}
a=artifact('model/rounding_carry_information.json',json.dumps({'residual_sum_bins':bins,'residual_pair_counts':pairs,'fixed_B_R_scope':'Without exactL, only carry or Q(L) is retained; all25 residual pairs are available in interior cells.'},indent=2)+'\n')
finish(s,{'carry_information':a,'pair_counts':pairs},'A carry stores only a branch: its three classes contain3,19 and3 residual pairs. Even an extreme carry leaves three possible exact decompositions when exact life is absent.','Combine this result with the cap, which removes excess lifespan rather than a small rounding residual.',{'partition25':sum(pairs.values())==25,'counts':[pairs[str(c)] for c in [-5,0,5]]==[3,19,3]})
