On Tue, Apr 1, 2014 at 4:05 AM, Kevin Buzzard <[email protected]> wrote:
> I know too little about what is going on under the hood to write the code I 
> want to write.
>
> I would like to compute the mod 3 reduction of the char poly of the Hecke 
> operator T(5) on the space of weight 2 level Gamma_0(N) cuspidal newforms for 
> all N<=500 (say). This problem might be a bit more subtle than it looks.
>
> Fix N. I suspect I do *not* want to go down the following route:
>
> 1) compute the newforms in char 0,
> 2) compute the Hecke operator in char 0
> 3) compute the char poly in char 0
> 4) reduce it mod 3.
>
> Because this way, in step 3, I end up having to compute the char poly of a 
> possibly large matrix in char 0, which is hard work (I actually want to go 
> much further than N=500). If memory serves, I once explained to William Stein 
> a method for doing this involving reducing the matrix mod p for lots of small 
> primes p and then using the Ramanujan bounds -- but this is still really 
> excessive if all I want is the mod 3 reduction of the answer.
>
> Basically, I want to reduce mod 3 as soon as possible. But I don't know how 
> to do this!
>
> Now here's what I have tried, illustrated with some nasty choices of N.
> Let's start with level 7, where there are no newforms.
>
> ModularSymbols(7,2,1).change_ring(GF(3)).cuspidal_subspace().new_subspace()
>
> This gives an answer I don't want, because the computation happily spits out 
> an answer and it's a vector space of positive dimension, presumably coming 
> from torsion in modular symbols. So I've reduced mod 3 too early. So let's 
> try this:
>
> ModularSymbols(7,2,1).cuspidal_subspace().new_subspace().change_ring(GF(3))
>
> This doesn't work: I can't reduce a char 0 space of newforms mod 3; I get an 
> error.
>
> So far I've failed to reduce the space of modular symbols mod 3, so let me 
> give up and compute this space and the Hecke operator in characteristic 0. 
> Now let me move to level 351 where we see a new phenomenon:
>
> t=ModularSymbols(351,2,1).cuspidal_subspace().new_subspace().hecke_operator(5)
>
> There's the Hecke operator I want, and I'm already a little uncomfortable 
> because it's living in char 0 and so already more work is being done than is 
> necessary. Aah well -- at least I can reduce the matrix of t mod 3...GAAARGH 
> no I can't, because there are 3's in the denominator :-/
>
> So now I am stuck. I really don't want to compute that char poly in char 0 
> and then reduce. Help!
>

I don't think there is anything implemented in Sage (or Magma) for
doing the computation you want.  "So I've reduced mod 3 too early."
I don't even know how -- in theory -- to do the computation you are
requesting.   This comes the closest:

      
ModularSymbols(7,2,1).change_ring(GF(3)).cuspidal_subspace().new_subspace()

Though I'm confused that even works and think what it does is wrong.
Anyways, I prefer to write the much clearer:

     ModularSymbols(7,2,1, base_ring=GF(3)).cuspidal_subspace().new_subspace()

which means take the presentation from char 0 and reduce it mod 3.

It seems like you're asking for a command whose existence requires
knowing (or quickly computing) "the presentation for modular symbols
(without extra torsion!) in char 3".  Do you know how to write down
such a presentation efficiently?   I don't.   One can get such a thing
*very slowly* by computing in characteristic 0 over QQ, then computing
the ZZ-span (using hermite normal form) of all Manin symbols.

 -- William

> Kevin
>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "sage-support" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/sage-support.
> For more options, visit https://groups.google.com/d/optout.



-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to