# Modular Forms

What is the most efficient way to determine the coefficients $$a_{1}, a_{2}, ..., a_{21}$$ such that $$\Delta^{21} \mid T_{3} \equiv \sum_{i = 1}^{21} a_{i} \Delta^{i} \ (\text{mod }2)\ ?$$

I tried finding the $q$-series expansion of LHS and accordingly kept subtracting powers of $\Delta$ to find the scalars, but is there a better way to do this?

By $\Delta(z)$, I mean the Ramanujan Delta function which is the $24$th power of Dedekind eta function.

For a prime $p$ and $z \in \mathbb{H}$, we have

$(f \mid T_{p})(z) = (T_{p}(f))(z) = p^{k - 1} f(pz) + \frac{1}{p} \:\displaystyle{\sum_{b = 0}^{p - 1}} \: f \left(\frac{z + b}{p} \right)$.

Furthermore, in my case,

$f(z) = \Delta(z) = q \: \displaystyle{\prod_{n \geq 1} (1 - q^{n})^{24}}$ where $q = e^{2 \pi i z}$ and $z \in \mathbb{H}$.

edit retag close merge delete

make a matrix with the first 100 coefficients of a basis + your modular form and ask for the kernel.

( 2024-03-06 07:57:17 +0200 )edit

@Max Alekseyev T_{3} refers to the Hecke operator given by T_{n} f = \sum_{d \mid n} d^{k - 1} f \mid U_{n/d} \mid V_{d} and I am considering its action on \Delta^{21}. Here, k refers to weight of modular form.

( 2024-03-07 15:32:16 +0200 )edit

@Max Alekseyev I have added more details to the question as well.

( 2024-03-14 22:01:04 +0200 )edit

Testing testing. I can't seem to post my answer. Let's see if this works: https://imgur.com/a/sYJLxAP

( 2024-03-31 16:37:53 +0200 )edit

( 2024-04-01 12:41:54 +0200 )edit

Sort by » oldest newest most voted

Sorry for the late reply, I am not active on this forum. I’m more active on the Google sage-support mailing list.

First, we can compute the desired $T_3(\Delta^{21})$:

sage: from sage.arith.power import generic_power
sage: CM = CuspForms(1, 12)
sage: CM21 = CuspForms(1, 12 * 21)
sage: Delta = CM.0
sage: # There is currently no exponentiation, will be fixed in #35944
sage: Delta21 = CM21(generic_power(Delta, 21)); Delta21.qexp(30)
q^21 - 504*q^22 + 126252*q^23 - 20956992*q^24 + 2593110870*q^25 - 255098731104*q^26 + 20781797039640*q^27 - 1441924368648192*q^28 + 86976624729238209*q^29 + O(q^30)

sage: T = CM21.hecke_operator(3)
sage: target = T(Delta21); target.qexp(20)
q^7 - 20956992*q^8 + 20781797039640*q^9 - 4633003671997022000*q^10 + 371440362863490315834390*q^11 - 13524147849728033471173828608*q^12 + 257087467157965368174040434253652*q^13 - 2797610285976169836665269441675901280*q^14 + 18590043151087594315255237884401112427125*q^15 - 79064034335739172917351114768148099625746432*q^16 + 222855474110999793689846658834630047334547915056*q^17 - 427201290537994688843233683762591484665002841050808*q^18 + 567389400902088468468198954038543021913542274631751236*q^19 + O(q^20)


To express it as a linear combination of $\{\Delta^i\}_{i \leq 20}$, we can compare the coefficients of the $q$-expansion:

sage: target = target.coefficients(range(101))
sage: basis = [generic_power(Delta, i).coefficients(range(101)) for i in range(1, 22)]
sage: Matrix(GF(2), basis).solve_left(vector(GF(2), target))
(0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)


So we get $T_3(\Delta^{21}) \equiv \Delta^7 \pmod{2}$. We can verify this directly:

sage: (T(generic_power(Delta, 21)) - generic_power(Delta, 7)).qexp(20)
-20956824*q^8 + 20781797025780*q^9 - 4633003671996273840*q^10 + 371440362863490286130100*q^11 - 13524147849728033470249355520*q^12 + 257087467157965368174016963062300*q^13 - 2797610285976169836665268942201502560*q^14 + 18590043151087594315255237875317455097070*q^15 - 79064034335739172917351114768004873709460672*q^16 + 222855474110999793689846658834628068063720659292*q^17 - 427201290537994688843233683762591460494974996146104*q^18 + 567389400902088468468198954038543021651122696529039766*q^19 + O(q^20)


As a side note, I found the modular forms part of the code quite buggy. I can make some PRs to patch some inconvenience I found.

more