GAP (CTblLibXpls) - Chapter 5: GAP Computations with \(O_8^+(5).S_3\) and \(O_8^+(2).S_3\)

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

5 GAP Computations with \(O_8^+(5).S_3\) and \(O_8^+(2).S_3\)
5.1 Overview
5.2 Constructing Representations of \(M.2\) and \(S.2\)
5.2-1 A Matrix Representation of the Weyl Group of Type \(E_8\)
5.2-2 Embedding the Weyl group of Type \(E_8\) into GO\({}^+(8,5)\)
5.2-3 Compatible Generators of \(M\), \(M.2\), \(S\), and \(S.2\)
5.3 Constructing Representations of \(M.3\) and \(S.3\)
5.3-1 The Action of \(M.3\) on \(M\)
5.3-2 The Action of \(S.3\) on \(S\)
5.4 Constructing Compatible Generators of \(H\) and \(G\)
5.5 Application: Regular Orbits of \(H\) on \(G/H\)
5.6 Appendix: The Permutation Character \((1_H^G)_H\)
5.7 Appendix: The Data File

### 5 GAP Computations with \(O_8^+(5).S_3\) and \(O_8^+(2).S_3\)

Date: October 08th, 2006

This chapter shows how to construct a representation of the automorphic extension \(G\) of the simple group \(S = O_8^+(5)\) by a symmetric group on three points, together with an embedding of the normalizer \(H\) of an \(O_8^+(2)\) type subgroup of \(O_8^+(5)\).

As an application, it is shown that the permutation representation of \(G\) on the cosets of \(H\) has a base of length two. This question arose in [BGS11].

#### 5.1 Overview

Let \(S\) denote the simple group \(O_8^+(5) \cong \) P\(\Omega^+(8,5)\), that is, the nonabelian simple group that occurs as a composition factor of the general orthogonal group GO\({}^+(8,5)\) of \(8 \times 8\) matrices over the field with five elements.

The outer automorphism group of \(S\) is isomorphic to the symmetric group on four points. Let \(G\) be an automorphic extension of \(S\) by the symmetric group on three points. By [Kle87], the group \(S\) contains a maximal subgroup \(M\) of the type \(O_8^+(2)\) such that the normalizer \(H\), say, of \(M\) in \(G\) is an automorphic extension of \(M\) by a symmetric group on three points. (In fact, \(H\) is isomorphic to the full automorphism group of \(O_8^+(2)\).)

Let \(S.2\) and \(S.3\) denote intermediate subgroups between \(S\) and \(G\), in which \(S\) has the indices \(2\) and \(3\), respectively. Analogously, let \(M.2 = H \cap S.2\) and \(M.3 = H \cap S.3\).

In Section 5.2, we use the following approach to construct representations of \(M.2\) and \(S.2\). By [CCN+85, p. 85], the Weyl group \(W\) of type \(E_8\) is a double cover of \(M.2\), and the reduction of its rational \(8\)-dimensional representation modulo \(5\) embeds into the general orthogonal group GO\({}^+(8,5)\), which has the structure \(2.O_8^+(5).2^2\). Then the actions of GO\({}^+(8,5)\) and of an isomorphic image of \(W\) in GO\({}^+(8,5)\) on \(1\)-spaces in the natural module of GO\({}^+(8,5)\) yield \(M.2\) as a subgroup of (a supergroup of) \(S.2\), where both groups are represented as permutation groups on \(N = 19\,656\) points.

In Section 5.3, first we use GAP to compute the automorphism group of \(M\). Then we take an outer automorphism \(\alpha\) of \(M\), of order three, and extend \(\alpha\) to an automorphism of \(S\). Concretely, we compute the images of generating sets of \(S\) and \(M\) under \(\alpha\) and \(\alpha^2\). This yields permutation representations of \(S.3\) and its subgroup \(M.3\) on \(3 N = 58\,968\) points.

In Section 5.4, we put the above information together, in order to construct permutation representations of \(G\) and \(M\), on \(3 N\) points.

As an application, it is shown in Section 5.5 that the permutation representation of \(G\) on the cosets of \(H\) has a base of length two; this question arose in [BGS11].

In two appendices, it is discussed how to derive a part of this result from the permutation character \((1_H^G)_H\) (see Section 5.6), and a file containing the data used in the earlier sections is described (see Section 5.7).

