from research import *
s=begin(893,'Recover the complete macrohead response field','Why do60,770,−3 and−30 arise from one twelvefold rule?',{},['C892 six typed pairs'])
rows=json.loads((ROOT/'model/six_macro_heads.json').read_text())
out=[]
for i,j in [(0,1),(1,2),(2,3),(4,5)]:
 a,b=rows[i],rows[j];dc=b['C']-a['C'];dr=b['R']-a['R'];dm=b['M']-a['M']
 out.append({'from':a['id'],'to':b['id'],'delta_C':dc,'delta_R':dr,'delta_body':12*(dc-dr),'delta_M':dm,'predicted':12*dc-11*dr})
art=artifact('model/macrohead_response_field.json',json.dumps(out,indent=2)+'\n')
finish(s,{'response':out,'artifact':art},'The whole response is ΔM=12ΔC−11ΔR. Moving only the target by−70 adds840 to the body but moves the target by−70, giving770. Matched endpoint shifts of−3 or−30 pass through unchanged.','Determine exactly what information is lost when only the expanded body is kept.',{'complete_response':[r['delta_M'] for r in out]==[60,770,-3,-30],'all_predicted':all(r['delta_M']==r['predicted'] for r in out),'body840':out[1]['delta_body']==840})
