Thanks for your answer, William! I think I understand now what
ModularSymbols is computing. Let me say it in a different way, to see how
it compares to the group denoted \bM_k(G;R) in the Definition 1.23 of your
book (https://wstein.org/books/modform/modform/modular_symbols.html). The
command ModularSymbols(G,k,base_ring=R) is first computing a free abelian
group M given by the Manin symbols, and then it computes a subgroup M' of M
such that:
(i) M' maps to zero in \bM_k(G), and
(ii) M/M' \otimes \Q is equal to \bM_k(G;\Q)/
Then it returns the R-module M/M' \otimes R. Currently this is only
implemented when R is a field.

How does this output compare to \bM_k(G;R)? Well, we know that the Manin
symbols M generate \bM_k(G) *integerally* (this is Proposition 1.24), so by
(i) there is a surjection M/M' -->> \bM_k(G). Since \bM_k(G) is a free
ZZ-module of finite rank, (ii) implies that the kernel of this surjection
is exactly the torsion subgroup of M/M'. Hence, when R is a
characteristic-zero field, then the output is actually equal to \bM_k(G;R),
but when R has characteristic p, the output is equal to \bM_k(G;R) if and
only if M/M' is p-torsion-free. If M/M' has p-torsion, then probably the
output is useless (?).

Some questions:
- Why isn't ModularSymbols(G,k,base_ring=R) implemented for rings (like
R=ZZ)? It seems like, given what is already there, it wouldn't be too hard
to ask it to output (M/M')/(torsion) (although this may be hard for it to
actually compute...)
- For characteristic-p fields, why does Sage output M/M' \otimes R instead
of (M/M')/(torsion) \otimes R? The obvious reason is the one William says:
outputing M/M' \otimes R may be much faster. But isn't this anathema to
what Sage normally does? By default, Sage normally makes you do the more
mathematically-meaningful thing, rather than the faster thing.


> But for
> some
> small values of p, e.g., p=2 or 3, you can end up with an object that
> is basically useless (e.g., "Hecke operators" on it don't commute).

I don't think this torsion phenomenon is just about small primes. Are you
saying that when p is large, the resulting space is not basically useless?
For example:
ModularSymbols(5,16,1); # M has dimension 9
Mp=ModularSymbols(5,16,1,GF(13)); #Mp has dimension 10;
Is this because 13 is small, in this case? Or are you saying that this Mp
is not "basically useless"? If so, what is its basic use?

Best,
Preston

-- 
You received this message because you are subscribed to the Google Groups 
"sage-nt" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sage-nt/CAOjp0GFPB%3DJeLw7HXqpvuG6UzOuWePAudwJ%2B01R%3D5Z7Zg6tBew%40mail.gmail.com.

Reply via email to