Let G be a finite group and χ be an ordinary irreducible character of G. In this chapter we introduce some functions to construct a complex representation R of G affording χ. We proceed recursively, reducing the problem to smaller subgroups of G or characters of smaller degree until we obtain a problem which we can deal with directly. Inputs of most of the functions are a given group G, and an irreducible character χ. The output is a mapping (representation) which assigns to each generator x of G a matrix R(x). We can use these functions for all groups and all irreducible characters χ of degree less than 100 although in principle the same methods can be extended to characters of larger degree. The main methods in these functions which are used to construct representations of finite groups are Induction, Extension, Tensor Product and Dixon's method (for constructing representations of simple groups and their covers) [DA05], and Projective Representation method [DD10].

This section introduces the main function to compute a representation of a finite group G affording an irreducible character χ of G.

`‣ IrreducibleAffordingRepresentation` ( chi ) | ( function ) |

called with an irreducible character `chi` of a group G, this function returns a mapping (representation) which maps each generator of G to a d*d matrix, where d is the degree of `chi`. The group generated by these matrices (the image of the map) is a matrix group which is isomorphic to G modulo the kernel of the map. If G is a solvable group then there is no restriction on the degree of `chi`. In the case that G is not solvable and the character `chi` has degree bigger than 100 the output maybe is not correct. In this case sometimes the output mapping does not afford the given character or it does not return any mapping.

gap> s := PerfectGroup( 129024, 2 );; gap> G := Image(IsomorphismPermGroup( s ));; gap> chi := Irr( G )[36];; gap> chi[1]; 64 gap> IrreducibleAffordingRepresentation( chi );; #I Warning: EpimorphismSchurCover via Holt's algorithm is under construction gap> time; 92657

`‣ IsAffordingRepresentation` ( chi, rep ) | ( function ) |

If `chi` and `rep` are a character and a representation of a group G, respectively, then `IsAffordingRepresentation`

returns `true`

if the trace of `rep(x)` equals `chi(x)` for all elements x in G.

gap> G := GL(2,7);; gap> chi := Irr(G)[ 29 ];; gap> rep := IrreducibleAffordingRepresentation( chi ); CompositionMapping( [(8,15,22,29,36,43)(9,16,23,30,37,44) (10,17,24,31,38,45)(11,18,25,32,39,46)(12,19,26,33,40,47) (13,20,27,34,41,48)(14,21,28,35,42,49), (2,29,12)(3,36,20) (4,43,28)(5,8,30)(6,15,38)(7,22,46)(9,44,14)(10,16,17) (11,37,27)(13,23,39)(18,24,25)(19,45,35)(21,31,47) (26,32,33)(34,40,41)(42,48,49) ] -> [ [ [ 0, 0, 0, -1, 0, 0, 0 ], [ 1, 0, -1, -1, 1, 0, -1 ] [ 2, -1, -2, -2, 1, 2, -1 ], [ 0, 0, -1, 0, 0, 0, 0 ], [ 1, 0, -2, 0, 0, 1, -1 ], [ 1, 0, -2, -1, 1, 1, -1 ], [ -2, 1, 1, 1, -1, -1, 0 ] ], [ [ 1, -1, -1, -1, 0, 2, -1 ], [ 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], [ 0, 1, -1, 0, 0, 0, -1 ], [ 0, 1, 0, 1, 0, -1, 0 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -1, 0, 0 ] ] ], (action isomorphism) ) gap> IsAffordingRepresentation( chi, rep ); true

We can obtain the size of the image of this representation by `Size(Image(rep))`

and compute the value for an arbitrary element x in G by `x`

^`rep`

.

`‣ InducedSubgroupRepresentation` ( G, rep ) | ( function ) |

computes a representation of `G` induced from the representation `rep` of a subgroup H of `G`. If `rep` has degree d then the degree of the output representation is d*|G:H|.

gap> G := SymmetricGroup( 6 );; gap> H := AlternatingGroup( 6 );; gap> chi := Irr( H )[ 2 ];; gap> rep := IrreducibleAffordingRepresentation( chi );; gap> InducedSubgroupRepresentation( G, rep ); [ (1,2,3,4,5,6), (1,2) ] -> [ [ [ 0, 0, 0, 0, 0, 1, 1, -1, -1, -1 ], [ 0, 0, 0, 0, 0, 1, 0, -1, 0, -1 ], [ 0, 0, 0, 0, 0, 1, 0, 0, -1, -1 ], [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, -1, 0, -1 ], [ 1, 1, -1, -1, -1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, -1, -1, 0, 0, 0, 0, 0 ], [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 1, 0, -1, 0, -1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, -1, -1, 0, 0, 0, 0, 0 ] ], [ [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 1, -1, -1, -1 ], [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ], [ 1, 1, -1, -1, -1, 0, 0, 0, 0, 0 ] ] ]

