#22634 closed defect (fixed)

Fix bug with pAutomorphicForms for weights larger than two

Reported by: mmasdeu Owned by:
Priority: major Milestone: sage-8.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 mmasdeu)

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 21 months ago by mmasdeu

  • Branch set to u/mmasdeu/22634-fix-bug-pautomorphicform
  • Commit set to ffcc45fc85a9539496b36c603857775df8f1cf2a
  • Description modified (diff)
  • Status changed from new to needs_review

New commits:

21e5565Fixed bug when lifting p-automorphic forms of weight > 2.
ffcc45fAdded doctest to show that bug is fixed.

comment:2 Changed 21 months ago by pgraef

  • 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 21 months ago by git

  • Commit changed from ffcc45fc85a9539496b36c603857775df8f1cf2a to 66bf40077256b637f124b958b3276c229fc42160

Branch pushed to git repo; I updated commit sha1. New commits:

66bf400Trac 22634: fixed one more bug.

comment:4 Changed 21 months ago by mmasdeu

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 21 months ago by mmasdeu

  • Status changed from needs_work to needs_review

comment:6 Changed 21 months ago by pgraef

  • Reviewers set to Peter Graef
  • Status changed from needs_review to positive_review

Works exactly as it should, everything looks perfect!

comment:7 Changed 21 months ago by vbraun

  • Branch changed from u/mmasdeu/22634-fix-bug-pautomorphicform to 66bf40077256b637f124b958b3276c229fc42160
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.