1# This file was created from xpl/ctblpope.xpl, do not edit! 2############################################################################# 3## 4#W ctblpope.tst GAP applications Thomas Breuer 5## 6#Y Copyright 1999, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany 7## 8## In order to run the tests, one starts GAP from the `tst` subdirectory 9## of the `pkg/ctbllib` directory, and calls `ReadTest( "ctblpope.tst" );`. 10## 11 12gap> START_TEST( "ctblpope.tst" ); 13 14gap> LoadPackage( "ctbllib", "1.2" ); 15true 16gap> g:= MathieuGroup( 24 );; 17gap> SetName( g, "m24" ); 18gap> Size( g ); IsSimple( g ); NrMovedPoints( g ); 19244823040 20true 2124 22gap> ccl:= AttributeValueNotSet( ConjugacyClasses, g );; 23gap> HasConjugacyClasses( g ); 24false 25gap> invariants:= List( ccl, c -> [ Order( Representative( c ) ), 26> Size( c ), Size( ConjugacyClass( g, Representative( c )^2 ) ) ] );; 27gap> SortParallel( invariants, ccl ); 28gap> SetConjugacyClasses( g, ccl ); 29gap> NrConjugacyClasses( g ); 3026 31gap> pi:= NaturalCharacter( g ); 32Character( CharacterTable( m24 ), [ 24, 8, 0, 6, 0, 0, 4, 0, 4, 2, 0, 3, 3, 33 2, 0, 2, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1 ] ) 34gap> IsTransitive( pi ); Transitivity( pi ); 35true 365 37gap> Display( pi ); 38CT1 39 40 2 10 10 9 3 3 7 7 5 2 3 3 1 1 4 2 . 2 2 1 1 . 41 3 3 1 1 3 2 1 . 1 1 1 1 1 1 . . . 1 1 . . 1 42 5 1 . 1 1 . . . . 1 . . . . . 1 . . . . . 1 43 7 1 1 . . 1 . . . . . . 1 1 . . . . . 1 1 . 44 11 1 . . . . . . . . . . . . . . 1 . . . . . 45 23 1 . . . . . . . . . . . . . . . . . . . . 46 47 1a 2a 2b 3a 3b 4a 4b 4c 5a 6a 6b 7a 7b 8a 10a 11a 12a 12b 14a 14b 15a 48 49Y.1 24 8 . 6 . . 4 . 4 2 . 3 3 2 . 2 . . 1 1 1 50 51 2 . . . . . 52 3 1 1 1 . . 53 5 1 . . . . 54 7 . 1 1 . . 55 11 . . . . . 56 23 . . . 1 1 57 58 15b 21a 21b 23a 23b 59 60Y.1 1 . . 1 1 61gap> piop:= pi * pi; 62Character( CharacterTable( m24 ), [ 576, 64, 0, 36, 0, 0, 16, 0, 16, 4, 0, 9, 63 9, 4, 0, 4, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1 ] ) 64gap> IsTransitive( piop ); 65false 66gap> piup:= SymmetricParts( UnderlyingCharacterTable(pi), [ pi ], 2 )[1]; 67Character( CharacterTable( m24 ), [ 300, 44, 12, 21, 0, 4, 12, 0, 10, 5, 0, 68 6, 6, 4, 2, 3, 1, 0, 2, 2, 1, 1, 0, 0, 1, 1 ] ) 69gap> IsTransitive( piup ); 70false 71gap> ScalarProduct( piup, TrivialCharacter( g ) ); 722 73gap> comb:= Combinations( [ 1 .. 24 ], 2 );; 74gap> hom:= ActionHomomorphism( g, comb, OnSets );; 75gap> pihom:= NaturalCharacter( hom ); 76Character( CharacterTable( m24 ), [ 276, 36, 12, 15, 0, 4, 8, 0, 6, 3, 0, 3, 77 3, 2, 2, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 ] ) 78gap> Transitivity( pihom ); 791 80gap> pi2s:= piup - pi; 81VirtualCharacter( CharacterTable( m24 ), [ 276, 36, 12, 15, 0, 4, 8, 0, 6, 3, 82 0, 3, 3, 2, 2, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 ] ) 83gap> pi2s = pihom; 84true 85gap> HasIrr( g ); HasIrr( CharacterTable( g ) ); 86false 87false 88gap> IsPrimitive( g, comb, OnSets ); 89true 90gap> tbl:= CharacterTable( "M24" ); 91CharacterTable( "M24" ) 92gap> maxes:= Maxes( tbl ); 93[ "M23", "M22.2", "2^4:a8", "M12.2", "2^6:3.s6", "L3(4).3.2_2", 94 "2^6:(psl(3,2)xs3)", "L2(23)", "L3(2)" ] 95gap> s:= CharacterTable( maxes[2] ); 96CharacterTable( "M22.2" ) 97gap> TrivialCharacter( s )^tbl; 98Character( CharacterTable( "M24" ), [ 276, 36, 12, 15, 0, 4, 8, 0, 6, 3, 0, 99 3, 3, 2, 2, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0 ] ) 100gap> m11:= CharacterTable( "M11" );; 101gap> SetName( m11, "m11" ); 102gap> perms:= PermChars( m11 ); 103[ Character( m11, [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ), 104 Character( m11, [ 11, 3, 2, 3, 1, 0, 1, 1, 0, 0 ] ), 105 Character( m11, [ 12, 4, 3, 0, 2, 1, 0, 0, 1, 1 ] ), 106 Character( m11, [ 22, 6, 4, 2, 2, 0, 0, 0, 0, 0 ] ), 107 Character( m11, [ 55, 7, 1, 3, 0, 1, 1, 1, 0, 0 ] ), 108 Character( m11, [ 66, 10, 3, 2, 1, 1, 0, 0, 0, 0 ] ), 109 Character( m11, [ 110, 6, 2, 2, 0, 0, 2, 2, 0, 0 ] ), 110 Character( m11, [ 110, 6, 2, 6, 0, 0, 0, 0, 0, 0 ] ), 111 Character( m11, [ 110, 14, 2, 2, 0, 2, 0, 0, 0, 0 ] ), 112 Character( m11, [ 132, 12, 6, 0, 2, 0, 0, 0, 0, 0 ] ), 113 Character( m11, [ 144, 0, 0, 0, 4, 0, 0, 0, 1, 1 ] ), 114 Character( m11, [ 165, 13, 3, 1, 0, 1, 1, 1, 0, 0 ] ), 115 Character( m11, [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ] ), 116 Character( m11, [ 220, 12, 4, 4, 0, 0, 0, 0, 0, 0 ] ), 117 Character( m11, [ 220, 20, 4, 0, 0, 2, 0, 0, 0, 0 ] ), 118 Character( m11, [ 330, 2, 6, 2, 0, 2, 0, 0, 0, 0 ] ), 119 Character( m11, [ 330, 18, 6, 2, 0, 0, 0, 0, 0, 0 ] ), 120 Character( m11, [ 396, 12, 0, 4, 1, 0, 0, 0, 0, 0 ] ), 121 Character( m11, [ 440, 8, 8, 0, 0, 2, 0, 0, 0, 0 ] ), 122 Character( m11, [ 440, 24, 8, 0, 0, 0, 0, 0, 0, 0 ] ), 123 Character( m11, [ 495, 15, 0, 3, 0, 0, 1, 1, 0, 0 ] ), 124 Character( m11, [ 660, 4, 3, 4, 0, 1, 0, 0, 0, 0 ] ), 125 Character( m11, [ 660, 12, 3, 0, 0, 3, 0, 0, 0, 0 ] ), 126 Character( m11, [ 660, 12, 12, 0, 0, 0, 0, 0, 0, 0 ] ), 127 Character( m11, [ 660, 28, 3, 0, 0, 1, 0, 0, 0, 0 ] ), 128 Character( m11, [ 720, 0, 0, 0, 0, 0, 0, 0, 5, 5 ] ), 129 Character( m11, [ 792, 24, 0, 0, 2, 0, 0, 0, 0, 0 ] ), 130 Character( m11, [ 880, 0, 16, 0, 0, 0, 0, 0, 0, 0 ] ), 131 Character( m11, [ 990, 6, 0, 2, 0, 0, 2, 2, 0, 0 ] ), 132 Character( m11, [ 990, 6, 0, 6, 0, 0, 0, 0, 0, 0 ] ), 133 Character( m11, [ 990, 30, 0, 2, 0, 0, 0, 0, 0, 0 ] ), 134 Character( m11, [ 1320, 8, 6, 0, 0, 2, 0, 0, 0, 0 ] ), 135 Character( m11, [ 1320, 24, 6, 0, 0, 0, 0, 0, 0, 0 ] ), 136 Character( m11, [ 1584, 0, 0, 0, 4, 0, 0, 0, 0, 0 ] ), 137 Character( m11, [ 1980, 12, 0, 4, 0, 0, 0, 0, 0, 0 ] ), 138 Character( m11, [ 1980, 36, 0, 0, 0, 0, 0, 0, 0, 0 ] ), 139 Character( m11, [ 2640, 0, 12, 0, 0, 0, 0, 0, 0, 0 ] ), 140 Character( m11, [ 3960, 24, 0, 0, 0, 0, 0, 0, 0, 0 ] ), 141 Character( m11, [ 7920, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 142gap> Length( perms ); 14339 144gap> degrees:= DivisorsInt( Size( m11 ) );; 145gap> perms2:= [];; 146gap> for d in degrees do 147> Append( perms2, PermChars( m11, d ) ); 148> od; 149gap> Set( perms ) = Set( perms2 ); 150true 151gap> perms3:= [];; 152gap> for d in degrees do 153> Append( perms3, PermChars( m11, rec( torso:= [ d ] ) ) ); 154> od; 155gap> Set( perms ) = Set( perms3 ); 156true 157gap> newperms:= TestPerm4( m11, perms );; 158gap> newperms = perms; 159true 160gap> newperms:= TestPerm5( m11, perms, m11 mod 11 );; 161gap> newperms = perms; 162false 163gap> Difference( perms, newperms ); 164[ Character( m11, [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ] ) ] 165gap> tom:= TableOfMarks( "M11" ); 166TableOfMarks( "M11" ) 167gap> trueperms:= PermCharsTom( m11, tom );; 168gap> Length( trueperms ); Length( Set( trueperms ) ); 16939 17036 171gap> Difference( perms, trueperms ); 172[ Character( m11, [ 220, 4, 4, 0, 0, 4, 0, 0, 0, 0 ] ), 173 Character( m11, [ 660, 4, 3, 4, 0, 1, 0, 0, 0, 0 ] ), 174 Character( m11, [ 660, 12, 3, 0, 0, 3, 0, 0, 0, 0 ] ) ] 175gap> u62:= CharacterTable( "U6(2)" );; 176gap> m22:= CharacterTable( "M22" );; 177gap> fus:= PossibleClassFusions( m22, u62 ); 178[ [ 1, 3, 7, 10, 14, 15, 22, 24, 24, 26, 33, 34 ], 179 [ 1, 3, 7, 10, 14, 15, 22, 24, 24, 26, 34, 33 ], 180 [ 1, 3, 7, 11, 14, 15, 22, 24, 24, 27, 33, 34 ], 181 [ 1, 3, 7, 11, 14, 15, 22, 24, 24, 27, 34, 33 ], 182 [ 1, 3, 7, 12, 14, 15, 22, 24, 24, 28, 33, 34 ], 183 [ 1, 3, 7, 12, 14, 15, 22, 24, 24, 28, 34, 33 ] ] 184gap> RepresentativesFusions( m22, fus, u62 ); 185[ [ 1, 3, 7, 10, 14, 15, 22, 24, 24, 26, 33, 34 ] ] 186gap> cand:= Set( List( fus, 187> x -> Induced( m22, u62, [ TrivialCharacter( m22 ) ], x )[1] ) ); 188[ Character( CharacterTable( "U6(2)" ), [ 20736, 0, 384, 0, 0, 0, 54, 0, 0, 189 0, 0, 48, 0, 16, 6, 0, 0, 0, 0, 0, 0, 6, 0, 2, 0, 0, 0, 4, 0, 0, 0, 0, 190 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ), 191 Character( CharacterTable( "U6(2)" ), [ 20736, 0, 384, 0, 0, 0, 54, 0, 0, 192 0, 48, 0, 0, 16, 6, 0, 0, 0, 0, 0, 0, 6, 0, 2, 0, 0, 4, 0, 0, 0, 0, 0, 193 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ), 194 Character( CharacterTable( "U6(2)" ), [ 20736, 0, 384, 0, 0, 0, 54, 0, 0, 195 48, 0, 0, 0, 16, 6, 0, 0, 0, 0, 0, 0, 6, 0, 2, 0, 4, 0, 0, 0, 0, 0, 0, 196 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 197gap> PermCharInfo( u62, cand ).ATLAS; 198[ "1a+22a+252a+616a+1155c+1386a+8064a+9240c", 199 "1a+22a+252a+616a+1155b+1386a+8064a+9240b", 200 "1a+22a+252a+616a+1155a+1386a+8064a+9240a" ] 201gap> aut:= AutomorphismsOfTable( u62 );; Size( aut ); 20224 203gap> elms:= Filtered( Elements( aut ), x -> Order( x ) = 3 ); 204[ (10,11,12)(26,27,28)(40,41,42), (10,12,11)(26,28,27)(40,42,41) ] 205gap> Position( cand, Permuted( cand[1], elms[1] ) ); 2063 207gap> Position( cand, Permuted( cand[3], elms[1] ) ); 2082 209gap> u622:= CharacterTable( "U6(2).2" );; 210gap> m222:= CharacterTable( "M22.2" );; 211gap> fus:= PossibleClassFusions( m222, u622 ); 212[ [ 1, 3, 7, 10, 13, 14, 20, 22, 22, 24, 29, 38, 39, 42, 41, 46, 50, 53, 58, 213 59, 59 ] ] 214gap> cand:= Induced( m222, u622, [ TrivialCharacter( m222 ) ], fus[1] ); 215[ Character( CharacterTable( "U6(2).2" ), [ 20736, 0, 384, 0, 0, 0, 54, 0, 0, 216 48, 0, 0, 16, 6, 0, 0, 0, 0, 0, 6, 0, 2, 0, 4, 0, 0, 0, 0, 1, 0, 0, 0, 217 0, 0, 0, 0, 0, 1080, 72, 0, 48, 8, 0, 0, 0, 18, 0, 0, 0, 8, 0, 0, 2, 0, 218 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0 ] ) ] 219gap> PermCharInfo( u622, cand ).ATLAS; 220[ "1a+22a+252a+616a+1155a+1386a+8064a+9240a" ] 221gap> o8p3:= CharacterTable("O8+(3)");; 222gap> Size( o8p3 ) / (2^9*168); 22357572775 224gap> o8p2:= CharacterTable( "O8+(2)" );; 225gap> fus:= PossibleClassFusions( o8p2, o8p3 );; 226gap> Length( fus ); 22724 228gap> rep:= RepresentativesFusions( o8p2, fus, o8p3 ); 229[ [ 1, 5, 2, 3, 4, 5, 7, 8, 12, 16, 17, 19, 23, 20, 21, 22, 23, 24, 25, 26, 230 37, 38, 42, 31, 32, 36, 49, 52, 51, 50, 43, 44, 45, 53, 55, 56, 57, 71, 231 71, 71, 72, 73, 74, 78, 79, 83, 88, 89, 90, 94, 100, 101, 105 ] ] 232gap> fus:= rep[1];; 233gap> Size( o8p2 ) / (2^9*168); 2342025 235gap> sub:= CharacterTable( "2^6:A8" );; 236gap> subfus:= GetFusionMap( sub, o8p2 ); 237[ 1, 3, 2, 2, 4, 5, 6, 13, 3, 6, 12, 13, 14, 7, 21, 24, 11, 30, 29, 31, 13, 238 17, 15, 16, 14, 17, 36, 37, 18, 41, 24, 44, 48, 28, 33, 32, 34, 35, 35, 51, 239 51 ] 240gap> fus:= CompositionMaps( fus, subfus ); 241[ 1, 2, 5, 5, 3, 4, 5, 23, 2, 5, 19, 23, 20, 7, 37, 31, 17, 50, 51, 43, 23, 242 23, 21, 22, 20, 23, 56, 57, 24, 72, 31, 78, 89, 52, 45, 44, 53, 55, 55, 243 100, 100 ] 244gap> Size( sub ) / (2^9*168); 24515 246gap> List( Irr( sub ), Degree ); 247[ 1, 7, 14, 20, 21, 21, 21, 28, 35, 45, 45, 56, 64, 70, 28, 28, 35, 35, 35, 248 35, 70, 70, 70, 70, 140, 140, 140, 140, 140, 210, 210, 252, 252, 280, 280, 249 315, 315, 315, 315, 420, 448 ] 250gap> cand:= PermChars( sub, 15 ); 251[ Character( CharacterTable( "2^6:A8" ), [ 15, 15, 15, 7, 7, 7, 7, 7, 3, 3, 252 3, 3, 3, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 253 1, 1, 1, 1, 1, 0, 0 ] ) ] 254gap> ind:= Induced( sub, o8p3, cand, fus ); 255[ Character( CharacterTable( "O8+(3)" ), [ 57572775, 59535, 59535, 59535, 256 3591, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2187, 0, 27, 135, 135, 135, 243, 257 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 27, 0, 258 0, 0, 0, 27, 27, 27, 27, 0, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 259 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 260 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 261gap> o8p33:= CharacterTable( "O8+(3).3" );; 262gap> inv:= InverseMap( GetFusionMap( o8p3, o8p33 ) ); 263[ 1, [ 2, 3, 4 ], 5, 6, [ 7, 8, 9 ], [ 10, 11, 12 ], 13, [ 14, 15, 16 ], 17, 264 18, 19, [ 20, 21, 22 ], 23, [ 24, 25, 26 ], [ 27, 28, 29 ], 30, 265 [ 31, 32, 33 ], [ 34, 35, 36 ], [ 37, 38, 39 ], [ 40, 41, 42 ], 266 [ 43, 44, 45 ], 46, [ 47, 48, 49 ], 50, [ 51, 52, 53 ], 54, 55, 56, 57, 267 [ 58, 59, 60 ], [ 61, 62, 63 ], 64, [ 65, 66, 67 ], 68, [ 69, 70, 71 ], 268 [ 72, 73, 74 ], [ 75, 76, 77 ], [ 78, 79, 80 ], [ 81, 82, 83 ], 84, 85, 269 [ 86, 87, 88 ], [ 89, 90, 91 ], [ 92, 93, 94 ], 95, 96, [ 97, 98, 99 ], 270 [ 100, 101, 102 ], [ 103, 104, 105 ], [ 106, 107, 108 ], [ 109, 110, 111 ], 271 [ 112, 113, 114 ] ] 272gap> ext:= CompositionMaps( ind[1], inv ); 273[ 57572775, 59535, 3591, 0, 0, 0, 0, 0, 2187, 0, 27, 135, 243, 0, 0, 0, 0, 0, 274 0, 0, 27, 0, 0, 27, 27, 0, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 275 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 276gap> perms:= PermChars( o8p33, rec( torso:= ext ) ); 277[ Character( CharacterTable( "O8+(3).3" ), [ 57572775, 59535, 3591, 0, 0, 0, 278 0, 0, 2187, 0, 27, 135, 243, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 27, 27, 0, 279 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 280 0, 0, 3159, 3159, 243, 243, 39, 39, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 281 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0 282 ] ) ] 283gap> PermCharInfo( o8p33, perms ).ATLAS; 284[ "1a+780aabb+2457a+2808abc+9450aaabbcc+18200abcdddef+24192a+54600a^{5}b+70200\ 285aabb+87360ab+139776a^{5}+147420a^{4}b^{4}+163800ab+184275aabc+199017aa+218700a\ 286+245700a+291200aef+332800a^{4}b^{5}c^{5}+491400aaabcd+531441a^{5}b^{4}c^{4}+55\ 2872825a^{4}+568620aabb+698880a^{4}b^{4}+716800aaabbccdddeeff+786240aabb+873600aa\ 288+998400aa+1257984a^{6}+1397760aa" ] 289gap> o73:= CharacterTable( "O7(3)" );; 290gap> a7:= CharacterTable( "A7" );; 291gap> fus:= PossibleClassFusions( a7, o73 ); 292[ [ 1, 3, 6, 10, 15, 16, 24, 33, 33 ], [ 1, 3, 7, 10, 15, 16, 22, 33, 33 ] ] 293gap> ind:= List( fus, 294> x -> Induced( a7, o73, [ TrivialCharacter( a7 ) ], x )[1] );; 295gap> mat:= MatScalarProducts( o73, Irr( o73 ), ind );; 296gap> sum:= Sum( mat ); 297[ 2, 6, 2, 0, 8, 6, 2, 4, 4, 8, 3, 0, 4, 4, 9, 3, 5, 0, 0, 9, 0, 10, 5, 6, 298 15, 1, 12, 1, 15, 7, 2, 4, 14, 16, 0, 12, 12, 7, 8, 8, 14, 12, 12, 14, 6, 299 6, 20, 16, 12, 12, 12, 10, 10, 12, 12, 8, 12, 6 ] 300gap> const:= Filtered( [ 1 .. Length( sum ) ], x -> sum[x] <> 0 ); 301[ 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 20, 22, 23, 24, 25, 26, 302 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 303 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 ] 304gap> Length( const ); 30552 306gap> const:= Irr( o73 ){ const };; 307gap> rat:= RationalizedMat( const );; 308gap> names:= ClassNames( o73 ); 309[ "1a", "2a", "2b", "2c", "3a", "3b", "3c", "3d", "3e", "3f", "3g", "4a", 310 "4b", "4c", "4d", "5a", "6a", "6b", "6c", "6d", "6e", "6f", "6g", "6h", 311 "6i", "6j", "6k", "6l", "6m", "6n", "6o", "6p", "7a", "8a", "8b", "9a", 312 "9b", "9c", "9d", "10a", "10b", "12a", "12b", "12c", "12d", "12e", "12f", 313 "12g", "12h", "13a", "13b", "14a", "15a", "18a", "18b", "18c", "18d", "20a" 314 ] 315gap> List( fus, x -> names{ x } ); 316[ [ "1a", "2b", "3b", "3f", "4d", "5a", "6h", "7a", "7a" ], 317 [ "1a", "2b", "3c", "3f", "4d", "5a", "6f", "7a", "7a" ] ] 318gap> torso:= [ 28431 ];; 319gap> zeros:= [ 5, 8, 9, 11, 17, 20, 23, 28, 29, 32, 36, 37, 38, 320> 43, 46, 47, 48, 53, 54, 55, 56, 57, 58 ];; 321gap> names{ zeros }; 322[ "3a", "3d", "3e", "3g", "6a", "6d", "6g", "6l", "6m", "6p", "9a", "9b", 323 "9c", "12b", "12e", "12f", "12g", "15a", "18a", "18b", "18c", "18d", "20a" ] 324gap> for i in zeros do 325> torso[i]:= 0; 326> od; 327gap> torso; 328[ 28431,,,, 0,,, 0, 0,, 0,,,,,, 0,,, 0,,, 0,,,,, 0, 0,,, 0,,,, 0, 0, 0,,,,, 0, 329 ,, 0, 0, 0,,,,, 0, 0, 0, 0, 0, 0 ] 330gap> perms:= PermChars( o73, rec( torso:= torso, chars:= rat ) ); 331[ Character( CharacterTable( "O7(3)" ), [ 28431, 567, 567, 111, 0, 0, 243, 0, 332 0, 81, 0, 15, 3, 27, 15, 6, 0, 0, 27, 0, 3, 27, 0, 0, 0, 3, 9, 0, 0, 3, 333 3, 0, 4, 1, 1, 0, 0, 0, 0, 2, 2, 3, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 334 0, 0, 0, 0 ] ) ] 335gap> PermCharInfo( o73, perms ).ATLAS; 336[ "1a+78a+168a+182a+260ab+1092a+2457a+2730a+4095b+5460a+11648a" ] 337gap> o8p3:= CharacterTable( "O8+(3)" );; 338gap> o8p2:= CharacterTable( "O8+(2)" );; 339gap> fus:= PossibleClassFusions( o8p2, o8p3 );; 340gap> NamesOfFusionSources( o8p2 ); 341[ "A9", "2^8:O8+(2)", "O8+(2)M2", "O8+(2)M3", "O8+(2)M5", "O8+(2)M6", 342 "O8+(2)M8", "O8+(2)M9", "(3xU4(2)):2", "O8+(2)M11", "O8+(2)M12", 343 "2^(1+8)_+:(S3xS3xS3)", "3^4:2^3.S4(a)", "(A5xA5):2^2", "O8+(2)M16", 344 "O8+(2)M17", "2^(1+8)+.O8+(2)", "2^6:A8", "2.O8+(2)", "2^2.O8+(2)", "S6(2)" 345 ] 346gap> sub:= CharacterTable( "2^6:A8" );; 347gap> subfus:= GetFusionMap( sub, o8p2 ); 348[ 1, 3, 2, 2, 4, 5, 6, 13, 3, 6, 12, 13, 14, 7, 21, 24, 11, 30, 29, 31, 13, 349 17, 15, 16, 14, 17, 36, 37, 18, 41, 24, 44, 48, 28, 33, 32, 34, 35, 35, 51, 350 51 ] 351gap> fus:= List( fus, x -> CompositionMaps( x, subfus ) );; 352gap> fus:= Set( fus );; 353gap> Length( fus ); 35424 355gap> ind:= List( fus, x -> Induced( sub, o8p3, 356> [ TrivialCharacter( sub ) ], x )[1] );; 357gap> ind:= Set( ind );; 358gap> Length( ind ); 3596 360gap> o8p32:= CharacterTable( "O8+(3).2_1" );; 361gap> fus:= GetFusionMap( o8p3, o8p32 );; 362gap> ext:= List( ind, x -> CompositionMaps( x, InverseMap( fus ) ) );; 363gap> ext:= Filtered( ext, x -> ForAll( x, IsInt ) ); 364[ [ 3838185, 17577, 8505, 8505, 873, 0, 0, 0, 0, 6561, 0, 0, 729, 0, 9, 105, 365 45, 45, 105, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 9, 9, 27, 27, 366 0, 0, 27, 9, 0, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 367 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 368 0, 0 ], [ 3838185, 17577, 8505, 8505, 873, 0, 6561, 0, 0, 0, 0, 0, 729, 369 0, 9, 105, 45, 45, 105, 30, 0, 0, 0, 0, 0, 0, 189, 0, 0, 0, 9, 0, 0, 0, 370 9, 27, 27, 0, 0, 9, 27, 0, 8, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 371 0, 0, 9, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 372 0, 0, 0, 0, 0 ] ] 373gap> s444:= CharacterTable( "S4(4).4" );; 374gap> NamesOfFusionSources( s444 ); 375[ "(L3(2)xS4(4):2).2", "S4(4)", "S4(4).2" ] 376gap> perms:= PermChars( s444, rec( torso:= [ Size( s444 ) / ( 5^2*2^5 ) ] ) ); 377[ Character( CharacterTable( "S4(4).4" ), [ 4896, 384, 96, 0, 16, 32, 36, 16, 378 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ), 379 Character( CharacterTable( "S4(4).4" ), [ 4896, 192, 32, 0, 0, 8, 6, 1, 0, 380 2, 0, 0, 36, 0, 12, 0, 0, 0, 1, 0, 6, 6, 2, 2, 0, 0, 0, 0, 1, 1 ] ), 381 Character( CharacterTable( "S4(4).4" ), [ 4896, 240, 64, 0, 8, 8, 36, 16, 382 0, 0, 0, 0, 0, 12, 8, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 383gap> PermCharInfo( s444, perms ).ATLAS; 384[ "1abcd+50abcd+153abcd+170a^{4}b^{4}+680aabb", 385 "1a+50ac+153a+170aab+256a+680abb+816a+1020a", 386 "1ac+50ac+68a+153abcd+170aabbb+204a+680abb+1020a" ] 387gap> t:= CharacterTable( "Co1" ); 388CharacterTable( "Co1" ) 389gap> s:= CharacterTable( Maxes( t )[5] ); 390CharacterTable( "2^(1+8)+.O8+(2)" ) 391gap> ind:= Induced( s, t, [ TrivialCharacter( s ) ] );; 392gap> PermCharInfo( t, ind ).ATLAS; 393[ "1a+299a+17250a+27300a+80730a+313950a+644644a+2816856a+5494125a+12432420a+24\ 394794000a" ] 395gap> centorder:= SizesCentralizers( t )[3];; 396gap> maxes:= List( Maxes( t ), CharacterTable );; 397gap> cand:= Filtered( maxes, x -> Size( x ) mod centorder = 0 ); 398[ CharacterTable( "(A4xG2(4)):2" ) ] 399gap> u:= cand[1];; 400gap> index:= Size( u ) / centorder; 4013 402gap> subperm:= PermChars( u, rec( degree := index, bounds := false ) ); 403[ Character( CharacterTable( "(A4xG2(4)):2" ), 404 [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 405 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 406 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 408 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] ) ] 409gap> subperm = PermChars( u, rec( torso := [ 3 ] ) ); 410true 411gap> ind:= Induced( u, t, subperm ); 412[ Character( CharacterTable( "Co1" ), [ 2065694400, 181440, 119408, 38016, 413 2779920, 0, 0, 378, 30240, 864, 0, 720, 316, 80, 2520, 30, 0, 6480, 414 1508, 0, 0, 0, 0, 0, 38, 18, 105, 0, 600, 120, 56, 24, 0, 12, 0, 0, 0, 415 120, 48, 18, 0, 0, 6, 0, 360, 144, 108, 0, 0, 10, 0, 0, 0, 0, 0, 4, 2, 416 3, 9, 0, 0, 15, 3, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 12, 417 8, 0, 6, 0, 0, 3, 0, 1, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0 ] ) ] 418gap> PermCharInfo( t, ind ).ATLAS; 419[ "1a+1771a+8855a+27300aa+313950a+345345a+644644aa+871884aaa+1771000a+2055625a\ 420+4100096a+7628985a+9669660a+12432420aa+21528000aa+23244375a+24174150aa+2479400\ 4210a+31574400aa+40370176a+60435375a+85250880aa+100725625a+106142400a+150732800a+\ 422184184000a+185912496a+207491625a+299710125a+302176875a" ] 423gap> centorder:= SizesCentralizers( t )[4];; 424gap> cand:= Filtered( maxes, x -> Size( x ) mod centorder = 0 ); 425[ CharacterTable( "Co2" ), CharacterTable( "2^11:M24" ) ] 426gap> u:= cand[1];; 427gap> GetFusionMap( u, t ); 428[ 1, 2, 2, 4, 7, 6, 9, 11, 11, 10, 11, 12, 14, 17, 16, 21, 23, 20, 22, 22, 429 24, 28, 30, 33, 31, 32, 33, 33, 37, 42, 41, 43, 44, 48, 52, 49, 53, 55, 53, 430 52, 54, 60, 60, 60, 64, 65, 65, 67, 66, 70, 73, 72, 78, 79, 84, 85, 87, 92, 431 93, 93 ] 432gap> centorder; 433389283840 434gap> SizesCentralizers( u )[4]; 4351474560 436gap> u:= cand[2]; 437CharacterTable( "2^11:M24" ) 438gap> index:= Size( u ) / centorder; 4391288 440gap> subperm:= PermChars( u, rec( torso := [ index ] ) ); 441[ Character( CharacterTable( "2^11:M24" ), [ 1288, 1288, 1288, 56, 56, 56, 442 56, 56, 56, 48, 48, 48, 48, 48, 10, 10, 10, 10, 7, 7, 8, 8, 8, 8, 8, 8, 443 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 2, 2, 2, 2, 2, 2, 3, 3, 3, 0, 444 0, 0, 0, 2, 2, 2, 2, 3, 3, 3, 1, 1, 2, 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 445 0, 0, 0, 0, 0, 0 ] ) ] 446gap> subperm = PermChars( u, rec( degree:= index, bounds := false ) ); 447true 448gap> ind:= Induced( u, t, subperm ); 449[ Character( CharacterTable( "Co1" ), [ 10680579000, 1988280, 196560, 94744, 450 0, 17010, 0, 945, 7560, 3432, 2280, 1728, 252, 308, 0, 225, 0, 0, 0, 451 270, 0, 306, 0, 46, 45, 25, 0, 0, 120, 32, 12, 52, 36, 36, 0, 0, 0, 0, 452 0, 45, 15, 0, 9, 3, 0, 0, 0, 0, 18, 0, 30, 0, 6, 18, 0, 3, 5, 0, 0, 0, 453 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 1, 0, 0, 0, 0, 6, 0, 2, 454 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 455gap> PermCharInfo( t, ind ).ATLAS; 456[ "1a+17250aa+27300a+80730aa+644644aaa+871884a+1821600a+2055625aaa+2816856a+54\ 45794125a^{4}+12432420aa+16347825aa+23244375a+24174150aa+24667500aa+24794000aaa+3\ 4581574400a+40370176a+55255200a+66602250a^{4}+83720000aa+85250880aaa+91547820aa+1\ 45906142400a+150732800a+184184000aaa+185912496aaa+185955000aaa+207491625aaa+21554\ 4607904aa+241741500aaa+247235625a+257857600aa+259008750a+280280000a+302176875a+32\ 4616956500a+387317700a+402902500a+464257024a+469945476b+502078500a+503513010a+504\ 462627200a+522161640a" ] 463gap> t:= CharacterTable( "G2(3)" ); 464CharacterTable( "G2(3)" ) 465gap> t:= CharacterTable( "G2(3)" );; 466gap> n:= Length( RationalizedMat( Irr( t ) ) );; 467gap> maxmult:= List( [ 1 .. n ], i -> 1 );; 468gap> perms:= [];; 469gap> divs:= DivisorsInt( Size( t ) );; 470gap> for d in divs do 471> Append( perms, 472> PermChars( t, rec( bounds := false, 473> degree := d, 474> maxmult := maxmult ) ) ); 475> od; 476gap> Length( perms ); 47742 478gap> List( perms, Degree ); 479[ 1, 351, 351, 364, 364, 378, 378, 546, 546, 546, 546, 546, 702, 702, 728, 480 728, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1092, 1456, 1456, 1638, 481 1638, 2184, 2184, 2457, 2457, 2457, 2457, 3159, 3276, 3276, 3276, 3276, 482 4368, 6552, 6552 ] 483gap> tom:= TableOfMarks( "G2(3)" ); 484TableOfMarks( "G2(3)" ) 485gap> tbl:= CharacterTable( "G2(3)" ); 486CharacterTable( "G2(3)" ) 487gap> permstom:= PermCharsTom( tbl, tom );; 488gap> Length( permstom ); 489433 490gap> multfree:= Intersection( perms, permstom );; 491gap> Length( multfree ); 49215 493gap> List( multfree, Degree ); 494[ 1, 351, 351, 364, 364, 378, 378, 702, 702, 728, 728, 1092, 1092, 2184, 2184 495 ] 496gap> tbl2:= CharacterTable("O8+(2).2");; 497gap> s3:= CharacterTable( "Symmetric", 3 );; 498gap> s:= CharacterTableWreathSymmetric( s3, 4 ); 499CharacterTable( "Sym(3)wrS4" ) 500gap> fus:= PossibleClassFusions( s, tbl2 ); 501[ [ 1, 41, 6, 3, 48, 9, 42, 19, 51, 8, 5, 50, 24, 49, 7, 2, 44, 22, 42, 12, 502 53, 17, 58, 21, 5, 47, 26, 50, 37, 52, 23, 60, 18, 4, 46, 25, 14, 61, 503 20, 9, 53, 30, 51, 26, 64, 8, 52, 31, 13, 56, 38 ] ] 504gap> pi:= Induced( s, tbl2, [ TrivialCharacter( s ) ], fus[1] )[1]; 505Character( CharacterTable( "O8+(2).2" ), [ 11200, 256, 160, 160, 80, 40, 40, 506 76, 13, 0, 0, 8, 8, 4, 0, 0, 16, 16, 4, 4, 4, 1, 1, 1, 1, 5, 0, 0, 0, 1, 1, 507 0, 0, 0, 0, 0, 2, 2, 0, 0, 1120, 96, 0, 16, 0, 16, 8, 10, 4, 6, 7, 12, 3, 508 0, 0, 2, 0, 4, 0, 1, 1, 0, 0, 1, 0, 0, 0 ] ) 509gap> PermCharInfo( tbl2, pi ).ATLAS; 510[ "1a+84a+168a+175a+300a+700c+972a+1400a+3200a+4200b" ] 511gap> tbl:= CharacterTable( "O8+(2)" ); 512CharacterTable( "O8+(2)" ) 513gap> rest:= RestrictedClassFunction( pi, tbl ); 514Character( CharacterTable( "O8+(2)" ), [ 11200, 256, 160, 160, 160, 80, 40, 515 40, 40, 76, 13, 0, 0, 8, 8, 8, 4, 0, 0, 0, 16, 16, 16, 4, 4, 4, 4, 1, 1, 1, 516 1, 1, 1, 5, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0 ] ) 517gap> PermCharInfo( tbl, rest ).ATLAS; 518[ "1a+84abc+175a+300a+700bcd+972a+3200a+4200a" ] 519gap> tbl:= CharacterTable( "M22" ); 520CharacterTable( "M22" ) 521gap> perms:= PermChars( tbl, rec( torso:= [ 56 ] ) ); 522[ Character( CharacterTable( "M22" ), [ 56, 8, 2, 4, 0, 1, 2, 0, 0, 2, 1, 1 523 ] ) ] 524gap> pi:= perms[1];; 525gap> Norm( pi ); 5262 527gap> Display( tbl, rec( chars:= perms ) ); 528M22 529 530 2 7 7 2 5 4 . 2 . . 3 . . 531 3 2 1 2 . . . 1 . . . . . 532 5 1 . . . . 1 . . . . . . 533 7 1 . . . . . . 1 1 . . . 534 11 1 . . . . . . . . . 1 1 535 536 1a 2a 3a 4a 4b 5a 6a 7a 7b 8a 11a 11b 537 2P 1a 1a 3a 2a 2a 5a 3a 7a 7b 4a 11b 11a 538 3P 1a 2a 1a 4a 4b 5a 2a 7b 7a 8a 11a 11b 539 5P 1a 2a 3a 4a 4b 1a 6a 7b 7a 8a 11a 11b 540 7P 1a 2a 3a 4a 4b 5a 6a 1a 1a 8a 11b 11a 541 11P 1a 2a 3a 4a 4b 5a 6a 7a 7b 8a 1a 1a 542 543Y.1 56 8 2 4 . 1 2 . . 2 1 1 544 545gap> perms:= PermChars( tbl, rec( torso:= [ 56 * 55 ] ) );; 546gap> Length( perms ); 54716 548gap> OrdersClassRepresentatives( tbl ); 549[ 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 11, 11 ] 550gap> perms:= Filtered( perms, x -> x[5] = 0 and x[10] <> 0 ); 551[ Character( CharacterTable( "M22" ), [ 3080, 56, 2, 12, 0, 0, 2, 0, 0, 2, 0, 552 0 ] ), Character( CharacterTable( "M22" ), 553 [ 3080, 8, 2, 8, 0, 0, 2, 0, 0, 4, 0, 0 ] ), 554 Character( CharacterTable( "M22" ), [ 3080, 24, 11, 4, 0, 0, 3, 0, 0, 2, 0, 555 0 ] ), Character( CharacterTable( "M22" ), 556 [ 3080, 24, 20, 4, 0, 0, 0, 0, 0, 2, 0, 0 ] ) ] 557gap> infoperms:= PermCharInfo( tbl, perms );; 558gap> Display( tbl, infoperms.display ); 559M22 560 561 2 7 7 2 5 2 3 562 3 2 1 2 . 1 . 563 5 1 . . . . . 564 7 1 . . . . . 565 11 1 . . . . . 566 567 1a 2a 3a 4a 6a 8a 568 2P 1a 1a 3a 2a 3a 4a 569 3P 1a 2a 1a 4a 2a 8a 570 5P 1a 2a 3a 4a 6a 8a 571 7P 1a 2a 3a 4a 6a 8a 572 11P 1a 2a 3a 4a 6a 8a 573 574I.1 3080 56 2 12 2 2 575I.2 1 21 8 54 24 36 576I.3 1 3 4 9 12 18 577I.4 3080 8 2 8 2 4 578I.5 1 3 8 36 24 72 579I.6 1 3 4 9 12 18 580I.7 3080 24 11 4 3 2 581I.8 1 9 44 18 36 36 582I.9 1 3 4 9 12 18 583I.10 3080 24 20 4 . 2 584I.11 1 9 80 18 . 36 585I.12 1 3 4 9 12 18 586gap> ly:= CharacterTable( "Ly" );; 587gap> mcl:= CharacterTable( "McL" );; 588gap> mcl2:= CharacterTable( "McL.2" );; 589gap> 3mcl2:= CharacterTable( "3.McL.2" );; 590gap> perms:= PermChars( mcl, rec( degree:= 15400 ) ); 591[ Character( CharacterTable( "McL" ), [ 15400, 56, 91, 10, 12, 25, 0, 11, 2, 592 0, 0, 2, 1, 1, 1, 0, 0, 3, 0, 0, 1, 1, 1, 1 ] ), 593 Character( CharacterTable( "McL" ), [ 15400, 280, 10, 37, 20, 0, 5, 10, 1, 594 0, 0, 2, 1, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0 ] ) ] 595gap> ord10:= Filtered( [ 1 .. NrConjugacyClasses( mcl ) ], 596> i -> OrdersClassRepresentatives( mcl )[i] = 10 ); 597[ 15 ] 598gap> List( perms, pi -> pi[ ord10[1] ] ); 599[ 1, 0 ] 600gap> pi:= perms[1]; 601Character( CharacterTable( "McL" ), [ 15400, 56, 91, 10, 12, 25, 0, 11, 2, 0, 602 0, 2, 1, 1, 1, 0, 0, 3, 0, 0, 1, 1, 1, 1 ] ) 603gap> map:= InverseMap( GetFusionMap( mcl, mcl2 ) ); 604[ 1, 2, 3, 4, 5, 6, 7, 8, 9, [ 10, 11 ], 12, [ 13, 14 ], 15, 16, 17, 18, 605 [ 19, 20 ], [ 21, 22 ], [ 23, 24 ] ] 606gap> torso:= CompositionMaps( pi, map ); 607[ 15400, 56, 91, 10, 12, 25, 0, 11, 2, 0, 2, 1, 1, 0, 0, 3, 0, 1, 1 ] 608gap> perms:= PermChars( mcl2, rec( torso:= torso ) ); 609[ Character( CharacterTable( "McL.2" ), [ 15400, 56, 91, 10, 12, 25, 0, 11, 610 2, 0, 2, 1, 1, 0, 0, 3, 0, 1, 1, 110, 26, 2, 4, 0, 0, 5, 2, 1, 1, 0, 0, 611 1, 1 ] ) ] 612gap> pi:= Inflated( perms[1], 3mcl2 ); 613Character( CharacterTable( "3.McL.2" ), [ 15400, 15400, 56, 56, 91, 91, 10, 614 12, 12, 25, 25, 0, 0, 11, 11, 2, 2, 0, 0, 0, 2, 2, 1, 1, 1, 0, 0, 0, 0, 3, 615 3, 0, 0, 0, 1, 1, 1, 1, 1, 1, 110, 26, 2, 4, 0, 0, 5, 2, 1, 1, 0, 0, 1, 1 616 ] ) 617gap> fus:= PossibleClassFusions( 3mcl2, ly );; Length( fus ); 6184 619gap> g:= AutomorphismsOfTable( ly );; 620gap> OrbitLengths( g, fus, OnTuples ); 621[ 4 ] 622gap> pi:= Induced( 3mcl2, ly, [ pi ], fus[1] )[1]; 623Character( CharacterTable( "Ly" ), [ 147934325000, 286440, 1416800, 1082, 624 784, 12500, 0, 672, 42, 24, 0, 40, 0, 2, 20, 0, 0, 0, 64, 10, 0, 50, 2, 0, 625 0, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 626 0, 0, 0, 0 ] ) 627gap> orders:= OrdersClassRepresentatives( ly ); 628[ 1, 2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 8, 8, 9, 10, 10, 11, 11, 12, 12, 14, 15, 629 15, 15, 18, 20, 21, 21, 22, 22, 24, 24, 24, 25, 28, 30, 30, 31, 31, 31, 31, 630 31, 33, 33, 37, 37, 40, 40, 42, 42, 67, 67, 67 ] 631gap> torso:= [];; 632gap> for i in [ 1 .. Length( orders ) ] do 633> if orders[i] mod 2 = 1 then 634> torso[i]:= pi[i]/2; 635> fi; 636> od; 637gap> torso; 638[ 73967162500,, 708400, 541,, 6250, 0,,,, 0,,, 1,,, 0, 0,,,, 25, 1, 0,,, 0, 0, 639 ,,,,, 0,,,, 0, 0, 0, 0, 0, 0, 0, 0, 0,,,,, 0, 0, 0 ] 640gap> perms:= PermChars( ly, rec( torso:= torso ) );; 641gap> Length( perms ); 64243 643gap> perms:= Filtered( perms, cand -> ForAll( [ 1 .. Length( orders ) ], 644> i -> cand[i] >= pi[i] / 2 ) ); 645[ Character( CharacterTable( "Ly" ), [ 73967162500, 204820, 708400, 541, 392, 646 6250, 0, 1456, 61, 25, 0, 22, 10, 1, 10, 0, 0, 0, 32, 5, 0, 25, 1, 0, 647 1, 2, 0, 0, 0, 0, 4, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 648 0, 0, 0, 0, 0 ] ) ] 649gap> tbl:= CharacterTable( "U3(5).3.2" ); 650CharacterTable( "U3(5).3.2" ) 651gap> deg:= Size( tbl ) / ( 2^4*3^3 ); 6521750 653gap> pi:= PermChars( tbl, rec( torso:= [ deg ] ) ); 654[ Character( CharacterTable( "U3(5).3.2" ), [ 1750, 70, 13, 2, 0, 0, 1, 0, 0, 655 0, 10, 7, 10, 4, 2, 0, 0, 0, 0, 0, 0, 30, 10, 3, 0, 0, 1, 0, 0 ] ), 656 Character( CharacterTable( "U3(5).3.2" ), [ 1750, 30, 4, 6, 0, 0, 0, 0, 0, 657 0, 40, 7, 0, 6, 0, 0, 0, 0, 0, 0, 0, 20, 0, 2, 2, 0, 0, 0, 0 ] ) ] 658gap> ord8:= Filtered( [ 1 .. NrConjugacyClasses( tbl ) ], 659> i -> OrdersClassRepresentatives( tbl )[i] = 8 ); 660[ 9, 25 ] 661gap> List( pi, x -> x{ ord8 } ); 662[ [ 0, 0 ], [ 0, 2 ] ] 663gap> subtbl:= CharacterTable( "U3(5)" ); 664CharacterTable( "U3(5)" ) 665gap> rest:= RestrictedClassFunctions( pi, subtbl ); 666[ Character( CharacterTable( "U3(5)" ), [ 1750, 70, 13, 2, 0, 0, 0, 0, 1, 0, 667 0, 0, 0, 0 ] ), Character( CharacterTable( "U3(5)" ), 668 [ 1750, 30, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) ] 669gap> ord6:= Filtered( [ 1 .. NrConjugacyClasses( subtbl ) ], 670> i -> OrdersClassRepresentatives( subtbl )[i] = 6 ); 671[ 9 ] 672gap> List( rest, x -> x{ ord6 } ); 673[ [ 1 ], [ 0 ] ] 674gap> tom:= TableOfMarks( "U3(5)" ); 675TableOfMarks( "U3(5)" ) 676gap> perms:= PermCharsTom( subtbl, tom );; 677gap> Set( Filtered( perms, x -> x[1] = deg ) ) = Set( rest ); 678true 679gap> PermCharInfo( tbl, pi ).ATLAS; 680[ "1a+21a+42a+84aac+105a+125a+126a+250a+252a+288bc", 681 "1a+42a+84ac+105ab+125a+126a+250a+252b+288bc" ] 682gap> subtbl2:= CharacterTable( "U3(5).2" );; 683gap> rest2:= RestrictedClassFunctions( pi, subtbl2 );; 684gap> PermCharInfo( subtbl2, rest2 ).ATLAS; 685[ "1a+21aab+28aa+56aa+84a+105a+125aab+126aab+288aa", 686 "1a+21ab+28a+56a+84a+105ab+125aab+126a+252a+288aa" ] 687gap> subtbl3:= CharacterTable( "U3(5).3" );; 688gap> rest3:= RestrictedClassFunctions( pi, subtbl3 );; 689gap> PermCharInfo( subtbl3, rest3 ).ATLAS; 690[ "1a+21abc+84aab+105a+125abc+126abc+144bcef", 691 "1a+21bc+84ab+105aa+125abc+126adg+144bcef" ] 692gap> t:= CharacterTable( "O8+(2).3.2" );; 693gap> s:= CharacterTable( "O8+(2)" );; 694gap> tom:= TableOfMarks( s );; 695gap> perms:= PermCharsTom( s, tom );; 696gap> deg:= 3^4*5^2*7; 69714175 698gap> perms:= Filtered( perms, x -> x[1] = deg );; 699gap> Length( perms ); 7004 701gap> Length( Set( perms ) ); 7021 703gap> fus:= PossibleClassFusions( s, t ); 704[ [ 1, 2, 3, 3, 3, 4, 5, 5, 5, 6, 7, 8, 9, 10, 10, 10, 11, 12, 12, 12, 13, 705 13, 13, 14, 14, 14, 15, 16, 16, 16, 17, 17, 17, 18, 19, 20, 21, 22, 22, 706 22, 23, 23, 23, 24, 24, 24, 25, 26, 26, 26, 27, 27, 27 ] ] 707gap> fus:= fus[1];; 708gap> inv:= InverseMap( fus );; 709gap> comp:= CompositionMaps( perms[1], inv ); 710[ 14175, 1215, 375, 79, 0, 0, 27, 27, 99, 15, 7, 0, 0, 0, 0, 9, 3, 1, 0, 1, 711 1, 0, 0, 0, 0, 0, 0 ] 712gap> ext:= PermChars( t, rec( torso:= comp ) ); 713[ Character( CharacterTable( "O8+(2).3.2" ), 714 [ 14175, 1215, 375, 79, 0, 0, 27, 27, 99, 15, 7, 0, 0, 0, 0, 9, 3, 1, 0, 715 1, 1, 0, 0, 0, 0, 0, 0, 63, 9, 15, 7, 1, 0, 3, 3, 3, 1, 0, 0, 1, 1, 716 945, 129, 45, 69, 21, 25, 13, 0, 0, 0, 9, 0, 3, 3, 7, 1, 0, 0, 0, 3, 1, 717 0, 0, 0, 0, 0, 0 ] ) ] 718gap> PermCharInfo( t, ext[1] ).ATLAS; 719[ "1a+50b+100a+252bb+300b+700b+972bb+1400a+1944a+3200b+4032b" ] 720gap> co1:= CharacterTable( "Co1" );; 721gap> order:= 2^(2+11+22-25) * 2 * Size( CharacterTable( "M24" ) ); 722501397585920 723gap> maxes:= List( Maxes( co1 ), CharacterTable );; 724gap> filt:= Filtered( maxes, t -> Size( t ) mod order = 0 ); 725[ CharacterTable( "2^11:M24" ) ] 726gap> List( filt, t -> Size( t ) / order ); 727[ 1 ] 728gap> k:= filt[1];; 729gap> f:= CharacterTable( "Symmetric", 3 ); 730CharacterTable( "Sym(3)" ) 731gap> OrdersClassRepresentatives( f ); 732[ 1, 2, 3 ] 733gap> deg3:= PermChars( f, 3 ); 734[ Character( CharacterTable( "Sym(3)" ), [ 3, 1, 0 ] ) ] 735gap> deg6:= PermChars( f, 6 ); 736[ Character( CharacterTable( "Sym(3)" ), [ 6, 0, 0 ] ) ] 737gap> deg3[1] - 1/3 * deg6[1]; 738ClassFunction( CharacterTable( "Sym(3)" ), [ 1, 1, 0 ] ) 739gap> m:= CharacterTable( "M" ); 740CharacterTable( "M" ) 741gap> g:= CharacterTable( "MC2B" ); 742CharacterTable( "2^1+24.Co1" ) 743gap> pi:= RestrictedClassFunction( TrivialCharacter( k )^co1, g );; 744gap> zclasses:= ClassPositionsOfCentre( g );; 745gap> gmodz:= g / zclasses; 746CharacterTable( "2^1+24.Co1/[ 1, 2 ]" ) 747gap> invmap:= InverseMap( GetFusionMap( g, gmodz ) );; 748gap> pibar:= CompositionMaps( pi, invmap );; 749gap> factorders:= OrdersClassRepresentatives( gmodz );; 750gap> phibar:= [];; 751gap> for i in [ 1 .. NrConjugacyClasses( gmodz ) ] do 752> if factorders[i] mod 2 = 1 then 753> phibar[i]:= 2 * pibar[i]; 754> elif pibar[i] = 0 then 755> phibar[i]:= 0; 756> fi; 757> od; 758gap> cand:= PermChars( gmodz, rec( torso:= phibar ) );; 759gap> Length( cand ); 7601 761gap> phi:= RestrictedClassFunction( cand[1], g )^m;; 762gap> pi:= pi^m;; 763gap> cand:= ShallowCopy( pi - 1/3 * phi );; 764gap> morders:= OrdersClassRepresentatives( m );; 765gap> for i in [ 1 .. Length( morders ) ] do 766> if morders[i] mod 3 = 0 and phi[ PowerMap( m, 3 )[i] ] <> 0 then 767> Unbind( cand[i] ); 768> fi; 769> od; 770gap> constit:= Filtered( RationalizedMat( Irr( m ) ), 771> chi -> ScalarProduct( m, chi, pi ) <> 0 );; 772gap> cand:= PermChars( m, 773> rec( torso:= cand, chars:= constit, 774> lower:= ShallowCopy( pi - 1/3 * phi ), 775> normalsubgroup:= [ 1 .. NrConjugacyClasses( m ) ], 776> nonfaithful:= TrivialCharacter( m ) ) ); 777[ Character( CharacterTable( "M" ), [ 16009115629875684006343550944921875, 778 7774182899642733721875, 120168544413337875, 4436049512692980, 779 215448838605, 131873639625, 760550656275, 110042727795, 943894035, 780 568854195, 1851609375, 0, 4680311220, 405405, 78624756, 14467005, 781 178605, 248265, 874650, 0, 76995, 591163, 224055, 34955, 29539, 20727, 782 0, 0, 375375, 15775, 0, 0, 0, 495, 116532, 3645, 62316, 1017, 11268, 783 357, 1701, 45, 117, 705, 0, 0, 4410, 1498, 0, 3780, 810, 0, 0, 83, 135, 784 31, 0, 0, 0, 0, 0, 0, 0, 255, 195, 0, 215, 0, 0, 210, 0, 42, 0, 35, 15, 785 1, 1, 160, 48, 9, 92, 25, 9, 9, 5, 1, 21, 0, 0, 0, 0, 0, 98, 74, 42, 0, 786 0, 0, 120, 76, 10, 0, 0, 0, 0, 0, 1, 1, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 787 0, 0, 0, 0, 5, 3, 0, 0, 0, 18, 0, 10, 0, 3, 3, 0, 1, 1, 1, 1, 0, 0, 2, 788 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 12, 0, 0, 2, 0, 0, 0, 2, 0, 0, 789 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 790 0, 0, 0, 0, 0, 0 ] ) ] 791gap> co1:= CharacterTable( "Co1" );; 792gap> order:= 2^(3+6+12+18-25) * 168 * 3 * Factorial( 6 ) / 7; 793849346560 794gap> maxes:= List( Maxes( co1 ), CharacterTable );; 795gap> filt:= Filtered( maxes, t -> Size( t ) mod order = 0 ); 796[ CharacterTable( "2^(1+8)+.O8+(2)" ), CharacterTable( "2^(4+12).(S3x3S6)" ) ] 797gap> List( filt, t -> Size( t ) / order ); 798[ 105, 1 ] 799gap> o8p2:= CharacterTable( "O8+(2)" );; 800gap> PermChars( o8p2, rec( torso:= [ 105 ] ) ); 801[ ] 802gap> k:= filt[2];; 803gap> f:= CharacterTable( "L3(2)" ); 804CharacterTable( "L3(2)" ) 805gap> OrdersClassRepresentatives( f ); 806[ 1, 2, 3, 4, 7, 7 ] 807gap> deg7:= PermChars( f, 7 ); 808[ Character( CharacterTable( "L3(2)" ), [ 7, 3, 1, 1, 0, 0 ] ) ] 809gap> deg42:= PermChars( f, 42 ); 810[ Character( CharacterTable( "L3(2)" ), [ 42, 2, 0, 2, 0, 0 ] ), 811 Character( CharacterTable( "L3(2)" ), [ 42, 6, 0, 0, 0, 0 ] ) ] 812gap> deg168:= PermChars( f, 168 ); 813[ Character( CharacterTable( "L3(2)" ), [ 168, 0, 0, 0, 0, 0 ] ) ] 814gap> deg7[1] - 1/3 * deg42[2] + 1/21 * deg168[1]; 815ClassFunction( CharacterTable( "L3(2)" ), [ 1, 1, 1, 1, 0, 0 ] ) 816gap> m:= CharacterTable( "M" ); 817CharacterTable( "M" ) 818gap> g:= CharacterTable( "MC2B" ); 819CharacterTable( "2^1+24.Co1" ) 820gap> pi:= RestrictedClassFunction( TrivialCharacter( k )^co1, g );; 821gap> nsg:= ClassPositionsOfNormalSubgroups( k );; 822gap> nsgsizes:= List( nsg, x -> Sum( SizesConjugacyClasses( k ){ x } ) );; 823gap> nn:= nsg[ Position( nsgsizes, Size( k ) / 6 ) ];; 824gap> psi:= 0 * [ 1 .. NrConjugacyClasses( k ) ];; 825gap> for i in nn do 826> psi[i]:= 6; 827> od; 828gap> psi:= InducedClassFunction( k, psi, co1 );; 829gap> psi:= RestrictedClassFunction( psi, g );; 830gap> zclasses:= ClassPositionsOfCentre( g );; 831gap> gmodz:= g / zclasses; 832CharacterTable( "2^1+24.Co1/[ 1, 2 ]" ) 833gap> invmap:= InverseMap( GetFusionMap( g, gmodz ) );; 834gap> psibar:= CompositionMaps( psi, invmap );; 835gap> factorders:= OrdersClassRepresentatives( gmodz );; 836gap> phibar:= [];; 837gap> upperphibar:= [];; 838gap> for i in [ 1 .. NrConjugacyClasses( gmodz ) ] do 839> if factorders[i] mod 2 = 1 then 840> phibar[i]:= 2 * psibar[i]; 841> elif psibar[i] = 0 then 842> phibar[i]:= 0; 843> else 844> upperphibar[i]:= 2 * psibar[i]; 845> fi; 846> od; 847gap> cand:= PermChars( gmodz, rec( torso:= phibar, 848> upper:= upperphibar, 849> normalsubgroup:= [ 1 .. NrConjugacyClasses( gmodz ) ], 850> nonfaithful:= TrivialCharacter( gmodz ) ) );; 851gap> Length( cand ); 8523 853gap> nn:= First( ClassPositionsOfNormalSubgroups( gmodz ), 854> x -> Sum( SizesConjugacyClasses( gmodz ){x} ) = 2^24 ); 855[ 1 .. 4 ] 856gap> cont:= PermCharInfo( gmodz, cand ).contained;; 857gap> cand:= cand{ Filtered( [ 1 .. Length( cand ) ], 858> i -> Sum( cont[i]{ nn } ) < 2^24 ) };; 859gap> Length( cand ); 8602 861gap> poss:= [];; 862gap> for v in cand do 863> phibar:= []; 864> upperphibar:= []; 865> for i in [ 1 .. NrConjugacyClasses( gmodz ) ] do 866> if factorders[i] mod 2 = 1 then 867> phibar[i]:= 2 * v[i]; 868> elif v[i] = 0 then 869> phibar[i]:= 0; 870> else 871> upperphibar[i]:= 2 * v[i]; 872> fi; 873> od; 874> Append( poss, PermChars( gmodz, rec( torso:= phibar, 875> upper:= upperphibar, 876> normalsubgroup:= [ 1 .. NrConjugacyClasses( gmodz ) ], 877> nonfaithful:= TrivialCharacter( gmodz ) ) ) ); 878> od; 879gap> Length( poss ); 8806 881gap> cont:= PermCharInfo( gmodz, poss ).contained;; 882gap> poss:= poss{ Filtered( [ 1 .. Length( poss ) ], 883> i -> Sum( cont[i]{ nn } ) < 2^23 ) };; 884gap> Length( poss ); 8854 886gap> phicand:= RestrictedClassFunctions( poss, g );; 887gap> phicand:= RestrictedClassFunctions( poss, g );; 888gap> phicand:= InducedClassFunctions( phicand, m );; 889gap> psi:= psi^m;; 890gap> pi:= pi^m;; 891gap> cand:= List( phicand, 892> phi -> ShallowCopy( pi - 1/3 * psi + 1/21 * phi ) );; 893gap> morders:= OrdersClassRepresentatives( m );; 894gap> for x in cand do 895> for i in [ 1 .. Length( morders ) ] do 896> if morders[i] mod 7 = 0 then 897> Unbind( x[i] ); 898> fi; 899> od; 900> od; 901gap> cand:= Filtered( cand, x -> ForAll( x, IsInt ) ); 902[ [ 4050306254358548053604918389065234375, 148844831270071996434375, 903 2815847622206994375, 14567365753025085, 3447181417680, 659368198125, 904 3520153823175, 548464353255, 5706077895, 3056566695, 264515625, 0, 905 19572895485, 6486480, 186109245, 61410960, 758160, 688365,,, 172503, 906 1264351, 376155, 137935, 99127, 52731, 0, 0, 119625, 3625, 0, 0, 0, 0, 907 402813, 29160, 185301, 2781, 21069, 1932, 4212, 360, 576, 1125, 0, 0,,, 908 , 2160, 810, 0, 0, 111, 179, 43, 0, 0, 0, 0, 0, 0, 0, 185, 105, 0, 65, 909 0, 0,,,,, 0, 0, 0, 0, 337, 105, 36, 157, 37, 18, 18, 16, 4, 21, 0, 0, 910 0, 0, 0,,,,, 0, 0, 60, 40, 10, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,,, 0, 0, 0, 911 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 0,,,,, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 912 0, 0, 0, 0, 0,,,, 0, 0, 0, 6, 8, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0,,, 0, 913 0, 0, 0, 0,,,, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,, 0 ] ] 914gap> constit:= Filtered( RationalizedMat( Irr( m ) ), 915> chi -> ScalarProduct( m, chi, pi ) <> 0 );; 916gap> cand:= PermChars( m, rec( torso:= cand[1], chars:= constit ) ); 917[ Character( CharacterTable( "M" ), [ 4050306254358548053604918389065234375, 918 148844831270071996434375, 2815847622206994375, 14567365753025085, 919 3447181417680, 659368198125, 3520153823175, 548464353255, 5706077895, 920 3056566695, 264515625, 0, 19572895485, 6486480, 186109245, 61410960, 921 758160, 688365, 58310, 0, 172503, 1264351, 376155, 137935, 99127, 922 52731, 0, 0, 119625, 3625, 0, 0, 0, 0, 402813, 29160, 185301, 2781, 923 21069, 1932, 4212, 360, 576, 1125, 0, 0, 1302, 294, 0, 2160, 810, 0, 0, 924 111, 179, 43, 0, 0, 0, 0, 0, 0, 0, 185, 105, 0, 65, 0, 0, 224, 0, 14, 925 0, 0, 0, 0, 0, 337, 105, 36, 157, 37, 18, 18, 16, 4, 21, 0, 0, 0, 0, 0, 926 70, 38, 14, 0, 0, 0, 60, 40, 10, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 10, 0, 927 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 0, 24, 0, 6, 0, 0, 0, 0, 0, 0, 928 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 6, 8, 0, 0, 2, 0, 0, 929 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 930 0, 0, 0, 0, 0, 0, 4, 0, 0, 0 ] ) ] 931gap> co1:= CharacterTable( "Co1" );; 932gap> order:= 2^35*Size( CharacterTable( "L5(2)" ) )*6 / 2^25 / 31; 9331981808640 934gap> maxes:= List( Maxes( co1 ), CharacterTable );; 935gap> filt:= Filtered( maxes, t -> Size( t ) mod order = 0 ); 936[ CharacterTable( "2^11:M24" ), CharacterTable( "2^(1+8)+.O8+(2)" ), 937 CharacterTable( "2^(2+12):(A8xS3)" ) ] 938gap> List( filt, t -> Size( t ) / order ); 939[ 253, 45, 1 ] 940gap> m24:= CharacterTable( "M24" );; 941gap> cand:= PermChars( m24, rec( torso:=[ 253 ] ) ); 942[ Character( CharacterTable( "M24" ), [ 253, 29, 13, 10, 1, 5, 5, 1, 3, 2, 1, 943 1, 1, 1, 3, 0, 2, 1, 1, 1, 0, 0, 1, 1, 0, 0 ] ) ] 944gap> TestPerm5( m24, cand, m24 mod 11 ); 945[ ] 946gap> PermChars( CharacterTable( "O8+(2)" ), rec( torso:=[ 45 ] ) ); 947[ ] 948gap> k:= filt[3];; 949gap> subtbl:= CharacterTable( "2^4:A8" );; 950gap> subtom:= TableOfMarks( subtbl );; 951gap> perms:= PermCharsTom( subtbl, subtom );; 952gap> nsg:= ClassPositionsOfNormalSubgroups( subtbl ); 953[ [ 1 ], [ 1, 2 ], [ 1 .. 25 ] ] 954gap> above:= Filtered( perms, x -> x[1] = x[2] );; 955gap> tbl:= CharacterTable( "L5(2)" );; 956gap> above:= Set( Induced( subtbl, tbl, above ) );; 957gap> index2:= Filtered( perms, 958> x -> Sum( PermCharInfo( subtbl, [x] ).contained[1]{ [1,2] } ) = 8 );; 959gap> index2:= Filtered( index2, x -> not x[1] in [ 630, 840, 1260, 1680 ] );; 960gap> index2:= Set( Induced( subtbl, tbl, index2 ) );; 961gap> orders:= OrdersClassRepresentatives( tbl );; 962gap> goodclasses:= Filtered( [ 1 .. NrConjugacyClasses( tbl ) ], 963> i -> not orders[i] in [ 21, 31 ] ); 964[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ] 965gap> matrix:= List( Concatenation( above, index2 ), x -> x{ goodclasses } );; 966gap> sol:= SolutionMat( matrix, 967> ListWithIdenticalEntries( Length( goodclasses ), 1 ) ); 968[ 692/651, 57/217, -78/217, -26/217, 0, 74/651, 11/217, 0, 3/217, 151/651, 0, 969 22/651, 0, 0, 0, -11/217, 0, 0, 0, 0, 0, 0, 0, 0, -115/651, 0, -3/31, 0, 0, 970 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 971 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 972 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 973 0, -34/93, -11/651, 0, 2/21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1/31, 0, 0, 0, 974 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 975 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 976 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 979 0, 0, 0, 0, 0, 0, 0 ] 980gap> nonzero:= Filtered( [ 1 .. Length( sol ) ], i -> sol[i] <> 0 ); 981[ 1, 2, 3, 4, 6, 7, 9, 10, 12, 16, 25, 27, 106, 107, 109, 120 ] 982gap> sol:= sol{ nonzero };; 983gap> a8degrees:= List( above{ Filtered( nonzero, 984> x -> x <= Length( above ) ) }, 985> x -> x[1] ) / 31; 986[ 1, 8, 15, 28, 56, 56, 70, 105, 120, 168, 336, 336 ] 987gap> a8tbl:= subtbl / [ 1, 2 ];; 988gap> invtoa8:= InverseMap( GetFusionMap( subtbl, a8tbl ) );; 989gap> nsg:= ClassPositionsOfNormalSubgroups( k );; 990gap> nn:= First( nsg, x -> Sum( SizesConjugacyClasses( k ){ x } ) = 6*2^14 );; 991gap> a8tbl_other:= k / nn;; 992gap> g:= CharacterTable( "MC2B" ); 993CharacterTable( "2^1+24.Co1" ) 994gap> constit:= [];; 995gap> for i in [ 1 .. Length( a8degrees ) ] do 996> cand:= PermChars( a8tbl_other, rec( torso:= [ a8degrees[i] ] ) ); 997> filt:= Filtered( perms, x -> x^tbl = above[ nonzero[i] ] ); 998> filt:= List( filt, x -> CompositionMaps( x, invtoa8 ) ); 999> cand:= Filtered( cand, 1000> x -> ForAny( filt, y -> Collected( x ) = Collected(y) ) ); 1001> Add( constit, List( Induced( Restricted( Induced( 1002> Restricted( cand, k ), co1 ), g ), m ), ValuesOfClassFunction ) ); 1003> od; 1004gap> List( constit, Length ); 1005[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] 1006gap> downdegrees:= List( index2{ Filtered( nonzero, 1007> x -> x > Length( above ) ) 1008> - Length( above ) }, 1009> x -> x[1] ) / 31; 1010[ 30, 210, 210, 1920 ] 1011gap> f:= g / ClassPositionsOfCentre( g );; 1012gap> forders:= OrdersClassRepresentatives( f );; 1013gap> inv:= InverseMap( GetFusionMap( g, f ) );; 1014gap> for j in [ 1 .. Length( downdegrees ) ] do 1015> chars:= []; 1016> cand:= PermChars( a8tbl_other, rec( torso:= [ downdegrees[j]/2 ] ) ); 1017> filt:= Filtered( perms, x -> x^tbl = index2[ nonzero[ 1018> j + Length( a8degrees ) ] - Length( above ) ] ); 1019> filt:= Induced( subtbl, a8tbl, filt, 1020> GetFusionMap( subtbl, a8tbl )); 1021> cand:= Filtered( cand, x -> ForAny( filt, 1022> y -> Collected( x ) = Collected( y ) ) ); 1023> cand:= Restricted( Induced( Restricted( cand, k ), co1 ), g ); 1024> for chi in cand do 1025> cchi:= CompositionMaps( chi, inv ); 1026> upper:= []; 1027> pphi:= []; 1028> for i in [ 1 .. NrConjugacyClasses( f ) ] do 1029> if forders[i] mod 2 = 1 then 1030> pphi[i]:= 2 * cchi[i]; 1031> elif cchi[i] = 0 then 1032> pphi[i]:= 0; 1033> else 1034> upper[i]:= 2* cchi[i]; 1035> fi; 1036> od; 1037> Append( chars, PermChars( f, rec( torso:= ShallowCopy( pphi ), 1038> upper:= upper, 1039> normalsubgroup:= [ 1 .. 4 ], 1040> nonfaithful:= cchi ) ) ); 1041> od; 1042> Add( constit, List( Induced( Restricted( chars, g ), m ), 1043> ValuesOfClassFunction ) ); 1044> od; 1045gap> List( constit, Length ); 1046[ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 10, 10, 2 ] 1047gap> cand:= List( Cartesian( constit ), l -> sol * l );; 1048gap> m:= CharacterTable( "M" ); 1049CharacterTable( "M" ) 1050gap> morders:= OrdersClassRepresentatives( m );; 1051gap> for x in cand do 1052> for i in [ 1 .. Length( morders ) ] do 1053> if morders[i] mod 31 = 0 or morders[i] mod 21 = 0 then 1054> Unbind( x[i] ); 1055> fi; 1056> od; 1057> od; 1058gap> cand:= Filtered( cand, x -> ForAll( x, IsInt ) ); 1059[ [ 391965121389536908413379198941796875, 23914487292951376996875, 1060 474163138042468875, 9500455925885925, 646346515815, 334363486275, 1061 954161764875, 147339103275, 1481392395, 1313281515, 0, 8203125, 1062 9827885925, 1216215, 91556325, 9388791, 115911, 587331, 874650, 0, 1063 79515, 581955, 336375, 104371, 62331, 36855, 0, 0, 0, 0, 28125, 525, 1064 1125, 0, 188325, 16767, 88965, 2403, 9477, 1155, 891, 207, 351, 627, 0, 1065 0, 4410, 1498, 0, 0, 0, 30, 150, 91, 151, 31, 0, 0, 0, 0, 0, 0, 0, 0, 1066 0, 125, 0, 5, 5,,,,, 0, 0, 0, 0, 141, 45, 27, 61, 27, 9, 9, 7, 3, 15, 1067 0, 0, 0, 0, 0, 98, 74, 42, 0, 0, 30, 0, 0, 0, 6, 6, 6,,, 1, 1, 0, 0, 0, 1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0,,,,, 0, 0, 0, 0, 0, 0, 1069 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2,,, 0, 1070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,,,, 0, 0, 0, 0, 0, 0,,, 0, 0, 0, 0, 0, 1071 0,, 0, 0, 0 ] ] 1072gap> cand:= PermChars( m, rec( torso:= cand[1] ) ); 1073[ Character( CharacterTable( "M" ), [ 391965121389536908413379198941796875, 1074 23914487292951376996875, 474163138042468875, 9500455925885925, 1075 646346515815, 334363486275, 954161764875, 147339103275, 1481392395, 1076 1313281515, 0, 8203125, 9827885925, 1216215, 91556325, 9388791, 115911, 1077 587331, 874650, 0, 79515, 581955, 336375, 104371, 62331, 36855, 0, 0, 1078 0, 0, 28125, 525, 1125, 0, 188325, 16767, 88965, 2403, 9477, 1155, 891, 1079 207, 351, 627, 0, 0, 4410, 1498, 0, 0, 0, 30, 150, 91, 151, 31, 0, 0, 1080 0, 0, 0, 0, 0, 0, 0, 125, 0, 5, 5, 210, 0, 42, 0, 0, 0, 0, 0, 141, 45, 1081 27, 61, 27, 9, 9, 7, 3, 15, 0, 0, 0, 0, 0, 98, 74, 42, 0, 0, 30, 0, 0, 1082 0, 6, 6, 6, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1083 1, 1, 0, 18, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1084 2, 0, 0, 0, 0, 0, 0, 0, 2, 2, 0, 2, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1085 0, 0, 2, 0, 2, 0, 0, 0, 0, 0, 0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] ) 1086 ] 1087gap> Hbar:= CharacterTable( "O10+(2)" );; 1088gap> U_Abar:= CharacterTable( "O10+(2)M1" ); 1089CharacterTable( "S8(2)" ) 1090gap> Index( Hbar, U_Abar ); 1091496 1092gap> U_Bbar:= CharacterTable( "O10+(2)M2" ); 1093CharacterTable( "2^8:O8+(2)" ) 1094gap> Index( Hbar, U_Bbar ); 1095527 1096gap> b:= CharacterTable( "B" ); 1097CharacterTable( "B" ) 1098gap> Horder:= 2^26 * Size( Hbar ); 10991577011055923770163200 1100gap> order:= Horder / ( 2 * 496 ); 11011589728887019929600 1102gap> maxes:= List( Maxes( b ), CharacterTable );; 1103gap> filt:= Filtered( maxes, t -> Size( t ) mod order = 0 ); 1104[ CharacterTable( "2^(9+16).S8(2)" ) ] 1105gap> List( filt, t -> Size( t ) / order ); 1106[ 1 ] 1107gap> u1:= filt[1]; 1108CharacterTable( "2^(9+16).S8(2)" ) 1109gap> co1:= CharacterTable( "Co1" );; 1110gap> order:= Horder / ( 2^25 * 527 ); 111189181388800 1112gap> maxes:= List( Maxes( co1 ), CharacterTable );; 1113gap> filt:= Filtered( maxes, t -> Size( t ) mod order = 0 ); 1114[ CharacterTable( "2^(1+8)+.O8+(2)" ) ] 1115gap> List( filt, t -> Size( t ) / order ); 1116[ 1 ] 1117gap> u2:= filt[1]; 1118CharacterTable( "2^(1+8)+.O8+(2)" ) 1119gap> m:= CharacterTable( "M" ); 1120CharacterTable( "M" ) 1121gap> 2b:= CharacterTable( "MC2A" ); 1122CharacterTable( "2.B" ) 1123gap> mm:= CharacterTable( "MC2B" ); 1124CharacterTable( "2^1+24.Co1" ) 1125gap> pi_A:= RestrictedClassFunction( TrivialCharacter( u1 )^b, 2b )^m;; 1126gap> pi_B:= RestrictedClassFunction( TrivialCharacter( u2 )^co1, mm )^m;; 1127gap> torso:= [ Size( m ) / Horder ]; 1128[ 512372707698741056749515292734375 ] 1129gap> morders:= OrdersClassRepresentatives( m );; 1130gap> 2parts:= Union( [ 1 ], Filtered( Set( morders ), 1131> x -> IsPrimePowerInt( x ) and IsEvenInt( x ) ) ); 1132[ 1, 2, 4, 8, 16, 32 ] 1133gap> factorders:= Set( OrdersClassRepresentatives( Hbar ) );; 1134gap> primes_A:= Filtered( Set( Factors( Horder ) ), p -> 496 mod p <> 0 ); 1135[ 3, 5, 7, 17 ] 1136gap> primes_B:= Filtered( Set( Factors( Horder ) ), p -> 527 mod p <> 0 ); 1137[ 2, 3, 5, 7 ] 1138gap> primes:= Union( primes_A, primes_B );; 1139gap> n:= NrConjugacyClasses( m );; 1140gap> for i in [ 1 .. n ] do 1141> if Horder mod morders[i] <> 0 then 1142> torso[i]:= 0; 1143> elif ForAll( factorders, x -> not morders[i] / x in 2parts ) then 1144> torso[i]:= 0; 1145> else 1146> for p in primes do 1147> if morders[i] mod p = 0 then 1148> pprime:= morders[i]; 1149> while pprime mod p = 0 do pprime:= pprime / p; od; 1150> pos:= PowerMap( m, pprime )[i]; 1151> if p in primes_A and pi_A[ pos ] = 0 then 1152> torso[i]:= 0; 1153> elif p in primes_B and pi_B[ pos ] = 0 then 1154> torso[i]:= 0; 1155> fi; 1156> fi; 1157> od; 1158> fi; 1159> od; 1160gap> torso; 1161[ 512372707698741056749515292734375,,,,, 0,,,,,,,,,,,, 0,, 0,,,,,,,,,,,,,, 0,, 1162 ,, 0,,,,,, 0, 0, 0,,, 0,,,, 0,,,,,,,,,, 0,,,,,,,, 0, 0, 0, 0, 0, 0, 0,,,,, 1163 0,,,,, 0, 0, 0, 0, 0, 0,,,, 0, 0,,,,, 0,,,,,,, 0, 0,, 0, 0,,,,, 0, 0, 0, 0, 1164 0,,,,, 0,, 0, 0, 0, 0, 0,, 0, 0, 0, 0, 0, 0,, 0,, 0, 0, 0, 0,, 0, 0, 0, 0, 1165 0,,,,,, 0,,, 0, 0,, 0, 0, 0, 0, 0, 0, 0, 0, 0,, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1166 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] 1167gap> cand:= [ [ pi_A ], [ pi_B ] ];; 1168gap> candbar:= [ TrivialCharacter( U_Abar )^Hbar, 1169> TrivialCharacter( U_Bbar )^Hbar ];; 1170gap> AddSubgroupOfS82:= function( subname ) 1171> local psis82; 1172> 1173> psis82:= TrivialCharacter( CharacterTable( subname ) )^U_Abar; 1174> Add( cand, [ Restricted( Restricted( psis82, u1 )^b, 2b )^m ] ); 1175> Add( candbar, psis82 ^ Hbar ); 1176> end;; 1177gap> tt1:= CharacterTable( "O8+(2)" ); 1178CharacterTable( "O8+(2)" ) 1179gap> AddSubgroupOfO8p2:= function( subname ) 1180> local psi, list, char; 1181> 1182> psi:= TrivialCharacter( CharacterTable( subname ) )^tt1; 1183> list:= []; 1184> for char in Orbit( AutomorphismsOfTable( tt1 ), psi, Permuted ) do 1185> AddSet( list, Restricted( Restricted( char, u2 ) ^ co1, mm ) ^ m ); 1186> od; 1187> Add( cand, list ); 1188> Add( candbar, Restricted( psi, U_Bbar ) ^ Hbar ); 1189> end;; 1190gap> AddSubgroupOfS82( "O8+(2).2" ); 1191gap> AddSubgroupOfO8p2( "S6(2)" ); 1192gap> AddSubgroupOfS82( "O8-(2).2" ); 1193gap> AddSubgroupOfS82( "A10.2" ); 1194gap> AddSubgroupOfS82( "S4(4).2" ); 1195gap> AddSubgroupOfS82( "L2(17)" ); 1196gap> AddSubgroupOfO8p2( "A9" ); 1197gap> AddSubgroupOfO8p2( "2^6:A8" ); 1198gap> AddSubgroupOfO8p2( "(3xU4(2)):2" ); 1199gap> AddSubgroupOfO8p2( "(A5xA5):2^2" ); 1200gap> AddSubgroupOfS82( "S8(2)M4" ); 1201gap> a5:= CharacterTable( "A5" );; 1202gap> fus:= PossibleClassFusions( a5, U_Abar )[1];; 1203gap> NrPolyhedralSubgroups( U_Abar, fus[2], fus[3], fus[4] ); 1204rec( number := 548352, type := "A5" ) 1205gap> psis82:= Induced( a5, U_Abar, [ TrivialCharacter( a5 ) ], fus )[1];; 1206gap> Add( cand, [ Restricted( Restricted( psis82, u1 )^b, 2b )^m ] ); 1207gap> Add( candbar, psis82 ^ Hbar ); 1208gap> List( cand, Length ); 1209[ 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1 ] 1210gap> Hbarorders:= OrdersClassRepresentatives( Hbar );; 1211gap> TryCondition:= function( cond ) 1212> local pos, sol, lincomb, oldknown, i; 1213> 1214> pos:= Filtered( [ 1 .. Length( Hbarorders ) ], 1215> i -> cond( Hbarorders[i] ) ); 1216> sol:= SolutionMat( candbar{[1..Length(candbar)]}{ pos }, 1217> ListWithIdenticalEntries( Length( pos ), 1 ) ); 1218> if sol = fail then 1219> return "no solution"; 1220> fi; 1221> 1222> pos:= Filtered( [ 1 .. Length( morders) ], i -> cond( morders[i] ) ); 1223> lincomb:= Filtered( Set( List( Cartesian( cand ), x -> sol * x ) ), 1224> x -> ForAll( pos, i -> IsPosInt( x[i] ) or x[i] = 0 ) ); 1225> if Length( lincomb ) <> 1 then 1226> return "solution is not unique"; 1227> fi; 1228> 1229> lincomb:= lincomb[1];; 1230> oldknown:= Number( torso ); 1231> for i in pos do 1232> if IsBound( torso[i] ) then 1233> if torso[i] <> lincomb[i] then 1234> Error( "contradiction of new and known value at position ", i ); 1235> fi; 1236> elif not IsInt( lincomb[i] ) or lincomb[i] < 0 then 1237> Error( "new value at position ", i, " is not a nonneg. integer" ); 1238> fi; 1239> torso[i]:= lincomb[i]; 1240> od; 1241> return Concatenation( "now ", String( Number( torso ) ), " values (", 1242> String( Number( torso ) - oldknown ), " new)" ); 1243> end;; 1244gap> TryCondition( x -> x mod 7 = 0 and x mod 3 <> 0 ); 1245"now 99 values (7 new)" 1246gap> TryCondition( x -> x mod 17 = 0 and x mod 3 <> 0 ); 1247"now 102 values (3 new)" 1248gap> TryCondition( x -> x mod 5 = 0 and x mod 3 <> 0 ); 1249"now 119 values (17 new)" 1250gap> TryCondition( x -> 4 mod x = 0 ); 1251"now 125 values (6 new)" 1252gap> TryCondition( x -> 9 mod x = 0 ); 1253"now 129 values (4 new)" 1254gap> TryCondition( x -> x in [ 9, 18, 36 ] ); 1255"now 138 values (9 new)" 1256gap> constit:= Filtered( RationalizedMat( Irr( m ) ), 1257> x -> ScalarProduct( m, x, pi_A ) <> 0 1258> and ScalarProduct( m, x, pi_B ) <> 0 );; 1259gap> lower:= [];; 1260gap> Hindex:= Size( m ) / Horder; 1261512372707698741056749515292734375 1262gap> for i in [ 1 .. NrConjugacyClasses( m ) ] do 1263> lower[i]:= Maximum( pi_A[i] / ( pi_A[1] / Hindex ), 1264> pi_B[i] / ( pi_B[1] / Hindex ) ); 1265> od; 1266gap> PermChars( m, rec( torso:= torso, chars:= constit, lower:= lower, 1267> normalsubgroup:= [ 1 .. NrConjugacyClasses( m ) ], 1268> nonfaithful:= TrivialCharacter( m ) ) ); 1269[ Character( CharacterTable( "M" ), [ 512372707698741056749515292734375, 1270 405589064025344574375, 29628786742129575, 658201521662685, 1271 215448838605, 0, 121971774375, 28098354375, 335229607, 108472455, 1272 164587500, 4921875, 2487507165, 2567565, 26157789, 6593805, 398925, 0, 1273 437325, 0, 44983, 234399, 90675, 21391, 41111, 12915, 6561, 6561, 1274 177100, 7660, 6875, 315, 275, 0, 113373, 17901, 57213, 0, 4957, 1197, 1275 909, 301, 397, 0, 0, 0, 3885, 525, 0, 2835, 90, 45, 0, 103, 67, 43, 28, 1276 81, 189, 9, 9, 9, 0, 540, 300, 175, 20, 15, 7, 420, 0, 0, 0, 0, 0, 0, 1277 0, 165, 61, 37, 37, 0, 9, 9, 13, 5, 0, 0, 0, 0, 0, 0, 77, 45, 13, 0, 0, 1278 45, 115, 19, 10, 0, 5, 5, 9, 9, 1, 1, 0, 0, 4, 0, 0, 9, 9, 3, 1, 0, 0, 1279 0, 0, 0, 0, 4, 1, 1, 0, 24, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 1, 0, 1280 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 3, 3, 1, 1, 2, 0, 3, 3, 0, 0, 0, 0, 0, 1281 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1282 0, 0, 0, 0 ] ) ] 1283 1284gap> STOP_TEST( "ctblpope.tst", 6129230950 ); 1285 1286############################################################################# 1287## 1288#E 1289 1290