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

8 Examples

8 Examples

gap> zz := HomalgRingOfIntegers( );
Z
gap> F := HomalgFreeLeftModule( 1, zz );
<A free left module of rank 1 on a free generator>
gap> 1 * zz;
<The free left module of rank 1 on a free generator>
gap> F := HomalgFreeLeftModule( 2, zz );
<A free left module of rank 2 on free generators>
gap> 2 * zz;
<A free left module of rank 2 on free generators>
gap> zz := HomalgRingOfIntegers( );
Z
gap> F := HomalgFreeRightModule( 1, zz );
<A free right module of rank 1 on a free generator>
gap> zz * 1;
<The free right module of rank 1 on a free generator>
gap> F := HomalgFreeRightModule( 2, zz );
<A free right module of rank 2 on free generators>
gap> zz * 2;
<A free right module of rank 2 on free generators>
gap> zz := HomalgRingOfIntegers( );
Z
gap> F := HomalgZeroLeftModule( zz );
<A zero left module>
gap> 0 * zz;
<The zero left module>
gap> zz := HomalgRingOfIntegers( );
Z
gap> F := HomalgZeroRightModule( zz );
<A zero right module>
gap> zz * 0;
<The zero right module>
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> Display( M );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

Cokernel of the map

Z^(1x2) --> Z^(1x3),

currently represented by the above matrix
gap> BasisOfModule( M );
<A set of 2 relations for 3 generators of a homalg left module>
gap> M;
<A rank 1 left module presented by 2 relations for 3 generators>
gap> Display( M );
[ [   1,   0,  -1 ],
  [   0,   3,   6 ] ]

Cokernel of the map

Z^(1x2) --> Z^(1x3),

currently represented by the above matrix
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 := RightPresentation( M );
<A right module on 2 generators satisfying 3 relations>
gap> Display( M );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

Cokernel of the map

Z^(3x1) --> Z^(2x1),

currently represented by the above matrix
gap> BasisOfModule( M );
<A set of 2 relations for 2 generators of a homalg right module>
gap> M;
<A torsion right module on 2 generators satisfying 2 relations>
gap> Display( M );
[ [  1,  0 ],
  [  1,  3 ] ]

Cokernel of the map

Z^(2x1) --> Z^(2x1),

currently represented by the above matrix
gap> zz := HomalgRingOfIntegers( );
Z
gap> Display( zz );
<An internal ring>
gap> Z4 := zz / 4;
Z/( 4 )
gap> Display( Z4 );
<A residue class ring>
gap> M := HomalgDiagonalMatrix( [ 2 .. 4 ], zz );
<An unevaluated diagonal 3 x 3 matrix over an internal ring>
gap> M := LeftPresentation( M );
<A torsion left module presented by 3 relations for 3 generators>
gap> Display( M );
Z/< 2 > + Z/< 3 > + Z/< 4 >
gap> M;
<A torsion left module presented by 3 relations for 3 generators>
gap> N := Z4 * M; ## or N := M * Z4;
<A non-torsion left module presented by 2 relations for 3 generators>
gap> ByASmallerPresentation( N );
<A non-torsion left module presented by 1 relation for 2 generators>
gap> Display( N );
Z/( 4 )/< |[ 2 ]| > + Z/( 4 )^(1 x 1)
gap> N;
<A non-torsion left module presented by 1 relation for 2 generators>
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> Z4 := zz / 4;
Z/( 4 )
gap> M4 := Z4 * M;
<A non-torsion left module presented by 2 relations for 3 generators>
gap> Display( M4 );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

modulo [ 4 ]

Cokernel of the map

Z/( 4 )^(1x2) --> Z/( 4 )^(1x3),

currently represented by the above matrix
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> Display( M );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

Cokernel of the map

Z^(1x2) --> Z^(1x3),