#### 5.2 Constructing Representations of \(M.2\) and \(S.2\)

##### 5.2-1 A Matrix Representation of the Weyl Group of Type \(E_8\)

Following the recipe listed in [CCN+85, p. 85, Section Weyl], we can generate the Weyl group \(W\) of type \(E_8\) as a group of rational \(8 \times 8\) matrices generated by the reflections in the vectors

\[ \left(\pm 1/2, \pm 1/2, 0, 0, 0, 0, 0, 0\right) \]

plus the vectors obtained from these by permuting the coordinates, plus those those vectors of the form

\[ \left( \pm 1/2, \pm 1/2, \pm 1/2, \pm 1/2, \pm 1/2, \pm 1/2, \pm 1/2, \pm 1/2 \right) \]

that have an even number of negative signs. (Clearly it is sufficient to consider only one vector form a pair \(\pm v\).)

    gap> rootvectors:= [];;
    gap> for i in Combinations( [ 1 .. 8 ], 2 ) do
    >      v:= 0 * [ 1 .. 8 ];
    >      v{i}:= [ 1, 1 ];
    >      Add( rootvectors, v );
    >      v:= 0 * [ 1 .. 8 ];
    >      v{i}:= [ 1, -1 ];
    >      Add( rootvectors, v );
    >    od;
    gap> Append( rootvectors,
    >      1/2 * Filtered( Tuples( [ -1, 1 ], 8 ),
    >              x -> x[1] = 1 and Number( x, y -> y = 1 ) mod 2 = 0 ) );
    gap> we8:= Group( List( rootvectors, ReflectionMat ) );
    <matrix group with 120 generators>

##### 5.2-2 Embedding the Weyl group of Type \(E_8\) into GO\({}^+(8,5)\)

The elements in the group constructed above respect the symmetric bilinear form that is given by the identity matrix.

    gap> I:= IdentityMat( 8 );;
    gap> ForAll( GeneratorsOfGroup( we8 ), x -> x * TransposedMat(x) = I );
    true

So the reduction of the matrices modulo \(5\) yields a group \(W^{\ast}\) of orthogonal matrices w. r. t. the identity matrix. The group GO\({}^+(8,5)\) returned by the GAP function `GO` (Reference: GO) leaves a different bilinear form invariant.

    gap> largegroup:= GO(1,8,5);;
    gap> Display( InvariantBilinearForm( largegroup ).matrix );
     . 1 . . . . . .
     1 . . . . . . .
     . . 2 . . . . .
     . . . 2 . . . .
     . . . . 2 . . .
     . . . . . 2 . .
     . . . . . . 2 .
     . . . . . . . 2

In order to conjugate \(W^{\ast}\) into this group, we need a \(2 \times 2\) matrix \(T\) over the field with five elements with the property that \(T T^{tr}\) is half of the upper left \(2 \times 2\) matrix in the above matrix.

    gap> T:= [ [ 1, 2 ], [ 4, 2 ] ] * One( GF(5) );;
    gap> Display( 2 * T * TransposedMat( T ) );
     . 1
     1 .
    gap> I:= IdentityMat( 8, GF(5) );;
    gap> I{ [ 1, 2 ] }{ [ 1, 2 ] }:= T;;
    gap> conj:= List( GeneratorsOfGroup( we8 ), x -> I * x * I^-1 );;
    gap> IsSubset( largegroup, conj );
    true

##### 5.2-3 Compatible Generators of \(M\), \(M.2\), \(S\), and \(S.2\)

For the next computations, we switch from the natural matrix representation of GO\({}^+(8,5)\) to a permutation representation of PGO\({}^+(8,5)\), of degree \(N = 19\,656\), which is given by the action of GO\({}^+(8,5)\) on the smallest orbit of \(1\)-spaces in its natural module.

    gap> orbs:= OrbitsDomain( largegroup, NormedRowVectors( GF(5)^8 ),
    >                         OnLines );;
    gap> List( orbs, Length );
    [ 39000, 39000, 19656 ]
    gap> N:= Length( orbs[3] );
    19656
    gap> orbN:= SortedList( orbs[3] );;
    gap> largepermgroup:= Action( largegroup, orbN, OnLines );;

