# This file contains some procedures to check the calculations of the paper # "Estimates of li(theta(x))-pi(x) and the Riemann hypothesis" Digits:=20; lambda:=evalf(gamma)+2-log(4*evalf(Pi)); L:=proc(N,tt) local t,k,L; t:=evalf(tt); Li(t)-sum((k-1)!*t/log(t)^k,k=1..N); end; theta:=proc(x) local p,pf,logp,S; # Chebichev function S:=0.; p:=2; pf:=evalf(p); logp:=log(pf); while p <= x do S:=S+logp; p:=nextprime(p); pf:=evalf(p); logp:=log(pf); od; S; end: B:=proc(yy) local y; # calculation of B(y)=pi(y)-theta(y)/log(y), cf. § 3.2 y:=evalf(yy); numtheory[pi](floor(y))-theta(y)/log(y); end; ####################################################### # VALUES OF A(p) ######################################################## A:=proc(x) Li(theta(x))-numtheory[pi](x) end; # calculates A(x) valA:=proc(pimax) local p,i; # print the values of A(p) for the first pimax primes # and for p= 401,409, 3643,33647. print(); print("VALUES of A(p)"); print(); for i from 1 to pimax do p[i]:= ithprime(i); od; for i from 1 by 2 to pimax do print("p=",p[i],evalf(A(p[i]),12)," p=",p[i+1],evalf(A(p[i+1]),12)); od; print(); print("p=",401,evalf(A(401),12), " p=",409,evalf(A(409),12)); print("p=",3643,evalf(A(3643),12), " p=",33647,evalf(A(33647),12)); end; ####################################################### # LEMMA 3.3 ######################################################## lem33:=proc() local y0,y1,y2,y1f,y2f,pif; y0:=8.3; y1:=599; y2:=2903; y1f:=evalf(y1); y2f:=evalf(y2);pif:=evalf(Pi); print("NUMERICAL VALUES in LEMMA 3.3"); print(); print("y0=",y0, "B(y0)-L_1(y0)=", evalf(B(y0)-L(1,y0),12)); print("y1=",y1, "B(y1)-L_1(y1)-sqrt(y1)/(4*pi)=", evalf(B(y1f)-L(1,y1f)-sqrt(y1f)/4/pif,12)); print("y2=",y2, "B(y2)-L_1(y2)+sqrt(y2)/(4*pi)=", evalf(B(y2f)-L(1,y2f)+sqrt(y2f)/4/pif,12)); print(); end; ########################################################### # COROLLARY 3.1 ############################################################ coro31:=proc() local x0,U,pif; print("NUMERICAL VALUE in COROLLARY 3.1"); print(); x0:=10.^8; pif:=evalf(Pi); U:=7.993-log(x0)^3/8/pif/x0^(1/4)-18/10000*log(x0)^5/sqrt(x0); print("7.993-log(10^8)^3/8/pi/(10^8)^(1/4)-18/10000*log(10^8)^5/sqrt(10^8)=", evalf(U,12)); print(); end; ########################################################### # PROPOSITION 3.4 ############################################################ F1:=proc(tt) local t; t:=evalf(tt);L(1,t)/(t/log(t)^2); end; F2:=proc(tt) local t;t:=evalf(tt); L(2,t)/(t/log(t)^3); end; F1til:=proc(t); # cf. (3.15) if t > 95 then F1(t) else 1.785; fi; end; F2til:=proc(t); # cf. (3.15) if t > 381 then F2(t) else 4.05; fi; end; Q:=proc(ka1,xx) local x,k,sqx,logx,T1,T2,T3,T4,T5,T6,T7,lisT4,T4som,T; # computes Q defined by (3.24) print("CALCULATION of Q(kappa_1,x) by FORMULA (3.21)");print(); x:=evalf(xx); logx:=log(x); sqx:=sqrt(x); print("ka1=",ka1,"x=",xx,"log x=",evalf(logx,12),"rac x=",sqx); T1:=4*F2til(sqx); print("T1=",evalf(T1,12)); T2:=2/300; print("T2=",T2); T3:=3.05*logx^3/sqx; print("T3=",evalf(T3,12)); for k from 3 to ka1 do T4[k]:=k*F1til(x^(1/k))*logx/x^(1/2-1/k); print("k=",k,"T4[k]=",evalf(T4[k],12)); od; lisT4:=[T4[kk] $ kk=3..ka1]; T4som:=add(i,i=lisT4); print("T4=",evalf(T4som,12)); T5:=7.23*ka1^3/x^(1/2-1/ka1); print("T5=",evalf(T5,12)); T6:=0.94/logx^2; print("T6=",evalf(T6,12)); T7:=9*logx^5/10000/sqx; print("T7=",evalf(T7,12)); T:=T1+T2+T3+T4som+T5+T6+T7; print("T=Q(kappa_1,x)=",evalf(T,12)); T; end; Qminka1:=proc(xx) local x,logx,sqx,ka1,ka1m,k,minQ,T,T1,T2,T3,T4,T5,T6,T7,lisT4,T4som; # This procedure calculates the value of kappa_1 that # minimises Q(kappa_1,x). Choose "Digits" large if xx is large. print("DETERMINATION of kappa MINIMIZING Q(kappa_1,x) for x=",xx);print(); x:=evalf(xx); logx:=log(x); sqx:=sqrt(x); minQ:=infinity; for ka1 from 3 to log(x)/log(10.4) do # ka1 is < log(x)/log(10.4) T1:=4*F2til(sqx); T2:=2/300; T3:=3.05*logx^3/sqx; for k from 3 to ka1 do T4[k]:=k*F1til(x^(1/k))*logx/x^(1/2-1/k); od; lisT4:=[T4[kk] $ kk=3..ka1]; T4som:=add(i,i=lisT4); T5:=7.23*ka1^3/x^(1/2-1/ka1); T6:=0.94/logx^2; T7:=9*logx^5/10000/sqx; T:=T1+T2+T3+T4som+T5+T6+T7; if T < minQ then minQ:=T; ka1m:=ka1; fi; print("kappa_1=",ka1,"T=Q(kappa_1,x)=",evalf(T,12)); od; print(); print("x=",xx,"log10(x)=",evalf(log10(x),3), "minimum of Q=",evalf(minQ,12),"for ka1=",ka1m); print(); end; #################################################### # PROPOSITION 3.6 : COMPUTATION of A(x) FOR x SMALL #################################################### ##################################################### # PROPOSITION 3.6 : SOLUTION of (i) ##################################################### prop36i:=proc() print("SOLUTION of PROPOSITION 3.6 (i)"); priny(); print("A(11)=",evalf(A(11),12),"A(7)=",evalf(A(7),12)); print(); end; ########################################################## # PROPOSITION 3.6 : SOLUTION of (ii), (iii) and (v) FOR 409 <= x <=10^8 ########################################################## prop36ii:=proc(pmax,pas,const) local A,p,pp,pf,ppf,logp,logpp,losqp,losqpp,pi,theta,ti, ppas, # intermediary results are printed # when p exceeds ppas that takes the values multiple of pas CM, # defined by A(p)=sqrt(p)/log^2(p)*(2+lambda+CM/log(p)) maxCM,maxCMp,ACM, # maxCM=max(C(p), 409<= p <= pmax, maxCM=C(maxCMp,ACM=A(maxCMp) p0,A0, # p0 is the largest prime s.t. C(p0)>=const, # A0=A(p0), pp0 is the prime following p0 cm, # is c tilda(p) defined by A(p)=sqrt(pp)/log^2(pp)*(2-lambda+cm/log(pp)) mincm, mincmp, Acm, # mincm is the min of cm, mincm is attained in mincmp,Acm=A(mincmp) pp0,pp0f,logpp0,C0,Cpp0,t0; global lambda; # calculation of A(p) and C(p) and ctilda(p) for p <= 10^8 ti:=time(); print("SOLUTION of PROPOSITION 3.6 (ii), (iii) and (v)"); print("pmax=",pmax,"log10(pmax)=",evalf(log10(pmax),2), "pas=",pas,"const=",const);print(); ppas:=pas; maxCM:=-infinity; p0:=-2; mincm:=infinity; #initialisation p:=2; pi:=0; theta:=0.; pf:=2.;logp:=log(pf); losqp:=logp^2/sqrt(2.); while p <=pmax do pp:=nextprime(p); ppf:=evalf(pp); logpp:=log(ppf); losqpp:=logpp^2/sqrt(ppf); pi:=pi+1; theta:=theta+logp; A:=Li(theta)-pi; if p >= 409 then CM:=(A*losqp-2-lambda)*logp; if CM > maxCM then maxCM:=CM; maxCMp:=p; ACM:=A; fi; if CM > const then p0:=p; A0:=A; C0:=CM; fi; cm:=(A*losqpp-2+lambda)*logpp; if cm < mincm then mincm:=cm; mincmp:=p; Acm:=A; fi; fi; if pp > ppas then ppas:=ppas+pas; print("p=",p,"pp=",pp,"A(p)=",evalf(A,12)); print("C(p)=",evalf(CM,12),"ctilda(p)=",evalf(cm,12),"time=",time()-ti); print(); fi; p:=pp; pf:=ppf; logp:=logpp; losqp:=losqpp; od; print(); print("SOLUTION of PROPOSITION 3.6 (ii)"); print(); print("max C(p)=",evalf(maxCM,12),"for p=",maxCMp, "A(p)=",evalf(ACM,12)); print(); print("SOLUTION of PROPOSITION 3.6 (iii)"); print(); pp0:=nextprime(p0); pp0f:=evalf(pp0); logpp0:=log(pp0f); Cpp0:=logpp0*(A0*logpp0^2/sqrt(pp0f)-2-lambda); if Cpp0 < const then t0:=fsolve(log(t)*(A0*log(t)^2/sqrt(t)-2-lambda)=const,t=p0..pp0); fi; print("p0=",p0,"p0+=",pp0,"A(p0)=",evalf(A0,12),"C(p0)=",evalf(C0,12)); print("lim_{x->p0+} C(x)=",evalf(Cpp0,12),"t=",evalf(t0,12)); print(); print(); print("SOLUTION of PROPOSITION 3.6 (v) for 409 <= p < 10^8"); print(); print("Minimum of ctilda(p) for 409 <= p < 10^8=", evalf(mincm,12),"for p=",mincmp); print("Total time=",time()-ti); print(); end; ########################################################## # PROPOSITION 3.6 : SOLUTION of (v) FOR 83 <= x < 409 ########################################################## prop36v:=proc(pmax) local p,pp,pf,ppf,logp,logpp,pi,theta,f,maxf,t0,t,mindif,dif,mindifp; global A,lambda; # Choose pmax >= 401. f:=proc(tt) local t; t:=evalf(tt); sqrt(t)/log(t)^2*(2-lambda+5.12/log(t)); end; mindif:=infinity; p:=2; pi:=0; theta:=0.; pf:=2.;logp:=log(pf); print("SOLUTION of PROPOSITION 3.6 (v) for 83 <= p < 409"); print(); while p <=pmax do pi:=pi+1; theta:=theta+logp; A[p]:=Li(theta)-pi; pp:=nextprime(p); ppf:=evalf(pp); logpp:=log(ppf); if p = 83 then t0:=fsolve(f(t)=A[p],t=83..89); print("A(83)=",evalf(A[p],12),"f(83)=", evalf(f(83),12), "f(89)=",evalf(f(89),12)); print("f(t0)=A(83) for t0=",evalf(t0,12)); print(); fi; if 89 <= p and p < 409 then dif:=A[p]-max(f(p),f(pp)); if dif < mindif then mindif:=dif; mindifp:=p; fi # print("p=",p,"Ap-fp=",evalf(A[p]-f(p),12),"Ap-fp+=",evalf(A[p]-f(pp),12)); fi; p:=pp; pf:=ppf; logp:=logpp; od; print("Minimum for 89 <= p < 409 of A(p)-max(f(p),f(p+))=",evalf(mindif,12), "for p=",mindifp); print(); end; ############################################################## # PROPOSITION 3.6 : SOLUTION of (iv) FOR x <=10^4 and (vi) for 37 <= x <89 ############################################################## prop36iv:=proc(pmax) local p,logp,pp,pi,theta,phi, M,MaxM,Mp; # MaxM is the max of M=A(p)*log^2(p)/sqrt(p). It is attained in Mp global A,lambda; phi:=proc(tt) local t; t:=evalf(tt); log(t)^2/sqrt(t); end; MaxM:=0; p:=2; pi:=0; theta:=0.; logp:=log(2.); while p <=pmax do pi:=pi+1; theta:=theta+logp; A[p]:=Li(theta)-pi; M[p]:=A[p]*phi(p); if M[p] > MaxM then MaxM:=M[p]; Mp:=p; fi; p:=nextprime(p); logp:=log(evalf(p)); od; print("SOLUTION of PROPOSITION 3.6 (iv)"); print(); print("max for 59 <= p < 10000 of A(p)*log^2(p)/sqrt(p)=",evalf(MaxM,12), "for p =",Mp); print(); print("SOLUTION of PROPOSITION 3.6 (vi)"); print(); print("2-lambda=",evalf(2-lambda,12)); p:=11; pp:=13; while p <= 83 do print("p=",p,"pp=",pp,"A(p)phi(p)=",evalf(A[p]*phi(p),12), "A(p)phi(p+)=",evalf(A[p]*phi(pp),12)); p:=pp; pp:=nextprime(pp); od; print(); end;