# Finding irreducible subrepresenations of modular representation in GAP

Recently, I have been fiddling with modular representations in GAP. First from what I can tell, GAP does not have a good way built in to find things like Brauer characters of a given non-solvable group. From the few things I have done, I have found an often useful strategy for finding Brauer characters is to take the irreducible representations over $\overline{\mathbb{Q}}$ and turn them into a representation over $\mathbb{F}_{p^n}$. However, when doing this, in a lot of cases an irreducible representation becomes reducible, but I would like to find its irreducible sub-representations, or more generally its Jordan-Holder series so that I can identify more irreducible representations.

My question is: what the best way to go about finding irreducible sub-representations in GAP? I cannot seem to find a command that does it. I am interested in this question whether or not this turns out to be the best way to compute Brauer characters.

A follow-up, more general question, is: what is the best way to compute Brauer characters, and if any of those ways are implemented using GAP and such implementations freely distributed so I can play with them?

Thank you

The best source to read up on Brauer characters and GAP is probably the book

Lux, Klaus; Pahlings, Herbert: Representations of groups. A computational approach. Cambridge Studies in Advanced Mathematics, 124. Cambridge University Press, Cambridge, 2010. x+460 pp. ISBN: 978-0-521-76807-8

Note that a lot of work in calculating the Brauer Characters goes into avoiding the construction of representations, but trying to work with characters and decomposition numbers.

If you have a representation and want to see what its irreducible constituents are, the standard tool is the MeatAxe. For example, in GAP, if mats is a list of matrices over the field with q elements, the following commands would get you a list of the composition factors with multiplicities:

module:=GModuleByMats(mats,GF(q));
MTX.CollectedFactors(module);

There are commands MTX.IsIrreducible and MTX.IsAbsolutelyIrreducible to test irreducibility.

If your matrix list is still over $\overline ℚ$, you will of course have to reduce to the finite field first in an appropriate way.