In the same way, permutation representations of the subgroup \(M.2 \cong \)SO\({}^+(8,2)\) and of its derived subgroup \(M\) are obtained. But first we compute a smaller generating set of the simple group \(M\), using a permutation representation on \(120\) points.

    gap> orbwe8:= SortedList( Orbit( we8, rootvectors[1], OnLines ) );;
    gap> Length( orbwe8 );
    120
    gap> we8_to_m2:= ActionHomomorphism( we8, orbwe8, OnLines );;
    gap> m2_120:= Image( we8_to_m2 );;
    gap> m_120:= DerivedSubgroup( m2_120 );;
    gap> sml:= SmallGeneratingSet( m_120 );;  Length( sml );
    2
    gap> gens_m:= List( sml, x -> PreImagesRepresentative( we8_to_m2, x ) );;

Now we compute the actions of \(M\) and \(M.2\) on the above orbit of length \(N\). For generating \(M.2\), we choose an element \(b_N \in M.2 \setminus M\), which is obtained from the action of a matrix \(b \in 2.M.2 \setminus 2.M\).

    gap> gens_m_N:= List( gens_m,
    >      x -> Permutation( I * x * I^-1, orbN, OnLines ) );;
    gap> m_N:= Group( gens_m_N );;
    gap> b:= I * we8.1 * I^-1;;
    gap> DeterminantMat( b );
    Z(5)^2
    gap> b_N:= Permutation( b, orbN, OnLines );;
    gap> m2_N:= ClosureGroup( m_N, b_N );;

(Note that \(M.2\) is not contained in PSO\({}^+(8,5)\), since the determinant of \(b\) is \(-1\) in the field with five elements.)

The group \(S\) is the derived subgroup of PSO\({}^+(8,5)\), and \(S.2\) is generated by \(S\) together with \(b_N\).

    gap> s_N:= DerivedSubgroup( largepermgroup );;
    gap> s2_N:= ClosureGroup( s_N, b_N );;

#### 5.3 Constructing Representations of \(M.3\) and \(S.3\)

##### 5.3-1 The Action of \(M.3\) on \(M\)

Let \(\alpha\) be an automorphism of \(M\), of order three. Then a representation of the semidirect product \(M.3\) of \(M\) by \(\langle \alpha \rangle\) can be constructed as follows.

If \(M\) is given by a matrix representation then we map \(g \in M\) to the block diagonal matrix

g |  |
| g^α |
|  | g^(α^2)

and we represent \(\alpha\) by the block permutation matrix

|  | I
I |  |
| I |

where \(I\) is the identity element in \(M\).

We need the action of \(\alpha\) on \(M\). More precisely, we need images of the chosen generators of \(M\) under \(\alpha\) and \(\alpha^2\).

The group \(M\) is small enough for asking GAP to compute its automorphism group, which is isomorphic with \(O^+_8(2).S_3\); for that, we use the degree \(120\) permutation representation constructed in Section 5.2-3.

    gap> aut_m:= AutomorphismGroup( m_120 );;

We pick an outer automorphism \(\alpha\) of order three.

    gap> nice_aut_m:= NiceMonomorphism( aut_m );;
    gap> der:= DerivedSubgroup( Image( nice_aut_m ) );;
    gap> der2:= DerivedSubgroup( der );;
    gap> repeat x:= Random( der );
    >      ord:= Order( x );
    >    until ord mod 3 = 0 and ord mod 9 <> 0 and not x in der2;
    gap> x:= x^( ord / 3 );;
    gap> alpha_120:= PreImagesRepresentative( nice_aut_m, x );;

Next we compute the images of the generators `sml` under \(\alpha\) and \(\alpha^2\), and the corresponding elements in the action of \(M\) on \(N\) points.

    gap> sml_alpha:= List( sml, x -> Image( alpha_120, x ) );;
    gap> sml_alpha_2:= List( sml_alpha, x -> Image( alpha_120, x ) );;
    gap> gens_m_alpha:= List( sml_alpha,
    >                     x -> PreImagesRepresentative( we8_to_m2, x ) );;
    gap> gens_m_alpha_2:= List( sml_alpha_2,
    >                       x -> PreImagesRepresentative( we8_to_m2, x ) );;
    gap> gens_m_N_alpha:= List( gens_m_alpha,
    >      x -> Permutation( I * x * I^-1, orbN, OnLines ) );;
    gap> gens_m_N_alpha_2:= List( gens_m_alpha_2,
    >      x -> Permutation( I * x * I^-1, orbN, OnLines ) );;

