import json,itertools,math ps=[.1,.25,.5,.75,.9,.95] for p in ps: total=errc=errs=0.;mass=[0.,0.];gerrc=[0.,0.];gerrs=[0.,0.] for y,cnoise,snoise in itertools.product([-1,1],repeat=3): pr=.5*(.8 if cnoise==1 else .2)*(p if snoise==1 else 1-p) c=y*cnoise;s=y*snoise;g=int(s!=y) total+=pr;errc+=pr*(c!=y);errs+=pr*(s!=y);mass[g]+=pr;gerrc[g]+=pr*(c!=y);gerrs[g]+=pr*(s!=y) assert abs(total-1)<1e-12 and abs(errc-.2)<1e-12 and abs(errs-(1-p))<1e-12 assert all(abs(gerrc[g]/mass[g]-.2)<1e-12 for g in [0,1]) assert abs(gerrs[0])<1e-12 and abs(gerrs[1]/mass[1]-1)<1e-12 etas=[0,.01,.05,.1,.2,.3,.5];observed=[];q=.05 for eta in etas: masses=[0.,0.];errors=[0.,0.] for g,flip in itertools.product([0,1],repeat=2): pr=(q if g else 1-q)*(eta if flip else 1-eta);z=g^flip masses[z]+=pr;errors[z]+=pr*g rates=[errors[z]/masses[z]for z in [0,1]] expected=q*(1-eta)/(q*(1-eta)+(1-q)*eta) assert abs(rates[1]-expected)<1e-12 observed.append(max(rates)) assert abs(observed[3]-.045/.14)<1e-12 # Negative control explicitly enumerates the content rule after reliability changes to .7. changed_error=0. for y,cnoise in itertools.product([-1,1],repeat=2): pr=.5*(.7 if cnoise==1 else .3);changed_error+=pr*(y*cnoise!=y) assert abs(changed_error-.3)<1e-12 and abs(changed_error-.2)>.09 figures=[{"id":"correlation-risks","kind":"analytical_curve","caption":"Exact author-constructed binary-rule errors, Pr(C=Y)=.8 and varying Pr(S=Y)=p. No neural network is trained.","x":{"name":"Correlate agreement p","values":ps},"series":[{"name":"Content-rule error","values":[.2]*len(ps)},{"name":"Correlate-rule error","values":[1-p for p in ps]}]},{"id":"metadata-dilution","kind":"analytical_curve","caption":"Author-constructed true rare-group prevalence .05, true group errors zero/one, independent symmetric metadata flips. Exact expectations, not finite-sample estimates.","x":{"name":"Metadata flip probability eta","values":etas},"series":[{"name":"Observed worst-group error","values":observed},{"name":"True worst-group error","values":[1.]*len(etas)}]}] print(json.dumps({"status":"PASS","checks":["Enumerated binary probabilities sum to one","Exact average and group errors","Enumerated metadata Bayes dilution","Changed-stability-assumption negative control"],"empirical_benchmark":False,"source_proofs_verified":False,"figures":figures}))