/* This code can be loaded, or copied and pasted, into Magma. It will load the data associated to the HMF, including the field, level, and Hecke and Atkin-Lehner eigenvalue data. At the *bottom* of the file, there is code to recreate the Hilbert modular form in Magma, by creating the HMF 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![41, 13, -12, -2, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [9, 3, -w^3 + 3*w^2 + 5*w - 15], [9, 3, -w^3 + 8*w + 8], [16, 2, 2], [19, 19, w + 1], [19, 19, -w^2 + 6], [19, 19, -w^2 + 2*w + 5], [19, 19, -w + 2], [25, 5, 2*w^2 - 2*w - 13], [29, 29, -w^2 + 9], [29, 29, -w^2 + 2*w + 6], [29, 29, w^2 - 7], [29, 29, -w^2 + 2*w + 8], [31, 31, -2*w^2 + w + 12], [31, 31, 2*w^2 - 3*w - 11], [41, 41, -w], [41, 41, -w + 1], [49, 7, w^3 + 2*w^2 - 10*w - 20], [49, 7, w^3 - 5*w^2 - 3*w + 27], [61, 61, 2*w^2 - 3*w - 14], [61, 61, 2*w^2 - w - 15], [71, 71, -w^3 + w^2 + 7*w - 5], [71, 71, w^3 - 2*w^2 - 6*w + 2], [79, 79, w^3 - 2*w^2 - 6*w + 4], [79, 79, 3*w^2 - 2*w - 18], [89, 89, 2*w^3 - 6*w^2 - 11*w + 33], [89, 89, -4*w^2 + 3*w + 25], [101, 101, w^3 + w^2 - 9*w - 12], [101, 101, w^3 - 4*w^2 - 4*w + 19], [109, 109, -w^3 + 3*w^2 + 6*w - 19], [109, 109, -2*w^2 + w + 18], [121, 11, -3*w^2 + 3*w + 19], [121, 11, 3*w^2 - 3*w - 20], [131, 131, 2*w^2 - 3*w - 15], [131, 131, 2*w^2 - w - 16], [139, 139, 3*w^2 - 4*w - 21], [139, 139, -w^3 - w^2 + 7*w + 13], [151, 151, 4*w^2 - 3*w - 27], [151, 151, 2*w^3 - w^2 - 13*w - 8], [151, 151, w^3 + 3*w^2 - 13*w - 27], [151, 151, 4*w^2 - 5*w - 26], [179, 179, w^3 - 3*w^2 - 5*w + 11], [179, 179, 3*w^3 - 11*w^2 - 14*w + 61], [179, 179, 2*w^3 - 2*w^2 - 12*w + 3], [179, 179, w^3 - 8*w - 4], [181, 181, -w - 4], [181, 181, w^3 - 5*w^2 - 3*w + 25], [181, 181, w^3 + 2*w^2 - 10*w - 18], [181, 181, w - 5], [229, 229, w^2 - 2*w - 11], [229, 229, w^2 - 12], [239, 239, 6*w^2 - 7*w - 42], [239, 239, 2*w^3 - 2*w^2 - 14*w - 3], [241, 241, w^3 - 4*w^2 - 4*w + 18], [241, 241, 3*w^2 - 2*w - 16], [269, 269, 3*w^2 - 4*w - 22], [269, 269, -w^3 + 6*w + 8], [281, 281, w^3 - w^2 - 9*w + 4], [281, 281, 2*w^3 - 9*w^2 - 8*w + 49], [311, 311, -2*w^3 - w^2 + 17*w + 19], [311, 311, 2*w^3 - 7*w^2 - 9*w + 33], [331, 331, w^3 + 2*w^2 - 9*w - 21], [331, 331, w^3 - 5*w^2 - 2*w + 27], [349, 349, 2*w^3 - w^2 - 15*w - 4], [349, 349, -2*w^3 + 5*w^2 + 11*w - 18], [359, 359, -w^3 + 6*w^2 - 31], [359, 359, -w^3 - 3*w^2 + 9*w + 26], [379, 379, 2*w^3 - 5*w^2 - 11*w + 20], [379, 379, 2*w^3 - 14*w - 11], [401, 401, w^3 - 3*w^2 - 4*w + 16], [401, 401, -2*w^3 + 4*w^2 + 11*w - 16], [401, 401, 2*w^3 - 2*w^2 - 13*w - 3], [401, 401, w^3 - 7*w - 10], [409, 409, w^3 - 4*w^2 - 4*w + 17], [409, 409, 2*w^3 - 6*w^2 - 9*w + 22], [409, 409, -2*w^3 + 15*w + 9], [409, 409, -w^3 + 3*w^2 + 6*w - 12], [419, 419, -w^3 + 5*w^2 + 3*w - 24], [419, 419, w^3 + 2*w^2 - 10*w - 17], [421, 421, w^3 + 3*w^2 - 12*w - 25], [421, 421, -w^3 - w^2 + 9*w + 7], [431, 431, -w^3 - 2*w^2 + 12*w + 20], [431, 431, w^3 + 3*w^2 - 10*w - 28], [431, 431, -w^3 + 6*w^2 + w - 34], [431, 431, -w^3 + 5*w^2 + 5*w - 29], [439, 439, w^3 - 7*w^2 - 2*w + 39], [439, 439, w^3 + 4*w^2 - 13*w - 31], [449, 449, -w^3 - 4*w^2 + 13*w + 34], [449, 449, 6*w^2 - 5*w - 36], [461, 461, -w^3 + 5*w^2 + w - 25], [461, 461, 2*w^3 - 15*w - 12], [461, 461, -2*w^3 + 6*w^2 + 9*w - 25], [461, 461, w^3 + 2*w^2 - 8*w - 20], [479, 479, -w^3 - 4*w^2 + 12*w + 31], [479, 479, 2*w^3 - 15*w - 16], [479, 479, -2*w^3 + 6*w^2 + 9*w - 29], [479, 479, w^3 - 7*w^2 - w + 38], [491, 491, w^2 - 3*w - 7], [491, 491, -2*w^3 + 3*w^2 + 11*w - 2], [491, 491, 4*w^2 - 2*w - 29], [491, 491, w^2 + w - 9], [499, 499, 5*w^2 - 6*w - 33], [499, 499, 5*w^2 - 4*w - 34], [509, 509, 2*w - 3], [509, 509, -2*w - 1], [541, 541, -w^3 - 4*w^2 + 12*w + 29], [541, 541, -w^3 + 7*w^2 + w - 36], [599, 599, -w^3 - w^2 + 8*w + 7], [599, 599, w^3 - 4*w^2 - 3*w + 13], [619, 619, w^2 - 3*w - 6], [619, 619, w^2 + w - 8], [641, 641, -2*w^3 + 16*w + 11], [641, 641, -2*w^3 + 6*w^2 + 10*w - 25], [659, 659, 2*w^3 + w^2 - 16*w - 16], [659, 659, 2*w^3 - 7*w^2 - 8*w + 29], [691, 691, -w^3 + 5*w^2 + 3*w - 23], [691, 691, -w^3 + 3*w^2 + 6*w - 11], [701, 701, w^3 - w^2 - 9*w + 3], [701, 701, 2*w^3 - w^2 - 14*w - 5], [709, 709, 2*w^3 - 3*w^2 - 11*w + 6], [719, 719, w^2 - 2*w - 12], [719, 719, -w^2 + 13], [739, 739, -2*w^3 + 8*w^2 + 7*w - 36], [739, 739, w^2 + 2*w - 13], [751, 751, -2*w^3 + 5*w^2 + 10*w - 20], [751, 751, 2*w^3 - w^2 - 14*w - 7], [761, 761, w^3 + 4*w^2 - 12*w - 32], [761, 761, -w^3 + 7*w^2 + w - 39], [769, 769, -2*w^3 - 4*w^2 + 23*w + 45], [769, 769, 2*w^3 - 5*w^2 - 9*w + 21], [769, 769, 2*w^3 + 2*w^2 - 18*w - 31], [769, 769, 2*w^3 - 10*w^2 - 9*w + 62], [811, 811, -w^3 + 10*w + 5], [811, 811, -5*w^2 + 8*w + 30], [811, 811, w^3 - 8*w^2 + 2*w + 43], [811, 811, 2*w^3 - 2*w^2 - 13*w + 2], [829, 829, -2*w^3 - 2*w^2 + 18*w + 25], [829, 829, -2*w^3 + 8*w^2 + 8*w - 39], [859, 859, -w^3 - 4*w^2 + 12*w + 33], [859, 859, -w^3 + 7*w^2 + w - 40], [919, 919, w^3 - 4*w^2 - 3*w + 24], [919, 919, -w^3 + 5*w^2 + w - 26], [929, 929, 5*w^2 - 7*w - 28], [929, 929, -w^3 + 2*w^2 + 6*w - 13], [929, 929, w^3 - w^2 - 7*w - 6], [929, 929, -2*w^3 + 2*w^2 + 14*w - 5], [941, 941, -2*w^3 + 3*w^2 + 11*w - 1], [941, 941, 2*w^3 - 3*w^2 - 11*w + 11], [961, 31, 5*w^2 - 5*w - 33], [971, 971, -w^3 - 3*w^2 + 11*w + 22], [971, 971, 7*w^2 - 5*w - 45], [971, 971, 7*w^2 - 9*w - 43], [971, 971, w^3 - 6*w^2 - 2*w + 29], [991, 991, w^3 - 3*w^2 - 3*w + 15], [991, 991, -w^3 + 5*w^2 + 2*w - 29]]; primes := [ideal : I in primesArray]; heckePol := x^5 + 4*x^4 - x^3 - 16*x^2 - 14*x - 1; K := NumberField(heckePol); heckeEigenvaluesArray := [1, e, 9*e^4 + 23*e^3 - 42*e^2 - 84*e - 8, 4*e^4 + 9*e^3 - 22*e^2 - 33*e + 5, 6*e^4 + 17*e^3 - 25*e^2 - 64*e - 12, e^4 + 2*e^3 - 6*e^2 - 7*e + 4, -5*e^4 - 12*e^3 + 25*e^2 + 43*e - 4, 2*e^4 + 5*e^3 - 10*e^2 - 17*e + 1, -e^4 - 3*e^3 + 2*e^2 + 8*e + 8, 10*e^4 + 26*e^3 - 45*e^2 - 93*e - 13, -3*e^4 - 7*e^3 + 15*e^2 + 23*e - 5, -8*e^4 - 21*e^3 + 37*e^2 + 78*e + 3, -11*e^4 - 28*e^3 + 53*e^2 + 102*e - 1, -4*e^4 - 9*e^3 + 22*e^2 + 29*e - 7, -8*e^4 - 22*e^3 + 34*e^2 + 84*e + 17, -5*e^4 - 13*e^3 + 24*e^2 + 46*e - 4, 8*e^4 + 21*e^3 - 37*e^2 - 74*e - 3, -7*e^4 - 21*e^3 + 28*e^2 + 82*e + 19, -6*e^4 - 16*e^3 + 25*e^2 + 57*e + 5, e^3 + 4*e^2 - 2*e - 13, -9*e^4 - 25*e^3 + 38*e^2 + 90*e + 19, 5*e^4 + 12*e^3 - 24*e^2 - 45*e - 9, -10*e^4 - 23*e^3 + 51*e^2 + 79*e - 4, -e^4 - 2*e^3 + 8*e^2 + 10*e - 12, -24*e^4 - 61*e^3 + 115*e^2 + 226*e + 12, 21*e^4 + 55*e^3 - 98*e^2 - 199*e - 9, -18*e^4 - 48*e^3 + 80*e^2 + 177*e + 20, 8*e^4 + 19*e^3 - 40*e^2 - 65*e + 10, 20*e^4 + 56*e^3 - 85*e^2 - 205*e - 31, 2*e^4 + 4*e^3 - 13*e^2 - 16*e + 3, -25*e^4 - 64*e^3 + 117*e^2 + 229*e + 9, -4*e^4 - 13*e^3 + 13*e^2 + 53*e + 16, 4*e^4 + 8*e^3 - 24*e^2 - 25*e + 11, 3*e^4 + 8*e^3 - 14*e^2 - 30*e + 1, -6*e^4 - 16*e^3 + 28*e^2 + 60*e - 2, -28*e^4 - 71*e^3 + 135*e^2 + 260*e + 11, -20*e^4 - 51*e^3 + 97*e^2 + 187*e + 8, 6*e^4 + 15*e^3 - 29*e^2 - 53*e - 9, -34*e^4 - 90*e^3 + 154*e^2 + 323*e + 33, 14*e^4 + 37*e^3 - 64*e^2 - 140*e - 16, -22*e^4 - 59*e^3 + 96*e^2 + 214*e + 36, 16*e^4 + 42*e^3 - 72*e^2 - 145*e - 15, -34*e^4 - 86*e^3 + 160*e^2 + 310*e + 10, 40*e^4 + 105*e^3 - 182*e^2 - 382*e - 36, 27*e^4 + 69*e^3 - 129*e^2 - 252*e - 14, -31*e^4 - 81*e^3 + 141*e^2 + 296*e + 32, 17*e^4 + 43*e^3 - 82*e^2 - 157*e - 16, -4*e^4 - 12*e^3 + 14*e^2 + 43*e + 11, -21*e^4 - 53*e^3 + 102*e^2 + 195*e + 6, 2*e^4 + 6*e^3 - 7*e^2 - 25*e - 17, 36*e^4 + 93*e^3 - 171*e^2 - 337*e - 8, 6*e^4 + 20*e^3 - 22*e^2 - 86*e - 23, 45*e^4 + 117*e^3 - 207*e^2 - 433*e - 45, 36*e^4 + 94*e^3 - 169*e^2 - 342*e - 22, 42*e^4 + 109*e^3 - 196*e^2 - 403*e - 38, 41*e^4 + 108*e^3 - 186*e^2 - 398*e - 54, -15*e^4 - 39*e^3 + 74*e^2 + 146*e - 1, -39*e^4 - 102*e^3 + 181*e^2 + 380*e + 39, -22*e^4 - 59*e^3 + 95*e^2 + 214*e + 25, 4*e^4 + 8*e^3 - 25*e^2 - 28*e + 15, -39*e^4 - 102*e^3 + 185*e^2 + 373*e + 8, 12*e^4 + 35*e^3 - 46*e^2 - 133*e - 34, 13*e^4 + 37*e^3 - 57*e^2 - 144*e - 29, 19*e^4 + 53*e^3 - 82*e^2 - 201*e - 26, 27*e^4 + 67*e^3 - 135*e^2 - 242*e + 7, 20*e^4 + 50*e^3 - 96*e^2 - 175*e - 9, 37*e^4 + 98*e^3 - 171*e^2 - 366*e - 35, 26*e^4 + 72*e^3 - 111*e^2 - 275*e - 50, -33*e^4 - 90*e^3 + 144*e^2 + 335*e + 58, 8*e^4 + 20*e^3 - 34*e^2 - 68*e - 28, 7*e^4 + 18*e^3 - 36*e^2 - 74*e + 1, 40*e^4 + 105*e^3 - 181*e^2 - 387*e - 60, -27*e^4 - 70*e^3 + 129*e^2 + 254*e - 6, 54*e^4 + 143*e^3 - 240*e^2 - 516*e - 66, -12*e^4 - 31*e^3 + 54*e^2 + 118*e + 8, 29*e^4 + 72*e^3 - 140*e^2 - 257*e - 9, -6*e^4 - 13*e^3 + 30*e^2 + 29*e + 1, -16*e^4 - 42*e^3 + 75*e^2 + 158*e - 5, 45*e^4 + 118*e^3 - 210*e^2 - 441*e - 40, 17*e^4 + 48*e^3 - 75*e^2 - 180*e - 11, -44*e^4 - 115*e^3 + 207*e^2 + 429*e + 28, 10*e^4 + 26*e^3 - 48*e^2 - 104*e - 12, -54*e^4 - 133*e^3 + 264*e^2 + 480*e + 2, 14*e^4 + 30*e^3 - 73*e^2 - 96*e + 9, -3*e^4 - 16*e^3 - 2*e^2 + 65*e + 38, -34*e^4 - 89*e^3 + 151*e^2 + 322*e + 50, 8*e^4 + 17*e^3 - 47*e^2 - 55*e + 36, 62*e^4 + 162*e^3 - 283*e^2 - 592*e - 50, 34*e^4 + 90*e^3 - 149*e^2 - 333*e - 57, 17*e^4 + 46*e^3 - 77*e^2 - 180*e - 38, 16*e^4 + 39*e^3 - 79*e^2 - 139*e - 9, -4*e^4 - 9*e^3 + 19*e^2 + 37*e + 7, 18*e^4 + 40*e^3 - 92*e^2 - 132*e + 14, -30*e^4 - 77*e^3 + 144*e^2 + 276*e - 4, -68*e^4 - 179*e^3 + 310*e^2 + 648*e + 69, 39*e^4 + 101*e^3 - 182*e^2 - 371*e - 27, 36*e^4 + 92*e^3 - 166*e^2 - 319*e - 24, -61*e^4 - 152*e^3 + 292*e^2 + 545*e + 9, -31*e^4 - 83*e^3 + 133*e^2 + 293*e + 51, 49*e^4 + 129*e^3 - 222*e^2 - 465*e - 55, -33*e^4 - 87*e^3 + 156*e^2 + 333*e + 23, 41*e^4 + 109*e^3 - 186*e^2 - 417*e - 55, 3*e^4 + 10*e^3 - 27*e - 41, -36*e^4 - 92*e^3 + 171*e^2 + 344*e + 29, -6*e^4 - 19*e^3 + 30*e^2 + 85*e - 6, 20*e^4 + 56*e^3 - 88*e^2 - 207*e - 15, 27*e^4 + 69*e^3 - 120*e^2 - 237*e - 30, 29*e^4 + 76*e^3 - 132*e^2 - 281*e - 22, 14*e^4 + 41*e^3 - 55*e^2 - 147*e - 23, -10*e^4 - 23*e^3 + 50*e^2 + 75*e - 22, -51*e^4 - 137*e^3 + 224*e^2 + 502*e + 52, 44*e^4 + 113*e^3 - 204*e^2 - 417*e - 56, -68*e^4 - 175*e^3 + 312*e^2 + 630*e + 46, -82*e^4 - 219*e^3 + 371*e^2 + 812*e + 109, -15*e^4 - 43*e^3 + 65*e^2 + 158*e + 25, 8*e^4 + 19*e^3 - 37*e^2 - 68*e - 14, -3*e^4 - 13*e^3 + 6*e^2 + 54*e + 26, -70*e^4 - 184*e^3 + 322*e^2 + 674*e + 57, 34*e^4 + 87*e^3 - 169*e^2 - 325*e + 5, 27*e^4 + 70*e^3 - 132*e^2 - 252*e + 5, 52*e^4 + 141*e^3 - 234*e^2 - 522*e - 55, -8*e^4 - 19*e^3 + 32*e^2 + 67*e + 36, 93*e^4 + 244*e^3 - 423*e^2 - 902*e - 110, 9*e^4 + 24*e^3 - 46*e^2 - 100*e - 6, -13*e^4 - 43*e^3 + 47*e^2 + 168*e + 43, 59*e^4 + 154*e^3 - 269*e^2 - 561*e - 45, -29*e^4 - 77*e^3 + 132*e^2 + 290*e + 60, -17*e^4 - 41*e^3 + 87*e^2 + 140*e - 21, 79*e^4 + 204*e^3 - 364*e^2 - 749*e - 67, 76*e^4 + 195*e^3 - 355*e^2 - 702*e - 36, 9*e^4 + 27*e^3 - 39*e^2 - 99*e - 8, 5*e^3 + 13*e^2 - 37*e - 38, -5*e^4 - 10*e^3 + 35*e^2 + 42*e - 27, 70*e^4 + 186*e^3 - 311*e^2 - 675*e - 69, 51*e^4 + 131*e^3 - 238*e^2 - 473*e - 11, 52*e^4 + 139*e^3 - 233*e^2 - 507*e - 47, 89*e^4 + 229*e^3 - 411*e^2 - 830*e - 60, -48*e^4 - 125*e^3 + 226*e^2 + 469*e + 41, -17*e^4 - 45*e^3 + 71*e^2 + 166*e + 31, 39*e^4 + 108*e^3 - 166*e^2 - 408*e - 57, e^4 + 2*e^3 + 5*e^2 + e - 25, -10*e^4 - 23*e^3 + 51*e^2 + 79*e - 27, -13*e^4 - 23*e^3 + 73*e^2 + 56*e - 43, -26*e^4 - 60*e^3 + 132*e^2 + 215*e + 11, -7*e^4 - 20*e^3 + 25*e^2 + 67*e + 44, 18*e^4 + 47*e^3 - 86*e^2 - 181*e - 23, 26*e^4 + 67*e^3 - 128*e^2 - 249*e - 13, -44*e^4 - 106*e^3 + 221*e^2 + 376*e - 15, 16*e^4 + 37*e^3 - 87*e^2 - 126*e + 43, -3*e^4 - 6*e^3 + 23*e^2 + 28*e - 9, -15*e^4 - 43*e^3 + 63*e^2 + 151*e + 6, -17*e^4 - 39*e^3 + 87*e^2 + 140*e + 27, -13*e^4 - 34*e^3 + 60*e^2 + 103*e - 3, -72*e^4 - 179*e^3 + 348*e^2 + 643*e + 6]; heckeEigenvalues := AssociativeArray(); for i := 1 to #heckeEigenvaluesArray do heckeEigenvalues[primes[i]] := heckeEigenvaluesArray[i]; end for; ALEigenvalues := AssociativeArray(); ALEigenvalues[ideal] := -1; // EXAMPLE: // pp := Factorization(2*ZF)[1][1]; // heckeEigenvalues[pp]; print "To reconstruct the Hilbert newform f, type f, iso := Explode(make_newform());"; function make_newform(); M := HilbertCuspForms(F, NN); S := NewSubspace(M); // SetVerbose("ModFrmHil", 1); NFD := NewformDecomposition(S); newforms := [* Eigenform(U) : U in NFD *]; if #newforms eq 0 then; print "No Hilbert 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 Hilbert 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; 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 Hilbert 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 for; print #newforms, "Hilbert newforms found which match the Hecke eigenvalues"; return newforms[1]; end function;