Algebraic Relations

Relations(M, d, prec) : ModFrm, RngIntElt, RngIntElt -> SeqEnum
The relations of degree d satisfied by the q-expansions of in the space M of modular forms. The q-expansions are computed to precision prec. If prec is too small, this intrinsic might return relations that are not really satisfied by the modular forms. To be sure of your result, prec must be at least as large as PrecisionBound(M2), where M2 has the same level as M and weight d times the weight of M.

Example ModFrm_Relations (H141E20)

We compute an equation that defines the canonical embedding of X0(34).
> S := CuspidalSubspace(ModularForms(Gamma0(34)));
> Relations(S, 4, 20);
[
    a^3*c - a^2*b^2 - 3*a^2*c^2 + 2*a*b^3 + 3*a*b^2*c - 3*a*b*c^2 +
        4*a*c^3 - b^4 + 4*b^3*c - 6*b^2*c^2 + 4*b*c^3 - 2*c^4
]
[
    (0  0  1 -1  0 -3  2  3 -3  4 -1  4 -6  4 -2)
]
> // a, b, and c correspond to the cusp forms S.1, S.2 and S.3:
> S.1;
q - 2*q^4 - 2*q^5 + 4*q^7 + O(q^8)
> S.2;
q^2 - q^4 + O(q^8)
> S.3;
q^3 - 2*q^4 - q^5 + q^6 + 4*q^7 + O(q^8)
Next we compute the canonical embedding of X0(75).
> S := CuspidalSubspace(ModularForms(Gamma0(75)));
> R := Relations(S, 2, 20); R;
[
    a*c - b^2 - d^2 - 4*e^2,
    a*d - b*c + b*e + d*e - 3*e^2,
    a*e - b*d - c*e
]
> // NOTE: It is much faster to compute in the power
> // series ring than the ring of modular forms!
> a, b, c, d, e := Explode([PowerSeries(f,20) : f in Basis(S)]);
> a*c - b^2 - d^2 - 4*e^2;
O(q^21)
The connection between the above computations and models for modular curves is discussed in Steven Galbraith's Oxford Ph.D. thesis.
V2.28, 13 July 2023