In this section we introduce some functions for extending a representation of a subgroup to the whole group.

`‣ ExtendedRepresentation` ( chi, rep ) | ( function ) |

Suppose H is a subgroup of a group G and `chi` is an irreducible character of G such that the restriction of `chi` to H, phi say, is irreducible. If `rep` is an irreducible representation of H affording phi then `ExtendedRepresentation`

extends the representation `rep` of H to a representation of G affording `chi`. This function call can be quite expensive when the representation `rep` has a large degree.

gap> G := AlternatingGroup( 6 );; gap> H := Group([ (1,2,3,4,6), (1,4)(5,6) ]);; gap> chi := Irr( G )[ 2 ];; gap> phi := RestrictedClassFunction( chi, H );; gap> IsIrreducibleCharacter( phi ); true gap> rep := IrreducibleAffordingRepresentation( phi );; gap> ext := ExtendedRepresentation( chi, rep ); #I Need to extend a representation of degree 5. This may take a while. [ (1,2,3,4,5), (4,5,6) ] -> [ [ [ 0, 1, 0, -1, -1 ], [ 0, 0, 0, 1, 0 ], [ -1, -1, -1, 0, 0 ], [ 0, 0, 0, 0, -1 ], [ 0, 0, 1, 1, 1 ] ], [ [ 1, 0, 1, 0, 1 ], [ 0, 1, 0, 0, 0 ], [ -1, -1, 0, 1, 0 ], [ 1, 1, 1, 0, 0 ], [ 0, 0, -1, 0, 0 ] ] ] gap> IsAffordingRepresentation( chi, ext ); true

`‣ ExtendedRepresentationNormal` ( chi, rep ) | ( function ) |

Suppose H is a normal subgroup of a group G and `chi` is an irreducible character of G such that the restriction of `chi` to H, phi say, is irreducible. If `rep` is an irreducible representation of H affording phi then `ExtendedRepresentationNormal`

extends the representation `rep` of H to a representation of G affording `chi`. This function is more efficient than `ExtendedRepresentation`

.

gap> G := GL(2,7);; gap> chi := Irr( G )[ 29 ];; gap> H := SL(2,7);; gap> phi := RestrictedClassFunction( chi, H );; gap> IsIrreducibleCharacter( phi ); true gap> rep := IrreducibleAffordingRepresentation( phi );; gap> ext := ExtendedRepresentationNormal( chi, rep ); #I Need to extend a representation of degree 7. This may take a while. CompositionMapping( [(8,15,22,29,36,43)(9,16,23,30,37,44) (10,17,24,31,38,45)(11,18,25,32,39,46)(12,19,26,33,40,47) (13,20,27,34,41,48)(14,21,28,35,42,49),(2,29,12)(3,36,20) (4,43,28)(5,8,30)(6,15,38)(7,22,46)(9,44,14)(10,16,17) (11,37,27)(13,23,39)(18,24,25)(19,45,35)(21,31,47) (26,32,33)(34,40,41)(42,48,49) ] -> [ [ [ -1, 0, 0, 1, 0, -1, 0 ], [ -1, 0, 0, 0, 0, 0, 0 ], [ -1, 1, 0, 0, -1, 0, 0 ], [ 0, -1, 0, 0, 0, 0, 0 ], [ -1, -1, 1, 0, 1, -1, 0 ], [ 0, 0, 0, -1, 0, 0, 0 ], [ -1, 0, 1, -1, 1, 0, -1 ] ], [ [ 1, -1, 0, 1, 0, -1, 1 ], [ 1, 0, -1, 1, -1, 0, 1 ], [ 1, -1, 0, 1, -1, 0, 1 ], [ 0, 0, -1, 0, 0, 0, 0 ], [ -1, 0, 0, 1, 0, -1, 0 ], [ -1, 0, 0, 0, 0, 0, 0 ], [ -1, 1, 0, 0, -1, 0, 0 ] ] ], (action isomorphism) ) gap> IsAffordingRepresentation( chi, ext ); true

If χ is an irreducible character of a group G and H is a subgroup of G such that the restriction of χ to H has a linear constituent with multiplicity one, then we call H a character subgroup relative to χ or a χ-subgroup.

`‣ CharacterSubgroupRepresentation` ( chi ) | ( function ) |

`‣ CharacterSubgroupRepresentation` ( chi, H ) | ( function ) |

returns a representation affording `chi` by finding a `chi`-subgroup and using the method described in [Dix93]. If the second argument is a `chi`-subgroup then it returns a representation affording `chi` without searching for a `chi`-subgroup. In this case an error is signalled if no `chi`-subgroup exists.

`‣ IsCharacterSubgroup` ( chi, H ) | ( function ) |