Finally, we use the construction descibed in the beginning of this section, and obtain a permutation representation of \(M.3\) on \(3 N = 58\,968\) points.

    gap> alpha_3N:= PermList( Concatenation( [ [ 1 .. N ] + 2*N,
    >                                          [ 1 .. N ],
    >                                          [ 1 .. N ] + N ] ) );;
    gap> gens_m_3N:= List( [ 1 .. Length( gens_m_N ) ],
    >      i -> gens_m_N[i] *
    >           ( gens_m_N_alpha[i]^alpha_3N ) *
    >           ( gens_m_N_alpha_2[i]^(alpha_3N^2) ) );;
    gap> m_3N:= Group( gens_m_3N );;
    gap> m3_3N:= ClosureGroup( m_3N, alpha_3N );;

##### 5.3-2 The Action of \(S.3\) on \(S\)

Our approach is to extend the automorphism \(\alpha\) of \(M\) to \(S\); we can do this because in the full automorphism group of \(S\), any \(O^+_8(2)\) type subgroup extends to a group of the type \(O^+_8(2).3\), and this extension lies in a subgroup of the type \(O^+_8(5).3\) (see [Kle87]).

The group \(M\) is maximal in \(S\), so \(S\) is generated by \(M\) together with any element \(s \in S \setminus M\). Having fixed such an element \(s\), what we have to is to find the images of \(s\) under the automorphisms that extend \(\alpha\) and \(\alpha^2\).

For that, we first choose \(x \in M\) such that \(C_S(x)\) is a small group that is not contained in \(M\). Then we choose \(s \in C_S(x) \setminus M\), and using that \(s^\alpha\) must lie in \(C_S(C_M(s)^\alpha)\), we then check which elements of this small subgroup can be the desired image.

Each element \(x\) of order nine in \(M\) has a root \(s\) of order \(63\) in \(S\), and \(C_S(x)\) has order \(189\). For suitable such \(x\), exactly one element \(y \in C_S(C_M(s)^\alpha)\) has order \(63\) and satisfies the necessary conditions that the orders of the products of \(s\) and the generators of \(M\) are equal to the orders of the product of \(y\) and the images of these generators under \(\alpha\). In other words, we have \(s^\alpha = y\).

    gap> alpha:= GroupHomomorphismByImagesNC( m_N, m_N,
    >                gens_m_N, gens_m_N_alpha );;
    gap> CheapTestForHomomorphism:= function( gens, genimages, x, cand )
    >        return Order( x ) = Order( cand ) and
    >               ForAll( [ 1 .. Length( gens ) ],
    >            i -> Order( gens[i] * x ) = Order( genimages[i] * cand ) );
    > end;;
    gap> repeat
    >      repeat
    >        x:= Random( m_N );
    >      until Order( x ) = 9;
    >      c_s:= Centralizer( s_N, x );
    >      repeat
    >        s:= Random( c_s );
    >      until Order( s ) = 63;
    >      c_m_alpha:= Images( alpha, Centralizer( m_N, s ) );
    >      good:= Filtered( Elements( Centralizer( s_N, c_m_alpha ) ),
    >               x -> CheapTestForHomomorphism( gens_m_N,
    >                      gens_m_N_alpha, s, x ) );
    >    until Length( good ) = 1;
    gap> s_alpha:= good[1];;
    gap> c_m_alpha_2:= Images( alpha, c_m_alpha );;
    gap> good:= Filtered( Elements( Centralizer( s_N, c_m_alpha_2 ) ),
    >      x -> CheapTestForHomomorphism( gens_m_N_alpha, gens_m_N_alpha_2,
    >                                     s_alpha, x ) );;
    gap> s_alpha_2:= good[1];;

Using the notation of the previous section, this means that the permutation representation of \(M.3\) on \(3 N\) points can be extended to \(S.3\) by choosing the permutation corresponding to the block diagonal matrix

s |  |
| s^α |
|  | s^(α^2)

as an additional generator.

    gap> outer:= s * ( s_alpha^alpha_3N ) * ( s_alpha_2^(alpha_3N^2) );;
    gap> s3_3N:= ClosureGroup( m3_3N, outer );;

