"""Independent Arb quantitative checker for GEOMETRIC_LEMMA.md. No discovery or other checking code is imported. Every decision is exact rational or a certified Arb comparison; all infinitely many moments covered. """ from fractions import Fraction as F from pathlib import Path import argparse,json,hashlib,time from flint import arb,ctx if not __debug__:raise SystemExit('Refusing -O/-OO: assertions are part of the proof') def main(): ap=argparse.ArgumentParser();ap.add_argument('certificate');ap.add_argument('--out');a=ap.parse_args();start=time.monotonic();p=Path(a.certificate);d=json.loads(p.read_text());ctx.dps=75 assert d['analytic_model']=='two_covering_zeros_hyperbolic_jung' c0,R0,l0=map(F,[d['c'],d['R'],d['linear_slope']]);ts=list(map(F,d['nodes']));ws=list(map(F,d['weights'])) assert 00;assert len(ts)==len(ws)>=2 and ts[0]==c0*c0 and ts[-1]==R0 and all(x0 for v in ws) and sum(ws)==R0 def ar(x):return arb(str(x)) c,R,l=map(ar,[c0,R0,l0]);w=-c.log();pi=arb.pi();X=(pi*pi/(2*w)).sinh()**2;U=-pi*R.log()/(2*w);assert U>0 and U*U<6 aa=(pi/(2*w))**2*(1-U*U/6)**2/X;delta=1-R;z=aa*delta*delta slope=2*(6*aa).sqrt()/((3*z*(2+z)).sqrt()+(4+6*z+3*z*z).sqrt());assert slope>l,('linear envelope',slope,l) T=list(map(ar,ts));W=list(map(ar,ws));beta=[arb(1)] for t in T[1:]: y=(pi*t.log()/(2*w)).sin()**2/X;H=3*y*(2+y);g=2*H.sqrt()/(H.sqrt()+(H+4).sqrt());assert g>0 and g<1;beta.append((1-g).upper()) K1=max(1,int(R0//ws[-1]));assert ws[-1]*(K1+1)>=R0;K2=int(d['second_tail_k']);assert K2>=1 t0,t1=map(F,[d['second_tail_t0'],d['second_tail_t1']]);assert R0neg,('second infinite tail',tail-neg) powers=[arb(1)]*len(T);rp=R;minA=None;minB=None;ia=ib=0 for k in range(1,max(K1,K2)): powers=[x*t for x,t in zip(powers,T)];rp*=R if k0,('first moment',k,gap);rel=(gap/rp).lower() if minA is None or rel0,('second moment',k,gap);rel=(gap/rp).lower() if minB is None or rel