import json,math mus=[(1.,0.),(-.5,math.sqrt(3)/2),(-.5,-math.sqrt(3)/2)] dot=lambda a,b:sum(x*y for x,y in zip(a,b)) def data(e):return [[(m[0]+dx,m[1]+dy)for dx,dy in [(e,0),(-e,0),(0,e),(0,-e)]]for m in mus] for e in [0.,.05,.1,.15,.25,.5]: groups=data(e) means=[tuple(sum(h[j]for h in g)/len(g)for j in [0,1])for g in groups] wt=sum(sum((h[j]-m[j])**2 for j in [0,1])for g,m in zip(groups,means)for h in g)/12 bt=sum(dot(m,m)for m in means)/3 assert abs(wt-e*e)<1e-12 and abs(bt-1)<1e-12 and abs(wt/bt-e*e)<1e-12 for i in range(3): for j in range(3):assert abs(dot(means[i],means[j])-(1 if i==j else -.5))<1e-12 t=(3.,-2.);shift=[(m[0]+t[0],m[1]+t[1])for m in means] center=tuple(sum(m[j]for m in shift)/3 for j in [0,1]) for m,s in zip(means,shift):assert max(abs(m[j]-(s[j]-center[j]))for j in [0,1])<1e-12 for h in [(0,0),(.1,.2),(2,3),(-2,.3),(1.,0.)]: scores=[dot(m,h)for m in mus] distances=[sum((h[j]-m[j])**2 for j in [0,1])for m in mus] # Compare complete score-distance identity, avoiding arbitrary tie rounding. for s,d in zip(scores,distances):assert abs(d-(dot(h,h)+1-2*s))<1e-12 def scatter_ratio(within_trace,between_trace): return None if between_trace<=0 else within_trace/between_trace assert scatter_ratio(0.,0.) is None assert scatter_ratio(.25,1.)==.25 probe_correct=mus[1];probe_wrong=mus[0] assert max(range(3),key=lambda c:dot(mus[c],probe_correct))!=max(range(3),key=lambda c:dot(mus[c],probe_wrong)) es=[0,.05,.1,.15,.25,.5];groups=data(.15) figures=[{"id":"simplex-features","kind":"constructed_scatter","caption":"Author-constructed three-class unit simplex, four symmetric offsets per class, epsilon=.15. Feature positions are mathematical inputs, not learned embeddings.","series":[{"name":"Class "+str(i+1),"x":[h[0]for h in g],"y":[h[1]for h in g]}for i,g in enumerate(groups)]},{"id":"scatter-ratio","kind":"analytical_curve","caption":"Exact author-constructed ratio tr(W)/tr(B)=epsilon², with centered simplex means fixed. Epsilon is not training time; no empirical benchmark.","x":{"name":"Within-class offset epsilon","values":es},"series":[{"name":"Declared scatter ratio","values":[e*e for e in es]}]}] print(json.dumps({"status":"PASS","checks":["Exact means, scatter and Gram matrix","Translation invariance of centered geometry","Nearest-center identity at probes","Degenerate denominator remains undefined","Different unseen extension preserves training geometry"],"empirical_benchmark":False,"source_proofs_verified":False,"figures":figures}))