(And of course we have \(S = \langle M, s \rangle\), which yields generators for \(S\) that are compatible with those of \(M\).)

    gap> s_3N:= ClosureGroup( m_3N, outer );;

#### 5.4 Constructing Compatible Generators of \(H\) and \(G\)

After having constructed compatible representations of \(M.2\) and \(G.2\) on \(N\) points (see Section 5.2-3) and of \(M.3\) and \(S.3\) on \(3 N\) points (see Section 5.3-2), the last construction step is to find a permutation on \(3 N\) points with the following properties:

- The induced automorphism \(\beta\) of \(M\) extends to \(M.3\) such that the automorphism \(\alpha\) of \(M\) is inverted, modulo inner automorphisms of \(M\).

- The action on the first \(N\) points coincides with that of the element \(b_N \in M.2 \setminus M\) that was constructed in Section 5.2-3.

Using the notation of the previous sections, we represent \(\beta\) by a block matrix

b |  |
|  | b d
| b g |

where \(b\) describes the action of \(\beta\) on \(M\) (on \(N\) points), \(g\) describes the inner automorphism \(\gamma\) of \(M\) that is defined by the condition \(\beta \alpha = \alpha^2 \beta \gamma\), and \(d\) describes \(\gamma \gamma^\alpha\).

So we compute an element in \(M\) that induces the conjugation automorphism \(\gamma\), and its image under \(\alpha\). We do this in the representation of \(M\) on \(120\) points, and carry over the result to the representation on \(N\) points, via the rational matrix representation; this approach had been used already in Section 5.2-3.

    gap> b_120:= Permutation( we8.1, orbwe8, OnLines );;
    gap> g_120:= RepresentativeAction( m_120,
    >                List( sml_alpha_2, x -> x^b_120 ),
    >                List( sml, x -> (x^b_120)^alpha_120 ), OnTuples );;
    gap> g_120_alpha:= g_120^alpha_120;;
    gap> g_N:= Permutation( I * PreImagesRepresentative( we8_to_m2, g_120 )
    >                         * I^-1, orbN, OnLines );;
    gap> g_N_alpha:= Permutation( I * PreImagesRepresentative( we8_to_m2,
    >                  g_120_alpha ) * I^-1, orbN, OnLines );;
    gap> inv:= PermList( Concatenation(
    >                      ListPerm( b_N ),
    >                      ListPerm( b_N * g_N ) + 2*N,
    >                      ListPerm( b_N * g_N * g_N_alpha ) + N ) );;

So we have constructed compatible generators for \(H\) and \(G\).

    gap> h:= ClosureGroup( m3_3N, inv );;
    gap> g:= ClosureGroup( s3_3N, inv );;

#### 5.5 Application: Regular Orbits of \(H\) on \(G/H\)

We want to show that \(H\) has regular orbits on the right cosets \(G/H\). The stabilizer in \(H\) of the coset \(H g\) is \(H \cap H^g\), so we compute that there are elements \(s \in S\) with the property \(|H \cap H^s| = 1\).

(Of course this implies that also in the permutation representations of the subgroups \(S\), \(S.2\), and \(S.3\) of \(G\) on the cosets of the intersection with \(H\), the point stabilizers have regular orbits.)

    gap> repeat
    >      conj:= Random( s_3N );
    >      inter:= Intersection( h, h^conj );
    >    until Size( inter ) = 1;

Eventually GAP will return from this loop, so there are elements \(s\) with the required property.

(Computing one such intersection takes about six minutes on a 2.5 GHz Pentium 4, so one may have to be a bit patient.)

#### 5.6 Appendix: The Permutation Character \((1_H^G)_H\)

As an alternative to the computation of \(|H \cap H^s|\) for suitable \(s \in S\), we can try to derive information from the permutation character \((1_H^G)_H\). Unfortunately, there seems to be no easy way to prove the existence of regular \(H\)-orbits on \(G/H\) (cf. Section 5.5) only by means of this character.

However, it is not difficult to show that regular orbits of \(M\), \(M.2\), and \(M.3\) exist. For that, we compute \((1_H^G)_H\), by computing class representatives of \(H\), their centralizer orders in \(G\), and the class fusion of \(H\)-classes in \(G\).

