from research import *
s=begin(696,'Reconstruct the fixed directional Key matrix','Do all four source-declared anchored rows converge as stated?',{'rows':[[3626,2936,'E'],[3576,2886,'P'],[2216,2906,'P'],[2166,2856,'E']],'scope':'fixed admitted comparison; no new SKL state'},['Supplement A §§8.1–8.6'])
rows=[(3626,2936,E),(3576,2886,P),(2216,2906,P),(2166,2856,E)]; results=[a+k*(x-a) for a,x,k in rows]; swapped=[a+(P if k==E else E)*(x-a) for a,x,k in rows]
finish(s,{'declared_outputs':results,'swapped_key_diagnostic':swapped,'input_magnitudes':[abs(x-a) for a,x,k in rows]},'All four admitted rows use magnitude690. The declared forward assignments meet at2876 and reverse assignments at2916; swapping Keys breaks each pairing. Direction and held anchor are essential parts of this bounded family, whose existing SKL comparison status is retained.','Explain the50 offset algebraically instead of treating the convergences as separate matches.',{'magnitudes':[abs(x-a) for a,x,k in rows]==[690]*4,'outputs':results==[2876,2876,2916,2916],'swaps_fail':swapped[0]!=swapped[1] and swapped[2]!=swapped[3]})