currently represented by the above 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> M;
<A rank 1 left module presented by 1 relation for 2 generators>
gap> SetPositionOfTheDefaultPresentation( M, 1 );
gap> M;
<A rank 1 left module presented by 2 relations for 3 generators>
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> Display( M );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

Cokernel of the map

Z^(1x2) --> Z^(1x3),

currently represented by the above matrix
gap> dM := Resolution( M );
<A non-zero right acyclic complex containing a single morphism of left modules
 at degrees [ 0 .. 1 ]>
gap> Display( dM );
-------------------------
at homology degree: 1
Z^(1 x 2)
-------------------------
[ [   1,   0,  -1 ],
  [   0,   3,   6 ] ]

the map is currently represented by the above 2 x 3 matrix
------------v------------
at homology degree: 0
Z^(1 x 3)
-------------------------
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> Z4 := zz / 4;
Z/( 4 )
gap> M4 := Z4 * M;
<A non-torsion left module presented by 2 relations for 3 generators>
gap> Display( M4 );
[ [  2,  3,  4 ],
  [  5,  6,  7 ] ]

modulo [ 4 ]

Cokernel of the map

Z/( 4 )^(1x2) --> Z/( 4 )^(1x3),

currently represented by the above matrix
gap> d := Resolution( 2, M4 );
<A right acyclic complex containing 2 morphisms of left modules at degrees
 [ 0 .. 2 ]>
gap> Display( d );
-------------------------
at homology degree: 2
0
-------------------------
(an empty 0 x 2 matrix)

the map is currently represented by the above 0 x 2 matrix
------------v------------
at homology degree: 1
Z/( 4 )^(1 x 2)
-------------------------
[ [  1,  0,  3 ],
  [  0,  1,  2 ] ]

modulo [ 4 ]

the map is currently represented by the above 2 x 3 matrix
------------v------------
at homology degree: 0
Z/( 4 )^(1 x 3)
-------------------------
gap> zz := HomalgRingOfIntegers( );
Z
gap> mat := HomalgMatrix( "[ \
> 0, 1, 0, \
> 5, 6, 7, \
> 4, 6, 7  \
> ]", 3, 3, zz );
<A 3 x 3 matrix over an internal ring>
gap> M := LeftPresentation( mat );
<A left module presented by 3 relations for 3 generators>
gap> Display( M );
[ [  0,  1,  0 ],
  [  5,  6,  7 ],
  [  4,  6,  7 ] ]

Cokernel of the map

Z^(1x3) --> Z^(1x3),

currently represented by the above matrix
gap> GetRidOfZeroGenerators( M );
<A cyclic torsion left module presented by 2 relations
 for a cyclic generator>
gap> Display( M );
Z/< 7, 7 >
gap> N := RightPresentation( Involution( mat ) );
<A right module on 3 generators satisfying 3 relations>
gap> Display( N );
[ [  0,  5,  4 ],
  [  1,  6,  6 ],
  [  0,  7,  7 ] ]

Cokernel of the map

Z^(3x1) --> Z^(3x1),

currently represented by the above matrix
gap> GetRidOfZeroGenerators( N );
<A cyclic torsion right module on a cyclic generator
 satisfying 2 relations>
