Background.
In a previous question I asked how one defines a (modular!) representation in GAP, and I came to learn that one just has to provide GAP with the entire group homomorphism using GroupHomomorphismByImages.
Some representation-theoretic functions turn out to expect you to give the representation in a different form. For instance, in a follow-up question I asked how to apply a MeatAxe-based function to my homomorphism (assuming my representation is over $\mathbb{F}_p$), and I came to learn that, actually, you had to implement it differently, namely using GModuleByMats.
This question is yet another instance of such a confusion.
Question.
I have a subgroup $H$ of a (finite) group $G$, and I have an explicit $H$-representation (preferably over a general base field). I would like GAP to give me the induced $G$-representation. What's the right way to go about this?
What I tried.
Chapter 2 of the manual of the GAP package repsn suggests that my task is possible. It lists a function called InducedSubgroupRepresentation which claims to do what we want. But there are two issues.
- No such function actually seems to exist. However, there's a function called
InducedRepresentation. I will just assume that that's what the manual means. - The manual is vague about the type of input. It claims it wants an ambient group $G$ and a representation. But as I now know, to GAP, 'representation' can mean many things. I have tried both the type produced by
GroupHomomorphismByImagesand byGModuleByMats. Neither of them work. Presumably, there's a third, yet different, way of implementing representations. What's the right implementation?
First, this is (now corrected) not a function in main GAP, but in the package
repsn. If we look at the documentation, we find an example that shows that the second argument is a homomorphism. However, when trying it for a representation in characteristic non-zero, an error arisesWe inspect the error causing argument
and see (combination of rational 0 and characteristic five: Z(5)^0) that the error is due to careless coding for characteristic zero. This makes the function easy to fix. Lets look at the code:
We need to make this null matrix over the right field, so replace this line with:
Also, it would be good to use compact matrices, the resulting code is below (and does not need the repsn package any longer). With this, it also works in finite characteristic:
--- Code follows for your convenience ---