[GAP Forum] Computation of the quotient of abelian groups

Bettina Eick beick at tu-bs.de
Mon Apr 19 07:55:15 BST 2010


Dear Forum members,

the Polycyclic package contains a method to compute sub-quotients of
a free abelian group. With V and W as in the e-mail below, this does
the following:

gap> AdditiveFactorPcp(V, W, 0);
rec(
   gens := [ [ 1, 0 ], [ 0, 1 ] ],
   rels := [ 2, 0 ],
   imgs := [ [ 0, 1 ], [ 0, -2 ], [ 0, 1 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ],
             [ 1, 1 ], [ 0, -2 ], [ 1, 1 ] ],
   prei := [ [ 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1 ],
             [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, -1 ] ],
   denom := [ [ 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
              [ 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, -1, 0, 1 ],
              [ 0, 0, 2, 0, -1, 1, -2, 0, 0, 0, -1, 1, -1, 1, 1, -1 ],
              [ 0, 0, 0, 1, 0, 0, 1, 0, -1, -1, 1, -1, 1, 0, -1, 0 ],
              [ 0, 0, 0, 0, 1, 0, -1, -1, -1, -1, -1, 0, 0, -1, 1, 0 ],
              [ 0, 0, 0, 0, 0, 1, 0, 1, 2, 1, -1, 0, -1, 0, 0, 1 ],
              [ 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0 ],
              [ 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, -1, 1, 0, 0, 0, 0 ] ] )

The input to this function is a basis 'V' in upper triangular form,
a list of generators 'W' for a subgroup of 'V' and '0' (the last 
input tells the function that you want to work over the integers).

The output is a record with various entries:
'rels'  tells you that the quotient has the isomorphism type Z_2 x Z
         (2 stands for Z_2, 0 stands for Z),
'prei'  contains preimages of two generators of the quotient,
'denom' is a basis in upper triangular form for the kernel of the
         natural homomorphism on the quotient.

Best wishes,
                Bettina


On Sun, 18 Apr 2010, mbg nimda wrote:

> Dear Forum members,
>
> I would like to know if there is an easy way to calculate, using GAP, the
> quotient of two Abelian groups. The groups I obtain are generated by vectors
> in finite dimensional vectorspaces and have integer coefficients. For
> example: V is the Z-module generated by the vectors
> [ [   1,   0,   0,   0,   0,   0,   0,   0,   0,   1,   1,   0,  -1,   1,
> 0,   0 ],
>  [   0,   1,   0,   0,   0,   0,   0,   0,   0,  -1,  -1,  -1,   0,  -1,
> 0,   1 ],
>  [   0,   0,   1,   0,   0,   0,   0,   0,   0,   1,   0,   1,   0,   0,
> 1,  -1 ],
>  [   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,   0,   0,   1,   0,
> -1,   0 ],
>  [   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,   0,   0,  -1,
> 1,   0 ],
>  [   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,  -1,   0,
> 0,   1 ],
>  [   0,   0,   0,   0,   0,   0,   1,   0,   0,   1,   1,   0,   0,   0,
> 0,   0 ],
>  [   0,   0,   0,   0,   0,   0,   0,   1,   0,  -1,  -1,  -1,   0,   0,
> 0,   0 ],
>  [   0,   0,   0,   0,   0,   0,   0,   0,   1,   1,   0,   1,   0,   0,
> 0,   0 ] ]
>
> and W is the submodule generated by the vectors
> [ [   1,   1,   1,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
> 0,   0 ],
>  [   1,   0,  -1,   0,   1,  -1,   0,   0,   0,   0,   0,   0,   0,   0,
> 0,   0 ],
>  [   0,   0,   0,   0,   0,   0,   1,   1,   1,   1,   0,   0,   0,   0,
> 0,   0 ],
>  [   0,   0,   0,   0,   0,   0,   1,   0,  -1,   0,   1,  -1,   0,   0,
> 0,   0 ],
>  [   0,   1,   0,   0,   0,   0,   0,  -1,   0,   0,   0,   0,   0,  -1,
> 0,   1 ],
>  [   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,   0,   0,  -1,
> 1,   0 ],
>  [   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,   0,   0,   1,   0,
> -1,   0 ],
>  [   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,  -1,  -1,   0,
> 0,   1 ] ]
>
> Assuming I'm correct we have that V/W is the direct sum of Z and Z/2Z. Is
> there an easy way to calculate this?
>
> Mark.
> _______________________________________________
> Forum mailing list
> Forum at mail.gap-system.org
> http://mail.gap-system.org/mailman/listinfo/forum
>



More information about the Forum mailing list