from research import *
s=begin(896,'Connect the complete carrier change to the typed115 hinge','What does the source115|115 symmetry explain and what remains a premise?',{},['File63 §§7.7–7.9'])
p=json.loads((ROOT/'model/covenant_inputs.json').read_text())['named_inputs'];h=p['double_115_hinge']
g=[a-b for a,b in zip(h,h[1:])]
total=p['carrier_order'][-1]-p['carrier_order'][0]
roles=['regular Abraham birth','proposed Isaac offering at age15','cumulative Jacob death / Levi birth upper whole-year']
art=artifact('model/carrier_115_hinge.json',json.dumps({'nodes':h,'roles':roles,'gaps':g,'carrier_change':total,'claim':'source-appointed mixed-mode symmetry; offering age remains proposed'},indent=2)+'\n')
finish(s,{'hinge':h,'gaps':g,'carrier_total_change':total,'artifact':art},'The source2166→2051→1936 hinge supplies two115 intervals, and the full carrier path increases by115. This connects the objects structurally while retaining the proposed offering date and the regular/cumulative change of role.','Reconstruct the complete144900 terminal Key branch and its gain vector.',{'equal_gaps':g==[115,115],'carrier_change':total==115,'no_role_erasure':len(set(roles))==3})
