Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

5 Maps
 5.1 Constructors

5 Maps

5.1 Constructors

5.1-1 HomalgMap
‣ HomalgMap( mat, M, N )( operation )

Returns: a homalg map

This constructor returns a map (homomorphism) of finitely presented modules. It is represented by the homalg matrix mat relative to the current set of generators of the source homalg module M and target module N. Unless the source module is free and given on free generators the returned map will cautiously be indicated using parenthesis: homomorphism. To verify if the result is indeed a well defined map use IsMorphism (homalg: IsMorphism). If the presentations of the source or/and target module are altered after the map was constructed, a new adapted representation matrix of the map is automatically computed whenever needed. For this the internal transition matrices of the modules are used. If source and target are identical objects, and only then, the map is created as a selfmap (endomorphism). homalg uses the so-called associative convention for maps. This means that maps of left modules are applied from the right, whereas maps of right modules from the left.

gap> zz := HomalgRingOfIntegers( );
Z
gap> M := HomalgMatrix( "[ \
> 2, 3, 4, \
> 5, 6, 7  \
> ]", 2, 3, zz );
<A 2 x 3 matrix over an internal ring>
gap> M := LeftPresentation( M );
<A non-torsion left module presented by 2 relations for 3 generators>
gap> N := HomalgMatrix( "[ 2, 3, 4, 5,   6, 7, 8, 9 ]", 2, 4, zz );
<A 2 x 4 matrix over an internal ring>
gap> N := LeftPresentation( N );
<A non-torsion left module presented by 2 relations for 4 generators>
gap> mat := HomalgMatrix( "[ \
> 1, 0, -2, -4, \
> 0, 1,  4,  7, \
> 1, 0, -2, -4  \
> ]", 3, 4, zz );
<A 3 x 4 matrix over an internal ring>
gap> phi := HomalgMap( mat, M, N );
<A "homomorphism" of left modules>
gap> IsMorphism( phi );
true
gap> phi;
<A homomorphism of left modules>
gap> Display( phi );
[ [   1,   0,  -2,  -4 ],
  [   0,   1,   4,   7 ],
  [   1,   0,  -2,  -4 ] ]

the map is currently represented by the above 3 x 4 matrix
gap> ByASmallerPresentation( M );
<A rank 1 left module presented by 1 relation for 2 generators>
gap> Display( M );
Z/< 3 > + Z^(1 x 1)
gap> Display( phi );
[ [   2,   1,   0,  -1 ],
  [   1,   0,  -2,  -4 ] ]

the map is currently represented by the above 2 x 4 matrix
gap> ByASmallerPresentation( N );
<A rank 2 left module presented by 1 relation for 3 generators>
gap> Display( N );
Z/< 4 > + Z^(1 x 2)
gap> Display( phi );
[ [  -8,   0,   0 ],
  [  -3,  -1,  -2 ] ]

the map is currently represented by the above 2 x 3 matrix
gap> ByASmallerPresentation( phi );
<A non-zero homomorphism of left modules>
gap> Display( phi );
[ [   0,   0,   0 ],
  [   1,  -1,  -2 ] ]

the map is currently represented by the above 2 x 3 matrix

To construct a map with source being a not yet specified free module

gap> N;
<A rank 2 left module presented by 1 relation for 3 generators>
gap> SetPositionOfTheDefaultSetOfGenerators( N, 1 );
gap> N;
<A rank 2 left module presented by 2 relations for 4 generators>
gap> psi := HomalgMap( mat, "free", N );
<A homomorphism of left modules>
gap> Source( psi );
<A free left module of rank 3 on free generators>

To construct a map between not yet specified free left modules

gap> chi := HomalgMap( mat ); ## or chi := HomalgMap( mat, "l" );
<A homomorphism of left modules>
gap> Source( chi );
<A free left module of rank 3 on free generators>
gap> Target( chi );
<A free left module of rank 4 on free generators>

To construct a map between not yet specified free right modules

gap> kappa := HomalgMap( mat, "r" );
<A homomorphism of right modules>
gap> Source( kappa );
<A free right module of rank 4 on free generators>
gap> Target( kappa );
<A free right module of rank 3 on free generators>
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Ind

generated by GAPDoc2HTML