from research import *
s=begin(755,'Invert and classify the MT residual field','Which entire interval families survive rounding exactly?',{},['C754'])
f=json.loads((ROOT/'model/MT_rounding_field.json').read_text()); d=f['D']+[0];names=f['names']+['terminal1406']
recovered=[d[i]-d[i+1] for i in range(len(d)-1)]
classes={str(v):[names[i] for i,x in enumerate(d) if x==v] for v in sorted(set(d))}
finish(s,{'recovered_e':recovered,'equal_residual_classes':classes,'interval_rule':'rounded(i,j)-actual(i,j)=D_i-D_j'},'Every pair within one residual class preserves its interval. These are consequences of one field, not independent numerical hits. Adjacent differences recover every row residual.','Transfer the full residual operator to LXX and isolate changed row support.',{'inverse':recovered==f['e'],'interval_identity':all((f['rounded'][i]-f['rounded'][j])-(f['actual'][i]-f['actual'][j])==d[i]-d[j] for i in range(26) for j in range(i+1,26))})
