Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 846

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta name="GENERATOR" content="TtH 3.55">
 <style type="text/css"> div.p { margin-top: 7pt;}</style>
 <style type="text/css"><!--
 td div.comp { margin-top: -0.6ex; margin-bottom: -1ex;}
 td div.comb { margin-top: -0.6ex; margin-bottom: -.6ex;}
 td div.hrcomp { line-height: 0.9; margin-top: -0.8ex; margin-bottom: -1ex;}
 td div.norm {line-height:normal;}
 span.roman {font-family: serif; font-style: normal; font-weight: normal;} 
 span.overacc2 {position: relative;  left: .8em; top: -1.2ex;}
 span.overacc1 {position: relative;  left: .6em; top: -1.2ex;} --></style>
 

        <title>Constructing the Irreducible Characters of J4 with GAP</title>
<h1 align="center">Constructing the Irreducible Characters of J<sub>4</sub> with GAP</h1>
  <body bgcolor="FFFFFF"> 

<div class="p"><!----></div>

<h3 align="center"> T<font size="-2">HOMAS</font> B<font size="-2">REUER</font> <br />
<i>Lehrstuhl D f&#252;r Mathematik</i> <br />
<i>RWTH, 52056 Aachen, Germany</i> </h3>

<div class="p"><!----></div>

<h3 align="center">July 13th, 1999 </h3>

<div class="p"><!----></div>


<div class="p"><!----></div>

<div class="p"><!----></div>
We assume that the "table head" of the ordinary character table of the
sporadic simple Janko group J<sub>4</sub> is known.
That is, the conjugacy classes and their centralizer orders are known
as well as all p-th power maps,
for primes p up to the maximal element order in J<sub>4</sub>, which is 66.
For the sake of simplicity, we take the table head of the character table
contained in the <font face="helvetica">GAP</font> Character Table Library&nbsp;[<a href="#CTblLib" name="CITECTblLib">Bre04</a>].

<div class="p"><!----></div>

<div class="p"><!----></div>

<pre>
    gap&#62; LoadPackage( "ctbllib" );
    true
    gap&#62; tbl:= CharacterTable( "J4" );
    CharacterTable( "J4" )
    gap&#62; NrConjugacyClasses( tbl );
    62

</pre>

<div class="p"><!----></div>
Besides the table head with the trivial character,
we assume that we know a nontrivial irreducible character of smallest
degree -which is 1&nbsp;333-
and the nontrivial permutation character of smallest degree;
the latter character corresponds to the action on the cosets of a maximal
subgroup of type 2<sup>11</sup>.M<sub>24</sub> in J<sub>4</sub>.

<div class="p"><!----></div>

<pre>
    gap&#62; irreducibles:= Irr( tbl ){ [ 1, 2 ] };
    [ Character( CharacterTable( "J4" ), [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
          1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
          1 ] ), Character( CharacterTable( "J4" ), 
        [ 1333, 53, -11, 10, -11, 5, -3, 3, -10, 2, -2, E(7)+E(7)^2+E(7)^4, 
          E(7)^3+E(7)^5+E(7)^6, 1, -3, 1, 3, -1, 2, 2, -2, 2, 0, 
          -E(7)-E(7)^2-E(7)^4, -E(7)^3-E(7)^5-E(7)^6, E(7)+E(7)^2+E(7)^4, 
          E(7)^3+E(7)^5+E(7)^6, 0, -1, -1, -1, E(7)+E(7)^2+E(7)^4, 
          E(7)^3+E(7)^5+E(7)^6, -2, 0, -1, 0, 0, -E(7)-E(7)^2-E(7)^4, 
          -E(7)^3-E(7)^5-E(7)^6, -1, 0, 0, 0, 0, -1, -1, E(7)+E(7)^2+E(7)^4, 
          E(7)^3+E(7)^5+E(7)^6, 1, 1, 1, 1, 1, -E(7)-E(7)^2-E(7)^4, 
          -E(7)^3-E(7)^5-E(7)^6, 0, 0, 0, 0, 1, 1 ] ) ]
    gap&#62; max:= CharacterTable( Maxes( tbl )[1] );;
    gap&#62; pi:= TrivialCharacter( max ) ^ tbl;
    Character( CharacterTable( "J4" ), [ 173067389, 52349, 8317, 737, 957, 253, 
      141, 14, 77, 41, 37, 5, 5, 5, 13, 13, 14, 2, 0, 11, 9, 13, 3, 3, 3, 1, 1, 
      2, 1, 2, 2, 2, 2, 0, 1, 2, 1, 1, 1, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
      0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] )

</pre>

<div class="p"><!----></div>
The first new irreducible character is of course the complex conjugate of
the degree 1&nbsp;333 character shown above.

