"Source: Text/Ring/FldFunG.text";
"Line: 2709";
"Date: Fri Sep 26 13:15:42 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Ring/FldFunG.text, line: 2709
// Example: H46E21 ()
print "Example: H46E21";
ei := GetEchoInput();
SetEchoInput(true);
k<w> := GF(5);
kxf<x> := RationalFunctionField(k);
kxfy<y> := PolynomialRing(kxf);
F<a> := FunctionField(x^2+y^2-1);
L := Isomorphisms(kxf, F);
#L eq #PGL(2, k);
k<i> := QuadraticField(-1);
kxf<x> := RationalFunctionField(k);
kxfy<y> := PolynomialRing(kxf);
F1<a> := FunctionField(y^2-x^5-x^2-i);
F2<b> := FunctionField(i*y^2-x^5-i*x^2+1);
c := IdentityFieldMorphism(k);
IsIsomorphic(F1,F2 : BaseMorphism := c);
assert not $1;
IsIsomorphic(F1,F2);
L := Isomorphisms(F1, F2);
[<f(a), f(x), f(i)> : f in L];
k := GF(11);
kxf<x> := RationalFunctionField(k);
kxfy<y> := PolynomialRing(kxf);
K<y> := FunctionField(x^3*y+y^3+x);
L := Automorphisms(K);
#L;
assert $1 eq 3;
// Extend base field to get all autos
k := GF(11^3);
kxf<x> := RationalFunctionField(k);
kxfy<y> := PolynomialRing(kxf);
K<y> := FunctionField(x^3*y+y^3+x);
L := Automorphisms(K);
#L;
assert $1 eq 504;
// restrict to just "geometric" autos, which fix the base
c := IdentityFieldMorphism(k);
L := Automorphisms(K : BaseMorphism := c);
#L;
assert $1 eq 168;
// get the automorphism group instead as an FP group
G,mp := AutomorphismGroup(K : BaseMorphism := c);
G;
#G;
assert $1 eq 168;
IdentifyGroup(G); // find in small group database
k<w> := GF(5);
kxf<x> := RationalFunctionField(k);
kxfy<y> := PolynomialRing(kxf);
f := x^3 + y^3 + 1;
F<a> := FunctionField(f);
f := Numeration(Set(Places(F, 1)));
G, h, K := AutomorphismGroup(F, f);
#G; Type(G);
V, f := SpaceOfDifferentialsFirstKind(F);
G, h, K := AutomorphismGroup(F, f);
#G; Type(G);
D := &+ Places(F, 1);  
V, f := DifferentialSpace( -D );
G, h := AutomorphismGroup(F, f);
#G;
assert $1 eq 12;
V, f := RiemannRochSpace( D );
G, h, ker := AutomorphismGroup(F, f);
#G; #ker;
SetEchoInput(ei);