We want to compute the class representatives in a small permutation representation of \(H\); this could be done using the degree \(360\) representation that was implicitly constructed above, but it is technically easier to use a degree \(405\) representation that is obtained from the degree \(58\,968\) representation by the action of \(H\) on blocks in an orbit of length \(22\,680\). (One could get this also using the GAP function `SmallerDegreePermutationRepresentation` (Reference: SmallerDegreePermutationRepresentation).)

    gap> orbs:= Orbits( h, MovedPoints( h ) );;
    gap> List( orbs, Length );
    [ 22680, 36288 ]
    gap> orb:= orbs[1];;
    gap> bl:= Blocks( h, orb );;  Length( bl[1] );
    2
    gap> actbl:= Action( h, bl, OnSets );;
    gap> bll:= Blocks( actbl, MovedPoints( actbl ) );;  Length( bll );
    405
    gap> oneblock:= Union( bl{ bll[1] } );;
    gap> orb:= SortedList( Orbit( h, oneblock, OnSets ) );;
    gap> acthom:= ActionHomomorphism( h, orb, OnSets );;
    gap> ccl:= ConjugacyClasses( Image( acthom ) );;
    gap> reps:= List( ccl, x -> PreImagesRepresentative( acthom,
    >                               Representative( x ) ) );;

Then we carry back class representatives to the degree \(58\,968\) representation, and compute the class fusion and the centralizer orders in \(G\).

    gap> reps:= List( ccl, x -> PreImagesRepresentative( acthom,
    >                               Representative( x ) ) );;
    gap> fusion:= [];;
    gap> centralizers:= [];;
    gap> fusreps:= [];;
    gap> for i in [ 1 .. Length( reps ) ] do
    >      found:= false;
    >      cen:= Size( Centralizer( g, reps[i] ) );
    >      for j in [ 1 .. Length( fusreps ) ] do
    >        if cen = centralizers[j] and
    >           IsConjugate( g, fusreps[j], reps[i] ) then
    >          fusion[i]:= j;
    >          found:= true;
    >          break;
    >        fi;
    >      od;
    >      if not found then
    >        Add( fusreps, reps[i] );
    >        Add( fusion, Length( fusreps ) );
    >        Add( centralizers, cen );
    >      fi;
    >    od;

Next we compute the permutation character values, using the formula

\[ (1_H)^G(g) = (|C_G(g)| \sum_{h} |h^H|) /|H| , \]

where the summation runs over class representatives \(h \in H\) that are \(G\)-conjugate to \(g\).

    gap> pi:= 0 * [ 1 .. Length( fusreps ) ];;
    gap> for i in [ 1 .. Length( ccl ) ] do
    >      pi[ fusion[i] ]:= pi[ fusion[i] ] + centralizers[ fusion[i] ] *
    >                                              Size( ccl[i] );
    >    od;
    gap> pi:= pi{ fusion } / Size( h );;

In order to write the permutation character w.r.t. the ordering of classes in the GAP character table, we use the GAP function `CompatibleConjugacyClasses` (Reference: CompatibleConjugacyClasses).

    gap> tblh:= CharacterTable( "O8+(2).S3" );;
    gap> map:= CompatibleConjugacyClasses( Image( acthom ), ccl, tblh );;
    gap> pi:= pi{ map };
    [ 51162109375, 69375, 1259375, 69375, 568750, 1750, 4000, 375, 135,
      975, 135, 625, 150, 650, 30, 72, 80, 72, 27, 27, 3, 7, 25, 30, 6,
      12, 25, 484375, 1750, 375, 375, 30, 40, 15, 15, 15, 6, 6, 3, 3, 3,
      157421875, 121875, 4875, 475, 75, 3875, 475, 13000, 1750, 300, 400,
      30, 60, 15, 15, 15, 125, 10, 30, 4, 8, 6, 9, 7, 5, 6, 5 ]

