load "mazur.mg" ======================================================================== d=5 order:=function(a) if a eq 1 then f:=1; else if a^2 eq 1 then f:=2; else f:=4; end if; end if; return f; end function; Chi:= function(p) Eps1:=Generators(DirichletGroup(15,CyclotomicField(4))); Eps1:=Eps1[1]*Eps1[2]; Eps2:=Generators(DirichletGroup(20,CyclotomicField(4))); Eps2:=Eps2[1]*Eps2[2]; if KroneckerSymbol(-5,p) eq -1 then f:=order(Eps1(p)); else f:=order(Eps2(p))*2; end if; return f; end function; G:=DirichletGroup(2^4*3^2*5^2,CyclotomicField(4)); eps:=(Elements(G)[50]); M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); CM:=FormsWithCM(new); [ 1, 2, 3, 4, 7, 9, 10 ] for i in [1..#new] do if i notin CM then print(DiscardPlace(5,eps,Chi,new,i,13,50)); end if; end for; {@ 2, 5 @} {@ 2, 5 @} Cannot discard the form with parameter: 8 [] Cannot discard the form with parameter: 11 [] Cannot discard the form with parameter: 12 [] Cannot discard the form with parameter: 13 [] {@ 2, 5 @} {@ 2, 5 @} ---------------------------------------------------------------------- eps2:=Extend(eps,2^4*3^3*5^2); M2:=ModularSymbols(eps2,2,1); S2:=NewSubspace(CuspidalSubspace(M2)); new2:=NewformDecomposition(S2); CM2:=FormsWithCM(new2); [ 1, 2, 3, 4, 5, 6 ] for i in [1..#new2] do if i notin CM2 then print(DiscardPlace(5,eps2,Chi,new2,i,13,50)); end if; end for; Cannot discard the form with parameter: 7 [] Cannot discard the form with parameter: 8 [] Cannot discard the form with parameter: 9 [] Cannot discard the form with parameter: 10 [] {@ 2, 5 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 3, 5 @} {@ 2, 5 @} {@ 2, 3, 5 @} {@ 2, 3, 5 @} {@ 2, 3, 5 @} {@ 2, 3, 7 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 5 @} P := PolynomialRing(Rationals()); K:=NumberField(x^2+5); O:=RingOfIntegers(K); S:=EllipticCurveSearch(2*3^3*5*O,100); ====================================================================== d=7 Chi:= function(p) if KroneckerSymbol(-11,p) eq -1 then f:=1; else f:=KroneckerSymbol(p,3)*KroneckerSymbol(p,7); if f eq 1 then f:=2; else f:=4; end if; end if; return f; end function; ---------------------------------------------------------------------- G:=DirichletGroup(2^1*3^1*7^2); eps:=Generators(G)[1]*Generators(G)[2]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); for i in [1..#new] do print(DiscardPlace(7,eps,Chi,new,i,13,23)); end for; Cannot discard the form with parameter: 1 [] {@ 2, 7 @} ------------------------------------------------------------------------ G:=DirichletGroup(2^2*3*7^2); eps:=Generators(G)[2]*Generators(G)[3]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); HasCM(new[1]); true -3 for i in [2..#new] do for> print(DiscardPlace(7,eps,Chi,new,i,2,20)); for> end for; {@ 2, 3 @} {@ 2, 3 @} {@ 2, 7 @} ------------------------------------------------------------------------ G:=DirichletGroup(2^2*3^3*7^2); eps:=Generators(G)[2]*Generators(G)[3]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); FormsWithCM(new); [ 1, 2, 3 ] for i in [4..#new] do for> DiscardPlace(7,eps,Chi,new,i,2,20); for> end for; {@ 5, 2, 3 @} {@ 3, 7 @} {@ 2, 7 @} {@ 2, 7 @} ------------------------------------------------------------------------ G:=DirichletGroup(2*3^3*7^2); eps:=Generators(G)[1]*Generators(G)[2]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); for i in [1..#new] do for> DiscardPlace(7,eps,Chi,new,i,2,13); for> end for; Cannot discard the form with parameter: 1 [] Cannot discard the form with parameter: 2 [] Cannot discard the form with parameter: 3 [] {@ 2, 3, 7 @} {@ 2, 7 @} {@ 2, 7 @} ========================================================================================== d=11 Chi:= function(p) if KroneckerSymbol(-11,p) eq -1 then f:=(3-KroneckerSymbol(p,33)) div 2; else f:= 2; end if; return f; end function; eps:=Elements(DirichletGroup(1))[1]; M3:=ModularSymbols(2^2*3^3*11^2,2,1); S3:=NewSubspace(CuspidalSubspace(M3)); new3:=NewformDecomposition(S3); Output: CM3:=FormsWithCM(new3); [ 2, 3, 4, 8, 9, 10, 11, 12, 13, 18, 19 ] for i in [1..#new3] do if i notin CM3 then print(DiscardPlace(11,eps,Chi,new3,i,13,50)); end if; end for; {@ 13, 2, 3 @} {@ 2 @} {@ 2 @} {@ 13, 2, 3 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 3 @} {@ 2, 3 @} {@ 11, 2, 3 @} {@ 3 @} {@ 3 @} {@ 11, 2, 3 @} {@ 3 @} {@ 3 @} {@ 2, 3, 7 @} {@ 2, 3, 5 @} {@ 2, 3, 5 @} {@ 2, 3, 5 @} {@ 3, 19 @} {@ 3, 19 @} {@ @} {@ 11, 5 @} {@ @} {@ 11, 5 @} {@ @} {@ 11 @} {@ @} {@ 11 @} ---------------------------------------------------------------------- M2:=ModularSymbols(2^2*3^2*11^2,2,1); S2:=NewSubspace(CuspidalSubspace(M2)); new2:=NewformDecomposition(S2); eps:=Elements(DirichletGroup(1))[1]; CM2:=FormsWithCM(new2); [ 1, 2, 3, 13, 14, 19 ] for i in [1..#new2] do if i notin CM2 then print(DiscardPlace(11,eps,Chi,new2,i,5,40)); end if; end for; {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2 @} {@ 2 @} Cannot discard the form with parameter: 15 {@ 11 @} {@ 11 @} {@ 11 @} Cannot discard the form with parameter: 20 {@ 11 @} {@ 11 @} {@ 11 @} {@ 2, 3, 5, 7 @} {@ 11, 5 @} {@ 11, 5 @} M:=ModularSymbols(2^2*11^2,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); P1:=PowerSeries(new2[20],100); P2:=PowerSeries(new[4],100); bol,map:=IsIsomorphic(Parent(Coefficient(P1,11)),Parent(Coefficient(P2,11))); [map(Coefficient(P1,g)^2) eq Coefficient(P2,g)^2 : g in PrimesInInterval(7,9\ 9)]; [ true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] ================================================================================================================== d=13 Chi:=function(p) if KroneckerSymbol(-13,p) eq -1 then f:=1; else f:=KroneckerSymbol(-1,p)*KroneckerSymbol(p,3)*KroneckerSymbol(p,13); if f eq 1 then f:=2; else f:=4; end if; end if; return f; end function; G:=DirichletGroup(2^4*3*13^2); eps:=Elements(G)[14]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); CM:=FormsWithCM(new); [ 1, 2, 3, 4, 5, 8, 9 ] for i in [1..27] do if i notin CM then print(DiscardPlace(13,eps,Chi,new,i,5,40)); end if; end for; {@ 2, 13 @} {@ 2, 13 @} {@ 11, 2 @} {@ 11, 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 11, 2 @} {@ 2 @} {@ 11, 2 @} {@ 2, 5, 7 @} {@ 2 @} {@ 2 @} {@ 2, 5 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2, 13 @} {@ 2, 13 @} print(DiscardPlace(13,eps,Chi,new,28,5,10)); {@ 13 @} print(DiscardPlace(13,eps,Chi,new,29,5,10)); {@ 2, 13, 7 @} ------------------------------------------------------------------------------ G:=DirichletGroup(2^4*3^3*13^2); eps:=Elements(G)[14]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); CM:=FormsWithCM(new); [ 1, 2, 3, 4, 5, 6, 7, 8 ] for i in [1..57] do if i notin CM then print(DiscardPlace(13,eps,Chi,new,i,5,40)); end if; end for; {@ 11, 2, 13 @} {@ 11, 23, 2, 13 @} {@ 11, 2, 13 @} {@ 11, 2, 13 @} {@ 11, 2, 13 @} {@ 11, 2, 13 @} {@ 11, 2 @} {@ 11, 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2, 3, 5 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 5, 7 @} {@ 5, 7 @} {@ @} {@ @} {@ @} {@ @} {@ 2 @} {@ 2 @} {@ @} {@ 2 @} {@ @} {@ 2 @} {@ 2 @} {@ 2, 7 @} {@ 2, 7, 29 @} {@ 2, 7 @} {@ 2, 7, 29 @} {@ 2, 13 @} {@ @} {@ 2 @} for i in [58..68] do if i notin CM then print(DiscardPlace(13,eps,Chi,new,i,5,9)); end if; end for; {@ 2, 13, 3, 5, 7 @} {@ 2, 13, 3, 5, 7 @} {@ 2, 7 @} {@ 2, 7 @} {@ 2, 13 @} {@ 13, 7 @} {@ 13, 7 @} {@ 13 @} {@ 13 @} {@ 13, 7 @} {@ 13, 7 @} ================================================================================================================== d=15 order:=function(a) if a eq 1 then f:=1; else if a^2 eq 1 then f:=2; else f:=4; end if; end if; return f; end function; G:=DirichletGroup(2*3^5*5^2,CyclotomicField(4)); eps:=Elements(G)[4]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); Chi:= function(p) G:=DirichletGroup(2*3^5*5^2,CyclotomicField(4)); eps:=Elements(G)[4]; if KroneckerSymbol(-15,p) eq -1 then f:=order(eps(p)*KroneckerSymbol(p,5)); else f:=order(eps(p)*KroneckerSymbol(p,5))*2; end if; return f; end function; > for i in [7..#new] do for> print(DiscardPlace(15,eps,Chi,new,i,5,40)); for> end for; {@ 2, 3 @} {@ 2, 3 @} {@ 2, 3, 7 @} {@ 2, 3, 7 @} {@ 11, 3, 7 @} {@ 3, 5 @} {@ 3, 5 @} {@ 3 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 5 @} {@ 3 @} {@ 3 @} {@ 3 @} {@ @} --------------------------------------------------------------- G:=DirichletGroup(2^2*3^5*5^2,CyclotomicField(4)); eps:=Elements(G)[7]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); Chi:= function(p) G:=DirichletGroup(2^2*3^5*5^2,CyclotomicField(4)); eps:=Elements(G)[7]; if KroneckerSymbol(-15,p) eq -1 then f:=order(eps(p)*KroneckerSymbol(p,5)); else f:=order(eps(p)*KroneckerSymbol(p,5))*2; end if; return f; end function; CM:=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]; > for i in [1..23] do for> if i notin CM then for|if> print(DiscardPlace(15,eps,Chi,new,i,5,40)); for|if> end if; for> end for; {@ 2, 3 @} {@ 11, 2, 3 @} {@ 2, 3 @} {@ 11, 2, 3 @} {@ 2, 3, 7 @} {@ 2, 3, 7 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 3 @} {@ 2, 3, 5 @} > for i in [24..#new] do for> print(DiscardPlace(15,eps,Chi,new,i,5,23)); for> end for; {@ 2, 3 @} {@ 11, 3, 5 @} {@ 2, 3, 7 @} {@ 2, 5 @} {@ 2, 5 @} {@ 2, 5 @} {@ 3 @} {@ 3 @} {@ 3 @} {@ @} =================================================================================== d=17 G:=DirichletGroup(2^4*3^2*17^2,CyclotomicField(16)); eps:=Elements(G)[18]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); ====================================================================================================== d=19 Chi:= function(p) if KroneckerSymbol(-19,p) eq -1 then f:=1; else f:= KroneckerSymbol(p,3)*KroneckerSymbol(p,19); if f eq 1 then f:=2; else f:=4; end if; end if; return f; end function; G:=DirichletGroup(2^2*3*19^2); eps:=Elements(G)[7]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); CM:=FormsWithCM(new); [1,2,7]; for i in [1..#new] do if i notin CM then for|if> print(DiscardPlace(19,eps,Chi,new,i,2,30)); for|if> end if; for> end for; {@ 2 @} {@ 2 @} {@ 2 @} {@ 2 @} {@ 2, 19 @} {@ 3 @} {@ 2, 19 @} ------------------------------------------------------------------------------ G:=DirichletGroup(2^2*3^3*19^2); eps:=Elements(G)[7]; M:=ModularSymbols(eps,2,1); S:=NewSubspace(CuspidalSubspace(M)); new:=NewformDecomposition(S); HasCM(new[1]); true -3 HasCM(new[2]); true -3 for i in [3..6] do for> print(DiscardPlace(19,eps,Chi,new,i,2,50)); for> end for; {@ 2, 7 @} {@ 2, 3, 5 @} {@ 2, 3, 5 @} DiscardPlace(19,eps,Chi,new,6,2,70); {@ 2, 7 @} HasCM(new[7]); true -3 for i in [8..15] do for> print(DiscardPlace(19,eps,Chi,new,i,2,50)); for> end for; {@ 3, 17 @} {@ 3, 17 @} {@ 2, 5 @} {@ @} {@ 3 @} {@ 5 @} {@ 2, 5, 19 @} {@ 3 @} for i in [17..#new] do for> print(DiscardPlace(19,eps,Chi,new,i,2,13)); for> end for; {@ 5 @} {@ 5, 19 @} To discard new[16] we use Pari/GP, since Magma has problems to compute the norm of a big number: Magma: f:=PowerSeries(new[16],40); Write("coef5.txt",Coefficient(f,5)); Write("coef11.txt",Coefficient(f,11)); Write("pol5.txt",Parent(Coefficient(f,5))); > ApCand(19,7); { -3, 0, 3 } > ApCand(19,11); { -6, -3, 0, 3, 6 } Pari/GP: P=read("pol5.txt"); coef5=read("coef5.txt"); coef11=read("coef11.txt"); P=subst(P,x,a); n5=norm(coef5*Mod(1,P))*norm(coef5^2*Mod(1,P)+9); n11=norm(coef11*Mod(1,P))*norm(coef11^2*Mod(1,P)+9)*norm(coef11^2*Mod(1,P)+36); factor(gcd(n5,n11)) [3 60]