<div class="p"><!----></div>

<pre>
    gap&#62; AddSet( irreducibles, ComplexConjugate( irreducibles[2] ) );

</pre>

<div class="p"><!----></div>
Now our strategy is to create characters that are in general reducible,
and to compute characters and virtual characters of smaller norm from
them until eventually the list of irreducibles is complete.

<div class="p"><!----></div>
We start with the characters obtained by induction from cyclic subgroups
of J<sub>4</sub>, and symmetrizations of the known irreducibles.
Note that these two computations are possible only because we know the
power maps of J<sub>4</sub>.

<div class="p"><!----></div>

<pre>
    gap&#62; indcyc:= InducedCyclic( tbl, "all" );;
    gap&#62; sym2:= Symmetrizations( tbl, irreducibles, 2 );;
    gap&#62; sym3:= Symmetrizations( tbl, irreducibles, 3 );;

</pre>

<div class="p"><!----></div>
Before we start to work with characters,
we raise the info level for computations of this kind.
This will for example cause that a message is printed whenever a new
irreducible character has been found.

<div class="p"><!----></div>

<pre>
    gap&#62; SetInfoLevel( InfoCharacterTable, 2 );

</pre>

<div class="p"><!----></div>
First we reduce the characters with the known irreducibles,
that is, we project them into the orthogonal space of the vector space
that is spanned by the known irreducibles.

<div class="p"><!----></div>

<pre>
    gap&#62; chars:= Concatenation( indcyc, [ pi ], sym2, sym3 );;
    gap&#62; Length( chars );
    220
    gap&#62; chars:= ReducedCharacters( tbl, irreducibles, chars );;
    #I  ReducedCharacters: irreducible character of degree 887778 found
    #I  ReducedCharacters: irreducible character of degree 889111 found
    #I  ReducedCharacters: irreducible character of degree 887778 found
    #I  ReducedCharacters: irreducible character of degree 393877506 found
    #I  ReducedCharacters: irreducible character of degree 789530568 found
    gap&#62; Length( chars.irreducibles );
    5
    gap&#62; Length( chars.remainders );
    206

</pre>

<div class="p"><!----></div>
We found five new irreducibles.
For later use, we store those irreducibles for which no symmetrizations
were used yet.

<div class="p"><!----></div>

<pre>
    gap&#62; newirr:= chars.irreducibles;;

</pre>

<div class="p"><!----></div>
In order to find out the dimension of the <font size="+0">Z</font>-lattice spanned by
the remaining reducible characters, we compute a lattice basis using
the LLL algorithm.

<div class="p"><!----></div>

<pre>
    gap&#62; lll:= LLL( tbl, chars.remainders );;
    #I  LLL: 4 irreducibles found
    gap&#62; List( lll.irreducibles, Degree );
    [ 1981808640, 1981808640, 1981808640, 2267824128 ]

</pre>

<div class="p"><!----></div>
We were lucky, five new irreducibles were obtained as elements of the
lattice basis;
in order to work in their orthogonal space from now on,
we reduce <tt>chars</tt> with them.

<div class="p"><!----></div>

<pre>
    gap&#62; Append( newirr, lll.irreducibles );
    gap&#62; chars:= ReducedCharacters( tbl, lll.irreducibles, chars.remainders );;

</pre>

<div class="p"><!----></div>
This yields no new irreducibles.
Now let us look at the reducible vectors in the lattice basis computed by
<tt>LLL</tt>.

<div class="p"><!----></div>

<pre>
    gap&#62; Length( lll.remainders );
    50
    gap&#62; lll.norms;
    [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 2, 5, 4, 5, 4, 4, 5, 3,
      6, 6, 8, 4, 6, 6, 4, 8, 8, 7, 9, 7, 6, 7, 7, 8, 6, 9, 7, 7, 4, 6, 7, 8, 5 ]

</pre>

<div class="p"><!----></div>
Together with the 13 known irreducibles, the basis of length 49 spans
the whole 62 dimensional space of irreducibles of J<sub>4</sub>.
The norms of the virtual characters in <tt>lll.remainders</tt> are listed in
<tt>lll.norms</tt>, in our case they are very small.
Since <tt>LLL</tt> does not reduce the virtual characters in the <tt>remainders</tt> list
with the characters in the <tt>irreducibles</tt> list,
we do this reduction now.

<div class="p"><!----></div>

<pre>
    gap&#62; lll:= ReducedClassFunctions( tbl, lll.irreducibles, lll.remainders );;

</pre>

<div class="p"><!----></div>
We use the new irreducibles to repeat the process of generating and
reducing characters.

<div class="p"><!----></div>