is `true`

if `H` is a `chi`-subgroup and `false`

otherwise.

gap> G := AlternatingGroup( 8 );; gap> chi := Irr( G )[ 2 ];; gap> H := AlternatingGroup( 3 );; gap> IsCharacterSubgroup( chi, H ); true gap> rep := CharacterSubgroupRepresentation( chi, H ); [ (1,2,3,4,5,6,7), (6,7,8) ] -> [ [ [ 1/3*E(3)+2/3*E(3)^2, 0, 0, -E(3), 0, -1/3*E(3)-2/3*E(3)^2, 1 ], [ 2/3*E(3)+4/3*E(3)^2, 0, 1, 0, 0, 1/3*E(3)-1/3*E(3)^2, 0 ], [ 2/3*E(3)+4/3*E(3)^2, 0, 0, 1, 0, 1/3*E(3)-1/3*E(3)^2, 0 ], [ E(3)^2, 0, 0, 0, 0, 0, 0 ], [ 2/3*E(3)+4/3*E(3)^2, 0, 0, 0, 1, 1/3*E(3)-1/3*E(3)^2, 0 ], [ -2/3*E(3)-1/3*E(3)^2, 0, 0, -1, 0, 2/3*E(3)+1/3*E(3)^2, E(3)^2 ], [ 0, 1, 0, 0, 0, 0, 0 ] ], [ [ 1, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, -E(3), E(3), 0, 1 ] ] ]

`‣ AllCharacterPSubgroups` ( G, chi ) | ( function ) |

returns a list of all p-subgroups of `G` which are `chi`-subgroups. The subgroups are chosen up to conjugacy in `G`.

`‣ AllCharacterStandardSubgroups` ( G, chi ) | ( function ) |

returns a list containing well described subgroups of `G` which are `chi`-subgroups. This list may contain Sylow subgroups and their derived subgroups, normalizers and centralizers in `G`.

`‣ AllCharacterSubgroups` ( G, chi ) | ( function ) |

returns a list of all `chi`-subgroups of `G` among the lattice of subgroups. This function call can be quite expensive for larger groups. The call is expensive in particular if the lattice of subgroups of the given group is not yet known.

`‣ EquivalentRepresentation` ( rep ) | ( function ) |

computes an equivalent representation to an irreducible representation `rep` by transforming `rep` to a new basis by spinning up one vector (i.e. getting the other basis vectors as images under the first one under words in the generators). If the input representation, `rep`, is reducible then `EquivalentRepresentation`

does not return any mapping. In this case see section 3.

gap> G := SymmetricGroup( 7 );; gap> chi := Irr( G )[ 2 ];; gap> rep := CharacterSubgroupRepresentation( chi );; gap> equ := EquivalentRepresentation( rep ); [ (1,2,3,4,5,6,7), (1,2) ] -> [ [ [ 0, 0, 0, E(5)+E(5)^2+E(5)^3+2*E(5)^4, -1, -E(5)-E(5)^2-E(5)^3-2*E(5)^4 ], [ E(5)^3-E(5)^4, E(5)^2+E(5)^3+E(5)^4, E(5)+E(5)^3-E(5)^4, -E(5)+E(5)^2 -3*E(5)^3-E(5)^4, -E(5)-E(5)^3+E(5)^4, 2*E(5)-2*E(5)^2+2*E(5)^3 ] , [ 0, 0, 0, 1, 0, 0 ], [ 0, 4/5*E(5)+3/5*E(5)^2+2/5*E(5)^3+1/5*E(5)^4, E(5), 1, -E(5), 6/5*E(5)+2/5*E(5)^2+3/5*E(5)^3+4/5*E(5)^4 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, E(5), 1, -E(5), 2*E(5)+E(5)^2+E(5)^3+E(5)^4 ] ], [ [ -1, 0, E(5)+E(5)^2+E(5)^3+2*E(5)^4, -E(5)-E(5)^2-3*E(5)^4, -E(5)-E(5)^2-E(5)^3-2*E(5)^4, E(5)+E(5)^2+3*E(5)^4 ], [ 0, -1, 0, 0, 0, 0 ], [ 0, 0, 0, E(5)+E(5)^2+E(5)^3+2*E(5)^4, -1, -E(5)-E(5)^2-E(5)^3-2*E(5)^4 ], [ 0, 0, -1, -E(5)^4, 1, E(5)+E(5)^2+E(5)^3+2*E(5)^4 ], [ 0, 0, -E(5)^4, -E(5)^3+E(5)^4, E(5)+E(5)^2+E(5)^3+2*E(5)^4, E(5)^3-E(5)^4 ], [ 0, 0, 0, 0, 0, -1 ] ] ] gap> IsAffordingRepresentation( chi, equ ); true

generated by GAPDoc2HTML