which class of G lies in which class of H (we call this a class fusion). ... X.7. 10 -2
1 1 . . . A = -E(5)-E(5)^4 = (1-ER(5))/2 = -b5. Let us now look at an example for ...
Character Tables in GAP Part II Class Fusion, Induction and Restrictions If G ≤ H every representation of H also gives a representation of G. To restrict characters we need to know which class of G lies in which class of H (we call this a class fusion). Such a class fusion is given by a list, which tells for every class of the smaller group, into which class (number) of the larger group it fuses. For complete character tables FusionConjugacyClasses can often compute such a fusion (the library tables have them stored), in other cases one can use information about the groups. For example suppose we now look at A6 : 1 2,2 3 3,3 4,2 5 5 ∣r∣ 1 2 3 3 4 5 5 ∣r G ∣ 1 45 40 40 90 72 72 ∣CG (r)∣ 360 8 9 9 4 5 5 This gives the character table head: gap> d:=rec(Identifier:="A6", > OrdersClassRepresentatives:=[ 1, 2, 3, 3, 4, 5, 5 ], > SizesCentralizers:=[ 360, 8, 9, 9, 4, 5, 5 ], > UnderlyingCharacteristic:=0);; gap> ConvertToCharacterTable(d); CharacterTable( "A6" ) The class fusion is obtained by the cycle structures of the representatives. We store the fusion in the character tables: gap> fus:=[1,3,5,7,9,10,10];; gap> StoreFusion(d,c,fus); Now we can restrict the characters of S6 to A6 . (We form a set to remove duplicates.) gap> res:=Set(Restricted(c,d,Irr(c))); [ [...] ClassFunction( CharacterTable( "A6" ), [ 5, 1, -1, 2, -1, 0, 0 ] ), [...] We calculate the norms and (as expected) find that some restrictions are irreducible, the remaining characters are sums of two conjugate characters. We store the irreducible ones and remember the (in this case one) reducible character. gap> List(res,i->ScalarProduct(i,i)); [ 1, 1, 1, 1, 1, 2 ] gap> l:=res{[1..5]};; gap> psi:=res[6];; ClassFunction( CharacterTable( "A6" ), [ 16, 0, -2, -2, 0, 1, 1 ] ) We know that ψ is the sum of two conjugate irreducible characters. As the first five classes are S n -classes, conjugation cannot change character values. Thus the irreducible constituents of ψ must have the form χ6 8 0 −1 −1 0 x y χ7 8 0 −1 −1 0 z w where x + z = 1 = y + w. The orthogonality relations give again that x = w must fulfill x 2 − x − 1, we thus can choose one root and get the missing character values:
gap> gap> 1 gap> gap> gap>
chi:=Character(d,[8,0,-1,-1,0,-EB(5),GaloisCyc(-EB(5),2)]);; ScalarProduct(chi,chi); Add(l,chi); chi:=Character(d,[8,0,-1,-1,0,GaloisCyc(-EB(5),2),-EB(5)]);; Add(l,chi);
The list of characters is complete. We sort by degrees and store the list gap> Sort(l); A6 gap> SetIrr(d,l); gap> Display(d);
2 3 5
3 3 . . 2 . 2 . 2 2 . . 1 . . . . 1 1a 2a 3a 3b 4a 5a X.1 1 1 1 1 1 1 X.2 5 1 2 -1 -1 . X.3 5 1 -1 2 -1 . X.4 8 . -1 -1 . A X.5 8 . -1 -1 . *A X.6 9 1 . . 1 -1 X.7 10 -2 1 1 . . A = -E(5)-E(5)^4 = (1-ER(5))/2 =
. . 1 5b 1 . . *A A -1 . -b5
Let us now look at an example for induction. We want to calculate the character table of SL2 (8) ≅ PSL2 (8). (This is the only simple group of order 504.) Using normal form theory (with a bit of extra work to go from GL to SL), we find that the group contains the following classes: ∣r∣ ∣CG (r)∣ ∣r G ∣
1 504 1
2 3 8 9 63 56
7 7 72
7 7 72
7 7 72
9 9 56
9 9 56
9 9 56
We form a table for this information: gap> ct:=rec(Identifier:="SL2(8)", > OrdersClassRepresentatives:=[1,2,3,7,7,7,9,9,9], > SizesCentralizers:=[504,8,9,7,7,7,9,9,9], > UnderlyingCharacteristic:=0);; gap> ConvertToCharacterTable(ct);; gap> irr:=[Character(ct,[1,1,1,1,1,1,1,1,1])];; We also observe that squaring the representatives of the classes of order 7 and 9 gives mutually the other classes. Let us first consider a cyclic subgroup of order 9. We can create the character table for this group easily (homework!), using 9th roots of unity. gap> d:=CharacterTable("cyclic",9);; Display(d); 1a 9a 9b 3a 9c 9d 3b 9e 9f X.2 1 A B C D /D /C /B /A Next we compute the fusion from this subgroup into the table of G. We know that the classes of order 3 all must fuse into the one class of order 3. The first class of order 9 can be (we have not identified the classes of G) assumed to fuse in the first class of elements of order 9. The actual values of the roots of unity then give the power map for prime 2 (already displayed above) and thus tells how classes fuse.
gap> fus:=[1,7,8,3,9,9,3,8,7];; gap> StoreFusion(d,ct,fus); We are now able to induce the characters. We remove any contribution of the trivial character gap> ind:=Induced(d,ct,Irr(d)); [ Character( CharacterTable( "SL2(8)" ), [ 56, 0, 2, 0, ... gap> ind:=Reduced(irr,ind); rec( remainders := [ VirtualCharacter( CharacterTable( "SL2(8)" ), [ 55,-1,1,-1,-1,-1,1,1,1] ), ... ] ) ], irreducibles := [ ] ) gap> ind:=ind.remainders;; For a second subgroup consider the upper triangular matrices. We have 7 choices for the diagonal (as the determinant is 1) and 8 choices for the upper right corner, thus this is a subgroup of order 56. It is easyly seen that it is a semidirect product of a group of type F+8 ≅ C23 with a cyclic group (F∗8 ) of order 7. Similarly to the dihedral group example in the homework we could determine its character table by hand. (Here we let GAP just do it, constructing the semidirect product as a permutation group by its action on the normal subgroup of order 8). gap> s:=Group((1,2)(3,4)(5,6)(7,8),(2,3,5,6,7,4,8));; gap> d:=CharacterTable(s);;Display(d); 1a 7a 7b 7c 7d 7e 7f 2a 2P 1a 7c 7d 7e 7f 7a 7b 1a X.2 1 A /B B C /C /A 1 ... X.8 7 . . . . . . -1 A = E(7)^6, B = E(7)^5, C = E(7)^4 Again the second power map tells us the possible fusion gap> fus:=[1,4,5,5,6,6,4,2];; gap> StoreFusion(d,ct,fus); gap> ind2:=Induced(d,ct,Irr(d)); [ Character( CharacterTable( "SL2(8)" ), [ 9, 1, 0, 2, 2, 2, 0, 0, 0 ] ), ... gap> ind2:=Reduced(irr,ind2); rec( remainders := [ VirtualCharacter( CharacterTable( "SL2(8)" ), ... irreducibles := [ Character( CharacterTable( "SL2(8)" ), [ 8, 0, -1, 1, 1, 1, -1, -1, -1 ] ), ... We find 4 irreducible characters and 1 remaining reducible character. We use the irreducible characters to clean out further and keep the reducible characters: gap> gap> gap> rec( gap> gap> [ 3,
Append(irr,ind2.irreducibles); Append(ind,ind2.remainders); ind:=Reduced(irr,ind); remainders := [ ... irreducibles := [ ind:=ind.remainders;; List(ind,i->ScalarProduct(i,i)); 3, 3, 3, 4 ]
] )
LLL-Reduction We now could try to find further characters for reduction or use clever tricks based on the mutual inner products. However the combinatorics involved soon becomes rather hard. Instead the LLL algorithm (due to H.Lenstra, A.Lenstra and L.Lovasz) forms integer linear combinations of a set of vectors and tries to find short vectors. Often this leads to irreducible characters. gap> LLL(ct,ind); rec( irreducibles := [ Character( CharacterTable( SL2(8) ), [ ... , remainders := [ ], norms := [ ] ) This gives us the whole table gap> Append(irr,last.irreducibles); gap> SetIrr(ct,irr); gap> Display(ct); 2 3 3 . . . . . . . 3 2 . 2 . . . 2 2 2 7 1 . . 1 1 1 . . . 1a 2a 3a 7a 7b 7c 9a 9b 9c X.1 X.2 X.3 X.4 X.5 X.6 X.7 X.8 X.9
1 7 7 7 7 8 9 9 9
1 1 -1 -2 -1 1 -1 1 -1 1 . -1 1 . 1 . 1 .
1 . . . . 1 A B C
1 . . . . 1 B C A
1 1 1 1 . 1 1 1 . D F E . E D F . F E D 1 -1 -1 -1 C . . . A . . . B . . .
A = E(7)^3+E(7)^4, B = E(7)+E(7)^6, C = E(7)^2+E(7)^5 D = -E(9)^4-E(9)^5, E = -E(9)^2-E(9)^7, F = E(9)^2+E(9)^4+E(9)^5+E(9)^7 Indeed today a standard method for obtaining the character table of a finite group is to determine the irreducible characters for sufficiently many small subgroups (if they are of the form A ⋊ B with A, B cyclic this is easy) and to induce these characters up to the whole group, using LLL reduction to obtain irreducibles.