# Finding all submodules

Given a finite dimensional local commutative algebra over a finite field $K$ and a finite dimensional module $M$. What is the fastest/best way to obtain all submodule from $M$ using a Computer algebra system like GAP/QPA? It might be also interesting to hear how you might do that by hand.

Here is how you can do it with QPA:

gap> A := NakayamaAlgebra(GF(3), [4]);
<GF(3)[<quiver with 1 vertices and 1 arrows>]/<two-sided ideal in <GF(3)[<quiver with 1 vertices and 1 arrows>]>, (1 generators)>>
gap> M := IndecProjectiveModules(A)[1];
<[ 4 ]>
gap> subs := AllSubmodulesOfModule(M);
[ [ <<[ 0 ]> ---> <[ 4 ]>> ], [ <<[ 1 ]> ---> <[ 4 ]>> ], [ <<[ 2 ]> ---> <[ 4 ]>> ], [ <<[ 3 ]> ---> <[ 4 ]>> ],
[ <<[ 4 ]> ---> <[ 4 ]>> ] ]


I hope that this is helpful.

Best regards, the QPA-team.

The generic method for submodules would be to write down a matrix representation and to use MeatAxe tools -- in GAP there is e.g. a function MTX.BasesSubmodules. Since your algebra is commutative, there might be better ad-hoc methods, e.g. by looking at generalized eigenspaces of the generator matrices first, but I'm not aware of any turnkey implementation of such an approach.

• Thanks. Can you give an example? For example using A:=NakayamaAlgebra([n],GF(3)) for n=3 or 4 from QPA. This gives $K[x]/(x^n)$ with K=GF(3) and as module the radical. – Mare Sep 4 '17 at 14:02
• @Mare Sorry- I do not know how to use QPA – ahulpke Sep 4 '17 at 15:06