The functions VectorSpace, DualVectorSpace, and Lattice return the underlying vector space, dual vector space, and lattice associated to a space of modular symbols. A space of modular symbols is represented internally as a subspace of a vector space, and a subspace of the linear dual of the vector space. To carry along the subspace of the linear dual is useful in many computations; one example is efficient computation of Hecke operators. When the base field is Q, the lattice comes from the natural integral structure on modular symbols.
The vector space V underlying M, the map V -> M, and the map M -> V.
The subspace of the linear dual of VectorSpace(AmbientSpace(M)) that is isomorphic to M as a module over the Hecke algebra.
The lattice generated by the integral modular symbols in the vector space representation of M. This is the lattice generated by all modular symbols X^iY^(k - 2 - i){a, b}. The base field of M must be RationalField().
> M := ModularSymbols(DirichletGroup(11).1,3); M;
Full Modular symbols space of level 11, weight 3, character $.1,
and dimension 4
> VectorSpace(M);
Full Vector space of degree 4 over Rational Field
Mapping from: Full Vector space of degree 4 over Rational Field
to ModSym: M given by a rule [no inverse]
Mapping from: ModSym: M to Full Vector space of degree 4 over
Rational Field given by a rule [no inverse]
> Basis(VectorSpace(CuspidalSubspace(M)));
[
( 0 1 0 -1),
( 0 0 1 -1)
]
> Basis(VectorSpace(EisensteinSubspace(M)));
[
( 1 0 -2/3 -1/3),
( 0 1 -5 -2)
]
> Lattice(CuspidalSubspace(M));
Lattice of rank 2 and degree 4
Basis:
( 0 1 -1 0)
( 0 1 1 -2)
Basis Denominator: 2
Mapping from: Lattice of rank 2 and degree 4 to Modular symbols
space of level 11, weight 3, character $.1, and dimension 2 given
by a rule [no inverse]
> Basis(Lattice(EisensteinSubspace(M)));
[
( 0 1/2 -5/2 -1),
( 3 -1/2 1/2 0)
]