================================================================================================================================================= //The following is code used in the proof of Lemma 2.3.8 of my thesis. ================================================================================================================================================= k:=CyclotomicField(3); AB:=PolynomialRing(k,4); K:=FieldOfFractions(AB); R:=PolynomialRing(K,3); B:=y0^2-x0^3-A*z0^6; F:=-y^2+x^3+A*z^6+B; eta:=[x0,y0,z0]; //F=0 defines the affine part (after setting w=1) of a del Pezzo surface S of degree 1 //in P(2,3,1,1) with coordinates x,y,z,w, over its function field K. Its generic //point is eta. //We define the polynomial g such that the intersection of g=0 with F gives the curve C_{eta}, //and we compute the third point Q of intersection of C_{eta} with the fiber of eta on the elliptic //fibration obtained from S. g:=-3*x0^2*z0^2*x*z + 2*y0*z0^3*y + (-2*A*z0^6+x0^3)*z^3 - 2*z0^3*B; c:=MonomialCoefficient(g,y); y_g:=y-c^-1*g; F_g:=Evaluate(F,[x,y_g,z]); //Intersection of F=0 and g=0; this gives C_{eta}. y_gz0:=Evaluate(y_g,[x,1,z0]); F_gz0:=Evaluate(F,[x,y_gz0,z0]); //Intersection of C_{eta} with the fiber of eta. Rx:=PolynomialRing(K,1); f:=x^3 + -9/4*x0^4/y0^2*x^2 + (9/2*x0^5 - 3*x0^2*y0^2)/y0^2*x + (-9/4*x0^6 + 2*x0^3*y0^2)/y0^2; //This is F_gz0. Factorization(f); //Gives all x-coordinates of the points in the intersection of C_{eta} with the fiber. xQ:=-(-9/4*x0^4 + 2*x0*y0^2)/y0^2; //This is the x-coordinate of Q. Evaluate(y_gz0,[xQ,1,1]); yQ:=(27/8*x0^6 - 9/2*x0^3*y0^2 + y0^4)/y0^3; //The y-coordinate of Q. //Check that the point Q is on the intersection of S and g=0. Evaluate(F,[xQ,yQ,z0]); Evaluate(g,[xQ,yQ,z0]); //We create the elliptic curve E_{eta} given by the normalization of C_{eta} with the point Q. A2:=AffineSpace(K,2); C_eta:=ProjectiveClosure(Curve(Scheme(A2,Evaluate(F_g,[X,1,T])))); Q:=C_eta![xQ,z0]; E_eta,h:=EllipticCurve(C_eta,Q); //We compute the points Q, sigma(Q), and sigma^2(Q) on E_{eta}, and the sum D_{eta}. EQ:=h(Q); EzQ:=h(C_eta![xQ*zeta^2,zeta*z0]); EzzQ:=h(C_eta![xQ*zeta,zeta^2*z0]); D_eta:=EzQ+EzzQ; //We compute a Weierstrass model WE for E_{eta}, with an isomorphism w:E_{eta}-->WE. WE,w:=WeierstrassModel(E_eta); //We create a map K --> QQ[A2,B2,x2,z2], to pull back elements in K that are contained in //the subring QQ[A,B,x0,z0]. T:=FunctionField(Rationals(),4); Ty:=PolynomialRing(T,1); I:=ideal; Quot:=Ty/I; phi:=homQuot | [A1,x1,y1,z1]>; R2:=PolynomialRing(Rationals(),4); psi:=homR2 | [A2,B2,x2,z2]>; //We check that the only factors of the denominators in the equations defining both w and its inverse //are 2, q2, and q4. q1:=x2; q2:=-x2^6+8*A2*z2^6*x2^3+4*A2*B2*z2^6; q3:=x2^6+8*(A2*z2^6-B2)*x2^3+16*(A2^2*z2^12+A2*B2*z2^6); q4:=29*x2^12+(40*B2+24*A2*z2^6)*x2^9+16*(9*A2*B2*z2^6-B2^2+6*A2^2*z2^12)*x2^6+128*(A2^3*z2^18+3*A2^2*B2*z2^12+2*A2*B2^2*z2^6) *x2^3+64*(A2*B2^3*z2^6+2*A2^2*B2^2*z2^12+A2^3*B2*z2^18); w_inv:=Inverse(w); for map in [w,w_inv] do for a in IsomorphismData(map) do Fa:=Factorization(psi(T!phi(Denominator(a)))); if Fa ne [] then i:=Fa[1][2]; assert(#Factorization(Integers()!((q2*q4)^i/psi(T!phi(Denominator(a))))) eq 1); assert(Factorization(Integers()!((q2*q4)^i/psi(T!phi(Denominator(a)))))[1][1] eq 2); end if; end for; end for; //We verify that the Weierstrass model for E_eta is of the form as claimed. D:=Coefficients(WE)[5]; delta:=K!(2^8)^6*Numerator(D)/((2^5*3)^6); Bool,isom:=IsIsomorphic(E_eta,EllipticCurve([0,delta])); Factor:=(3*2^5)/(q2*q4); assert(psi(T!phi(Numerator(D)))/psi(T!phi(Denominator(D))) eq psi(T!phi(delta))*Factor^6); assert(Degree(psi(T!phi(delta)),x2) eq 81); assert(Coefficient(psi(T!phi(delta)),x2,81) eq -27*B2*z2^48); //We verify that the point D_eta is of the form as claimed. assert(2^24*psi(T!phi(Denominator(w(D_eta)[1])))/((q2*q4)^2) eq (q1*q3)^2); assert(Degree(2^24*psi(T!phi(Numerator(w(D_eta)[1])))/((2^5*3)^2),x2) eq 42); assert(Coefficient(2^24*psi(T!phi(Numerator(w(D_eta)[1])))/((2^5*3)^2),x2,42) eq 1/4*z2^16); assert(2^36*psi(T!phi(Denominator(w(D_eta)[2])))/((q2*q4)^3) eq (q1*q3)^3); assert(Degree(2^36*psi(T!phi(Numerator(w(D_eta)[2])))/((2^5*3)^3),x2) eq 63); assert(Coefficient(2^36*psi(T!phi(Numerator(w(D_eta)[2])))/((2^5*3)^3),x2,63) eq 1/8*z2^24);