>
>  If you let sage print the alpha^3 coefficient of you see that in both 
>> cases it picks a different q_eigenform in f, the Galois conjugacy class of 
>> newforms. 
>>
>
Are you sure this is what is happening?

Version 7.0.0. When bad code isn't run, good code gives this:

sage: f.q_eigenform(10,'alpha')[3]
(-1/8*zeta4 - 1/4)*alpha^7 + (3/8*zeta4 + 1/8)*alpha^5 + (-1/4*zeta4 + 
1)*alpha^3 + (-zeta4 - 1)*alpha

When bad code is run first, good code gives this:

sage: f.q_eigenform(10,'alpha')[3]
(2940134632232014408766657/19352042383840927420034024*zeta4 - 
2565054267989270372493119/19352042383840927420034024)*alpha^7 + 
(-1869921197843988328685619/9676021191920463710017012*zeta4 - 
1590788291043697551073545/4838010595960231855008506)*alpha^6 + 
(-487218429010828867191579/744309322455420285385924*zeta4 - 
55395905851779626534807/372154661227710142692962)*alpha^5 + 
(-505556560719679641283131/744309322455420285385924*zeta4 + 
395740922589971800357659/744309322455420285385924)*alpha^4 + 
(3091086773658381828546971/9676021191920463710017012*zeta4 + 
22169159574776632616577397/9676021191920463710017012)*alpha^3 + 
(6474331895422395046208340/2419005297980115927504253*zeta4 - 
2149434331277811094538751/4838010595960231855008506)*alpha^2 + 
(6666435583064028847954867/4838010595960231855008506*zeta4 - 
12722634445968563495188259/4838010595960231855008506)*alpha - 
940957015960155394979262/2419005297980115927504253*zeta4 - 
3747940737545550772744377/2419005297980115927504253

I am not saying that these are definitely not Galois conjugate. But I am 
saying that I kind of suspect that these are not Galois conjugate. No! 
Wait! I am saying they're not Galois conjugate, because

elt=f.q_eigenform(10,'alpha')[3]
elt.minpoly()

gives 

x^8 + 16*zeta4*x^6 - 72*x^4 - 64*zeta4*x^2 + 4

if the bad code hasn't run yet, and


x^8 + (7998749126707393770675990/2419005297980115927504253*zeta4 - 
47381022823029338213469198/2419005297980115927504253)*x^7 + 
(88328222560611710210573725/2419005297980115927504253*zeta4 + 
402745578098164737879842397/2419005297980115927504253)*x^6 + 
(-1851973029418246178060665656/2419005297980115927504253*zeta4 - 
972520883967381161087609244/2419005297980115927504253)*x^5 + 
(7012307362677246370736050995/2419005297980115927504253*zeta4 - 
4497820941388198664887224012/2419005297980115927504253)*x^4 + 
(20664072505712818488383157852/2419005297980115927504253*zeta4 + 
22847825216496581679001616316/2419005297980115927504253)*x^3 + 
(-2819149604897477732352436978/186077330613855071346481*zeta4 + 
5847356735083004488400198448/186077330613855071346481)*x^2 + 
(-123986553349389596472324440088/2419005297980115927504253*zeta4 - 
22346113370356065142956464904/2419005297980115927504253)*x - 
769782031701554576146090878/2419005297980115927504253*zeta4 - 
72076427755982334621542375888/2419005297980115927504253

if the bad code has run. We can even coerce elt 
into elt.parent().absolute_field('b') and then compute the min poly; if the 
bad code hasn't run the output is sane and if the bad code has run the 
output is not in Z[x]; thus it seems to me that if I've understood things 
correctly sage is saying that the coefficient of q^3 of this eigenform is 
not an algebraic integer, once the bad code has run. More precisely the LCM 
of the denominators occurring in the coefficients of the min poly once the 
bad code has run is

13 * 241 * 3541 * 2581177 * 84475877413

So here's a shorter working example of a problem.

First fire up sage 7.0.0 and then cut and paste the below bad code.


G=DirichletGroup(80);
for chi in G:
    
D=ModularSymbols(chi,2,-1).cuspidal_subspace().new_subspace().decomposition();
    for f in D:
        elt=f.q_eigenform(10,'alpha')[3];
        if not elt.parent()==QQ:
            K=elt.parent().absolute_field('b');
            if chi==G[22]:
                fact=K.factor(2);
                for P,e in fact:
                    res_field=K.residue_field(P);
                    print res_field(elt); 


And then ignore all that (it has somehow corrupted something??) and do this:

G=DirichletGroup(80);
chi=G[22];
D=ModularSymbols(chi,2,-1).cuspidal_subspace().new_subspace().decomposition();
f=D[2]
elt=f.q_eigenform(10,'alpha')[3];
elt.is_integral()

and observe that we get "false". In fact none of the q-expansion 
coefficients are algebraic integers from q^2 to q^10.

Kevin


 

> Although this can be a bit annoying, in theory it is fine. But I am pretty 
>> sure that when your reduce this coefficient modulo some prime P, any two 
>> elements of the same Galois conjugacy class can differ at most by some 
>> automorphism of the residue field (and obviously 1 and 0 do not satisfy 
>> this criterion).
>>
>>
>> To make matters worse: if you run a single sage session and you run the 
>> 'good' code first and the 'bad' code second, then suddenly the 'bad' code 
>> is fixed and printing only 0s. If you run the 'bad' code first and the 
>> 'good' code second, then they are both 'bad' and the 'good' code suddenly 
>> prints 0,0,1,0 as well. 
>>
>> By trying I found out that this is because somehow  q_eigenform picks the 
>> same q_eigenform as whichever code that ran first and somehow these choices 
>> are not compatible! I don't know the inner workings of q_eigenform, but 
>> this behaviour seems strange to me.
>>
>> Can anyone explain what is going on here? Is it a bug?
>>
>> Thanks!
>>
>

-- 
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 https://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to