# Homomorphisms Between Matrix Groups¶

AUTHORS:

• David Joyner and William Stein (2006-03): initial version
• David Joyner (2006-05): examples
• Simon King (2011-01): cleaning and improving code
class sage.groups.matrix_gps.matrix_group_morphism.MatrixGroupMap(parent)

A set-theoretic map between matrix groups.

class sage.groups.matrix_gps.matrix_group_morphism.MatrixGroupMorphism(parent)
class sage.groups.matrix_gps.matrix_group_morphism.MatrixGroupMorphism_im_gens(homset, imgsH, check=True)

Some python code for wrapping GAP’s GroupHomomorphismByImages function but only for matrix groups. Can be expensive if G is large.

EXAMPLES:

sage: F = GF(5); MS = MatrixSpace(F,2,2)
sage: G = MatrixGroup([MS([1,1,0,1])])
sage: H = MatrixGroup([MS([1,0,1,1])])
sage: phi = G.hom(H.gens())
sage: phi
Homomorphism : Matrix group over Finite Field of size 5 with 1 generators:
[[[1, 1], [0, 1]]] --> Matrix group over Finite Field of size 5 with 1 generators:
[[[1, 0], [1, 1]]]
sage: phi(MS([1,1,0,1]))
[1 0]
[1 1]
sage: F = GF(7); MS = MatrixSpace(F,2,2)
sage: F.multiplicative_generator()
3
sage: G = MatrixGroup([MS([3,0,0,1])])
sage: a = G.gens()[0]^2
sage: phi = G.hom([a])

image(J, *args, **kwds)

The image of an element or a subgroup.

INPUT:

J – a subgroup or an element of the domain of self.

OUTPUT:

The image of J under self

NOTE:

pushforward is the method that is used when a map is called on anything that is not an element of its domain. For historical reasons, we keep the alias image() for this method.

EXAMPLES:

sage: F = GF(7); MS = MatrixSpace(F,2,2)
sage: F.multiplicative_generator()
3
sage: G = MatrixGroup([MS([3,0,0,1])])
sage: a = G.gens()[0]^2
sage: phi = G.hom([a])
sage: phi.image(G.gens()[0]) # indirect doctest
[2 0]
[0 1]
sage: H = MatrixGroup([MS(a.list())])
sage: H
Matrix group over Finite Field of size 7 with 1 generators:
[[[2, 0], [0, 1]]]


The following tests against trac ticket #10659:

sage: phi(H)   # indirect doctestest
Matrix group over Finite Field of size 7 with 1 generators:
[[[4, 0], [0, 1]]]

kernel()

Return the kernel of self, i.e., a matrix group.

EXAMPLES:

sage: F = GF(7); MS = MatrixSpace(F,2,2)
sage: F.multiplicative_generator()
3
sage: G = MatrixGroup([MS([3,0,0,1])])
sage: a = G.gens()[0]^2
sage: phi = G.hom([a])
sage: phi.kernel()
Matrix group over Finite Field of size 7 with 1 generators:
[[[6, 0], [0, 1]]]

pushforward(J, *args, **kwds)

The image of an element or a subgroup.

INPUT:

J – a subgroup or an element of the domain of self.

OUTPUT:

The image of J under self

NOTE:

pushforward is the method that is used when a map is called on anything that is not an element of its domain. For historical reasons, we keep the alias image() for this method.

EXAMPLES:

sage: F = GF(7); MS = MatrixSpace(F,2,2)
sage: F.multiplicative_generator()
3
sage: G = MatrixGroup([MS([3,0,0,1])])
sage: a = G.gens()[0]^2
sage: phi = G.hom([a])
sage: phi.image(G.gens()[0]) # indirect doctest
[2 0]
[0 1]
sage: H = MatrixGroup([MS(a.list())])
sage: H
Matrix group over Finite Field of size 7 with 1 generators:
[[[2, 0], [0, 1]]]


The following tests against trac ticket #10659:

sage: phi(H)   # indirect doctestest
Matrix group over Finite Field of size 7 with 1 generators:
[[[4, 0], [0, 1]]]


#### Previous topic

Matrix Group Elements

#### Next topic

Matrix Group Homsets