Theta Series as Modular Forms#
The theta series of an integral lattice \(L\) is (the \(q\)-expansion of) a modular form whose weight is half the dimension of the lattice, and whose level and nebentypus are determined by the quotient \(L^\# /L\). The space of forms with given weight, level and character is finite dimensional, which means the theta series is uniquely characterised as an element of that space from knowledge of finitely many of its coefficients.
The routine described below carries this out explicitly: given an integral lattice, it returns an element of a Magma space of modular forms, Moreover this is done with the least possible effort spent determining coefficients via lattice enumeration. Several ideas are used here, the most important of which is that linear constraints can be obtained from knowing coefficients of the theta series of \(L\) and of its partial dual lattices; in practice, one needs a certain number of coefficients in total, and the EnumerationCost functionality is useful for balancing how many to compute for each of the duals.
We say \(L\) is \(q\)-modular if it is isomorphic to its \(q\)th partial dual \(L_q\). Knowledge that modularities exist is of some use in the algorithm, because \(q\)-modularity clearly implies that \(L\) and \(L_q\) have the same theta series.
Normalisation of theta series: We use a normalisation that is most natural in this context, in order that the theta series is a modular form on \(\Gamma_0(N)\) with the level \(N\) as small as possible. In this section, the theta series of an even integral lattice \(L\) will mean \(\Sigma_{v \in L} \, q^{1/2 |v|^2},\) while the theta series of an odd integral lattice \(L\) will mean \(\Sigma_{v \in L} \, q^{|v|^2},\) where \(q = e^{2 i \pi z}\).
- ThetaSeriesModularFormSpace(L): Lat -> ModFrm#
Given an integral lattice \(L\), this returns the space of modular forms which contains the theta series of \(L\). Note: the theta series is normalised as described above.
- ThetaSeriesModularForm(L): Lat -> ModFrmElt#
KnownTheta : RngSerPowElt Default: KnownDualThetas : SeqEnum[Tup] Default: KnownModularities : Set[RngIntElt] Default: ComputeModularities: Set[RngIntElt] Default: %%% TO DO:can also be BoolElt
Given an integral lattice \(L\), this returns the theta series of \(L\) as a modular form in the appropriate space: more precisely, in
ThetaSeriesModularFormSpace(L). Note: the theta series is normalised as described above.If some coefficients of the theta series of \(L\) are already known, this information may be specified by setting the optional argument
KnownThetato be a power series \(f\), indicating that \(L\) has theta series equal to \(f\) up to the precision of \(f\).More generally, if coefficients are known for any partial dual lattices, these may be specified by setting
KnownDualThetas. This argument must be a sequence of tuples of the form \(<q, f_q>\), indicating that the \(q\)th partial dual \(L_q\) has theta series equal to \(f_q\) up to the precision of \(f_q\). (Warning: care must be taken to use the expected normalisation of the partial duals here.)If \(L\) is known to possess modularities, the optional argument
KnownModularitiesmay be set equal to any set of integers \(q\) such that \(L\) is \(q\)-modular (as defined above). In addition,ComputeModularitiesmay be specified to control whether the function checks for \(q\)-modularities (for possible \(q\), that are not listed asKnownModularities); its value may be a boolean, or a set of integers.