> read `/Users/kuwata/Documents/ESC/ESC.mpl`;

> interface(typesetting=standard);
Typesetting:-mi( (1)

 

Examples S[1],...,S[6] are taken from the paper by A. Beauville, "Les familles stables de courbes elliptiques
sur P1 admettant quatre fibres singulières
", C. R. Acad. Sc. Paris, t. 294 (1982), pp. 657–660. 

 

> S[1]:=x*(x-z)*(y-z) + t*z*y*(x-y);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

"Cubic_to_Weierstrass(equation, point)" converts a homogeneous cubic equation in x,y,z with a given  

rational point.  If point is omitted, [0,1,0] is used. 

 

> Ell[1]:=Cubic_to_Weierstrass(S[1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

"Elliptic_surface" takes as arguments either homogenous Weierstrass equation of the form Y^2Z - X^3 -..., or  

a sequence a_1, a_2, a_3, a_4, a_6. (see the last example.) 

 

> Elliptic_surface(Ell[1]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

"Show_data" shows the data of the current elliptic surface.  Indivisual data can be viewed by "Show(datum)", 

where 'datum' can be 'curve', 'Disc', 'j', 'pg', 'a', 'b', 'c', 'bad_fibers' 

Note that in order to avoid accidental collision of variables, variables such as 'j', 'a', etc., are protected.  Use 

"Show" to get an access to these variables. 

 

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> Ell[1];
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

"Trcw" transforms the coordinates of a point on the cubic curve to those of a point on the Weierstrass form, 

using the transformation given by "Cubic_to_Weiestrass". 

 

> P[1,1]:=Trcw(Ell[1],[0,0,1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

Check if the point P[1,1] is on the curve or not. 

 

> Is_on(P[1,1]);
Typesetting:-mi(

"×" compute the multiplication of a point by an integer.  Used e.g. "3 × [x,y]". 

 

> for n from 1 to 5 do n × P[1,1]; od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mo(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mo(
Typesetting:-mi(

Also defined: addition "&plus" or "&++" , subtraction "&minus" or "&--", take the inverse "&neg". 

Examples come later. 

 

> S[2]:=(y+z)*(z+x)*(x+y) + t*x*y*z;
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Ell[2]:=CtoW(S[2]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Ein(Ell[2]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> P[2,1]:=Trcw(Ell[2],[0,0,1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> for n from 1 to 3 do n × P[2,1]; od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mi(

> factor(rhs(Show(curve)));
Typesetting:-mrow(Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mi(

> P[2,2]:=[solve(op(1,%),x),0];
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> P[2,3]:=P[2,1] &plus P[2,2];
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> for n from 1 to 6 do n × P[2,3]; od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mo(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mi(

> S[3]:=x^3 + y^3 + z^3 +3*t*x*y*z;
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> CtoW(S[3]);

Error, (in step0) [0,1,0] is not on the curve!

You need to specify a rational point! 

 

> Ell[3]:=CtoW(S[3],[1,-1,0]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Elliptic_surface(Ell[3]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> P[3,1]:=Trcw(Ell[3],[0,-1,1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> 3 × P[3,1];
Typesetting:-mi(

If you use an algebraic number using "RootOf" notation most of the functions work without problems. 

 

> alias(omega=RootOf(z^2+z+1));
Typesetting:-mi(

> P[3,2]:=Trcw(Ell[3],[-omega,1,0]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Is_on(P[3,2]);
Typesetting:-mi(

> P[3,1] &plus P[3,2];
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(

Parameter t is changed so that Ell[3] and Ell[4] are isogenus. 

 

> S[4]:=(t+1)*(x^2*y +y^2*z + z^2*x) + 3*(-t+2)*x*y*z;
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Ell[4]:=CtoW(S[4]);
Typesetting:-mover(Typesetting:-mtable(Typesetting:-mtr(Typesetting:-mtd(Typesetting:-mrow(Typesetting:-mproxy(

> Elliptic_surface(Ell[4]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> P[4,1]:=Trcw(Ell[4],[1,0,1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Is_on(Trcw(Ell[4],[1,0,1]));
Typesetting:-mi(

> for n from 1 to 3 do n × P[4,1]; od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mi(

> S[5]:=x*(x^2 + z^2 + 2*z*y) + t*z*(x^2 - y^2);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Ell[5]:=CtoW(S[5]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Elliptic_surface(Ell[5]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> P[5,1]:=Trcw(Ell[5],[-1,-1,1]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Is_on(P[5,1]);
Typesetting:-mi(

> for n from 1 to 4 do n × P[5,1] od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mo(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mo(
Typesetting:-mi(

> factor(rhs(Show(curve)));
Typesetting:-mrow(Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mi(

> P[5,2]:=[3*t^2-6,0];
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> 2 × P[5,2];
Typesetting:-mi(

> P[5,1] &++ P[5,2];
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(

> S[6]:=(x+y)*(x*y - z^2) -4*t*x*y*z;
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Ell[6]:=CtoW(S[6]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Elliptic_surface(Ell[6]);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> P[6,1]:=Trcw(Ell[6],[1,-1,0]);
Typesetting:-mrow(Typesetting:-msub(Typesetting:-mi(

> Is_on(P[6,1]);
Typesetting:-mi(

> for n from 1 to 4 do n × P[6,1] od;
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mi(

> y^2-x^3-t^2*(-3*t^2+48*t-48)*x-t^3*(2*t^3+60*t^2-192*t+128);
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2 - ( x^3-12*t^3*(4*t-3)*x-16*t^5*(8*t-9) );
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2 - ( x^3-3*t^3*(3^2*t-2^3)*x+t^4*(2*3^3*t^2-2^3*3^2*t+1/12*2^6*3) );
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2 - ( x^3+(-3*t^2*d^2+3*t*d^2-3*d^2)*x+2*d^3*t^3-3*d^3*t^2-3*d^3*t+2*d^3 );
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2-x^3-3*(-t^2+16*t-16)*x-2*(t-2)*(t^2+32*t-32);
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2 - ( x^3+A*(t^2*a+b)^2*x+B*(t^2*a+b)^3 );
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> y^2+2*(27*t^2*d+12*t^2+12*t+4*t^3+4)*y-x^3+6*(t+1)*x*y ;
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(Homogenize(%));
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> alias(alpha=RootOf(-27*d^2*_Z^2-54*d*_Z^4-27*_Z^6-4*d^2*(d+1)));
Typesetting:-mrow(Typesetting:-mi(

> P := [-1/16*(3*d^2+18*d*alpha^2-8*d+27*alpha^4-36*alpha^2+16)*(4*d*t^2+(24*d^2+8*d-18*d*alpha^2-27*alpha^4)*t-12*d^2+4*d-45*d*alpha^2-27*alpha^4)/(d*(d+1)), -1/1024*(36*d^4+27*alpha*d^4-124*d^3+216*d^3*alpha^2-54*alpha*d^3+162*alpha^3*d^3+324*d^2*alpha^4+648*d^2*alpha+243*d^2*alpha^5-216*d^2*alpha^3-32*d^2-216*d^2*alpha^2+324*d*alpha^4+128*d+162*d*alpha^5-432*d*alpha^2+1080*d*alpha^3+648*alpha^5)*(-64*d*t^3+12*(-48*d^2+36*d^2*alpha+135*d*alpha^3+81*alpha^5-16*d-12*d*alpha+54*alpha^4+36*d*alpha^2)*t^2+3*(972*alpha^5+504*d*alpha^2-64*d-96*d*alpha+972*alpha*d^3+2187*d*alpha^5+486*d*alpha^4+324*d^2*alpha^2+108*d^2*alpha+3645*d^2*alpha^3-432*d^3+1620*d*alpha^3-240*d^2+432*alpha^4)*t-64*d+648*d^3+72*d^2+1944*alpha^5+1080*d*alpha^2+2160*d^2*alpha+4212*d*alpha^3-144*d*alpha+2430*d^2*alpha^2+1458*d*alpha^4+648*alpha^4)/(d^2*(d+1)^2)];
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(

> Is_on(P);
Typesetting:-mi(

> # Bug/Limitation!!!  As a matter of fact, h(P) = 1/3
Height(P);
Typesetting:-mn(

> Elliptic_surface(0,2*t,0,0,1);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> for n from 1 to 12 do sort(denom(op(2,n × [0,1]))/denom(op(1,n × [0,1])),t) od;
Typesetting:-mn(
Typesetting:-mn(
Typesetting:-mi(
Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mfenced(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mn(
Typesetting:-mrow(Typesetting:-mn(

>

Ellptic surface of Hoyt-Schwartz. 

 

> y^2 - t*(t-1)*(t-c)*x*(x-1)*(x-t);
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> HS:=CtoW(Homogenize(%));
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(

> Elliptic_surface(HS);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-mi(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

> HS2:=Homogenize(subs({t=s^2},lhs(Show(curve))-rhs(Show(curve))));
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(

> Set_parameter(s);
Typesetting:-mi(

> Elliptic_surface(HS2);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

The following result is false; The equation is not minimal, but "Calculate_bad_fibers" doesn't check it.  
Bug fix is in progress.
 

 

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

A work around is to use "Cubic_to_Weierstrass" to obtain a minimal equation. 

 

> CtoW(HS2);
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Elliptic_surface(%);
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(

> Show_data();
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-msup(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-mrow(Typesetting:-mi(
Typesetting:-mi(
Typesetting:-ms(
Typesetting:-mi(

>

>