### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »

# Hecke modules

class `sage.categories.hecke_modules.``HeckeModules`(R)

  Bases: `sage.categories.category_types.Category_module`

  The category of Hecke modules.

  A Hecke module is a module \(M\) over the emph{anemic} Hecke algebra, i.e., the Hecke algebra generated by Hecke operators \(T_n\) with \(n\) coprime to the level of \(M\). (Every Hecke module defines a level function, which is a positive integer.) The reason we require that \(M\) only be a module over the anemic Hecke algebra is that many natural maps, e.g., degeneracy maps, Atkin-Lehner operators, etc., are \(\Bold{T}\)-module homomorphisms; but they are homomorphisms over the anemic Hecke algebra.

  EXAMPLES:

  We create the category of Hecke modules over \(\QQ\):

      sage: C = HeckeModules(RationalField()); C
      Category of Hecke modules over Rational Field

  TODO: check that this is what we want:

      sage: C.super_categories()
      [Category of vector spaces with basis over Rational Field]

  # [Category of vector spaces over Rational Field]

  Note that the base ring can be an arbitrary commutative ring:

      sage: HeckeModules(IntegerRing())
      Category of Hecke modules over Integer Ring
      sage: HeckeModules(FiniteField(5))
      Category of Hecke modules over Finite Field of size 5

  The base ring doesn’t have to be a principal ideal domain:

      sage: HeckeModules(PolynomialRing(IntegerRing(), 'x'))
      Category of Hecke modules over Univariate Polynomial Ring in x over Integer Ring

  TESTS:

      sage: TestSuite(HeckeModules(ZZ)).run()

  class `Homsets`(category, *args)

    Bases: `sage.categories.homsets.HomsetsCategory`

    TESTS:

        sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
        sage: class FooBars(CovariantConstructionCategory):
        ...       _functor_category = "FooBars"
        sage: Category.FooBars = lambda self: FooBars.category_of(self)
        sage: C = FooBars(ModulesWithBasis(ZZ))
        sage: C
        Category of foo bars of modules with basis over Integer Ring
        sage: C.base_category()
        Category of modules with basis over Integer Ring
        sage: latex(C)
        \mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}})
        sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module
        sage: TestSuite(C).run()

    class `ParentMethods`
    `HeckeModules.Homsets.``base_ring`()

      EXAMPLES:

          sage: HeckeModules(QQ).Homsets().base_ring()
          Rational Field

    `HeckeModules.Homsets.``extra_super_categories_disabled`()

      EXAMPLES:

          sage: HeckeModules(ZZ).Homsets().extra_super_categories()
          [Category of homsets]

  class `HeckeModules.``ParentMethods`
  `HeckeModules.``super_categories`()

    EXAMPLES:

        sage: HeckeModules(QQ).super_categories()
        [Category of vector spaces with basis over Rational Field]

### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »