"Source: Text/Geometry/CrvHyp.text";
"Line: 5490";
"Date: Fri Sep 26 09:12:34 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/CrvHyp.text, line: 5490
// Example: H137E40 ()
print "Example: H137E40";
ei := GetEchoInput();
SetEchoInput(true);
_<x> := PolynomialRing(Rationals());
f := 3*(x^6 + x^4 + 4*x^3 + 2*x^2 + 4*x + 3);
k := CyclotomicField(3);
IsIrreducible(PolynomialRing(k)!f);
assert $1;
SelJ,m,expvecs,fb,SelPic1 := PhiSelmerGroup(f,3 : ReturnRawData);
Ilog(3,#SelJ); 
assert $1 eq 2;
HasPointsEverywhereLocally(f,3);
assert $1;
SelPic1;
r_l, r_u, gens := RankBounds(f,3 : ReturnGenerators);
[r_l,r_u];
gens;
K := NumberField(gens[1]);
IsPower(Evaluate(f,K.1),3);
A<theta> := Domain(m); // the algebra representing Sel
D := Evaluate(gens[1],theta);
imD := m(D);
assert imD ne SelJ!0;
assert imD in SelJ;
SetEchoInput(ei);