<pre>
    gap&#62; Append( irreducibles, newirr );
    gap&#62; Length( irreducibles );
    12
    gap&#62; sym2:= Symmetrizations( tbl, newirr, 2 );;
    gap&#62; sym3:= Symmetrizations( tbl, newirr, 3 );;
    gap&#62; newchars:= Concatenation( sym2, sym3 );;
    gap&#62; newchars:= ReducedCharacters( tbl, irreducibles, newchars );;
    gap&#62; chars:= Concatenation( chars.remainders, newchars.remainders );;
    gap&#62; lll:= LLL( tbl, chars );;
    #I  LLL: 35 irreducibles found
    gap&#62; lll.norms;
    [ 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2 ]
    gap&#62; Append( irreducibles, lll.irreducibles );
    gap&#62; Length( irreducibles );
    47

</pre>

<div class="p"><!----></div>
Most of the virtual characters in <tt>lll.remainders</tt> have norm 2,
and <font face="helvetica">GAP</font> has a function that inspects lattices geneated by norm 2
vectors for the occurrence of sublattices of types D<sub>4</sub> and D<sub>5</sub>;
in the latter case, the underlying irreducible characters can always be
deduced, in the former case this is possible at least in some cases.

<div class="p"><!----></div>

<pre>
    gap&#62; dn:= DnLatticeIterative( tbl, lll );;
    #I  ReducedClassFunctions: irreducible character of degree 786127419 found
    #I  ReducedClassFunctions: irreducible character of degree 786127419 found
    #I  ReducedClassFunctions: irreducible character of degree 1579061136 found
    #I  ReducedClassFunctions: irreducible character of degree 2727495848 found
    #I  ReducedClassFunctions: irreducible character of degree 3403149 found
    #I  ReducedClassFunctions: irreducible character of degree 786127419 found
    #I  ReducedClassFunctions: irreducible character of degree 230279749 found
    #I  ReducedClassFunctions: irreducible character of degree 1842237992 found
    gap&#62; Length( dn.irreducibles );
    9
    gap&#62; Append( irreducibles, dn.irreducibles );
    gap&#62; Length( irreducibles );
    56
    gap&#62; dn.norms;
    [ 2, 2, 2, 2, 2, 2 ]

</pre>

<div class="p"><!----></div>
Now 6 irreducible characters are missing, and we know a 6-dimensional
lattice L of virtual characters inside the standard lattice spanned by
these irreducibles.
Let us compute the possible embeddings of L into the standard lattice,
and try to deduce irreducible characters if possible.

<div class="p"><!----></div>

<pre>
    gap&#62; gram:= MatScalarProducts( tbl, dn.remainders, dn.remainders );
    [ [ 2, 0, 0, 0, 0, 0 ], [ 0, 2, 0, 0, -1, 0 ], [ 0, 0, 2, 0, -1, 0 ], 
      [ 0, 0, 0, 2, 0, 0 ], [ 0, -1, -1, 0, 2, 1 ], [ 0, 0, 0, 0, 1, 2 ] ]
    gap&#62; emb:= OrthogonalEmbeddingsSpecialDimension( tbl, dn.remainders, gram, 6 );;
    #I  Decreased : computation of 2nd character failed
    gap&#62; Length( emb.irreducibles );
    2
    gap&#62; Append( irreducibles, emb.irreducibles );

</pre>

<div class="p"><!----></div>
A four dimensional lattice is left, and the possible embeddings do not
determine uniquely the irreducible characters.
So we compute all possible embeddings, and inspect the different cases
separately.

<div class="p"><!----></div>

