Dear GAP Forum,
Bruce Coletti wrote
Can GAP3.4.4 do the following:
- Let A be a set of integer m-tuples (a list of integer-lists, right?)- Let B be a subset of A
- Let M(A) be the additive group consisting of all possible integer linear
combinations of members in A (what GAP function does this?)
- Define M(B) similarly for B
- Let G be the factor group M(A) / M(B) (I presume FactorGroup is used, but
don't know how to syntactically define the groups M(A) and M(B))
The question is what one wants to do with the Z-module M(A) / M(B).
If one wants to use the usual group functions such as SylowSubgroup
then GAP cannot do this.
The reason is simply that groups in GAP are always multiplicative
Also Z-modules are not supported as domains in GAP, that is,
there is no GAP command to construct M(A) from its generators A.
It would be possible to write additive groups multiplicatively,
hence to construct M(A) and M(B) as finitely presented groups
with m generators, but this would not help in general since such
groups are handled mainly via coset enumeration methods.
In particular, one gets into trouble if the factor group in question
So I am afraid that one has to handle the data implicitly.
For example, if one is interested in the abelian invariants of
M(A) / M(B) then one can first compute a basis of M(A) and express
B in terms of this basis (using the command `LLLReducedBasis'),
then compute the elementary divisors of the transformation matrix
(using `ElementaryDivisorsMat'), and finally compute the abelian
invariants (using `AbelianInvariantsOfList').
I hope this helps a little.