"Source: Text/Geometry/CrvHyp.text";
"Line: 4256";
"Date: Fri Sep 26 09:12:34 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvHyp.text, line: 4256
// Example: H137E29 ()
print "Example: H137E29";
ei := GetEchoInput();
SetEchoInput(true);
P<x>:=PolynomialRing(Rationals());
C:=HyperellipticCurve(-x^6 + 2*x^5 + 3*x^4 + 2*x^3 - x - 3);
JC:=Jacobian(C);
RankBound(JC);
assert $1 eq 3;
V:=RationalPoints(JC,x^2 + 83/149*x + 313/596,2);
B:=ReducedBasis(V);
#B;
assert $1 eq 1;
d:=-1;
Cd:=QuadraticTwist(C,d);
JCd:=Jacobian(Cd);
Vd:=RationalPoints(JCd:Bound:=100);
Bd:=ReducedBasis(Vd);
#Bd;
assert $1 eq 4;
SetClassGroupBounds("GRH");
K:=QuadraticField(d);
CK:=BaseChange(C,K);
JCK:=Jacobian(CK);
NumberOfGenerators(TwoSelmerGroup(JCK));
assert $1 eq 5;
Aa:=AbsoluteAlgebra(JCK`Algebra);
L:=Aa[1];
MinkowskiBound(L);
assert $1 eq 3763009;
SetEchoInput(ei);
