> < ^ From:

< ^ Subject:

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

groups.

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

is infinite.

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.

Thomas Breuer

> < [top]