//Check isomorphism between E’ and E_v in the proof of Theorem 2.2

P<t,u,v>:=PolynomialRing(Rationals(),3);

Q:=FieldOfFractions(P);

R<x>:=PolynomialRing(Q);

 

 

a:=(t-u)*(t^3*u + t^2*u^2 + t*u^3 - 6*t*u + 3);

q:=(x-1)^3*(x+3);

r:=(x+1)^3*(x-3);

 

f_v:=x*(x-Evaluate(q,v))*(x-Evaluate(r,v));

E_v:=EllipticCurve(f_v);

 

//polynomial for E’ after using (2.3) to replace ux-t by tq(u)q(v)/(16q(t)v)x-t and removing square factors

f:=-t*Evaluate(q,t)*Evaluate(q,u)*x*(t*Evaluate(q,u)*Evaluate(q,v)*x-16*Evaluate(q,t)*v*t)*(Evaluate(q,u)*x-Evaluate(q,t));

 

a0:=Coefficient(f,3);

//Change variables to make f monic

f:=Evaluate(f,a0*x)/a0^4;

E:=EllipticCurve(f);

IsIsomorphic(E,E_v);

//outputs true