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 \(M_2\) has the same level as \(M\) and weight \(d\) times the weight of \(M\).

Example: Relations (ex-9c6897)#

We compute an equation that defines the canonical embedding of \(X_0(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)

Run in calculator

Next we compute the canonical embedding of \(X_0(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)

Run in calculator

The connection between the above computations and models for modular curves is discussed in Steven Galbraith’s Oxford Ph.D. thesis.