from research import *
s=begin(775,'Generate all admitted common-row birth configurations','Do the same support masks produce the three complete comparison families?',{},['C738 native Cainan/common430 field; C772–774'])
from itertools import product
f=json.loads((ROOT/'model/native_mode_fields.json').read_text());out={}
for t,rows in f.items():
    common=[x for x in rows if x['name']!='Cainan2'];names=[x['name'] for x in common];hc=names.index('Arphaxad');tc=names.index('Terah')
    out[t]={}
    for so,te,ca in product([0,1],repeat=3):
        d={}
        for i,x in enumerate(common):
            d[x['name']]=x['R']-215+215*so+60*te*(i<=tc)+130*(ca-(t=='LXX'))*(i<=hc)
        if ca:d['Cainan2']=d['Shelah']+130
        out[t][f'{so}{te}{ca}']=d
a=artifact('model/finite_birth_configurations.json',json.dumps(out,indent=2)+'\n')
counts={t:{n:len({d[n] for d in states.values()}) for n in ['Adam','Shelah','Abraham']} for t,states in out.items()}
finish(s,{'configurations':a,'placement_counts':counts,'SP_minimum_full_heads':[out['SP']['000']['Adam'],out['SP']['100']['Adam']]},'Each tradition has eight admitted state labels, restricting to eight upstream, four middle, and two Abraham placements. Native SP215 and equalized full430 remain distinct selections.','Test reversible finite switching and its direction-dependent increments.',{'counts':all(list(x.values())==[8,4,2] for x in counts.values()),'SP_heads':[out['SP']['000']['Adam'],out['SP']['100']['Adam']]==[4199,4414]})
