#13633: Bug in cuspidal/eisenstein decomposition of modular symbols mod p
------------------------------------------------------+---------------------
       Reporter:  robharron                           |         Owner:  
davidloeffler
           Type:  defect                              |        Status:  new     
     
       Priority:  major                               |     Milestone:  
sage-5.5     
      Component:  modular forms                       |    Resolution:          
     
       Keywords:  modular symbols, mod p, eisenstein  |   Work issues:          
     
Report Upstream:  N/A                                 |     Reviewers:          
     
        Authors:                                      |     Merged in:          
     
   Dependencies:                                      |      Stopgaps:          
     
------------------------------------------------------+---------------------

Comment (by robharron):

 Here it is: (I'm running an up-to-date MacBook Pro with OS X 10.6.8)

 {{{
 Last login: Sun Oct 21 23:22:21 on console
 dyn-72-33-202-250:~ rharron$ uname -a
 Darwin dyn-72-33-202-250.uwnet.wisc.edu 10.8.0 Darwin Kernel Version
 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
 i386
 dyn-72-33-202-250:~ rharron$ sage
 ----------------------------------------------------------------------
 | Sage Version 5.2, Release Date: 2012-07-25                         |
 | Type "notebook()" for the browser-based notebook interface.        |
 | Type "help()" for help.                                            |
 ----------------------------------------------------------------------
 sage: ModularSymbols(Gamma0(46 * 47), 2, 1, GF(47)).eisenstein_subspace()
 ---------------------------------------------------------------------------
 ArithmeticError                           Traceback (most recent call
 last)

 /Users/rharron/<ipython console> in <module>()

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/modsym/space.pyc in eisenstein_subspace(self)
     289             6
     290         """
 --> 291         return self.eisenstein_submodule()
     292
     293     def dimension_of_associated_cuspform_space(self):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/modsym/ambient.pyc in eisenstein_submodule(self)
    1535             return self.__eisenstein_submodule
    1536         except AttributeError:
 -> 1537             self.__eisenstein_submodule =
 self.cuspidal_submodule().complement()
    1538             return self.__eisenstein_submodule
    1539

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/misc/cachefunc.so in
 sage.misc.cachefunc.CachedMethodCaller.__call__
 (sage/misc/cachefunc.c:6565)()

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/misc/cachefunc.so in
 sage.misc.cachefunc.CachedMethod._instance_call
 (sage/misc/cachefunc.c:9044)()

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/submodule.pyc in complement(self, bound)
     366                 while N % p == 0: p = arith.next_prime(p)
     367             misc.verbose("using T_%s"%p)
 --> 368             f = self.hecke_polynomial(p)
     369             T = A.hecke_matrix(p)
     370             g = T.charpoly('x')

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/module.pyc in hecke_polynomial(self, n, var)
    1458             x^3 - 2*x^2 - 7*x - 4
    1459         """
 -> 1460         return self.hecke_operator(n).charpoly(var)
    1461
    1462     def is_simple(self):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/hecke_operator.pyc in charpoly(self, var)
     272             x^6 - 14*x^5 + 29*x^4 + 172*x^3 - 124*x^2 - 320*x +
 256
     273         """
 --> 274         return self.matrix().charpoly(var)
     275
     276     def decomposition(self):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/hecke_operator.pyc in matrix(self, *args,
 **kwds)
     745             return self.__matrix
     746         except AttributeError:
 --> 747             self.__matrix = self.parent().hecke_matrix(self.__n,
 *args, **kwds)
     748             return self.__matrix
     749

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/algebra.pyc in hecke_matrix(self, n, *args,
 **kwds)
     587             [4860    0 2049]
     588         """
 --> 589         return self.__M.hecke_matrix(n, *args, **kwds)
     590
     591     def diamond_bracket_matrix(self, d):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/module.pyc in hecke_matrix(self, n)
    1349             raise IndexError, "n must be positive."
    1350         if not self._hecke_matrices.has_key(n):
 -> 1351             T = self._compute_hecke_matrix(n)
    1352             T.set_immutable()
    1353             self._hecke_matrices[n] = T

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/submodule.pyc in _compute_hecke_matrix(self,
 n)
     237         A = self.ambient_hecke_module().hecke_matrix(n)
     238         check = arith.gcd(self.level(), n) != 1
 --> 239         return A.restrict(self.free_module(), check=check)
     240
     241     def _compute_diamond_matrix(self, d):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.restrict
 (sage/matrix/matrix2.c:23432)()

 ArithmeticError: subspace is not invariant under matrix
 sage: ModularSymbols(Gamma0(46 * 47), 2, 1,
 GF(47)).cuspidal_subspace().hecke_polynomial(47)
 ---------------------------------------------------------------------------
 ArithmeticError                           Traceback (most recent call
 last)

 /Users/rharron/<ipython console> in <module>()

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/module.pyc in hecke_polynomial(self, n, var)
    1458             x^3 - 2*x^2 - 7*x - 4
    1459         """
 -> 1460         return self.hecke_operator(n).charpoly(var)
    1461
    1462     def is_simple(self):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/hecke_operator.pyc in charpoly(self, var)
     272             x^6 - 14*x^5 + 29*x^4 + 172*x^3 - 124*x^2 - 320*x +
 256
     273         """
 --> 274         return self.matrix().charpoly(var)
     275
     276     def decomposition(self):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/hecke_operator.pyc in matrix(self, *args,
 **kwds)
     745             return self.__matrix
     746         except AttributeError:
 --> 747             self.__matrix = self.parent().hecke_matrix(self.__n,
 *args, **kwds)
     748             return self.__matrix
     749

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/algebra.pyc in hecke_matrix(self, n, *args,
 **kwds)
     587             [4860    0 2049]
     588         """
 --> 589         return self.__M.hecke_matrix(n, *args, **kwds)
     590
     591     def diamond_bracket_matrix(self, d):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/module.pyc in hecke_matrix(self, n)
    1349             raise IndexError, "n must be positive."
    1350         if not self._hecke_matrices.has_key(n):
 -> 1351             T = self._compute_hecke_matrix(n)
    1352             T.set_immutable()
    1353             self._hecke_matrices[n] = T

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/modular/hecke/submodule.pyc in _compute_hecke_matrix(self,
 n)
     237         A = self.ambient_hecke_module().hecke_matrix(n)
     238         check = arith.gcd(self.level(), n) != 1
 --> 239         return A.restrict(self.free_module(), check=check)
     240
     241     def _compute_diamond_matrix(self, d):

 /Users/rharron/sage/local/lib/python2.7/site-
 packages/sage/matrix/matrix2.so in sage.matrix.matrix2.Matrix.restrict
 (sage/matrix/matrix2.c:23432)()

 ArithmeticError: subspace is not invariant under matrix
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/13633#comment:5>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to