"Source: Text/Geometry/CrvEllQNF.text";
"Line: 4016";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvEllQNF.text, line: 4016
// Example: H133E30 ()
print "Example: H133E30";
ei := GetEchoInput();
SetEchoInput(true);
E := EllipticCurve([0,9,0,-10,1]);
two := MultiplicationByMMap(E,2);
mu, tor := DescentMaps(two);
S, AtoS := SelmerGroup(two);
#S;
assert $1 eq 8;
RankBound(E : Isogeny := two);
assert $1 eq 3;
g1 := E![ 0, 1 ];
g2 := E![ 1, 1 ];
g3 := E![ 2, 5 ];
IsLinearlyIndependent ([g1, g2, g3]);
assert $1;
K := NumberField(Modulus(Domain(AtoS)));
L := NumberField(Polynomial([1,-10,9,1]));
b, m := IsIsomorphic (K, L); assert b;
theta := (Rationals()! (L.1 - m(K.1))) + Domain(AtoS).1;
H, mp := TwoCover((g1+g2)[1] - theta : E:=E); H;
RationalPoints( (g1+g2) @@ mp);
SetEchoInput(ei);
