"Source: Text/Geometry/CrvHyp.text";
"Line: 5021";
"Date: Fri Sep 26 09:12:34 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvHyp.text, line: 5021
// Example: H137E36 ()
print "Example: H137E36";
ei := GetEchoInput();
SetEchoInput(true);
_<x> := PolynomialRing(Rationals());
C := HyperellipticCurve(x^6+8);
ptsC := Points(C : Bound:= 1000); ptsC;
J := Jacobian(C);                
PJ := J! [ ptsC[5], ptsC[1]];
Order(PJ); 
assert $1 eq 0;
RankBound(J);
assert $1 eq 1;
heightconst := HeightConstant(J : Effort:=2, Factor); 
LogarithmicBound := Height(PJ) + heightconst;  // Bound on h(Q)
AbsoluteBound := Ceiling(Exp(LogarithmicBound));
PtsUpToAbsBound := Points(J : Bound:=AbsoluteBound );  
ReducedBasis([ pt : pt in PtsUpToAbsBound ]);
Height(PJ);
all_pts := Chabauty(PJ : ptC:=ptsC[1]); all_pts;
assert all_pts eq Chabauty(2*PJ : ptC:=ptsC[1]);
SetEchoInput(ei);
