[GAP Forum] best way to work with modules under group rings

Hulpke,Alexander Alexander.Hulpke at colostate.edu
Fri Feb 22 23:50:03 GMT 2019


Dear Forum, Dear Will,

For most cases, I would linearize the module and use matrix method to work with it.
In this world a module is given by matrices, describing the algebra generator's (or group generator's) action on the vector space, homomorphisms are simply matrices. There is a set of tools that goes under the name of `MeatAxe` that allows for irreducibility tests, module decompositions, homomorphism tests. Many of the operations have a prefix `MTX.`, this was intended to allow easy swap of multiple meataxe libraries (though this is not really used).

For example (I know its not metabelian, but just to illustrate), taking V4 as a module for S4:

gap> s4:=Group((1,2,3,4),(1,2));;
gap> v4:=Group((1,2)(3,4),(1,3)(2,4));
Group([ (1,2)(3,4), (1,3)(2,4) ])
gap> IsNormal(s4,v4);
true
gap> pcgs:=Pcgs(v4);  # like a basis, allows decomposition
Pcgs([ (1,3)(2,4), (1,2)(3,4) ])
gap> ExponentsOfPcElement(pcgs,(1,4)(2,3));
[ 1, 1 ]
gap> mats:=LinearActionLayer(s4,pcgs); # matrix action of s4 generators
[ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> ]
gap> mo:=GModuleByMats(mats,GF(2));
rec( IsOverFiniteField := true, dimension := 2, field := GF(2),
  generators := [ <an immutable 2x2 matrix over GF2>,
      <an immutable 2x2 matrix over GF2> ], isMTXModule := true )
gap> MTX.IsIrreducible(mo);
true
gap> MTX.Isomorphism(mo,MTX.DualModule(mo)); # isomorphism, given as matrix
[ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ]

# note: MTX.Isomorphism assumes the module is simple. There also is `MTX.IsomorphismModules` that allows for arbitrary modules.

Best,

   Alexander


-- Alexander Hulpke, Colorado State University, Department of Mathematics,
Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA
email: hulpke at colostate.edu<mailto:hulpke at colostate.edu>, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke





On Feb 23, 2019, at 7:58 AM, Will Chen <oxeimon at gmail.com<mailto:oxeimon at gmail.com>> wrote:

Hi all,

Given a finite metabelian group G, let A be its abelianization, and G' be
its derived subgroup. I would like to get a handle on G' as an A-module.
I'm happy to work with either Z[A]-modules or (Z/n)[A]-modules.

For example, I would like to be able to:

1. Compute A-module generators for G'
2. Construct A-module homomorphisms between A-modules by specifying where
they send generators.
3. Compute kernels and images of A-module homomorphisms, as well as
constructing submodules and quotient modules...
4. Compute the groups of units of finite quotients of Z[A]...

What is the best way to do such things in GAP?

- Will


--

William Chen
NSF Postdoctoral Fellow, Department of Mathematics
McGill University,
Montreal, Quebec, H3A 0B9
oxeimon at gmail.com<mailto:oxeimon at gmail.com>
_______________________________________________
Forum mailing list
Forum at gap-system.org
https://mail.gap-system.org/mailman/listinfo/forum



More information about the Forum mailing list