Opened 7 years ago

Closed 6 years ago

#13198 closed defect (fixed)

old_submodule on modular symbols gives wrong answer

Reported by: mderickx Owned by: craigcitro
Priority: major Milestone: sage-5.12
Component: modular forms Keywords: sd51
Cc: Merged in: sage-5.12.beta2
Authors: David Loeffler Reviewers: Alex Ghitza
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description

The following is clearly wrong

sage: M=ModularSymbols(Gamma1(22),sign=1)
sage: S=M.cuspidal_submodule();S
Modular Symbols subspace of dimension 6 of Modular Symbols space of dimension 25 for Gamma_1(22) of weight 2 with sign 1 and over Rational Field
sage: S.new_submodule()
Modular Symbols subspace of dimension 4 of Modular Symbols space of dimension 25 for Gamma_1(22) of weight 2 with sign 1 and over Rational Field
sage: S.old_submodule()
Modular Symbols subspace of dimension 3 of Modular Symbols space of dimension 25 for Gamma_1(22) of weight 2 with sign 1 and over Rational Field

It's wrong because the new and the old subspace should be disjoint and together span the whole space. Note that the answers are as expected when using modular forms:

sage: M=ModularForms(Gamma1(22))
sage: S=M.cuspidal_submodule();S
Cuspidal subspace of dimension 6 of Modular Forms space of dimension 25 for Congruence Subgroup Gamma1(22) of weight 2 over Rational Field
sage: S.new_submodule()
Modular Forms subspace of dimension 4 of Modular Forms space of dimension 25 for Congruence Subgroup Gamma1(22) of weight 2 over Rational Field
sage: S.old_submodule()
Modular Forms subspace of dimension 2 of Modular Forms space of dimension 25 for Congruence Subgroup Gamma1(22) of weight 2 over Rational Field

Ps. I tested this using sage 5.2.alpha0

Attachments (1)

trac_13198.patch (15.4 KB) - added by davidloeffler 6 years ago.
Patch against 5.11.beta3

Download all attachments as: .zip

Change History (7)

comment:1 Changed 7 years ago by mderickx

The cause of this bug and a way to fix it is mentioned in the google group discussion: https://groups.google.com/forum/?fromgroups#!topic/sage-nt/pCggjYWRdMg

I just post this here just in case someone stumbles upon this bug and fixes it before I have the time. Hopefully saving that person debugging time.

comment:2 Changed 6 years ago by davidloeffler

  • Keywords sd51 added

I am not sure I agree with your diagnosis on the sage-devel thread. The definition of the old submodule as the sum of the images of the degeneracy level-raising maps makes perfect sense in this setting; it won't be orthogonal to the kernel of the level-lowering maps, but it should still be Hecke-invariant and the space Sage is returning here just isn't:

sage: M22 = ModularSymbols(Gamma1(22), sign=1)                                                       
sage: M2 = ModularSymbols(Gamma1(2))                                                                 
sage: d1 = M2.degeneracy_map(M22,1)                                                                  
sage: d2 = M2.degeneracy_map(M22,11)                                                                 
sage: M22.hecke_matrix(17).restrict((d1.image() + d2.image()).free_module())                         
...
ArithmeticError: subspace is not invariant under matrix

The problem, I think, is this:

sage: M2                                                                                             
Modular Symbols space of dimension 1 for Gamma_0(2) of weight 2 with sign 0 over Rational Field

and thus M2 is trying to use code intended for passing between Gamma0 levels instead of Gamma1 levels.

I will fix this during SD51 if I have time.

Changed 6 years ago by davidloeffler

Patch against 5.11.beta3

comment:3 Changed 6 years ago by davidloeffler

  • Authors set to David Loeffler
  • Status changed from new to needs_review

Here's a patch. The actual change is very small, but I cleaned up some ReST formatting and added a file to the ref manual at the same time.

comment:4 Changed 6 years ago by AlexGhitza

  • Reviewers set to Alex Ghitza
  • Status changed from needs_review to positive_review

comment:5 Changed 6 years ago by AlexGhitza

  • Milestone changed from sage-5.11 to sage-5.12

comment:6 Changed 6 years ago by jdemeyer

  • Merged in set to sage-5.12.beta2
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.