Basis for the space of modular symbols M.
First suppose that the space of modular symbols M equals AmbientSpace(M). Then this intrinsic returns a basis x1, ..., xn for M such that Z x1 + ... + Z xn is the Z-submodule of M generated by all modular symbols Xi.Yk - 2 - i{α, β} with i=0, ..., k - 2 and α, β∈P1(Q). If M is not AmbientSpace(M), then this intrinsic returns a Z-basis for M ∩(Z x1 + ... + Z xn), where x1, ..., xn is an integral basis for AmbientSpace(M). The base field of M must be Q.
> M := ModularSymbols(1,12); > Basis(M); [ X^10*{0, oo}, X^8*Y^2*{0, oo}, X^9*Y*{0, oo} ] > IntegralBasis(M); [ 1/48*X^9*Y*{0, oo}, 1/14*X^8*Y^2*{0, oo}, X^10*{0, oo} ]IntegralBasis(M) is a basis for the Z-module spanned by the following symbols:
> R<X,Y> := PolynomialRing(Rationals(),2); > [M!<X^i*Y^(10-i),[Cusps()|0,Infinity()]> : i in [0..10]]; [ -X^10*{0, oo}, X^9*Y*{0, oo}, -X^8*Y^2*{0, oo}, -25/48*X^9*Y*{0, oo}, 9/14*X^8*Y^2*{0, oo}, 5/12*X^9*Y*{0, oo}, -9/14*X^8*Y^2*{0, oo}, -25/48*X^9*Y*{0, oo}, X^8*Y^2*{0, oo}, X^9*Y*{0, oo}, X^10*{0, oo} ]We can also compute an integral basis of a subspace.
> C := CuspidalSubspace(M); > IntegralBasis(C); [ 1/48*X^9*Y*{0, oo}, 1/14*X^8*Y^2*{0, oo} ]
In Remark 3 on page 69 of [Mer94], Merel says "it would be interesting to find a basis in terms of Manin symbols" for the Z-module of Eisenstein symbols (see Section Subspaces for the definition of EisensteinSubspace). Here are the first few examples in the case of level 1:
> M := ModularSymbols(1,12); > E := EisensteinSubspace(M); > IntegralBasis(E); [ 691*X^10*{0, oo} + 1620*X^8*Y^2*{0, oo} ] > ManinSymbol(IntegralBasis(E)[1]); [ <691*X^10, (0 1)>, <1620*X^8*Y^2, (0 1)> ]
To more easily compute several examples, we define a function:
> function EisZ(k) > E := EisensteinSubspace(ModularSymbols(1,k)); > B := IntegralBasis(E); > return [ManinSymbol(z) : z in B]; > end function; > EisZ(12); [ [ <691*X^10, (0 1)>, <1620*X^8*Y^2, (0 1)> ] ] > EisZ(16); [ [ <16380*X^12*Y^2, (0 1)>, <3617*X^14, (0 1)> ] ] > EisZ(18); [ [ <43867*X^16, (0 1)>, <270000*X^14*Y^2, (0 1)> ] ] > EisZ(20); [ [ <174611*X^18, (0 1)>, <1349460*X^16*Y^2, (0 1)> ] ] > EisZ(22); [ [ <748125*X^18*Y^2, (0 1)>, <77683*X^20, (0 1)> ] ]Send me an email if you determine the basis in general. In each example above the coefficient of Xk - 2 is, up to sign, Numerator(Bernoulli(k)/k).