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! 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 sage-support+unsubscr...@googlegroups.com. To post to this group, send email to sage-support@googlegroups.com. Visit this group at http://groups.google.com/group/sage-support. For more options, visit https://groups.google.com/d/optout.