"Source: Text/Geometry/SmallModCrv.text";
"Line: 1041";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/SmallModCrv.text, line: 1041
// Example: H141E7 ()
print "Example: H141E7";
ei := GetEchoInput();
SetEchoInput(true);
X45<x,y,z> := SmallModularCurve(45);
w9 := AtkinLehnerInvolution(X45,45,9);
G := AutomorphismGroup(X45,[w9]);
C,prjC := CurveQuotient(G);
c_inf := Cusp(X45,45,45);
ptE := prjC(c_inf);
E1,mp1 := EllipticCurve(C,ptE);
E,mp2 := MinimalModel(E1);
prjE := Expand(prjC*mp1*mp2);
i0 := prjE(Cusp(X45,45,1));
K := QuadraticField(-3);
c3 := Cusp(X45,45,3);
c3p := X45(K)!Representative(Support(c3,K));
i3 := E!(prjE(c3p));
c15 := Cusp(X45,45,15);
c15p := X45(K)!Representative(Support(c15,K));
i15 := E!(prjE(c15p));
Ecusps := [E!0,i0,i3,i15];
T,mp := TorsionSubgroup(E);
Epts := [mp(g) : g in T];
Eptsnc := [P : P in Epts | P notin Ecusps];
plcs := [Support(Pullback(prjE,Place(p)))[1] : p in Eptsnc];
X5 := SmallModularCurve(5);
prj3 := ProjectionMap(X45,45,X5,5,3);
prj3 := Expand(prj3);
plcs5 := [Support(Pushforward(prj3,p))[1] : p in plcs];
plcs5 := Setseq(Seqset(plcs5));
js := [jInvariant(p,5) : p in plcs5];
js;
w5 := AtkinLehnerInvolution(X5,5,5);
Pullback(w5,plcs5[1]) eq plcs5[2];
assert $1;
Ej := EllipticCurveWithjInvariant(js[2]);
Ej := MinimalModel(MinimalTwist(Ej));
Conductor(Ej);
assert $1 eq 338;
ThreeTorsionType(Ej);
SetEchoInput(ei);
