"Source: Text/Basics/RngIntRes.text";
"Line: 1410";
"Date: Thu Sep 25 14:47:46 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Basics/RngIntRes.text, line: 1410
// Example: H20E7 ()
print "Example: H20E7";
ei := GetEchoInput();
SetEchoInput(true);
G<a> := DirichletGroup(5);  G;  // The default base field is Q.
#G;    
assert $1 eq 2;
[Evaluate(a, n) : n in [1..5]];
Eltseq(a);
a eq G![2];
assert $1;
IsEven(a);
assert $1;
IsOdd(a);
assert not $1;
IsTrivial(a);
assert not $1;
G1<a4> := DirichletGroup(4);
Conductor(a4);
assert $1 eq 4;
G2<a5> := DirichletGroup(25);
Conductor(a5);
assert $1 eq 5;
eps := a4*a5;
Modulus(eps);
assert $1 eq 100;
Conductor(eps);
assert $1 eq 20;
Evaluate(eps,7) eq Evaluate(a4,7)*Evaluate(a5,7);
assert $1;
G<a> := DirichletGroup(7,GF(7));
#G;
assert $1 eq 6;
Evaluate(a,2);
assert $1 eq 2;

G<a3,a5> := DirichletGroup(15,CyclotomicField(EulerPhi(15)));
G;
#G;
assert $1 eq 8;
Conductor(a3);
assert $1 eq 3;
Conductor(a5);
assert $1 eq 5;
Order(a5);
assert $1 eq 4;
Evaluate(a5,2);
chi := KroneckerCharacter(209);
for n in [1..209] do 
   assert Evaluate(chi,n) eq KroneckerSymbol(209,n);
end for;
E := EllipticCurve(CremonaDatabase(),"11A");
f := qEigenform(E,8); f;
chi := KroneckerCharacter(-7);
qEigenform(QuadraticTwist(E,-7),8);
R<q> := Parent(f);
&+[Evaluate(chi,n)*Coefficient(f,n)*q^n : n in [1..7]] + O(q^8);
SetEchoInput(ei);
