"Source: Text/Ring/FldAb.text";
"Line: 2135";
"Date: Fri Sep 26 12:10:11 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Ring/FldAb.text, line: 2135
// Example: H41E11 ()
print "Example: H41E11";
ei := GetEchoInput();
SetEchoInput(true);
Zx<x> := PolynomialRing(Integers());
o := MaximalOrder(x^2+10);
r, mr := RayClassGroup(36*o);
q, mq := quo<r| [r.i*3 : i in [1..Ngens(r)]]>;
A := AbelianExtension(Inverse(mq)*mr); A;
la := GetAttributes(FldAb);
[ <assigned A``i, i> : i in la];
d := A`DefiningGroup;
d;
K := NumberField(A);
K;
c := A`Components;
#c;
assert $1 eq 2;
B := c[1]`Basis;
a := &* [ B[1][i] ^ c[1]`GenRaw[i][1] : i in [1..Ncols(B)]];
a;
c[1]`Gen;
c[1]`Gen eq a;
assert $1;
c[1]`GenInv * a eq 1;
c[2]`GenInv * a eq 1;
#c[1]`S;
UnitRank(o);
// o has rank 0, he meant another order
Ncols(c[1]`UnitsRaw);
U := c[1]`UnitsRaw;
u := [ &* [B[1][i] ^ U[i][j] : i in [1..Ncols(B)]] : j in [1..4]];
Oa := Parent(B[1][1]);
Oa!u[1];
IsUnit($1);
Decomposition(u[2]);
u[4]^6 eq 1;
c[1]`O:Maximal;    
c[1]`ClassField;
g := c[1]`ClassField.2;
c[1]`O!g;
MinimalPolynomial(g);
Evaluate($1, c[1]`GenAut);
SetEchoInput(ei);
