from research import *
s=begin(1253,'Separate the two source mechanisms behind the fivefold kernel','What objects do the repeatedcentury and Terah/Cainan/Sojourn parameters measure?',{},['Strategy §4.1','prep/regular_kernel_source_cost.json'])
d=json.loads((ROOT/'prep/regular_kernel_source_cost.json').read_text());a=artifact('model/regular_kernel_two_mechanisms.json',json.dumps({'row_mechanism':{'parameter':'u100','object':'namedMT/LXX begettingdifferences','premises':['twelvecentury supports','Nahorhalfsupport','sourceorder','Cainanmatchedscope']},'variant_mechanism':{'parameters':['T60','C130','S215'],'object':'finite permitted placementchoices withnestedsource supports','source_roles':d['source_primitive_roles'],'premises':d['support_qualifications']},'connection_question':'Under whatconditions do12.5u and6.5u equal5(C+2T) and5C?','scope':'No claim thatone mechanismsourcegenerates theother.'},indent=2)+'\n')
finish(s,{'two_mechanisms':a},'The repeatedcentury changes measure differences between source rows; Terah,Cainan andSojourn measure admitted placementchoices. The Strategy’s compactformula relates these distinct mechanisms and must retain both source burdens.','Reconstruct the entire matchedrow displacementstaircase as the first mechanism’s output.',{'four_primitives':len(d['source_primitive_roles'])==4,'two_objects':bool(d['support_qualifications'])})
