# orthogonal modular forms of level 79 * 5^2 N = 79*5^2 # special lattice from §6 of [DPRT24] # cf. Proposition 6.9 and Theorem 5.14 for uniqueness Q = QuadraticForm(ZZ, 5, [1, 1, 0, 0, 0, 1, 0, 0, 5, 1, 0, 5, 2, 5, 100]) assert Q.det() == 2 * N assert Q.level() == 4 * N # Eichler invariant +1 at 5 and -1 at 79 assert Q.local_genus_symbol(5).canonical_symbol()[0] == [0, 4, 1] assert Q.local_genus_symbol(79).canonical_symbol()[0] == [0, 4, -1] print(f"Q(x0, x1, x2, x3, x4) = {Q.polynomial()}") load("quinary_module_l.sage") Qmod = quinary_module(Q) print() print("Computing V and T₂ ... ", end=""); sys.stdout.flush() time T2 = Qmod.Tp_d(p=2, d=1) # ambient space V = T2.column_ambient_module() # F_79 print("Computing V₁ = ker(T₂+5) ... ", end=""); sys.stdout.flush() time V1 = (T2+5).kernel() # JR(h_79) print("Computing V₂ = ker(T₂) ... ", end=""); sys.stdout.flush() time V2 = T2.kernel() # the intersection mod 5 V1mod5 = V1.change_ring(GF(5)) V2mod5 = V2.change_ring(GF(5)) V12mod5 = V1mod5.intersection(V2mod5) print() print(f"Lemma 2.1.") print(f" (1) The dimension of V is {V.dimension()}") print(f" (2) The dimension of V₁ is {V1.dimension()}") print(f" (3) The dimension of V₂ is {V2.dimension()}") print(f" (4) The dimension of V₁⊗𝔽₅ ∩ V₂⊗𝔽₅ is {V12mod5.dimension()}") print()