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), ); <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); <[ 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.