[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