from research import *
s=begin(1196,'Intersect Rounded fibres with the early equal-remainder relation','Does Arphaxad/Shelah equal remaining life select their exact source decomposition?',{},['C1192','C1160'])
rows=json.loads((ROOT/'model/ordinary_joint_rounding_fibres.json').read_text())['rows'];out=[]
for t in ['MT','SP','LXX']:
 a=next(x for x in rows if x['tradition']==t and x['name']=='Arphaxad');b=next(x for x in rows if x['tradition']==t and x['name']=='Shelah')
 pairs=[[u,v] for u in a['candidates_b'] for v in b['candidates_b'] if a['L']-u==b['L']-v]
 out.append({'tradition':t,'separate_choices':a['count']*b['count'],'joint_choices':len(pairs),'allowed_begetting_pairs':pairs,'exact_source_pair':[a['b'],b['b']]})
art=artifact('model/early_pair_rounding_relation.json',json.dumps(out,indent=2)+'\n')
finish(s,{'intersections':art,'counts':[[x['tradition'],x['separate_choices'],x['joint_choices']] for x in out]},'The equal-remainder premise sharply reduces paired ambiguity but does not identify the exact early values. Its five-year begetting difference follows from the exact lifespan difference once the shared remainder is imposed.','Test the late block where Reu supplies a conditional singleton.',{'source_present':all(x['exact_source_pair'] in x['allowed_begetting_pairs'] for x in out),'not_unique':all(x['joint_choices']>1 for x in out),'reduced':all(x['joint_choices']<x['separate_choices'] for x in out)})
