[back] [prev] [next] [index] [root]

 


AbelianGroupHomCreate

Creates the homomorphism corresponding to a matrix.

Syntax:

hom := AbelianGroupHomCreate(g1, g2, mat [, check]);
hom := AbelianGroupHomCreate(g1, g2, mat, [matinv]);

groups
  g1, g2  
homomorphism
  hom  
homomorphism from g1 to g2
boolean
  check  
matrix
  matinv  

See also:  AbelianHomGroup

Description:

Creates the homomorphism from group g1 to group g2 corresponding to the matrix mat. The columns of mat are the images of the generators of g1. If the fourth (optional) parameter check is true then it is checked whether the object hom is a homomorphism, i.e. mat has the correct number of rows and columns. If the fourth parameter is a matrix then it has to be the inverse of mat.


Example:


kash> g1 := AbelianGroupCreate([[0,1,2],[5,6,0],[0,4,5]]);;
kash> g2 := AbelianGroupCreate([[0,2],[3,0]]);;
kash> mat := Mat(Z, [[-24,24],[20,-20],[-10,10]]);;
kash> hom := AbelianGroupHomCreate(g1, g2, mat);
HomMatrix =
[-24  24]
[ 20 -20]
[-10  10] 
from Group with relations:
[0 1 2]
[5 6 0]
[0 4 5] 
to Group with relations:
[0 2]
[3 0]



Example:

If you feel insecure, you can use the fourth parameter check to test, whether the matrix corresponds to a homomorphism:

kash> mat := Mat(Z, [[3,0],[3,-2],[-1,2]]);;
kash> hom := AbelianGroupHomCreate(g1, g2, mat, true);
> false


<- back[back] [prev] [next] [index] [root]