/* 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![5, -1, -7, -1, 1]; F := NumberField(g); ZF := Integers(F); NN := ideal; primesArray := [ [3, 3, -w^3 + 2*w^2 + 5*w - 3], [5, 5, w], [7, 7, -w^3 + 2*w^2 + 4*w - 3], [13, 13, -w^2 + w + 4], [13, 13, -w^3 + 2*w^2 + 5*w - 2], [16, 2, 2], [17, 17, -w + 2], [19, 19, -w^3 + 2*w^2 + 3*w - 2], [27, 3, w^3 - 3*w^2 - 4*w + 7], [31, 31, w^3 - 3*w^2 - 3*w + 7], [31, 31, -w^3 + w^2 + 6*w + 1], [41, 41, w^2 - w - 1], [43, 43, 2*w^3 - 5*w^2 - 6*w + 4], [47, 47, -w^3 + 2*w^2 + 5*w - 1], [53, 53, -w - 3], [53, 53, -w^3 + 3*w^2 + 3*w - 6], [59, 59, 2*w^2 - 3*w - 6], [59, 59, w^3 - w^2 - 7*w - 3], [79, 79, 2*w^3 - 4*w^2 - 8*w + 3], [79, 79, w^2 - 2*w - 1], [101, 101, 2*w^3 - 4*w^2 - 9*w + 4], [103, 103, -w^3 + 3*w^2 + 4*w - 2], [103, 103, w^2 - 3*w - 2], [107, 107, -w^3 + w^2 + 5*w - 1], [109, 109, -w^3 + 2*w^2 + 4*w - 6], [121, 11, -w^3 + 2*w^2 + 6*w - 3], [121, 11, w^2 - 3*w - 3], [125, 5, -w^3 + w^2 + 7*w + 1], [127, 127, 2*w^3 - 5*w^2 - 5*w + 7], [127, 127, 2*w^3 - 5*w^2 - 7*w + 6], [167, 167, -2*w^3 + 5*w^2 + 7*w - 11], [169, 13, -w^2 + w + 8], [181, 181, -2*w^3 + 5*w^2 + 8*w - 7], [193, 193, -w^3 + 3*w^2 + 3*w - 1], [197, 197, 2*w^3 - 4*w^2 - 7*w + 8], [197, 197, 3*w^3 - 7*w^2 - 10*w + 9], [199, 199, w^3 - 2*w^2 - 3*w - 3], [211, 211, -w^3 + w^2 + 7*w - 2], [211, 211, w^3 - w^2 - 6*w + 1], [227, 227, 2*w^3 - 3*w^2 - 9*w + 3], [229, 229, 3*w^3 - 6*w^2 - 13*w + 8], [239, 239, 2*w^3 - 4*w^2 - 9*w + 3], [239, 239, 2*w^3 - 4*w^2 - 6*w + 1], [241, 241, 3*w^3 - 7*w^2 - 9*w + 6], [241, 241, -2*w^3 + 4*w^2 + 6*w - 3], [251, 251, -4*w^3 + 10*w^2 + 15*w - 16], [251, 251, -w^3 + 3*w^2 - 3], [271, 271, -w^3 + 4*w^2 + 4*w - 11], [271, 271, -3*w^3 + 9*w^2 + 6*w - 13], [277, 277, -w^3 + 3*w^2 + 2*w - 9], [281, 281, -w^3 + 4*w^2 + w - 8], [293, 293, 3*w^3 - 7*w^2 - 11*w + 13], [293, 293, w^2 - 6], [293, 293, -4*w^3 + 11*w^2 + 9*w - 14], [293, 293, 3*w^3 - 5*w^2 - 15*w + 6], [311, 311, -2*w^3 + 4*w^2 + 7*w - 4], [313, 313, -w^3 + 4*w^2 + 3*w - 13], [313, 313, -w^3 + w^2 + 6*w - 2], [317, 317, w^3 - 4*w^2 - w + 9], [337, 337, 3*w^3 - 7*w^2 - 8*w + 7], [343, 7, -2*w^3 + 3*w^2 + 9*w + 1], [359, 359, -w^3 + 2*w^2 + 4*w - 7], [359, 359, 2*w^3 - 3*w^2 - 10*w + 4], [367, 367, 2*w^3 - 4*w^2 - 5*w + 2], [367, 367, 2*w^3 - 3*w^2 - 11*w - 2], [367, 367, 2*w - 7], [367, 367, w^3 - 7*w - 4], [373, 373, -w^3 + 4*w^2 + w - 14], [373, 373, -2*w^3 + 4*w^2 + 10*w - 11], [379, 379, w^3 - 2*w^2 - 2*w - 1], [383, 383, w^3 - 8*w - 4], [397, 397, 4*w^3 - 10*w^2 - 12*w + 7], [397, 397, -2*w^3 + 3*w^2 + 9*w - 2], [401, 401, -w^3 + 6*w + 8], [409, 409, 2*w^3 - 3*w^2 - 11*w + 4], [419, 419, 3*w^3 - 6*w^2 - 15*w + 7], [419, 419, -w^2 + 4*w + 8], [431, 431, 5*w^3 - 15*w^2 - 10*w + 18], [431, 431, 3*w^3 - 4*w^2 - 16*w - 2], [439, 439, w^3 - w^2 - 4*w - 4], [443, 443, -4*w^3 + 9*w^2 + 15*w - 16], [461, 461, 2*w^3 - 2*w^2 - 13*w - 1], [467, 467, 2*w^3 - 6*w^2 - 2*w + 7], [467, 467, 3*w^3 - 3*w^2 - 19*w - 6], [479, 479, w^2 - 8], [479, 479, -3*w^3 + 7*w^2 + 14*w - 11], [491, 491, 3*w^3 - 5*w^2 - 16*w + 2], [499, 499, -w^2 + w - 2], [509, 509, -w^3 + 5*w^2 - w - 11], [509, 509, w^3 - 5*w - 1], [521, 521, -w^3 + 4*w^2 + 3*w - 7], [521, 521, -w^3 + 2*w^2 + 7*w - 4], [541, 541, -2*w^3 + 4*w^2 + 11*w - 6], [557, 557, -w^3 + w^2 + 8*w + 3], [557, 557, w^3 - 2*w^2 - 2*w - 2], [563, 563, 2*w^3 - 2*w^2 - 10*w - 3], [563, 563, 3*w^3 - 5*w^2 - 15*w + 1], [569, 569, 2*w^2 - 3*w - 4], [569, 569, 3*w^3 - 8*w^2 - 9*w + 7], [571, 571, -w^3 + 4*w^2 - 11], [571, 571, 3*w^3 - 8*w^2 - 11*w + 11], [577, 577, 3*w^3 - 8*w^2 - 5*w + 11], [577, 577, -4*w^3 + 11*w^2 + 9*w - 9], [593, 593, 2*w^3 - 7*w^2 - 2*w + 9], [601, 601, -w^3 + 3*w^2 + 5*w - 9], [613, 613, 3*w^3 - 5*w^2 - 14*w + 8], [613, 613, -w^3 + 2*w^2 + 7*w - 3], [617, 617, -2*w^3 + 6*w^2 + 5*w - 4], [617, 617, -w^3 + 3*w^2 - w - 6], [641, 641, 4*w^3 - 9*w^2 - 17*w + 14], [641, 641, -5*w^3 + 12*w^2 + 18*w - 17], [643, 643, -3*w^3 + 8*w^2 + 10*w - 13], [647, 647, 3*w - 4], [647, 647, -w^3 + 4*w^2 + 2*w - 9], [653, 653, -w^3 + 2*w^2 + 5*w - 8], [661, 661, 2*w^3 - 7*w^2 - 5*w + 21], [661, 661, -w^3 + 2*w^2 + 3*w - 8], [673, 673, 2*w^3 - 7*w^2 - 5*w + 9], [673, 673, w^3 - 2*w^2 - 3*w - 4], [677, 677, -w^3 + 4*w^2 + 3*w - 8], [683, 683, -3*w^3 + 4*w^2 + 17*w - 1], [683, 683, -3*w^3 + 7*w^2 + 8*w - 2], [691, 691, w^2 - 4*w - 2], [701, 701, 3*w^3 - 6*w^2 - 11*w + 3], [709, 709, -w^3 + 4*w^2 + 3*w - 17], [709, 709, w^3 + w^2 - 10*w - 8], [709, 709, -3*w^3 + 10*w^2 + 2*w - 16], [709, 709, w^3 - w^2 - 8*w + 1], [727, 727, -w^3 + 5*w^2 - w - 13], [727, 727, 2*w^3 - 4*w^2 - 11*w + 2], [733, 733, -2*w^3 + 3*w^2 + 10*w - 6], [733, 733, 2*w^3 - 5*w^2 - 5*w + 9], [739, 739, -3*w^3 + 6*w^2 + 12*w - 8], [743, 743, 3*w^3 - 4*w^2 - 17*w - 4], [743, 743, 2*w^3 - 3*w^2 - 8*w + 1], [743, 743, -3*w^3 + 7*w^2 + 11*w - 7], [743, 743, -3*w^3 + 6*w^2 + 11*w - 9], [757, 757, 2*w^3 - 5*w^2 - 6*w + 11], [757, 757, -w^3 + w^2 + 8*w + 2], [761, 761, -5*w^3 + 14*w^2 + 13*w - 12], [769, 769, -3*w^2 + 4*w + 13], [773, 773, 3*w^3 - 4*w^2 - 18*w + 3], [797, 797, 4*w^3 - 7*w^2 - 21*w + 8], [797, 797, -3*w^3 + 7*w^2 + 11*w - 16], [809, 809, -2*w^2 + 5*w + 11], [827, 827, w - 6], [829, 829, -w^3 - w^2 + 11*w + 8], [841, 29, -3*w^3 + 6*w^2 + 14*w - 6], [841, 29, -2*w^3 + 5*w^2 + 8*w - 4], [853, 853, 3*w^3 - 6*w^2 - 9*w + 8], [857, 857, 2*w^2 - 3*w - 3], [859, 859, -w^3 + w^2 + 4*w + 7], [863, 863, 2*w^3 - 3*w^2 - 7*w - 2], [863, 863, -3*w^3 + 6*w^2 + 10*w - 11], [881, 881, -3*w^2 + 4*w + 12], [881, 881, w^2 - 2*w + 3], [883, 883, 4*w^3 - 13*w^2 - 6*w + 17], [883, 883, -2*w^3 + 4*w^2 + 12*w - 3], [887, 887, -3*w^3 + 5*w^2 + 16*w - 8], [887, 887, 3*w^3 - 5*w^2 - 14*w + 3], [911, 911, -w^3 + 10*w + 1], [919, 919, 5*w^3 - 13*w^2 - 14*w + 11], [929, 929, 2*w^3 - 3*w^2 - 12*w - 4], [937, 937, -3*w - 7], [941, 941, -w^3 + 3*w^2 + 3*w - 12], [947, 947, 2*w^3 - 6*w^2 - 9*w + 8], [947, 947, -4*w^3 + 7*w^2 + 19*w - 6], [953, 953, 3*w^2 - w - 9], [961, 31, 4*w^3 - 12*w^2 - 5*w + 17], [971, 971, 3*w^3 - 6*w^2 - 16*w + 12], [983, 983, w^3 + w^2 - 7*w - 12], [991, 991, -2*w^3 + 7*w^2 + 3*w - 12], [991, 991, -2*w^3 + 4*w^2 + 12*w - 9], [997, 997, 3*w^3 - 5*w^2 - 14*w + 9], [997, 997, -2*w^3 + 3*w^2 + 11*w - 7], [1013, 1013, -2*w^3 + 6*w^2 + 3*w - 11], [1019, 1019, -w^3 + 5*w^2 + 2*w - 8], [1021, 1021, -w^3 + 5*w^2 - w - 17], [1021, 1021, 3*w^3 - 6*w^2 - 8*w + 3], [1033, 1033, -2*w^3 + 5*w^2 + 6*w - 13], [1033, 1033, 3*w^3 - 6*w^2 - 11*w + 4], [1051, 1051, 3*w^3 - 7*w^2 - 10*w + 13], [1061, 1061, 2*w^2 - 5*w - 13], [1063, 1063, -w^3 + w^2 + 5*w + 8], [1069, 1069, -5*w^3 + 12*w^2 + 19*w - 18], [1069, 1069, w^3 - 5*w^2 - w + 9], [1097, 1097, -3*w^3 + 9*w^2 + 8*w - 12], [1097, 1097, -2*w^3 + 6*w^2 + 7*w - 12], [1103, 1103, -3*w^3 + 4*w^2 + 15*w - 3], [1103, 1103, -w^3 + 3*w^2 + 5*w - 11], [1109, 1109, 5*w^3 - 11*w^2 - 16*w + 6], [1129, 1129, -w^2 + 3*w - 4], [1129, 1129, 2*w^3 - 2*w^2 - 10*w - 9], [1151, 1151, 4*w^3 - 10*w^2 - 14*w + 13], [1153, 1153, -2*w^3 + 5*w^2 + 11*w - 12], [1153, 1153, -2*w^3 + 8*w^2 - 13], [1153, 1153, -w^3 + 3*w^2 + 5*w - 12], [1153, 1153, 2*w^3 - w^2 - 11*w - 4], [1163, 1163, -w^3 + w^2 + 9*w - 4], [1163, 1163, 2*w^3 - 4*w^2 - 10*w - 1], [1171, 1171, 3*w^3 - 4*w^2 - 18*w - 1], [1193, 1193, w^3 - 4*w^2 + 2*w + 6], [1193, 1193, w^3 - 2*w^2 - 5*w - 4], [1201, 1201, 2*w^3 - 4*w^2 - 9*w - 3], [1201, 1201, 4*w^3 - 10*w^2 - 13*w + 11], [1213, 1213, -4*w^3 + 7*w^2 + 19*w - 11], [1217, 1217, -2*w^3 + 8*w^2 + 2*w - 13], [1229, 1229, -4*w^3 + 13*w^2 + 6*w - 19], [1229, 1229, -4*w^3 + 8*w^2 + 16*w - 13], [1229, 1229, -3*w^3 + 9*w^2 + 6*w - 16], [1229, 1229, 2*w^3 - 3*w^2 - 6*w - 1], [1231, 1231, -3*w^3 + 6*w^2 + 16*w - 8], [1231, 1231, -3*w^2 + w + 12], [1237, 1237, -2*w^3 + 5*w^2 + 4*w - 9], [1237, 1237, -w^2 - 3], [1237, 1237, -w^3 + 6*w - 3], [1237, 1237, -4*w - 1], [1249, 1249, -2*w^3 + 4*w^2 + 5*w - 8], [1283, 1283, 3*w - 8], [1289, 1289, 2*w^3 - w^2 - 14*w - 6], [1289, 1289, 4*w^3 - 9*w^2 - 13*w + 8], [1291, 1291, w^3 - w^2 - 3*w - 4], [1297, 1297, 4*w^3 - 9*w^2 - 15*w + 9], [1303, 1303, -w^3 + 4*w^2 - 13], [1321, 1321, 3*w^3 - 6*w^2 - 13*w + 3], [1321, 1321, -3*w^3 + 6*w^2 + 11*w - 7], [1367, 1367, -2*w^3 + 6*w^2 + 4*w - 13], [1369, 37, 2*w^2 - w - 11], [1369, 37, w^3 - 2*w^2 - w - 2], [1373, 1373, -w^3 + 3*w^2 + 8*w - 6], [1381, 1381, -w^3 + 3*w^2 - 9], [1381, 1381, 3*w^3 - 8*w^2 - 8*w + 14], [1427, 1427, 3*w^3 - 7*w^2 - 9*w + 12], [1429, 1429, 4*w^3 - 9*w^2 - 11*w + 8], [1433, 1433, -w^3 + 8*w + 12], [1447, 1447, -4*w^3 + 10*w^2 + 15*w - 14], [1447, 1447, 6*w^3 - 14*w^2 - 21*w + 19], [1451, 1451, w^3 - w^2 - 9*w - 4], [1459, 1459, 3*w^3 - 7*w^2 - 13*w + 9], [1481, 1481, -3*w^2 + 3*w + 19], [1481, 1481, -w^3 + 5*w^2 - 3*w - 14], [1487, 1487, -2*w^3 + 6*w^2 + w - 6], [1489, 1489, -3*w^3 + 3*w^2 + 19*w + 3], [1499, 1499, 3*w^2 - 4*w - 7], [1511, 1511, 4*w^3 - 6*w^2 - 20*w + 3], [1523, 1523, 8*w^3 - 23*w^2 - 17*w + 27], [1531, 1531, -w^3 + 2*w^2 + 3*w - 9], [1531, 1531, 3*w^3 - 9*w^2 - 8*w + 19], [1549, 1549, -5*w^3 + 11*w^2 + 17*w - 18], [1553, 1553, 2*w^2 - 9], [1567, 1567, 2*w^3 - 7*w^2 - 4*w + 22], [1579, 1579, -2*w^3 + 4*w^2 + 8*w + 3], [1579, 1579, -3*w^3 + 5*w^2 + 13*w - 1], [1607, 1607, w^3 - w^2 - 6*w - 8], [1609, 1609, -4*w^3 + 7*w^2 + 19*w - 2], [1619, 1619, -5*w^3 + 11*w^2 + 13*w - 9], [1627, 1627, 4*w^3 - 9*w^2 - 16*w + 11], [1657, 1657, 2*w^3 - 8*w^2 - w + 12], [1657, 1657, -4*w^3 + 11*w^2 + 15*w - 17], [1667, 1667, -w^3 + 5*w^2 - 6], [1667, 1667, -3*w^3 + 6*w^2 + 10*w - 6], [1697, 1697, w^3 + w^2 - 9*w - 7], [1697, 1697, 3*w^3 - 6*w^2 - 13*w + 2], [1697, 1697, w^3 - 6*w + 1], [1697, 1697, -5*w^3 + 11*w^2 + 22*w - 17], [1709, 1709, w^3 - w^2 - 8*w - 9], [1709, 1709, -w^3 + 3*w^2 - 13], [1723, 1723, 2*w^3 - 3*w^2 - 7*w - 3], [1733, 1733, -w^3 + 4*w^2 + 3*w - 19], [1741, 1741, -w^3 + 5*w^2 - 14], [1747, 1747, -4*w^3 + 6*w^2 + 22*w + 1], [1747, 1747, 2*w^3 - 5*w^2 - 9*w + 2], [1753, 1753, -2*w^3 + 5*w^2 + 3*w - 1], [1759, 1759, -w^3 + 2*w^2 + 4*w - 9], [1783, 1783, -3*w^3 + 8*w^2 + 5*w - 12], [1783, 1783, -2*w^3 + 6*w^2 + 3*w - 12], [1783, 1783, 2*w^3 - 7*w^2 - 4*w + 17], [1783, 1783, 2*w^3 - 6*w^2 - w + 7], [1787, 1787, -5*w^3 + 8*w^2 + 25*w - 3], [1823, 1823, w^3 - 8*w - 1], [1823, 1823, -3*w^3 + 5*w^2 + 14*w + 6], [1831, 1831, -3*w^3 + 8*w^2 + 14*w - 18], [1847, 1847, w^3 - 3*w^2 - w + 14], [1847, 1847, -2*w^3 + 2*w^2 + 11*w + 11], [1861, 1861, 2*w^2 - w - 12], [1871, 1871, 4*w^3 - 8*w^2 - 19*w + 9], [1871, 1871, -w^3 + 5*w^2 - w - 7], [1873, 1873, -3*w^3 + 5*w^2 + 13*w - 4], [1877, 1877, -4*w^3 + 8*w^2 + 16*w - 7], [1877, 1877, 3*w^3 - 5*w^2 - 15*w - 2], [1879, 1879, -w^3 + 4*w^2 - w - 12], [1907, 1907, w^3 - w^2 - 10*w - 6], [1931, 1931, -w^3 + 5*w^2 - w - 19], [1931, 1931, -6*w^3 + 17*w^2 + 12*w - 22], [1951, 1951, 4*w^3 - 10*w^2 - 14*w + 21], [1951, 1951, -2*w^3 + 4*w^2 + 13*w - 13], [1993, 1993, 2*w^3 - 2*w^2 - 11*w + 1], [1993, 1993, -w^3 + 6*w + 14]]; primes := [ideal : I in primesArray]; heckePol := x; K := Rationals(); e := 1; heckeEigenvaluesArray := [0, 2, 1, 3, 2, -5, -3, -8, -4, -1, -3, -1, -4, 2, 14, -9, -15, 6, -2, -3, 16, -13, -4, 2, -16, 2, -8, 13, -14, -1, 14, -24, 0, -11, -7, 10, 11, -5, -2, -9, -6, 3, 12, 14, -26, 4, -1, 15, 2, 21, 27, -6, 2, 14, -5, -16, -2, -12, -25, 2, 4, -4, -8, 14, -22, 15, 28, -13, -28, -23, -13, -16, -22, 10, 4, 23, 6, 3, 29, 8, -1, 23, 14, -32, 5, -26, -12, -5, 38, 2, -25, 39, 41, 27, 4, -12, 22, -1, 18, -28, -32, 14, -4, 17, -30, -2, -34, 8, 18, 11, -3, -29, -8, 18, 30, 38, -14, -19, 30, 15, -1, 13, -38, 30, -21, -50, 11, 34, 31, -1, 52, -38, -28, 9, -21, -6, -4, 38, -33, -52, -44, -11, 9, -4, 6, 36, 38, -15, 34, 22, 28, 18, -37, 19, -2, -3, 20, -29, 45, -21, -41, 26, 6, 25, 45, -28, 42, -52, -32, 45, -48, 40, -48, 30, 22, 21, -2, 2, -54, -46, 19, 22, -34, 57, 10, -40, -17, -33, 40, 36, 0, -50, -10, -42, 10, 9, -11, 38, 42, -12, 1, 19, -46, -2, 38, -7, 15, 16, -38, 54, -37, 40, -4, 66, 24, 62, 48, -50, 22, 42, 10, 14, 49, 37, 10, 41, -56, -44, -40, 56, -40, -14, 20, 9, 5, -17, -11, -23, 31, 54, 25, 21, 45, 68, -40, -67, 29, -67, -74, 46, 55, -32, 75, 40, -28, 2, -36, -64, 20, 34, -17, 12, -42, 82, 52, -34, 41, 40, -54, -70, -61, -22, 18, 40, 59, 29, -10, 41, 17, 21, 60, -5, -54, -40, 14, 57, 8, -4, -37, 84, -35, -36, -30, 33, 19, -50, 17, -41]; 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;