Meh where is the reply I wrote just after William answered?

1) I don't even knew what new_subspace is doing. At level 22 and weight 2 
it gives a non-zero subspace mod 5 (and there are no level 22 newforms). 
This can't be torsion in the space of modular symbols; it is either some 
congruence within the oldforms which is giving rise to a spurious mod 5 
newform, or the perfect pairing being used to compute the newforms being 
degenerate mod 5 (or the trace maps being degenerate mod 5 perhaps). I'm 
not sure one should allow new_subspace to be invoked on a space of mod p 
forms (at least until someone explains what it's doing)

2) How about this for an algorithm. Take the space of cuspidal modular 
symbols over Z. Compute the old subspace and quotient out by it. We get a 
finitely-generated Z-module with perhaps some torsion. Quotient out by the 
torsion. Now we have a finite free Z-module with a Hecke action which, when 
tensored up to the reals gives a Hecke module isomorphic to the classical 
newforms. Instead take the subspace where complex conjugation acts by some 
fixed eigenspace, and then reduce this space mod p. That's now a mod p 
Hecke module and the systems of eigenvalues showing up will be precisely 
those coming from the reductions of char 0 newforms. Isn't that the space I 
want? How can I compute this space in sage?

Kevin



On Tuesday, 1 April 2014 15:39:24 UTC+1, William wrote:
>
> On Tue, Apr 1, 2014 at 4:05 AM, Kevin Buzzard 
> <[email protected]<javascript:>> 
> 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] <javascript:>. 
> > To post to this group, send email to 
> > [email protected]<javascript:>. 
>
> > 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