\\====================================================================== \\ The three functions appearing in the formulas. The sign function Sign(a,p)= {local(d); d=denominator(a); (-1)^((p-1)/d) } \\====================================================================== \\ The Theta character Theta(z,a,p,bd=20)= {local(Z); Z=teichmuller(z+O(p^bd)); if(Z==0,Z=1); Z^(-(p-1)*frac(a)) } \\====================================================================== \\ The Eta character Eta(z,a,p,bd=20)= {local(Z); Z=teichmuller(1-z+O(p^bd)); if(Z==0,Z=1); Z^(-(p-1)*a) } \\====================================================================== \\ Each of Kummers lines. The entry is a vector T=[z,a,b,c,p]. Formula i compares the i-th value with the first one. Formula2(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z,[c-a,c-b],[c,1],p,,5)/Eta(z,c-a-b,p) } Formula3(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z,[a-c,b-c],[-c,1],p,,5)/Theta(z,-c,p)/simplify(lift(hgmJ([a-c,b-c,c],[a,-c,b],p,,5))) } Formula4(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z,[-a,-b],[-c,1],p,,5)/Theta(z,-c,p)/Eta(z,c-a-b,p)/simplify(lift(hgmJ([a-c,-b,c],[a,-c,c-b],p,,5)))*Sign(c,p) } Formula5(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1-z,[a,b],[a+b-c,1],p,,5)/simplify(lift(hgmJ([a-c,c-a-b],[-c,c-b],p,,5)))*Sign(a,p) } Formula6(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1-z,[a-c,b-c],[a+b-c,1],p,,5)/simplify(lift(hgmJ([a-c,c-a-b,b-c],[a,-c,-a],p,,5)))*Sign(b+c,p)/Theta(z,-c,p) } Formula7(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1-z,[c-a,c-b],[c-a-b,1],p,,5)/simplify(lift(hgmJ([a-c,c-a,a+b-c],[a,-c,b],p,,5)))*Sign(a,p)/Eta(z,c-a-b,p) } Formula8(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1-z,[-a,-b],[c-a-b,1],p,,5)/simplify(lift(hgmJ([-b,a+b-c],[a,-c],p,,5)))*Sign(b+c,p)/Theta(z,-c,p)/Eta(z,c-a-b,p) } Formula9(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/z,[a,a-c],[a-b,1],p,,5)/simplify(lift(hgmJ([a-c,b-a],[b,-c],p,,5)))/Theta(z,-a,p) } Formula10(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/z,[b,b-c],[b-a,1],p,,5)/simplify(lift(hgmJ([b-c,a-b],[a,-c],p,,5)))/Theta(z,-b,p) } Formula11(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/z,[-a,c-a],[b-a,1],p,,5)/simplify(lift(hgmJ([a-c,c-a,a-b],[a,-c,c-b],p,,5)))/Theta(z,a-c,p)/Eta(z,c-a-b,p)*Sign(c,p) } Formula12(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/z,[-b,c-b],[a-b,1],p,,5)/simplify(lift(hgmJ([b-c,c-b,b-a],[b,-c,c-a],p,,5)))/Theta(z,b-c,p)/Eta(z,c-a-b,p)*Sign(c,p) } Formula13(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/(1-z),[a,c-b],[a-b,1],p,,5)/simplify(lift(hgmJ([a-c,b-a],[b,-c],p,,5)))/Eta(z,-a,p)*Sign(a,p) } Formula14(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/(1-z),[b,c-a],[b-a,1],p,,5)/simplify(lift(hgmJ([b-c,a-b],[a,-c],p,,5)))/Eta(z,-b,p)*Sign(b,p) } Formula15(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/(1-z),[a-c,-b],[a-b,1],p,,5)/simplify(lift(hgmJ([a-c,-b,b-a],[a,-c,-a],p,,5)))/Theta(z,-c,p)/Eta(z,c-a,p)*Sign(c+b,p) } Formula16(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(1/(1-z),[b-c,-a],[b-a,1],p,,5)/simplify(lift(hgmJ([b-c,-a,a-b],[b,-c,-b],p,,5)))/Theta(z,-c,p)/Eta(z,c-b,p)*Sign(a+c,p) } Formula17(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z/(z-1),[a,c-b],[c,1],p,,5)/Eta(z,-a,p) } Formula18(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z/(z-1),[b,c-a],[c,1],p,,5)/Eta(z,-b,p) } Formula19(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z/(z-1),[a-c,-b],[-c,1],p,,5)/simplify(lift(hgmJ([a-c,-b,c],[a,-c,c-b],p,,5)))/Theta(z,-c,p)/Eta(z,c-a,p)*Sign(c,p) } Formula20(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm(z/(z-1),[b-c,-a],[-c,1],p,,5)/simplify(lift(hgmJ([b-c,-a,c],[b,-c,c-a],p,,5)))/Theta(z,-c,p)/Eta(z,c-b,p)*Sign(c,p) } Formula21(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm((z-1)/z,[a,a-c],[a+b-c,1],p,,5)/simplify(lift(hgmJ([a-c,c-a-b],[c-b,-c],p,,5)))/Theta(z,-a,p)*Sign(a,p) } Formula22(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm((z-1)/z,[b,b-c],[a+b-c,1],p,,5)/simplify(lift(hgmJ([b-c,c-a-b],[c-a,-c],p,,5)))/Theta(z,-b,p)*Sign(b,p) } Formula23(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm((z-1)/z,[-a,c-a],[c-a-b,1],p,,5)/simplify(lift(hgmJ([a-c,c-a,a+b-c],[a,-c,b],p,,5)))/Theta(z,a-c,p)/Eta(z,c-a-b,p)*Sign(a,p) } Formula24(T)= {local(z,a,b,c,p); z=T[1];a=T[2];b=T[3];c=T[4];p=T[5]; hgm(z,[a,b],[c,1],p,,5)/hgm((z-1)/z,[-b,c-b],[c-a-b,1],p,,5)/simplify(lift(hgmJ([b-c,c-b,a+b-c],[a,-c,b],p,,5)))/Theta(z,b-c,p)/Eta(z,c-a-b,p)*Sign(b,p) } \\====================================================================== \\ Some routines to test the previous formulas for random values. IsGeneric(V)=(denominator(V[1])!=1)&&(denominator(V[2])!=1)&&(denominator(V[1]-V[3])!=1)&&(denominator(V[2]-V[3])!=1) Rand(N)= {local(a,b,c,z,p,n); a=random(N)/(1+random(N)); b=random(N)/(1+random(N)); c=random(N)/(1+random(N)); z=random(N); if(z==0||z==1,z=2); n=lcm([denominator(a),denominator(b),denominator(c)]); p=1; while(!isprime(p),p+=n); if(IsGeneric([a,b,c]),return([z,a,b,c,p])) } \\====================================================================== \\ Here is a way to test all of them. (copy removing the "\\" comment) \\ T=Rand(20); \\ for(i=2,24,print(eval(concat("Formula",i))(T))) \\ As an example, take T=[3, 5/7, 6/5, 17/5, 71]. \\====================================================================== Rand2(N)= {local(a,b,c,z,p,n); a=random(N)/(1+random(N)); b=random(N)/(1+random(N)); z=random(N); if(z==0||z==1,z=2); n=2*lcm([denominator(a),denominator(b)]); p=1; while(!isprime(p),p+=n); if(IsGeneric([a,b,(a+b+1)/2])&&IsGeneric([(a-b+1)/2,(b-a+1)/2,(1-a-b)/2]),return([z,a,b,p])) } \\====================================================================== \\ Formula for Proposition 4.3. T is the output of the previous script. Test3(T)= {local(z,a,b,p); z=T[1];a=T[2];b=T[3];p=T[4]; hgm(z,[a,b],[(a+b+1)/2,1],p,,5)/hgm((1-z),[(a-b+1)/2,(b-a+1)/2],[(1-a-b)/2,1],p,,5)/simplify(lift(hgmJ([(a+b+1)/2,(a+b+1)/2],[a,b],p,,5)))/Eta(z,(1-a-b)/2,p) } \\====================================================================== \\ To verify Theorem 4.5 Eta2(z,a,p,bd=20)= {local(Z); Z=teichmuller(1-2*z+O(p^bd)); if(Z==0,Z=1); Z^(-(p-1)*a) } Test4(T)= {local(z,a,b,p); z=T[1];a=T[2];b=T[3];p=T[4]; hgm(z,[a,b],[(a+b+1)/2,1],p,,5)/hgm((4*z^2-4*z)/(4*z^2-4*z+1),[a/2,(a+1)/2],[(a+b+1)/2,1],p,,5)/Eta2(z,-a,p) } \\====================================================================== \\ Formula to verify Theorem 4.6 Test5(T)= {local(z,a,b,p); z=T[1];a=T[2];b=T[3];p=T[4]; hgm(z,[4*a,2*a+1/6],[2/3,1],p,,5)/hgm(-(z+8)^3*z/64/(1-z)^3,[a,1/6-a],[2/3,1],p,,5)/Eta(z,-3*a,p) } Rand5(N)= {local(a,b,z,p,n); a=random(N)/(1+random(N)); b=random(N)/(1+random(N)); z=random(N); if(z==0||z==1,z=2); n=2*lcm([denominator(a),denominator(b),6]); p=1; while(!isprime(p),p+=n); if(IsGeneric([a,1/6-a,2/3])&&IsGeneric([4*a,2*a+1/6,2/3]),return([z,a,b,p])) }