Now we consider the restrictions of this permutation character to \(M\), \(M.2\), and \(M.3\). Note that \((1_H^G)_M = (1_M^S)_M\), \((1_H^G)_{M.2} = (1_{M.2}^{S.2})_{M.2}\), and \((1_H^G)_{M.3} = (1_{M.3}^{S.3})_{M.3}\).

    gap> tblm2:= CharacterTable( "O8+(2).2" );;
    gap> tblm3:= CharacterTable( "O8+(2).3" );;
    gap> tblm:= CharacterTable( "O8+(2)" );;
    gap> pi_m2:= pi{ GetFusionMap( tblm2, tblh ) };;
    gap> pi_m3:= pi{ GetFusionMap( tblm3, tblh ) };;
    gap> pi_m:= pi_m3{ GetFusionMap( tblm, tblm3 ) };;

The permutation character \((1_M^S)_M\) decomposes into \(483\) transitive permutation characters, and regular \(M\)-orbits on \(S/M\) correspond to regular constituents in this decomposition. If there is no regular transitive constituent in \((1_M^S)_M\) then the largest degree of a transitive constituent is \(|M|/2\); but then the degree of \(1_M^S\) is less than \(483 |M|/2\), which is smaller than \([S:M]\).

    gap> n:= ScalarProduct( tblm, pi_m, TrivialCharacter( tblm ) );
    483
    gap> n * Size( tblm ) / 2;
    42065049600
    gap> pi[1];
    51162109375

For the case of \(M.2 < S.2\), this argument turns out to be not sufficient. So we first compute a lower bound on the number of regular \(M\)-orbits on \(S/M\). For involutions \(g \in M\), the number of transitive constituents \(1_{\langle g \rangle}^M\) in \((1_M^S)_M\) is at most the integral part of \(1_M^S(g) / 1_{\langle g \rangle}^M(g) = 2 \cdot 1_M^S(g) / |C_M(g)|\); from this we compute that there are at most \(208\) such constituents.

    gap> inv:= Filtered( [ 1 .. NrConjugacyClasses( tblm ) ],
    >              i -> OrdersClassRepresentatives( tblm )[i] = 2 );
    [ 2, 3, 4, 5, 6 ]
    gap> n2:= List( inv,
    >           i -> Int( 2 * pi_m[i] / SizesCentralizers( tblm )[i] ) );
    [ 1, 54, 54, 54, 45 ]
    gap> Sum( n2 );
    208

As a consequence, \(M\) has at least \(148\) regular orbits on \(S/M\).

    gap> First( [ 1 .. 483 ],
    >      i -> i * Size( tblm ) + 208 * Size( tblm ) / 2
    >           + ( 483 - i - 208 - 1 ) * Size( tblm ) / 3 + 1 >= pi[1] );
    148

Now we consider the action of \(M.2\) on \(S.2/M.2\). If \(M.2\) has no regular orbit then the \(148\) regular orbits of \(M\) must arise from the restriction of transitive constituents \(1_U^{M.2}\) to \(M\) with \(|U| = 2\) and such that \(U\) is not contained in \(M\). (This follows from the fact that the restriction of a transitive constituent of \((1_{M.2}^{S.2})_{M.2}\) to \(M\) is either itself a transitive constituent of \((1_M^S)_M\) or the sum of two such constituents; the latter case occurs if and only if the point stabilizer is contained in \(M\).) However, the number of these constituents is at most \(134\).

    gap> inv:= Filtered( [ 1 .. NrConjugacyClasses( tblm2 ) ],
    >              i -> OrdersClassRepresentatives( tblm2 )[i] = 2 and
    >                   not i in ClassPositionsOfDerivedSubgroup( tblm2 ) );
    [ 41, 42 ]
    gap> n2:= List( inv,
    >           i -> Int( 2 * pi_m2[i] / SizesCentralizers( tblm2 )[i] ) );
    [ 108, 26 ]
    gap> Sum( n2 );
    134

Finally, we consider the action of \(M.3\) on \(S.3/M.3\). We compute that \((1_{M.3}^{S.3})_{M.3}\) has \(205\) transitive constituents, and at most \(69\) of them can be induced from subgroups of order two. This is already sufficient to show that there must be regular constituents.

    gap> n:= ScalarProduct( tblm3, pi_m3, TrivialCharacter( tblm3 ) );
    205
    gap> inv:= Filtered( [ 1 .. NrConjugacyClasses( tblm3 ) ],
    >              i -> OrdersClassRepresentatives( tblm3 )[i] = 2 );
    [ 2, 3, 4 ]
    gap> n2:= List( inv,
    >           i -> Int( 2 * pi_m3[i] / SizesCentralizers( tblm3 )[i] ) );
    [ 0, 54, 15 ]
    gap> Sum( n2 );
    69
    gap> 69 * Size( tblm3 ) / 2 + ( n - 69 - 1 ) * Size( tblm3 ) / 3 + 1;
    41542502401
    gap> pi[1];
    51162109375

