This file is indexed.

/usr/share/gap/pkg/ctbllib/dlnames/dlnames.gi is in gap-character-tables 1r2p2.dfsg.0-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#############################################################################
##
#W  dlnames.gi           GAP 4 package CTblLib          Michael Claßen-Houben
##
#Y  Copyright (C)  2005,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
##
##  This file contains implementations concerning Deligne-Lusztig names of
##  unipotent characters of finite groups of Lie type.
##


#############################################################################
##
#A  DeligneLusztigNames( <tbl> )
#A  DeligneLusztigNames( <string> )
#A  DeligneLusztigNames( <record> )
##
InstallMethod( DeligneLusztigNames, 
    [ "IsCharacterTable" ], 
    tbl -> DeligneLusztigNames( DeltigLibGetRecord( Identifier( tbl ) ) ) );

InstallMethod( DeligneLusztigNames, 
    [ "IsString" ],
    str -> DeligneLusztigNames( CharacterTable( str ) ) );

InstallMethod( DeligneLusztigNames, 
    [ "IsRecord" ],
    function( record )
    local tbl, dlnames, warnings, elem, tbl0, dlnamestbl0, pos, chi, 
    unipotcharstbl0, map, projchars, position;

    if not IsBound( record.labeling )
       and not IsBound( record.labelingfrom ) then
      record:= DeltigLibGetRecord( record );
    fi;
    tbl:= CharacterTable( record.identifier );
    dlnames:= [  ];
    if IsBound( record.labeling ) then  
      ####Labeling from Library for adjoint groups
      warnings:= [  ];
      for elem in record.labeling do
        dlnames[ elem.index ]:= elem.label;
        if IsBound( elem.warn ) then
          Add( warnings, elem.label );
        fi;
      od;
      if not warnings = [  ] then
        Display( "Labeling is not unique:" );
        for elem in warnings do
          Display( elem );
        od;
      fi;
    elif IsBound( record.labelingfrom ) and "simple" in record.isot then
      ####Labeling from adjoint groups for simple groups
      tbl0:= CharacterTable( record.labelingfrom );
      dlnamestbl0:= DeligneLusztigNames( tbl0 );
      for elem in dlnamestbl0 do
        pos:= Position( dlnamestbl0, elem );
        chi:= RestrictedClassFunction( Irr( tbl0 )[ pos ], tbl );
        dlnames[ Position( Irr( tbl ), chi ) ]:= elem;
      od;
    elif IsBound( record.labelingfrom ) and "sc" in record.isot then
      ####Labeling from simple groups for simply connected groups
      tbl0:= CharacterTable( record.labelingfrom );
      dlnamestbl0:= DeligneLusztigNames( tbl0 );
      unipotcharstbl0:= ShallowCopy( dlnamestbl0 );
      for elem in dlnamestbl0 do
        unipotcharstbl0[ Position( dlnamestbl0, elem ) ]:= 
            UnipotentCharacter( tbl0, elem );
      od;
      for elem in ProjectivesInfo( tbl0 ) do
        if elem.name = Identifier( tbl ) then
          map:= elem.map;
        fi;
      od;
      projchars:= List( Irr( tbl ), chi -> chi{ map } );
      for elem in dlnamestbl0 do
        pos:= Position( dlnamestbl0, elem );
        position:= Position( projchars, unipotcharstbl0[ pos ] );
        dlnames[ position ]:= elem;
      od;
    fi;

    SetDeligneLusztigNames( tbl, dlnames );
    for elem in dlnames do
      SetDeligneLusztigName( Irr( tbl )[ Position( dlnames, elem ) ], elem );
    od;

    return dlnames;
    end );


#############################################################################
##
#M  DeligneLusztigName( <chi> )
##
InstallMethod( DeligneLusztigName,
    [ "IsCharacter" ],
    function( chi )
    DeligneLusztigNames( UnderlyingCharacterTable( chi ) );
    if not HasDeligneLusztigName( chi ) then
      return fail;
    fi;
    return DeligneLusztigName( chi );
    end );


#############################################################################
##
#M  UnipotentCharacter( <tbl>, <label> )
##
InstallMethod( UnipotentCharacter,
    [ "IsCharacterTable", "IsObject" ],
    function( tbl, label )
    local names;

    names:= DeligneLusztigNames( tbl );
    if names <> fail and label in names then
      return Irr( tbl )[ Position( names, label ) ];
    fi;
    return fail;
    end );


#############################################################################
##
#E