# Morphisms of Hecke modules#

AUTHORS:

• William Stein

class sage.modular.hecke.morphism.HeckeModuleMorphism[source]#

Bases: `Morphism`

Abstract base class for morphisms of Hecke modules.

class sage.modular.hecke.morphism.HeckeModuleMorphism_matrix(parent, A, name='', side='left')[source]#

Morphisms of Hecke modules when the morphism is given by a matrix.

Note that care is needed when composing morphisms, because morphisms in Sage act on the left, but their matrices act on the right (!). So if F: A -> B and G : B -> C are morphisms, the composition A -> C is G*F, but its matrix is F.matrix() * G.matrix().

EXAMPLES:

```sage: A = ModularForms(1, 4)
sage: B = ModularForms(1, 16)
sage: C = ModularForms(1, 28)
sage: F = A.Hom(B)(matrix(QQ,1,2,srange(1, 3)))
sage: G = B.Hom(C)(matrix(QQ,2,3,srange(1, 7)))
sage: G * F
Hecke module morphism defined by the matrix
[ 9 12 15]
Domain: Modular Forms space of dimension 1 for Modular Group SL(2,Z) ...
Codomain: Modular Forms space of dimension 3 for Modular Group SL(2,Z) ...
sage: F * G
Traceback (most recent call last):
...
TypeError: Incompatible composition of morphisms: domain of left morphism must be codomain of right.
```
```>>> from sage.all import *
>>> A = ModularForms(Integer(1), Integer(4))
>>> B = ModularForms(Integer(1), Integer(16))
>>> C = ModularForms(Integer(1), Integer(28))
>>> F = A.Hom(B)(matrix(QQ,Integer(1),Integer(2),srange(Integer(1), Integer(3))))
>>> G = B.Hom(C)(matrix(QQ,Integer(2),Integer(3),srange(Integer(1), Integer(7))))
>>> G * F
Hecke module morphism defined by the matrix
[ 9 12 15]
Domain: Modular Forms space of dimension 1 for Modular Group SL(2,Z) ...
Codomain: Modular Forms space of dimension 3 for Modular Group SL(2,Z) ...
>>> F * G
Traceback (most recent call last):
...
TypeError: Incompatible composition of morphisms: domain of left morphism must be codomain of right.
```
name(new=None)[source]#

Return the name of this operator, or set it to a new name.

EXAMPLES:

```sage: M = ModularSymbols(6)
sage: t = M.Hom(M)(matrix(QQ,3,3,srange(9)), name="spam"); t
Hecke module morphism spam defined by ...
sage: t.name()
'spam'
sage: t.name("eggs"); t
Hecke module morphism eggs defined by ...
```
```>>> from sage.all import *
>>> M = ModularSymbols(Integer(6))
>>> t = M.Hom(M)(matrix(QQ,Integer(3),Integer(3),srange(Integer(9))), name="spam"); t
Hecke module morphism spam defined by ...
>>> t.name()
'spam'
>>> t.name("eggs"); t
Hecke module morphism eggs defined by ...
```
sage.modular.hecke.morphism.is_HeckeModuleMorphism(x)[source]#

Return `True` if x is of type HeckeModuleMorphism.

EXAMPLES:

```sage: sage.modular.hecke.morphism.is_HeckeModuleMorphism(ModularSymbols(6).hecke_operator(7).hecke_module_morphism())
doctest:warning...
DeprecationWarning: the function is_HeckeModuleMorphism is deprecated;
See https://github.com/sagemath/sage/issues/37895 for details.
True
```
```>>> from sage.all import *
>>> sage.modular.hecke.morphism.is_HeckeModuleMorphism(ModularSymbols(Integer(6)).hecke_operator(Integer(7)).hecke_module_morphism())
doctest:warning...
DeprecationWarning: the function is_HeckeModuleMorphism is deprecated;
See https://github.com/sagemath/sage/issues/37895 for details.
True
```
sage.modular.hecke.morphism.is_HeckeModuleMorphism_matrix(x)[source]#

EXAMPLES:

```sage: sage.modular.hecke.morphism.is_HeckeModuleMorphism_matrix(ModularSymbols(6).hecke_operator(7).matrix_form().hecke_module_morphism())
doctest:warning...
DeprecationWarning: the function is_HeckeModuleMorphism_matrix is deprecated;
```>>> from sage.all import *