#### 5.7 Appendix: The Data File

The file `o8p2s3_o8p5s3.g` that can be found at

http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/data/o8p2s3_o8p5s3.g

contains the relevant data used in the above computations. This covers the representations for the groups and the permutation character of \(O^+_8(2).S_3\) computed in Section 5.6.

Reading the file into GAP will define a global variable `o8p2s3_o8p5s3_data`, a record with the following components.

`pi`

  the list of values of the permutation character of \(G = O^+_8(5).S_3\) on the cosets of its subgroup \(H = O^+_8(2).S_3\), restricted to \(H\), corresponding to the ordering of classes in the character table of \(H\) in the GAP Character Table Library (this table has the `Identifier` (Reference: Identifier for tables of marks) value `"O8+(2).3.2"`),

`dim8Q`

  a record with generators for \(2.M\) and \(2.M.2\), matrices of dimension eight over the Rationals,

`deg120`

  a record with generators for \(M\) and \(M.2\), permutations of degree \(120\),

`deg360`

  a record with generators for \(M\), \(M.2\), \(M.3\), and \(H\), permutations of degree \(360\),

`dim8f5`

  a record with generators for \(2.M\), \(2.M.2\), \(2.S\), and \(2.S.2\), matrices of dimension eight over the field with five elements,

`deg19656`

  a record with generators for \(M\), \(M.2\), \(S\), and \(S.2\), permutations of degree \(19\,656\),

`deg58968`

  a record with generators for \(M\), \(M.2\), \(M.3\), \(H\), \(S\), \(S.2\), \(S.3\), and \(G\), permutations of degree \(58\,968\),

`seed405`

  a block whose \(H\)-orbit in the representation on \(58\,968\) points, w.r.t. the action `OnSets` (Reference: OnSets), yields a representation of \(H\) on \(405\) points.

For each of the permutation representations, we have (where applicable)

\(M\) | \(\cong\) | \(\langle a_1, a_2 \rangle\),
\(M.2\) | \(\cong\) | \(\langle a_1, a_2, b \rangle\),
\(M.3\) | \(\cong\) | \(\langle a_1, a_2, t \rangle\),
\(H\) | \(\cong\) | \(\langle a_1, a_2, t, b \rangle\),
\(S\) | \(\cong\) | \(\langle a_1, a_2, c \rangle\),
\(S.2\) | \(\cong\) | \(\langle a_1, a_2, c, b \rangle\),
\(S.3\) | \(\cong\) | \(\langle a_1, a_2, c, t \rangle\),
\(G\) | \(\cong\) | \(\langle a_1, a_2, c, t, b \rangle\),

where \(a_1, a_2, b, t, c\) are the values of the record components `a1`, `a2`, `b`, `t`, and `c`.

Analogously, for the matrix representations, we have (where applicable)

\(2.M\) | \(\cong\) | \(\langle a_1, a_2 \rangle\),
\(2.M.2\) | \(\cong\) | \(\langle a_1, a_2, b \rangle\),
\(2.S\) | \(\cong\) | \(\langle a_1, a_2, c \rangle\),
\(2.S.2\) | \(\cong\) | \(\langle a_1, a_2, c, b \rangle\),

Additional components are used for deriving the representations from initial data, as in the constructions in the previous sections.

For example, most of the permutations needed arise as the induced actions of matrices on orbits of vectors; these orbits are computed when the file is read, and are then stored in the components `orb120` and `orb19656`.

The file `o8p2s3_o8p5s3.g` does not contain the generators explicitly, but it is self-contained in the sense that only a few GAP functions are actually needed to produce the data; for example, it should not be difficult to translate the contents of the file into the language of other computer algebra systems.

Advantages of this way to store the data are that the relations between the representations become explicit, and also that only very little space is needed to describe the representations –the size of the file is less than \(10\) kB, whereas storing (explicitly) one of the permutations on \(58\,968\) points requires already about \(350\) kB.

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 Bib Ind

generated by GAPDoc2HTML