from research import *
s=begin(765,'Accumulate the splitting defect as a field','What happens if rounded theoretical lifespans are accumulated instead of rounded whole lives?',{},['C750–753; diagnostic operator comparison only'])
p=json.loads((ROOT/'model/rounding_inputs.json').read_text());q=lambda n:5*((n+2)//5);out={}
for t in ['MT_native_OFF','LXX_native_ON']:
    rows=[x for x in p['native_rows'][t] if x['begetting'] is not None]
    k=[q(x['begetting'])+q(x['remainder'])-q(x['lifespan']) for x in rows]
    field=[sum(k[i:]) for i in range(len(k))]
    out[t]={'names':[x['name'] for x in rows],'K':k,'suffix_K':field}
a=artifact('model/splitting_defect_fields.json',json.dumps(out,indent=2)+'\n')
finish(s,{'fields':a,'head_defects':{t:x['suffix_K'][0] for t,x in out.items()},'scope':'operator diagnostic over local biographies; not a licensed replacement cumulative chronology'},'Parts-rounding and total-rounding differ over whole fields: MT head−10, LXX−15 on the common admitted biography domain. A constant endpoint correction cannot reproduce their internal jumps.','Derive how two rounding fields modify the regular–cumulative bridge.',{'MT':out['MT_native_OFF']['suffix_K'][0]==-10,'LXX':out['LXX_native_ON']['suffix_K'][0]==-15})
