67.5 The Interface between Character Tables and Groups

For a character table with underlying group (see UnderlyingGroup), the interface between table and group consists of three attribute values, namely the group, the conjugacy classes stored in the table (see ConjugacyClasses below) and the identification of the conjugacy classes of table and group (see IdentificationOfConjugacyClasses below).

Character tables constructed from groups know these values upon construction, and for character tables constructed without groups, these values are usually not known and cannot be computed from the table.

However, given a group G and a character table of a group isomorphic to G (for example a character table from the GAP table library), one can tell GAP to use the given table as the character table of G (see ConnectGroupAndCharacterTable).

Tasks may be delegated from a group to its character table or vice versa only if these three attribute values are stored in the character table.

  • UnderlyingGroup( ordtbl ) A

    For an ordinary character table ordtbl of a finite group, the group can be stored as value of UnderlyingGroup.

    Brauer tables do not store the underlying group, they access it via the ordinary table (see OrdinaryCharacterTable).

  • ConjugacyClasses( tbl ) A

    For a character table tbl with known underlying group G, the ConjugacyClasses value of tbl is a list of conjugacy classes of G. All those lists stored in the table that are related to the orderering of conjugacy classes (such as sizes of centralizers and conjugacy classes, orders of representatives, power maps, and all class functions) refer to the ordering of this list.

    This ordering need not coincide with the ordering of conjugacy classes as stored in the underlying group of the table (see Sorted Character Tables). One reason for this is that otherwise we would not be allowed to use a library table as the character table of a group for which the conjugacy classes are stored already. (Another, less important reason is that we can use the same group as underlying group of character tables that differ only w.r.t. the ordering of classes.)

    The class of the identity element must be the first class (see Conventions for Character Tables).

    If tbl was constructed from G then the conjugacy classes have been stored at the same time when G was stored. If G and tbl were connected later than in the construction of tbl, the recommended way to do this is via ConnectGroupAndCharacterTable (see ConnectGroupAndCharacterTable). So there is no method for ConjugacyClasses that computes the value for tbl if it is not yet stored.

    Brauer tables do not store the ( p-regular) conjugacy classes, they access them via the ordinary table (see OrdinaryCharacterTable) if necessary.

  • IdentificationOfConjugacyClasses( tbl ) A

    For an ordinary character table tbl with known underlying group G, IdentificationOfConjugacyClasses returns a list of positive integers that contains at position i the position of the i-th conjugacy class of tbl in the list ConjugacyClasses( G ).

    gap> g:= SymmetricGroup( 4 );;
    gap> repres:= [ (1,2), (1,2,3), (1,2,3,4), (1,2)(3,4), () ];;
    gap> ccl:= List( repres, x -> ConjugacyClass( g, x ) );;
    gap> SetConjugacyClasses( g, ccl );
    gap> tbl:= CharacterTable( g );;   # the table stores already the values
    gap> HasConjugacyClasses( tbl );  HasUnderlyingGroup( tbl );
    true
    true
    gap> UnderlyingGroup( tbl ) = g;
    true
    gap> HasIdentificationOfConjugacyClasses( tbl );
    true
    gap> IdentificationOfConjugacyClasses( tbl );
    [ 5, 1, 2, 3, 4 ]
    

  • ConnectGroupAndCharacterTable( G, tbl[, arec] ) F
  • ConnectGroupAndCharacterTable( G, tbl, bijection ) F

    Let G be a group and tbl a character table of (a group isomorphic to) G, such that G does not store its OrdinaryCharacterTable value and tbl does not store its UnderlyingGroup value. ConnectGroupAndCharacterTable calls CompatibleConjugacyClasses, trying to identify the classes of G with the columns of tbl.

    If this identification is unique up to automorphisms of tbl (see AutomorphismsOfTable) then tbl is stored as CharacterTable value of G, in tbl the values of UnderlyingGroup, ConjugacyClasses, and IdentificationOfConjugacyClasses are set, and true is returned.

    Otherwise, i.e., if GAP cannot identify the classes of G up to automorphisms of G, false is returned.

    If a record arec is present as third argument, its meaning is the same as for CompatibleConjugacyClasses (see CompatibleConjugacyClasses).

    If a list bijection is entered as third argument, it is used as value of IdentificationOfConjugacyClasses, relative to ConjugacyClasses( G ), without further checking, and true is returned.

  • CompatibleConjugacyClasses( G, ccl, tbl[, arec] ) O
  • CompatibleConjugacyClasses( tbl[, arec] ) O

    In the first form, ccl must be a list of the conjugacy classes of the group G, and tbl the ordinary character table of G. Then CompatibleConjugacyClasses returns a list l of positive integers that describes an identification of the columns of tbl with the conjugacy classes ccl in the sense that l[i] is the position in ccl of the class corresponding to the i-th column of tbl, if this identification is unique up to automorphisms of tbl (see AutomorphismsOfTable); if GAP cannot identify the classes, fail is returned.

    In the second form, tbl must be an ordinary character table, and CompatibleConjugacyClasses checks whether the columns of tbl can be identified with the conjugacy classes of a group isomorphic to that for which tbl is the character table; the return value is a list of all those sets of class positions for which the columns of tbl cannot be distinguished with the invariants used, up to automorphisms of tbl. So the identification is unique if and only if the returned list is empty.

    The usual approach is that one first calls CompatibleConjugacyClasses in the second form for checking quickly whether the first form will be successful, and only if this is the case the more time consuming calculations with both group and character table are done.

    The following invariants are used.

    1.
    element orders (see OrdersClassRepresentatives),
    2.
    class lengths (see SizesConjugacyClasses),
    3.
    power maps (see PowerMap, ComputedPowerMaps),
    4.
    symmetries of the table (see AutomorphismsOfTable).

    If the optional argument arec is present then it must be a record. Its components describe additional information for the class identification. If G is a permutation group or matrix group and the component natchar is bound in arec then its value is regarded as the list of values of the natural character (see NaturalCharacter) of G, w.r.t. the ordering of classes in tbl.

    gap> g:= AlternatingGroup( 5 );
    Alt( [ 1 .. 5 ] )
    gap> tbl:= CharacterTable( "A5" );
    CharacterTable( "A5" )
    gap> HasUnderlyingGroup( tbl );  HasOrdinaryCharacterTable( g );
    false
    false
    gap> CompatibleConjugacyClasses( tbl );   # unique identification
    [  ]
    gap> ConnectGroupAndCharacterTable( g, tbl );
    true
    gap> HasConjugacyClasses( tbl );  HasUnderlyingGroup( tbl );
    true
    true
    gap> IdentificationOfConjugacyClasses( tbl );
    [ 1, 2, 3, 4, 5 ]
    gap> # Here is an example where the identification is not unique.
    gap> CompatibleConjugacyClasses( CharacterTable( "J2" ) );
    [ [ 17, 18 ], [ 9, 10 ] ]
    

    [Top] [Previous] [Up] [Next] [Index]

    GAP 4 manual
    February 2000