/* This code can be loaded, or copied and pasted, into Magma. It will load the data associated to the BMF, including the field, level, and Hecke and Atkin-Lehner eigenvalue data. At the *bottom* of the file, there is code to recreate the Bianchi modular form in Magma, by creating the BMF space and cutting out the corresponding Hecke irreducible subspace. From there, you can ask for more eigenvalues or modify as desired. It is commented out, as this computation may be lengthy. */ P := PolynomialRing(Rationals()); g := P![1, -1, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [3,a+1], [2,2], [7,a+2], [7,a-3], [13,a+3], [13,a-4], [19,a+7], [19,a-8], [5,5], [31,a+5], [31,a-6], [37,a+10], [37,a-11], [43,a+6], [43,a-7], [61,a+13], [61,a-14], [67,a+29], [67,a-30], [73,a+8], [73,a-9], [79,a+23], [79,a-24], [97,a+35], [97,a-36], [103,a+46], [103,a-47], [109,a+45], [109,a-46], [11,11], [127,a+19], [127,a-20], [139,a+42], [139,a-43], [151,a+32], [151,a-33], [157,a+12], [157,a-13], [163,a+58], [163,a-59], [181,a+48], [181,a-49], [193,a+84], [193,a-85], [199,a+92], [199,a-93], [211,a+14], [211,a-15], [223,a+39], [223,a-40], [229,a+94], [229,a-95], [241,a+15], [241,a-16], [271,a+28], [271,a-29], [277,a+116], [277,a-117], [283,a+44], [283,a-45], [17,17], [307,a+17], [307,a-18], [313,a+98], [313,a-99], [331,a+31], [331,a-32], [337,a+128], [337,a-129], [349,a+122], [349,a-123], [367,a+83], [367,a-84], [373,a+88], [373,a-89], [379,a+51], [379,a-52], [397,a+34], [397,a-35], [409,a+53], [409,a-54], [421,a+20], [421,a-21], [433,a+198], [433,a-199], [439,a+171], [439,a-172], [457,a+133], [457,a-134], [463,a+21], [463,a-22], [487,a+232], [487,a-233], [499,a+139], [499,a-140], [523,a+60], [523,a-61], [23,23], [541,a+129], [541,a-130], [547,a+40], [547,a-41], [571,a+109], [571,a-110], [577,a+213], [577,a-214], [601,a+24], [601,a-25], [607,a+210], [607,a-211], [613,a+65], [613,a-66], [619,a+252], [619,a-253], [631,a+43], [631,a-44], [643,a+177], [643,a-178], [661,a+296], [661,a-297], [673,a+255], [673,a-256], [691,a+253], [691,a-254], [709,a+227], [709,a-228], [727,a+281], [727,a-282], [733,a+307], [733,a-308], [739,a+320], [739,a-321], [751,a+72], [751,a-73], [757,a+27], [757,a-28], [769,a+360], [769,a-361], [787,a+379], [787,a-380], [811,a+130], [811,a-131], [823,a+174], [823,a-175], [829,a+125], [829,a-126], [29,29], [853,a+220], [853,a-221], [859,a+260], [859,a-261], [877,a+282], [877,a-283], [883,a+337], [883,a-338], [907,a+384], [907,a-385], [919,a+52], [919,a-53], [937,a+322], [937,a-323], [967,a+142], [967,a-143], [991,a+113], [991,a-114], [997,a+304], [997,a-305], [1009,a+374], [1009,a-375], [1021,a+368], [1021,a-369], [1033,a+195], [1033,a-196], [1039,a+140], [1039,a-141], [1051,a+180], [1051,a-181], [1063,a+343], [1063,a-344], [1069,a+86], [1069,a-87], [1087,a+257], [1087,a-258], [1093,a+151], [1093,a-152], [1117,a+120], [1117,a-121], [1123,a+33], [1123,a-34], [1129,a+387], [1129,a-388], [1153,a+502], [1153,a-503], [1171,a+420], [1171,a-421], [1201,a+570], [1201,a-571], [1213,a+217], [1213,a-218], [1231,a+126], [1231,a-127], [1237,a+300], [1237,a-301], [1249,a+93], [1249,a-94], [1279,a+504], [1279,a-505], [1291,a+346], [1291,a-347], [1297,a+365], [1297,a-366], [1303,a+95], [1303,a-96], [1321,a+297], [1321,a-298], [1327,a+347], [1327,a-348], [1381,a+354], [1381,a-355], [1399,a+390], [1399,a-391], [1423,a+643], [1423,a-644], [1429,a+664], [1429,a-665], [1447,a+704], [1447,a-705], [1453,a+693], [1453,a-694], [1459,a+339], [1459,a-340], [1471,a+251], [1471,a-252], [1483,a+38], [1483,a-39], [1489,a+483], [1489,a-484], [1531,a+646], [1531,a-647], [1543,a+681], [1543,a-682], [1549,a+275], [1549,a-276], [1567,a+535], [1567,a-536], [1579,a+639], [1579,a-640], [1597,a+222], [1597,a-223], [1609,a+250], [1609,a-251], [1621,a+184], [1621,a-185], [1627,a+264], [1627,a-265], [1657,a+70], [1657,a-71], [1663,a+318], [1663,a-319], [1669,a+248], [1669,a-249], [41,41], [1693,a+433], [1693,a-434], [1699,a+397], [1699,a-398], [1723,a+41], [1723,a-42], [1741,a+356], [1741,a-357], [1747,a+371], [1747,a-372], [1753,a+182], [1753,a-183], [1759,a+508], [1759,a-509], [1777,a+629], [1777,a-630], [1783,a+193], [1783,a-194], [1789,a+152], [1789,a-153], [1801,a+73], [1801,a-74], [1831,a+672], [1831,a-673], [1861,a+454], [1861,a-455], [1867,a+834], [1867,a-835], [1873,a+114], [1873,a-115], [1879,a+488], [1879,a-489], [1933,a+591], [1933,a-592], [1951,a+76], [1951,a-77], [1987,a+647], [1987,a-648], [1993,a+312], [1993,a-313], [1999,a+808], [1999,a-809], [2011,a+205], [2011,a-206], [2017,a+294], [2017,a-295], [2029,a+975], [2029,a-976], [2053,a+197], [2053,a-198], [2083,a+449], [2083,a-450], [2089,a+826], [2089,a-827], [2113,a+438], [2113,a-439], [2131,a+468], [2131,a-469], [2137,a+201], [2137,a-202], [2143,a+349], [2143,a-350], [2161,a+593], [2161,a-594], [2179,a+123], [2179,a-124], [2203,a+285], [2203,a-286], [47,47], [2221,a+543], [2221,a-544], [2239,a+295], [2239,a-296], [2251,a+708], [2251,a-709], [2269,a+82], [2269,a-83], [2281,a+663], [2281,a-664], [2287,a+804], [2287,a-805], [2293,a+989], [2293,a-990], [2311,a+882], [2311,a-883], [2341,a+1106], [2341,a-1107], [2347,a+1062], [2347,a-1063], [2371,a+464], [2371,a-465], [2377,a+721], [2377,a-722], [2383,a+1103], [2383,a-1104], [2389,a+689], [2389,a-690], [2437,a+85], [2437,a-86], [2467,a+216], [2467,a-217], [2473,a+1015], [2473,a-1016], [2503,a+1226], [2503,a-1227], [2521,a+675], [2521,a-676], [2539,a+306], [2539,a-307], [2551,a+50], [2551,a-51], [2557,a+835], [2557,a-836], [2593,a+1137], [2593,a-1138], [2617,a+1064], [2617,a-1065], [2647,a+185], [2647,a-186], [2659,a+903], [2659,a-904], [2671,a+544], [2671,a-545], [2677,a+1033], [2677,a-1034], [2683,a+636], [2683,a-637], [2689,a+391], [2689,a-392], [2707,a+1327], [2707,a-1328], [2713,a+1211], [2713,a-1212], [2719,a+1265], [2719,a-1266], [2731,a+446], [2731,a-447], [2749,a+595], [2749,a-596], [2767,a+328], [2767,a-329], [2791,a+91], [2791,a-92], [2797,a+1100], [2797,a-1101], [2803,a+413], [2803,a-414], [53,53], [2833,a+1300], [2833,a-1301], [2851,a+1014], [2851,a-1015], [2857,a+350], [2857,a-351], [2887,a+698], [2887,a-699], [2917,a+247], [2917,a-248], [2953,a+800], [2953,a-801], [2971,a+54], [2971,a-55], [3001,a+934], [3001,a-935], [3019,a+239], [3019,a-240], [3037,a+745], [3037,a-746], [3049,a+532], [3049,a-533], [3061,a+561], [3061,a-562], [3067,a+973], [3067,a-974], [3079,a+546], [3079,a-547], [3109,a+1085], [3109,a-1086], [3121,a+1121], [3121,a-1122], [3163,a+536], [3163,a-537], [3169,a+97], [3169,a-98], [3181,a+440], [3181,a-441], [3187,a+1315], [3187,a-1316], [3217,a+204], [3217,a-205], [3229,a+914], [3229,a-915], [3253,a+1439], [3253,a-1440], [3259,a+852], [3259,a-853], [3271,a+842], [3271,a-843], [3301,a+1574], [3301,a-1575], [3307,a+57], [3307,a-58], [3313,a+1123], [3313,a-1124], [3319,a+1527], [3319,a-1528], [3331,a+1463], [3331,a-1464], [3343,a+1424], [3343,a-1425], [3361,a+892], [3361,a-893], [3373,a+654], [3373,a-655], [3391,a+555], [3391,a-556], [3433,a+268], [3433,a-269], [3457,a+722], [3457,a-723], [3463,a+367], [3463,a-368], [3469,a+1683], [3469,a-1684], [59,59], [3499,a+156], [3499,a-157], [3511,a+756], [3511,a-757], [3517,a+258], [3517,a-259], [3529,a+448], [3529,a-449], [3541,a+59], [3541,a-60], [3547,a+1162], [3547,a-1163], [3559,a+1435]]; primes := [ideal : I in primesArray]; heckePol := x; K := Rationals(); e := 1; heckeEigenvaluesList := [* -2, -2, -1, -1, 0, -5, 0, -3, -5, -1, 9, -4, -5, -2, 3, 4, -8, -1, 14, -7, -2, -13, -11, 0, -5, -2, -18, -7, -12, -19, -19, -6, -13, 7, 6, -4, -20, 9, 10, 3, -21, -17, -8, -12, 3, 9, 6, -8, -5, -3, 1, 9, -1, 9, 21, 27, -9, 15, 3, 17, 19, 11, -16, -7, 0, -19, -17, -20, -11, -9, -7, 5, 5, -25, -2, -22, -1, 35, -25, -17, 13, -33, 24, 18, -20, 21, 23, -21, 4, 2, -22, 19, -25, 27, -32, 5, 40, 11, 21, -13, -25, 9, 23, 43, -44, -16, 21, -16, -6, -5, -47, -25, 17, -17, 4, -34, 27, 33, 4, -1, 8, -7, 1, 22, 12, -32, 51, -21, 13, 7, 13, -19, -26, 11, 9, 21, -23, 28, 51, 5, 18, 41, -12, -10, -17, 32, -23, 35, 47, 22, 7, -40, -45, -35, -27, -24, -34, -6, 23, -16, 1, -11, -30, -39, -11, 1, 19, -4, 47, 7, -8, -25, -43, 22, -37, -49, -26, 50, -43, -52, -32, 49, 35, -52, 25, -44, -59, 18, -45, 52, 7, -35, 43, 1, -11, -3, 6, 17, 27, 31, -23, 69, 41, -49, -67, -33, 68, 38, 19, 1, 35, -2, 65, 31, 18, -14, -21, -3, -47, -3, 37, -13, 23, 64, 23, 20, 35, -47, 68, 1, -16, 59, 57, -13, -53, -33, -31, -1, 27, -17, -13, 33, -47, 25, 29, 31, 51, 56, 41, 8, 17, 49, -23, -26, -15, 29, 35, -78, -55, -32, 17, 44, 32, -28, -13, 8, 45, -77, -68, -12, 11, -29, -68, 62, -29, -63, 44, 70, -13, -5, 8, 53, 13, 11, 51, 9, 27, -1, 15, 79, -8, -68, 17, 53, -13, 23, 7, -69, 1, -14, -27, -32, -31, 54, 11, -49, -56, 6, 33, 12, -73, -13, -3, -30, -72, -73, 32, 32, 49, -14, -71, 25, 37, -38, -61, -39, 6, 17, 73, -58, -73, -73, 41, -17, -67, 6, 59, 47, -4, -16, -69, -25, -5, 17, -35, 54, 71, -78, -61, -14, 10, -59, -7, -41, -5, -83, 82, -8, 24, 9, -29, 65, -11, 35, 7, 50, -5, -74, 67, -46, 67, -83, -91, 26, 79, -43, 65, 55, -25, 11, 51, -87, 49, 86, 49, -66, 5, -58, -35, 97, -28, 66, 91, -67, 93, 11, -93, -33, -14, 3, -17, -35, -34, -49, -29, 16, -1, -18, -67, -37, 17, 37, -18, 99, -49, -46, 61, -71, 71, -30, 72, -97, -48, 91, 91, -49, -23, -49, -24, 85, -44, -62, -34, -59, 26, -26, 47, -67, 72, -39, -109, 61, -77, 55, -53, 83, -52, 49, -75, -69, 40, 96, -23, 57, -68, -53, -37, -103, 33, 86, -47, 79, 71, -11, 67, -80, -91, 87, 97, 37, -13, -100, -51, 36, 80, 68, -46, 41, -52, 43, -19, 19, -82, -107, -83, 89, -37, -97, 9, 94, -17, -79, 71, 8, 33, -9, 59, 79, 34, -13 *]; heckeEigenvalues := AssociativeArray(); for i in [1..#heckeEigenvaluesList] do heckeEigenvalues[primes[i]] := heckeEigenvaluesList[i]; end for; ALEigenvalues := AssociativeArray(); ALEigenvalues[ideal] := 1; ALEigenvalues[ideal] := -1; // EXAMPLE: // pp := Factorization(2*ZF)[1][1]; // heckeEigenvalues[pp]; print "To reconstruct the Bianchi newform f, type f, iso := Explode(make_newform());"; function make_newform(); M := BianchiCuspForms(F, NN); S := NewSubspace(M); // SetVerbose("Bianchi", 1); NFD := NewformDecomposition(S); newforms := [* Eigenform(U) : U in NFD *]; if #newforms eq 0 then; print "No Bianchi newforms at this level"; return 0; end if; print "Testing ", #newforms, " possible newforms"; newforms := [* f: f in newforms | IsIsomorphic(BaseField(f), K) *]; print #newforms, " newforms have the correct Hecke field"; if #newforms eq 0 then; print "No Bianchi newform found with the correct Hecke field"; return 0; end if; autos := Automorphisms(K); xnewforms := [* *]; for f in newforms do; if K eq RationalField() then; Append(~xnewforms, [* f, autos[1] *]); else; flag, iso := IsIsomorphic(K,BaseField(f)); for a in autos do; Append(~xnewforms, [* f, a*iso *]); end for; end if; end for; newforms := xnewforms; for P in primes do; if Valuation(NN,P) eq 0 then; xnewforms := [* *]; for f_iso in newforms do; f, iso := Explode(f_iso); if HeckeEigenvalue(f,P) eq iso(heckeEigenvalues[P]) then; Append(~xnewforms, f_iso); end if; end for; newforms := xnewforms; if #newforms eq 0 then; print "No Bianchi newform found which matches the Hecke eigenvalues"; return 0; else if #newforms eq 1 then; print "success: unique match"; return newforms[1]; end if; end if; end if; end for; print #newforms, "Bianchi newforms found which match the Hecke eigenvalues"; return newforms[1]; end function;