mksub man page

mksub — find submodules


mksub [Options] <Name>


This program calculates the submodule lattice using the output generated by mkinc(1) and mkdotl(1).  In this final step no matrix operations are involved.  Instead the program works with bit strings representing the incidences and dotted-lines.  The lattice may be decomposed into blocks using the -b option (see below).

Submodules are calculated generation by generation, the first generation consisting of all submodules generated by one local submodule.  In the nth generation all submodules generated by a submodule of generation n+1 local submodule are calculated.  If no more submodules appear, the algorithm terminates.

Output is written to three text files and one binary file.  The first file, Name.out, contains a list of irreducible constituents, the incidence matrix, the dimensions of all local submodules, a list of dotted lines, a list of all submodules, the radical and socle series, and a list of all mountains, i.e., local submodules.  The second output file is  It contains the lattice as a list in GAP format.  This list contains, for each submodule, its dimension, maximal submodules and isomorphism types of simple factors are given (see the example below).  The third output file, Name.gra, contains a description of the submodule lattice together with some additional information.  This file is read by the mkgraph program to produce a graphical representation of the lattice.  A further output file, Name.sub, contains the submodule lattice in binary format.  This file is read by the genmod(1) program.


If the -b option is used, mksub(1) tries to decompose the lattice into blocks.  By definition, a block is a set of one or more composition factors which is closed under incidences of local submodules.  For a decomposition into blocks to be possible, there must be direct summands with no common irreducible constituent.  If a decomposition exists, the whole lattice can be reconstructed from its blocks by forming direct sums.

Output files are created separately for each block, and a number is appended to the name.  For example, if the representation is called "psl277" and the lattice decomposes into 3 blocks, mksub(1) creates 9 output files:

psl211.out.1 psl211.gra.1
psl211.out.2 psl211.gra.2
psl211.out.3 psl211.gra.3

Changing the Output Format

The default output as shown above may be changed by using the -o option.  The format is any combination of "m", "d", "i", "e", "s", "r", and "o".  Each letter corresponds to a certain piece of output:




Dotted lines.


Incidence matrix.


".lat" and ".gra" files.




Radical series.


Socle series.



Quiet, no messages.


Verbose, more messages.

-T <MaxTime>

Set CPU time limit


Produce output in GAP format.  This option implies -Q.


Find blocks.

-o <Fmt>

Output elements in format Fmt.

-n <Fmt>

Exclude elements in format Fmt.

Input Files


Constituent info file.

Incidence matrix generated by mkinc(1).

Dotted-lines generated by mkdotl(1).


Mountain dimensions.

Output Files


Constituent info file.


Submodule lattice.

Incidence matrix of the submodules (GAP).


Submodule lattice for mkgraph(1).

See Also

genmod(1), mkdotl(1), mkgraph, mkinc(1)

Referenced By

genmod(1), mkgraph(1).

2.4.24 MeatAxe User Commands