"""Exact rational audit of the maximum-joint-core packing/swapped saturated-AP certificates. Combinatorial inputs are documented separately; no floating point is used here. """ from fractions import Fraction as F from pathlib import Path import json N=7;ZERO=F(0) def addv(*v):return[sum(t,ZERO)for t in zip(*v)] def scale(c,v):return[c*x for x in v] def sub(a,b):return addv(a,scale(-1,b)) def sy(a,b):return[[(a[i]*b[j]+a[j]*b[i])/2 for j in range(N)]for i in range(N)] def ms(*v):return[[sum(A[i][j]for A in v)for j in range(N)]for i in range(N)] def mm(c,A):return[[c*x for x in row]for row in A] x,y,z,w,bal,r,u=[[F(i==j)for j in range(N)]for i in range(N)] ell=addv(x,y,z,w);q=sub(scale(F(1,2),x),bal);d=addv(scale(F(1,2),x),bal);h=scale(2,bal);H=sub(d,r) base=[[F([F(1,4),1,F(1,2),1,1,0,0][i])if i==j else ZERO for j in range(N)]for i in range(N)] K=mm(F(1,2),ms(sy(q,q),mm(-1,sy(r,r)))) fR=ms(sy(r,addv(x,z,scale(-3,y))),mm(-3,sy(r,r))) fT=ms(sy(r,addv(scale(F(7,2),q),scale(-1,z),scale(2,y))),mm(F(-23,8),sy(r,r)),mm(F(-1,2),sy(q,q))) fA=sy(H,addv(scale(2,z),scale(-1,d),scale(2,q),scale(-4,r))) fQ=ms(mm(F(1,8),sy(q,q)),mm(-1,sy(q,z)),mm(2,sy(q,y))) def build(box): vl,vh,rl,rh,zl,zh,sl,sh,yl,yh=box assert 0<=sl0,(i,pivot) for j in range(i+1,N): for k in range(j,N):A[j][k]-=A[j][i]*A[k][i]/pivot;A[k][j]=A[j][k] def verify(data): G=F(data['gamma']);root=list(map(F,data['root'])) assert root==list(map(F,['3/10','5/4','7/8','1','21/16','3','0','1','187/1000','13/20'])) boxes=[];vol=ZERO for row in data['cases']: box=list(map(F,row['box']));a=list(map(F,row['parameters']));terms,B=build(box) assert len(a)==len(terms)and min(a[:-1])>=0 and a[-1]==1-2*G assert all(c+sum(x*y for x,y in zip(b,a))>=0 for c,b in B) pd(ms(base,*[mm(v,A)for v,A in zip(a,terms)])) assert all(root[2*i]<=box[2*i]