<pre>
    gap&#62; chars:= emb.remainders;;
    gap&#62; gram:= MatScalarProducts( tbl, chars, chars );
    [ [ 2, 0, -1, 0 ], [ 0, 2, -1, 0 ], [ -1, -1, 2, 1 ], [ 0, 0, 1, 2 ] ]
    gap&#62; emb:= OrthogonalEmbeddings( gram, 4 );
    rec( vectors := [ [ -1, -1, 1, 0 ], [ -1, 1, 0, 0 ], [ -1, 0, 1, 1 ],
          [ -1, 0, 1, 0 ], [ 1, 0, 0, 1 ], [ 1, 0, 0, 0 ], [ 0, -1, 1, 1 ],
          [ 0, -1, 1, 0 ], [ 0, 1, 0, 1 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ],
          [ 0, 0, 0, 1 ] ], norms := [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
      solutions := [ [ 1, 2, 11, 12 ], [ 3, 5, 8, 10 ], [ 4, 6, 7, 9 ] ] )

</pre>

<div class="p"><!----></div>
The <tt>solution</tt> component of the result tells us that there are
three solution matrices, each given by a list of positions in the <tt>vectors</tt>
component.
The irreducible characters can now be extracted using <tt>Decreased</tt>.

<div class="p"><!----></div>

<pre>
    gap&#62; dec1:= Decreased( tbl, chars, emb.vectors{ emb.solutions[1] } );
    #I  Decreased : computation of 1st character failed
    fail

</pre>

<div class="p"><!----></div>
This means that the first solution does not correspond to irreducible
characters.

<div class="p"><!----></div>

<pre>
    gap&#62; dec2:= Decreased( tbl, chars, emb.vectors{ emb.solutions[2] } );;
    gap&#62; Length( dec2.irreducibles );
    4
    gap&#62; dec3:= Decreased( tbl, chars, emb.vectors{ emb.solutions[3] } );;
    gap&#62; Length( dec3.irreducibles );
    4
    gap&#62; Intersection( dec2.irreducibles, dec3.irreducibles );
    [  ]

</pre>

<div class="p"><!----></div>
This means that we are left with two possibilities to complete the
irreducibles of J<sub>4</sub>.
The computation of orthogonal embeddings was independent of the table
head of J<sub>4</sub>, thus the power maps may provide information to exclude one
of the possibilities.
For example, we can check whether the symmetrizations of the candidates
can be decomposed into irreducibles.
This way the vectors in <tt>dec2.irreducibles</tt> can be proved not to be
characters.

<div class="p"><!----></div>

<pre>
    gap&#62; sym2:= Symmetrizations( tbl, dec2.irreducibles, 2 );;
    gap&#62; ScalarProduct( dec2.irreducibles[1], sym2[1] );
    7998193/2

</pre>

<div class="p"><!----></div>
Alternatively, one could also try to recompute the second power map from
the candidates for irreducibles together with the element orders.
For the possibility ruled out, we get a unique power map that is different
from the one stored on the table.

<div class="p"><!----></div>

<pre>
    gap&#62; irr:= Concatenation( irreducibles, dec2.irreducibles );;
    gap&#62; pow:= PossiblePowerMaps( tbl, 2, rec( chars:= irr, subchars:= irr ) );
    #I  PossiblePowerMaps: 2nd power map initialized; congruences, kernels and
    #I    maps for smaller primes considered,
    #I    the current indeterminateness is 839808.
    #I  PossiblePowerMaps: no test of decomposability allowed
    #I  PossiblePowerMaps: test scalar products of minus-characters
    #I  PowerMapsAllowedBySymmetrizations: no character with indeterminateness
    #I    between 1 and 100000 significant now
    #I  PossiblePowerMaps: 1 solution(s)
    [ [ 1, 1, 1, 4, 2, 2, 3, 8, 4, 4, 4, 12, 13, 5, 6, 6, 8, 8, 19, 20, 10, 10, 
          11, 12, 13, 12, 13, 28, 16, 17, 17, 32, 33, 19, 20, 36, 22, 22, 26, 27, 
          41, 28, 43, 44, 45, 46, 47, 48, 49, 51, 52, 50, 30, 31, 32, 33, 57, 58, 
          59, 34, 46, 47 ] ]
    gap&#62; pow[1] = PowerMap( tbl, 2 );
    false

</pre>

<div class="p"><!----></div>
Thus we have found the irreducible characters.
Finally, let us check whether they coincide with the ones that are stored
on the <font face="helvetica">GAP</font> library table.

<div class="p"><!----></div>

<pre>
    gap&#62; irr:= Concatenation( irreducibles, dec3.irreducibles );;
    gap&#62; Set( irr ) = Set( Irr( tbl ) );
    true

</pre>

<div class="p"><!----></div>
For further computations, we reset the changed <tt>Info</tt> level to zero.

<div class="p"><!----></div>

<pre>
    gap&#62; SetInfoLevel( InfoCharacterTable, 0 );

</pre>

<div class="p"><!----></div>
(The whole computation took only a few minutes.)

<div class="p"><!----></div>


<h2>References</h2>

<dl compact="compact">
 <dt><a href="#CITECTblLib" name="CTblLib">[Bre04]</a></dt><dd>
Thomas Breuer, <em>Manual for the <font face="helvetica">GAP</font> Character Table Library, Version
  1.1</em>, Lehrstuhl D f&#252;r Mathematik, Rheinisch
  Westf&#228;lische Technische Hochschule, Aachen, Germany,
  2004.</dd>
</dl>


<div class="p"><!----></div>

<div class="p"><!----></div>

<br /><br /><hr /><small>File translated from
T<sub><font size="-1">E</font></sub>X
by <a href="http://hutchinson.belmont.ma.us/tth/">
T<sub><font size="-1">T</font></sub>H</a>,
version 3.55.<br />On 31 Mar 2004, 10:53.</small>
</html>