How to construct submodules with GAP / MeatAxe?

178 Views Asked by At

Let $G= \langle g_1, g_2 \rangle$ be a finite group. Let $k$ be a finite field with ${\rm char}(k)=p>0$ such that $p \mid |G|$.

Let the $kG$-module $M$ be a MeatAxe-module in GAP.

The generators of $M$ are given by the two matrices $m_1$ and $m_2$, respectively, which reflect the actions of $g_1$ and $g_2$, respectively.

I'd like to ask the following two (related) questions:

1.) If ${\rm dim}_k(M)=n$ and one has a finite set $S=\{v_1,v_2,...\}$ of row vectors (where each vector has $n$ entries), how can one construct the submodule of $M$ generated by $S$ with GAP/MeatAxe ?

2.) Given a fixed element $f\in{\rm End}_{kG}(M)$ via a matrix in GAP, how can one construct the image and the kernel of $f$ as submodules of $M$ with GAP/MeatAxe ?

Thank you very much for the help.

1

There are 1 best solutions below

1
On BEST ANSWER

This will be a two-step process. First call a spinning algorithm to find a basis of the submodule and then make a MeatAxe module out of it.

For example:

gap> G:=AlternatingGroup(4);REG:=RegularModule(G,GF(4))[2];;
Alt( [ 1 .. 4 ] )
gap> vec:=[1,1,1,1,0,0,0,0,0,0,0,0]*One(GF(4));; # just some vector

Now the SpinnedBasis command calculates a basis for the smallest submodule containing the vector:

gap> bas:=MTX.SpinnedBasis(vec,REG.generators,GF(4));
< immutable compressed matrix 9x12 over GF(4) >

We can now take the induced action on this submodule (which will corresponds to the submodule basis in bas:

gap> sub:=MTX.InducedActionSubmodule(REG,bas);
rec( IsOverFiniteField := true, dimension := 9, field := GF(2^2),
  generators := [ < immutable compressed matrix 9x9 over GF(4) >,
      < immutable compressed matrix 9x9 over GF(4) > ], isMTXModule := true )

It also is possible to give a list of (independent) vectors as a seed:

gap> vec2:=[1,1,0,0,0,0,0,0,0,0,0,0]*One(GF(4));;
gap> bas:=MTX.SpinnedBasis([vec,vec2],REG.generators,GF(4));
< immutable compressed matrix 11x12 over GF(4) >