gap> Display( N );
Z/< 7, 7 >
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> 0 * phi;
<The zero morphism of left modules>
gap> nu := -phi;
<A "homomorphism" of left modules>
gap> psi := HomalgMap( mat, M, N );
<A "homomorphism" of left modules>
gap> chi := phi + psi;
<A "homomorphism" of left modules>
gap> eta := phi - psi;
<The zero morphism of left modules>
gap> IsMorphism( phi );
true
gap> phi;
<A homomorphism of left modules>
gap> nu;
<A homomorphism of left modules>
gap> IsMorphism( psi );
true
gap> chi;
<A homomorphism of left modules>
gap> lambda := HomalgMap( CertainColumns( mat, [ 1, 2, 4 ] ), M, M );
<An endo"morphism" of a left module>
gap> IsMorphism( lambda );
false
gap> lambda;
<A non-well-defined self-map of a left module>
gap> zz := HomalgRingOfIntegersInExternalGAP( );
Z
gap> M := HomalgMatrix( "[ \
> 2, 3, 4, \
> 5, 6, 7  \
> ]", 2, 3, zz );
<A 2 x 3 matrix over an external ring>
gap> M := LeftPresentation( M );
<A non-torsion left module presented by 2 relations for 3 generators>
gap> N := End( M );
<A non-torsion right module on 4 generators satisfying 3 relations>
gap> e := End( N );
<A non-torsion left module presented by 7 relations for 8 generators>
gap> ByASmallerPresentation( e );
<A non-torsion left module presented by 6 relations for 7 generators>
gap> g := GetGenerators( e );
[ <An endomorphism of a right module>, <An endomorphism of a right module>,
  <An endomorphism of a right module>, <An endomorphism of a right module>,
  <An endomorphism of a right module>, <An endomorphism of a right module>,
  <An endomorphism of a right module> ]
gap> Perform( g, Display );
[ [   1,   3,   3,   5 ],
  [   1,   2,   1,   2 ],
  [   1,   1,  -1,  -1 ],
  [   1,   1,   1,   1 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [  -1,   3,   1,   5 ],
  [   0,   2,   0,   2 ],
  [   1,   1,  -1,  -1 ],
  [   1,   1,   1,   1 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [   0,   0,   0,   4 ],
  [   0,   1,   0,   1 ],
  [   0,   2,   0,  -2 ],
  [   0,   2,   0,   2 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [   0,  -1,   0,   5 ],
  [   0,   0,   0,   2 ],
  [   0,   1,   0,  -1 ],
  [   0,   1,   0,   1 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [   0,  -2,   0,   2 ],
  [   0,   0,   0,   1 ],
  [   0,   2,   0,   0 ],
  [   0,   0,   0,   2 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [   0,  -1,   0,   0 ],
  [   0,   0,   0,   0 ],
  [   0,   1,   0,   0 ],
  [   0,   0,   0,   1 ] ]

the map is currently represented by the above 4 x 4 matrix
[ [  -1,   0,   3,   4 ],
  [   0,   1,   0,   1 ],
  [   2,   0,  -2,  -2 ],
  [   2,   2,   2,   0 ] ]

the map is currently represented by the above 4 x 4 matrix
gap> ByASmallerPresentation( N );
<A non-torsion right module on 3 generators satisfying 2 relations>
gap> Perform( g, Display );
[ [  -2,   2,   1 ],
  [   0,   1,   0 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  -4,   2,   2 ],
  [   0,   1,   0 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  -2,   1,   1 ],
  [  -4,   2,   2 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  -6,   2,   2 ],
  [  -2,   1,   1 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  -3,   1,   1 ],
  [  -6,   2,   2 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [   0,   0,   0 ],
  [  -3,   1,   1 ],
  [   0,   0,   0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  -2,   1,   1 ],
  [   6,   0,  -3 ],
  [   0,   0,   1 ] ]

the map is currently represented by the above 3 x 3 matrix
gap> Perform( g, DecideZero );
gap> Perform( g, Display );
[ [  1,  2,  1 ],
  [  0,  1,  0 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  2,  2,  2 ],
  [  0,  1,  0 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  1,  1,  1 ],
  [  2,  2,  2 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  0,  2,  2 ],
  [  1,  1,  1 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  0,  1,  1 ],
  [  0,  2,  2 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  0,  0,  0 ],
  [  0,  1,  1 ],
  [  0,  0,  0 ] ]

the map is currently represented by the above 3 x 3 matrix
[ [  1,  1,  1 ],
  [  0,  0,  0 ],
  [  0,  0,  1 ] ]

the map is currently represented by the above 3 x 3 matrix
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 Ind

generated by GAPDoc2HTML