Opened 10 months ago
Closed 10 months ago
#22634 closed defect (fixed)
Fix bug with pAutomorphicForms for weights larger than two
Reported by:  mmasdeu  Owned by:  

Priority:  major  Milestone:  sage8.0 
Component:  modular forms  Keywords:  Bruhat Tits, Harmonic Cocycles, Overconvergent 
Cc:  roed  Merged in:  
Authors:  Marc Masdeu  Reviewers:  Peter Graef 
Report Upstream:  N/A  Work issues:  
Branch:  66bf400 (Commits)  Commit:  66bf40077256b637f124b958b3276c229fc42160 
Dependencies:  Stopgaps: 
Description (last modified by )
The following code illustrates the bug:
sage: X = BruhatTitsQuotient(7,2) sage: H = X.harmonic_cocycles(4,20) sage: A = X.padic_automorphic_forms(4,20,overconvergent=True) sage: f = A.lift(H.basis()[0]).modular_form(method='moments') sage: T.<x> = Qq(7^2,20) sage: a,b,c,d = X.embed_quaternion(X.get_units_of_order()[1]).change_ring(Qp(7,20)).list() sage: (c*x + d)^4 * f(x) == f((a*x + b)/(c*x + d)) # Should return True False
The problem arose because of the way distributions work, which get normalized even when the user wishes they weren't. I propose a fix to this.
Change History (7)
comment:1 Changed 10 months ago by
 Branch set to u/mmasdeu/22634fixbugpautomorphicform
 Commit set to ffcc45fc85a9539496b36c603857775df8f1cf2a
 Description modified (diff)
 Status changed from new to needs_review
comment:2 Changed 10 months ago by
 Status changed from needs_review to needs_work
The bug still seems to occur in other cases, for example here
sage: X = BruhatTitsQuotient(7,2) sage: H = X.harmonic_cocycles(4,20) sage: A = X.padic_automorphic_forms(4,20,overconvergent=True) sage: f = A.lift(H.basis()[1]).modular_form(method='moments') sage: T.<x> = Qq(7^2,20) sage: a,b,c,d = X.embed_quaternion(X.get_units_of_order()[1]).change_ring(Qp(7,20)).list() sage: (c*x + d)^4 * f(x)  f((a*x + b)/(c*x + d)) (6*x + 3) + (6*x + 5)*7 + (x + 6)*7^2 + (2*x + 3)*7^3 + (3*x + 2)*7^4 + (6*x + 4)*7^5 + (x + 3)*7^6 + (4*x + 6)*7^7 + (5*x + 1)*7^8 + (6*x + 1)*7^9 + (3*x + 5)*7^10 + (x + 2)*7^11 + (5*x + 2)*7^12 + (5*x + 6)*7^13 + (4*x + 4)*7^14 + 5*7^15 + (4*x + 4)*7^16 + O(7^17)
or here
sage: X = BruhatTitsQuotient(3,5) sage: H = X.harmonic_cocycles(4,20) sage: A = X.padic_automorphic_forms(4,20,overconvergent=True) sage: f = A.lift(H.basis()[0]).modular_form(method='moments') sage: T.<x> = Qq(3^2,20) sage: a,b,c,d = X.embed_quaternion(X.get_units_of_order()[1]).change_ring(Qp(3,20)).list() sage: (c*x + d)^4 * f(x)  f((a*x + b)/(c*x + d)) 3^3 + (x + 2)*3^5 + 2*x*3^6 + (x + 1)*3^7 + 2*3^8 + (x + 2)*3^9 + (2*x + 1)*3^10 + (2*x + 2)*3^12 + (x + 2)*3^14 + 2*x*3^15 + x*3^16 + O(3^17)
I tried to track down the problem, but didn't suceed. When evaluating the lift of the harmonic cocycle on random matrices, I just noticed that the values for the higher moments seem to be wrong.
comment:3 Changed 10 months ago by
 Commit changed from ffcc45fc85a9539496b36c603857775df8f1cf2a to 66bf40077256b637f124b958b3276c229fc42160
Branch pushed to git repo; I updated commit sha1. New commits:
66bf400  Trac 22634: fixed one more bug.

comment:4 Changed 10 months ago by
I tracked the error. I was trying to be extra careful in the lifting step and it turns out that it's not needed. The old code did not have this "functionality" and that's why it worked!
comment:5 Changed 10 months ago by
 Status changed from needs_work to needs_review
comment:6 Changed 10 months ago by
 Reviewers set to Peter Graef
 Status changed from needs_review to positive_review
Works exactly as it should, everything looks perfect!
comment:7 Changed 10 months ago by
 Branch changed from u/mmasdeu/22634fixbugpautomorphicform to 66bf40077256b637f124b958b3276c229fc42160
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
Fixed bug when lifting pautomorphic forms of weight > 2.
Added doctest to show that bug is fixed.