I don't know if anyone's still following this thread -- I only just saw it
myself.

As William says, Sage's modular symbols code for mod p coefficients doesn't
compute the thing you might expect (the homology with mod p coefficients).
However, there is some old code floating around on the Sage trac server by
GeorgSWeber here:

https://trac.sagemath.org/ticket/10857

which, I believe, *does* compute the homology of the modular curve mod p. I
have no idea if it still works, or if it's useful. It's 9 years old, but
that part of Sage has not changed much since then, so there's at least a
non-zero chance the code might still be workable.

Best wishes, David

On Sun, 31 May 2020 at 16:26, William Stein <[email protected]> wrote:

> On Sun, May 31, 2020 at 6:58 AM Preston Wake <[email protected]>
> wrote:
> >
> > 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 (?).
> >
>
> That sounds right.
>
> > 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...)
>
> Because it can be hard to compute and I've never needed it for my
> research.  Other than that, it could be done.
>
> There is some very closely related functionality that is implemented:
>
> sage: M = ModularSymbols(7,8,1).cuspidal_submodule()
> sage: M.integral_hecke_matrix(5)
> [-320460 285880 67032]
> [-212550 189650 44448]
> [-626400 558720 131056]
>
> Try M.integral[tab] to find several other related commands.  The
>  above is a matrix for T_5 on Modular symbols over ZZ (mod any
> torsion, just to be clear).  You could reduce it modulo 5 and that may
> be what you're interested in:
>
> sage: T5 = M.integral_hecke_matrix(5).change_ring(GF(5))
> sage: T5.fcp()
> (x + 4) * x^2
> sage: T5.minimal_polynomial().factor()
> x * (x + 4)
>
>
> https://share.cocalc.com/share/df81e09e5b8f16f28b3a2e818dcdd4560e7818ae/support/2020-05-28-modular-over-R.ipynb?viewer=share
>
> > - 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.
>
> As mathematicians like to say "for historical reasons".  Consider that
> I implemented all this about 15 years ago before anybody else used
> Sage...
>
> >> 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?
>
> Sorry, I should have been clear that I was only talking about weight 2
> and trivial character in that remark.
>
> > 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?
>
> Certainly with work you can hope to find a useful vector subspace in
> that 10 dimensional space...
>
> > 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
> .
>
>
>
> --
> William (http://wstein.org)
>
> --
> 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/CACLE5GAqSj51jjQsKMb2Fe2aKahsPr8x1NOYPUD9hWPGNCF2Vg%40mail.gmail.com
> .
>

-- 
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/CANDN%3Dhz%3D%2BFP4eQXAodNHn9zN8LRK5OOQ6ySa-nAYx9GqJKfAoA%40mail.gmail.com.

Reply via email to