from research import *
s=begin(1135,'Track the remaining freedoms through source positions','Which birth coordinates can change while the newly constrained age relations remain true?',{},['C1134','C954','C972'])
from algebra import Matrix
d=json.loads((ROOT/'model/SP_age_parametrization.json').read_text());D=Matrix(d['directions']).T
U=Matrix([[int(j>=i) for j in range(9)] for i in range(9)])
B=U*D;support=[i for i,row in enumerate(B.tolist()) if any(row)]
a=artifact('model/SP_unresolved_birth_directions.json',json.dumps({'variables':['m','s','k'],'birth_directions':clean(B.tolist()),'changing_rows':support,'fixed_rows':[i for i in range(9) if i not in support],'scope':'fixed Noah3493 and cap-support region'},indent=2)+'\n')
finish(s,{'birth_directions':a,'changing_row_indices':support},'The unresolved source freedom changes internal births while retaining Adam and Jared positions, Methuselah and Lamech positions, and the named active cap capacities. The460 source total fixes a whole segment but not its interior.','Determine whether ordinary positivity and the active cap support reduce the remaining65-scale freedom.',{'Adam_fixed':B[0,0]==B[0,1]==B[0,2]==0,'Jared_fixed':all(B[5,j]==0 for j in range(3)),'late_caps_fixed':all(B[i,j]==0 for i in [7,8] for j in range(3))})
