from research import *
s=begin(1044,'Numerical normalizations add size and placement','What do S161, the299 radius, and Covenant1866 contribute?',{},['C1043'])
from covenant_model import *
from algebra import Matrix
def norms(v):
 r=regular(v);return [r['Ishmael_birth']-r['Levi_birth'],v['Q']-r['Levi_death'],v['Q']]
rows=coefficient_matrix(claims,KEYS[:13]);extra=coefficient_matrix(norms,KEYS[:13]);ranks=[Matrix(rows+extra[:i]).rank() for i in range(4)];M=Matrix(rows+extra)
a=artifact('model/covenant_normalized_constraints.json',json.dumps(clean({'matrix':M.tolist(),'normalizations':[161,299,1866],'ranks':ranks,'kernel':[list(v) for v in M.nullspace()]}),indent=2)+'\n')
finish(s,{'normalized_basis':a,'successive_ranks':ranks},'The two magnitudes and one absolute placement add three constraints, leaving two formal directions in the selected local data. Prominent pattern totals still do not identify the complete biography.','Interpret the remaining directions without admitting them as chronology variants.',{'rank_sequence':ranks==[8,9,10,11],'two_remaining':13-M.rank()==2})
