1. Write a function FixedQuotientRep(rep, subgroup of rep.group) that returns the representation of the normalizer of the subgroup on the fixed quotient of the subgroup. This will not take long, and will follow what FixedPointRep does, using FixedQuotient and QuotientRep instead of FixedPoints and SubmoduleRep.
2.Write a function SimpleSummand(rep) that returns a list [base1,base2] where base1 is a basis for a simple summand of rep and base2 is a basis for a complementary summand.
Algorithm:
1. Compute SocleRep(rep), which returns a basis for the socle.
2. Construct the representation on the socle using SubmoduleRep.
3. Decompose the socle, using Decompose.
4. For each summand of the socle (it must be simple) check whether it has zero intersection with the space spanned by RadicalRep(rep).
5. After finding a summand with zero intersection as in 4, find a non-zero homomorphism
rep -> the summand that does not have this summand in its kernel. Do this using HomBasis, and checking for each element of the basis.
6. Return the basis for the simple summand and a basis for the kernel of the homomorphism in 5. computed using SafeNullspaceMat.