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@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum


_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

Reply via email to