"Source: Text/Geometry/ModFrm.text";
"Line: 493";
"Date: Thu Sep 25 14:47:45 2025";
"Main: Fri Sep 26 14:29:19 2025";
// original file: Text/Geometry/ModFrm.text, line: 493
// Example: H144E3 ()
print "Example: H144E3";
ei := GetEchoInput();
SetEchoInput(true);
M := ModularForms(65); M;
Dimension(M);
assert $1 eq 8;
Basis(CuspidalSubspace(M));
M := ModularForms(8,4); M;
Dimension(M);
assert $1 eq 5;
Basis(CuspidalSubspace(M));
G := DirichletGroup(20,CyclotomicField(EulerPhi(20)));
chars := Elements(G);
#chars;
[Conductor(eps) : eps in chars];
exists(eps){eps : eps in chars | Conductor(eps) eq 5 and IsOdd(eps)};
Order(eps);
assert $1 eq 4;
M := ModularForms(eps, 3); M;
Dimension(EisensteinSubspace(M));
assert $1 eq 12;
Dimension(CuspidalSubspace(M));
assert $1 eq 6;
G := DirichletGroup(20, RationalField());   // (Z/20Z)^* --> Q^*
chars := Elements(G); #chars;
M := ModularForms(chars,2); M;
M := ModularForms(chars,3); M;
ModularForms(Gamma1(20)); 
ModularForms(Gamma1(20),3); 
CuspForms(Gamma1(20)); 
CuspForms(Gamma1(20),3);
SetEchoInput(ei);
