"Source: Text/Ring/FldFunG.text";
"Line: 8683";
"Date: Fri Sep 26 13:15:42 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Ring/FldFunG.text, line: 8683
// Example: H46E49 ()
print "Example: H46E49";
ei := GetEchoInput();
SetEchoInput(true);
SetSeed(1);
k<u> := GF(2^5);
K<w> := GF(2^155);
Embed(k, K);
k2<t> := PolynomialRing(GF(2));
h := (t^31-1) div (t^5 + t^2 + 1);
frob := map< K -> K | x :-> x^#k >;
b := MultiplyFrobenius(K.1,h,frob);
E := ArtinSchreierExtension(K!1, K!0, b);
WeilDescentGenus(E, k);
assert $1 eq 31;
WeilDescentDegree(E,k);
assert $1 eq 2;
C,div_map := WeilDescent(E, k);
C;
// get the image of the place representing a K-rational point
pl := Zeroes(E!(BaseField(E).1)-w)[1];
D := div_map(pl);
Degree(D); //31*32
assert $1 eq 992;
k := GF(3);
K<w> := GF(3,4);
a := w+1;
c := w;
b := c^3+c;
E := ArtinSchreierExtension(c, a, b);
WeilDescentDegree(E,k);
assert $1 eq 27;
WeilDescentGenus(E,k);
assert $1 eq 78;
C := WeilDescent(E, k);
C;
SetEchoInput(ei);
