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