\\ The p-adic precision that is desired. acc = 11; \\ The prime p. p = 7; \\ coefficients for getting q from j. b2 = 744; b3 = 750420; b4 = 872769632; b5 = 1102652742882; b6 = 1470561136292880; b7 = 2037518752496883080; b8 = 2904264865530359889600; b9 = 4231393254051181981976079; \\ j-invariant of X_0(14). j = 9938375/21952; jj = (1/j) % p^acc; \\ Computing Tate's q-parameter to the desired precision. q = (jj + b2*jj^2 + b3*jj^3 + b4*jj^4 + b5*jj^5 + b6*jj^6 ) % p^acc; \\ The coefficients in the Tate model of X_0(14) a4=0; for(n=1,acc, a4 = (a4 -5*sigmak(3,n)*q^n) % p^acc); a6 = 0; for(n=1,acc, a6 = (a6 -(5/12*sigmak(3,n)+7/12*sigmak(5,n))*q^n) % p^acc); \\ Uniformize(u) returns the value of u in K*/q^Z, on the Tate curve \\ y^2 + xy = x^3 + a4 x + a6. uniformize(u,temp,n,x,uu,y) = \ temp = 0;\ for(n=1,acc,temp=(temp+sigma(n)*q^n) % p^acc);\ x=0;\ for(n=1,acc, x = (x + q^n*u/(1-q^n*u)^2)%p^acc);\ uu = 1/u % p^acc;\ for(n=1,acc, x = (x + q^n*uu/(1-q^n*uu)^2)%p^acc);\ x = (x + 1/(u+uu-2) - 2*temp) % p^acc ;\ y=0;\ for(n=1,acc, y = (y + q^(2*n)*u^2/(1-q^n*u)^3)%p^acc);\ for(n=1,acc, y = (y - q^n*uu/(1-q^n*uu)^3)%p^acc);\ y = (y + u^2/(1-u)^3 + temp) % p^acc ;\ [x,y] \\ The elliptic curve X_0(14) in minimal Weierstrass form. e1 = initell([1,0,1,4,-6]); \\ The elliptic curve X_0(14) in "good" form e2 = initell([1,0,0,9/2,-23/4]); \\ The elliptic curve X_0(14) over Q_7, in "good" form. e3 = initell([1,0,0,a4,a6]); \\ change of coordinates to go from e3 to e2. univchange = [2*s+1,(s^2+s)/3, s, -1/6*(s^2+s)] \\ Value of s, for accuracy of 7^11 s = -13083230334 ; c32 = eval(univchange); kill(s); \\ This function takes a point on e3 and returns a point on e1, at least \\ with a precision of 7^11. c31(pt) = pt = chptell(pt,c32);\ [pt[1],pt[2]-1/2] % 7^11 w=quadgen(-11); g=[-1,2*w-1] % 343 ; pp=[0] \\ function tate(u) takes an x in K*/q^Z and returns a 7-adic point \\ on the minimal Weierstrass model for E = X0(14). tate(u) = c31(uniformize(u)) e=e1; \\ search searches to see if the point [105, 93 + 51 w] is in an interesting \\ place. search() = \ for(n=1, 8*49,\ pp = addell(e,pp,g);\ if(n% 8 ==0,print(n,pp),pp=pp%343;\ if(pp[1]==105,print(" FOUND: IT is ",n," without b"),\ print(n,pp))))