"Source: Text/Geometry/CrvEllQNF.text";
"Line: 4074";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvEllQNF.text, line: 4074
// Example: H133E31 ()
print "Example: H133E31";
ei := GetEchoInput();
SetEchoInput(true);
P<x> := PolynomialRing(Integers());
d := &*[ p : p in [1..50] | IsPrime(p) ];
E := EllipticCurve(HyperellipticCurve(d*x*(x + 1)*(x + 3)));
A, mp := TorsionSubgroup(E);
T := [ t : a in A | t ne E!0 where t := mp(a) ];
phis := [ TwoIsogeny(t) : t in T ];
[ RankBound(E : Isogeny := phi) : phi in phis ];
two := MultiplicationByMMap(E,2);
RankBound(E : Isogeny := two);
assert $1 eq 1;
OtherTwos := [ MultiplicationByMMap(Codomain(phi), 2) : phi in phis ];
[ RankBound(Domain(two) : Isogeny := two) : two in OtherTwos ];
SetEchoInput(ei);
