from research import *
s=begin(1227,'Audit the wrapper contribution to equal gains','Does the equality follow from the two genealogical endpoints before their wrappers are applied?',{},['C1223–C1226'])
r0=4199-1446;c0=13396-1446;raw=3*c0-13*r0;wrapper=3*10-13*7;gain_diff=F(c0,299)-F(r0,69)
a=artifact('model/SP_rectangle_wrapper_residual.json',json.dumps(clean({'unwrapped_radii':[r0,c0],'unwrapped_balance_3C_minus13R':raw,'wrapper_balance':wrapper,'total_balance':raw+wrapper,'unwrapped_gain_difference':gain_diff,'equivalence':'C/299=R/69 iff3C-13R=0','interpretation':'The source-appointed wrappers remove the residual61; the cap/row mechanisms alone do not force equal gains.'}),indent=2)+'\n')
finish(s,{'wrapper_audit':a,'unwrapped_balance':raw,'wrapper_balance':wrapper},'Before the wrappers, the equal-gain balance is61 rather than zero. The distinct+7 and+10 source openings contribute−61 and complete the equality. The cap mechanism explains the life reduction but does not independently generate the chosen node roles.','Test whether the equal-gain claim is stable under a common relocation of its target anchor.',{'raw61':raw==61,'wrapper_minus61':wrapper==-61,'gain_difference':gain_diff==F(61,897)})
