A parametrized map is a list whose i-th entry is either unbound
(which means that nothing is known about the image(s) of the i-th
class) or the image of the i-th class
(i.e., an integer for fusion maps, power maps, element orders etc.,
and a cyclotomic for characters),
or a list of possible images of the i-th class.
In this sense, maps are special parametrized maps.
We often identify a parametrized map paramap with the set of all maps
map with the property that either map[i] = paramap[i] or
map[i] is contained in the list paramap[i];
we say then that map is contained in paramap.
This definition implies that parametrized maps cannot be used to describe sets of maps where lists are possible images. An exception are strings which naturally arise as images when class names are considered. So strings and lists of strings are allowed in parametrized maps, and character constants (see Chapter Strings and Characters) are not allowed in maps.
CompositionMaps( paramap2, paramap1[, class] ) F
The composition of two parametrized maps paramap1, paramap2 is defined as the parametrized map comp that contains all compositions f2 °f1 of elements f1 of paramap1 and f2 of paramap2. For example, the composition of a character c of a group G by a parametrized class fusion map from a subgroup H to G is the parametrized map that contains all restrictions of c by elements of the parametrized fusion map.
CompositionMaps( paramap2, paramap1 ) is a parametrized map with
entry CompositionMaps( paramap2, paramap1, class ) at position
class.
If paramap1[class] is an integer then
CompositionMaps( paramap2, paramap1, class ) is equal to
paramap2[ paramap1[ class ] ].
Otherwise it is the union of paramap2[i] for i in
paramap1[ class ].
gap> map1:= [ 1, [ 2 .. 4 ], [ 4, 5 ], 1 ];; gap> map2:= [ [ 1, 2 ], 2, 2, 3, 3 ];; gap> CompositionMaps( map2, map1 ); [ [ 1, 2 ], [ 2, 3 ], 3, [ 1, 2 ] ] gap> CompositionMaps( map1, map2 ); [ [ 1, 2, 3, 4 ], [ 2, 3, 4 ], [ 2, 3, 4 ], [ 4, 5 ], [ 4, 5 ] ]
InverseMap( paramap ) F
For a parametrized map paramap,
InverseMap returns a mutable parametrized map whose i-th entry is
unbound if i is not in the image of paramap,
equal to j if i is (in) the image of paramap[j] exactly for
j, and equal to the set of all preimages of i under paramap
otherwise.
We have CompositionMaps( paramap, InverseMap( paramap ) )
the identity map.
gap> tbl:= CharacterTable( "2.A5" );; f:= CharacterTable( "A5" );; gap> fus:= GetFusionMap( tbl, f ); [ 1, 1, 2, 3, 3, 4, 4, 5, 5 ] gap> inv:= InverseMap( fus ); [ [ 1, 2 ], 3, [ 4, 5 ], [ 6, 7 ], [ 8, 9 ] ] gap> CompositionMaps( fus, inv ); [ 1, 2, 3, 4, 5 ] gap> # transfer a power map ``up'' to the factor group gap> pow:= PowerMap( tbl, 2 ); [ 1, 1, 2, 4, 4, 8, 8, 6, 6 ] gap> CompositionMaps( fus, CompositionMaps( pow, inv ) ); [ 1, 1, 3, 5, 4 ] gap> last = PowerMap( f, 2 ); true gap> # transfer a power map of the factor group ``down'' to the group gap> CompositionMaps( inv, CompositionMaps( PowerMap( f, 2 ), fus ) ); [ [ 1, 2 ], [ 1, 2 ], [ 1, 2 ], [ 4, 5 ], [ 4, 5 ], [ 8, 9 ], [ 8, 9 ], [ 6, 7 ], [ 6, 7 ] ]
ProjectionMap( fusionmap ) F
For a map fusionmap, ProjectionMap returns a parametrized map
whose i-th entry is unbound if i is not in the image of fusionmap,
and equal to j if j is the smallest position such that i is
the image of fusionmap[j].
We have CompositionMaps( fusionmap, ProjectionMap( fusionmap ) )
the identity map, i.e., first projecting and then fusing yields the
identity.
Note that fusionmap must not be a parametrized map.
gap> ProjectionMap( [ 1, 1, 1, 2, 2, 2, 3, 4, 5, 5, 5, 6, 6, 6 ] ); [ 1, 4, 7, 8, 9, 12 ]
Indirected( character, paramap ) F
For a map character and a parametrized map paramap, Indirected
returns a parametrized map whose entry at position i is
character[ paramap[i] ] if paramap[i] is an integer,
and an unknown (see Chapter Unknowns) otherwise.
gap> tbl:= CharacterTable( "M12" );;
gap> fus:= [ 1, 3, 4, [ 6, 7 ], 8, 10, [ 11, 12 ], [ 11, 12 ],
> [ 14, 15 ], [ 14, 15 ] ];;
gap> List( Irr( tbl ){ [ 1 .. 6 ] }, x -> Indirected( x, fus ) );
[ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ],
[ 11, 3, 2, Unknown(9), 1, 0, Unknown(10), Unknown(11), 0, 0 ],
[ 11, 3, 2, Unknown(12), 1, 0, Unknown(13), Unknown(14), 0, 0 ],
[ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(15), Unknown(16) ],
[ 16, 0, -2, 0, 1, 0, 0, 0, Unknown(17), Unknown(18) ],
[ 45, -3, 0, 1, 0, 0, -1, -1, 1, 1 ] ]
Parametrized( list ) F
For a list list of (parametrized) maps of the same length,
Parametrized returns the smallest parametrized map containing all
elements of list.
Parametrized is the inverse function to ContainedMaps
(see ContainedMaps).
gap> Parametrized( [ [ 1, 2, 3, 4, 5 ], [ 1, 3, 2, 4, 5 ], > [ 1, 2, 3, 4, 6 ] ] ); [ 1, [ 2, 3 ], [ 2, 3 ], 4, [ 5, 6 ] ]
ContainedMaps( paramap ) F
For a parametrized map paramap, ContainedMaps returns the set of all
maps contained in paramap.
ContainedMaps is the inverse function to Parametrized
(see Parametrized) in the sense that
Parametrized( ContainedMaps( paramap ) ) is equal to paramap.
gap> ContainedMaps( [ 1, [ 2, 3 ], [ 2, 3 ], 4, [ 5, 6 ] ] ); [ [ 1, 2, 2, 4, 5 ], [ 1, 2, 2, 4, 6 ], [ 1, 2, 3, 4, 5 ], [ 1, 2, 3, 4, 6 ], [ 1, 3, 2, 4, 5 ], [ 1, 3, 2, 4, 6 ], [ 1, 3, 3, 4, 5 ], [ 1, 3, 3, 4, 6 ] ]
UpdateMap( character, paramap, indirected ) F
Let character be a map, paramap a parametrized map, and indirected
a parametrized map that is contained in
CompositionMaps( character, paramap ).
Then UpdateMap changes paramap to the parametrized map containing
exactly the maps whose composition with character is equal to
indirected.
If a contradiction is detected then false is returned immediately,
otherwise true.
gap> subtbl:= CharacterTable( "S4(4).2" );; tbl:= CharacterTable( "He" );;
gap> fus:= InitFusion( subtbl, tbl );;
gap> fus;
[ 1, 2, 2, [ 2, 3 ], 4, 4, [ 7, 8 ], [ 7, 8 ], 9, 9, 9, [ 10, 11 ],
[ 10, 11 ], 18, 18, 25, 25, [ 26, 27 ], [ 26, 27 ], 2, [ 6, 7 ], [ 6, 7 ],
[ 6, 7, 8 ], 10, 10, 17, 17, 18, [ 19, 20 ], [ 19, 20 ] ]
gap> chi:= Irr( tbl )[2];
Character( CharacterTable( "He" ), [ 51, 11, 3, 6, 0, 3, 3, -1, 1, 2, 0,
3*E(7)+3*E(7)^2+3*E(7)^4, 3*E(7)^3+3*E(7)^5+3*E(7)^6, 2,
E(7)+E(7)^2+2*E(7)^3+E(7)^4+2*E(7)^5+2*E(7)^6,
2*E(7)+2*E(7)^2+E(7)^3+2*E(7)^4+E(7)^5+E(7)^6, 1, 1, 0, 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, 1, 0, 0, -1, -1, 0, 0, E(7)+E(7)^2+E(7)^4,
E(7)^3+E(7)^5+E(7)^6 ] )
gap> filt:= Filtered( Irr( subtbl ), x -> x[1] = 50 );
[ Character( CharacterTable( "S4(4).2" ), [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0,
0, 1, 1, 0, 0, 0, 0, -1, -1, 10, 2, 2, 2, 1, 1, 0, 0, 0, -1, -1 ] ),
Character( CharacterTable( "S4(4).2" ), [ 50, 10, 10, 2, 5, 5, -2, 2, 0, 0,
0, 1, 1, 0, 0, 0, 0, -1, -1, -10, -2, -2, -2, -1, -1, 0, 0, 0, 1, 1 ] )
]
gap> UpdateMap( chi, fus, filt[1] + TrivialCharacter( subtbl ) );
true
gap> fus;
[ 1, 2, 2, 3, 4, 4, 8, 7, 9, 9, 9, 10, 10, 18, 18, 25, 25, [ 26, 27 ],
[ 26, 27 ], 2, [ 6, 7 ], [ 6, 7 ], [ 6, 7 ], 10, 10, 17, 17, 18,
[ 19, 20 ], [ 19, 20 ] ]
MeetMaps( paramap1, paramap2 ) F
For two parametrized maps paramap1 and paramap2, MeetMaps changes
paramap1 such that the image of class i is the intersection of
paramap1[i] and paramap2[i].
If this implies that no images remain for a class, the position of such a
class is returned.
If no such inconsistency occurs, MeetMaps returns true.
gap> map1:= [ [ 1, 2 ], [ 3, 4 ], 5, 6, [ 7, 8, 9 ] ];; gap> map2:= [ [ 1, 3 ], [ 3, 4 ], [ 5, 6 ], 6, [ 8, 9, 10 ] ];; gap> MeetMaps( map1, map2 ); map1; true [ 1, [ 3, 4 ], 5, 6, [ 8, 9 ] ]
CommutativeDiagram( paramap1, paramap2, paramap3, paramap4[,
improvements] ) F
Let paramap1, paramap2, paramap3, paramap4 be parametrized maps covering parametrized maps f1, f2, f3, f4 with the property that CompositionMaps( f2, f1 ) is equal to CompositionMaps( f4, f3 ).
CommutativeDiagram checks this consistency, and changes the arguments
such that all possible images are removed that cannot occur in the
parametrized maps fi.
The return value is fail if an inconsistency was found.
Otherwise a record with the components imp1, imp2, imp3, imp4
is returned, each bound to the list of positions where the corresponding
parametrized map was changed,
The optional argument improvements must be a record with components
imp1, imp2, imp3, imp4.
If such a record is specified then only diagrams are considered where
entries of the i-th component occur as preimages of the i-th
parametrized map.
When an inconsistency is deteted,
CommutativeDiagram immediately returns fail.
Otherwise a record is returned that contains four lists imp1, ¼,
imp4:
impi is the list of classes where paramap_i was changed.
gap> map1:= [ [ 1, 2, 3 ], [ 1, 3 ] ];; map2:= [ [ 1, 2 ], 1, [ 1, 3 ] ];; gap> map3:= [ [ 2, 3 ], 3 ];; map4:= [ , 1, 2, [ 1, 2 ] ];; gap> imp:= CommutativeDiagram( map1, map2, map3, map4 ); rec( imp1 := [ 2 ], imp2 := [ 1 ], imp3 := [ ], imp4 := [ ] ) gap> map1; map2; map3; map4; [ [ 1, 2, 3 ], 1 ] [ 2, 1, [ 1, 3 ] ] [ [ 2, 3 ], 3 ] [ , 1, 2, [ 1, 2 ] ] gap> imp2:= CommutativeDiagram( map1, map2, map3, map4, imp ); rec( imp1 := [ ], imp2 := [ ], imp3 := [ ], imp4 := [ ] )
CheckFixedPoints( inside1, between, inside2 ) F
Let inside1, between, inside2 be parametrized maps,
where between is assumed to map each fixed point of inside1
(that is, inside1[i] = i) to a fixed point of inside2
(that is, between[i] is either an integer that is fixed by inside2
or a list that has nonempty intersection with the union of its images
under inside2).
CheckFixedPoints changes between and inside2 by removing all those
entries violate this condition.
When an inconsistency is detected,
CheckFixedPoints immediately returns fail.
Otherwise the list of positions is returned where changes occurred.
gap> subtbl:= CharacterTable( "L4(3).2_2" );;
gap> tbl:= CharacterTable( "O7(3)" );;
gap> fus:= InitFusion( subtbl, tbl );; fus{ [ 48, 49 ] };
[ [ 54, 55, 56, 57 ], [ 54, 55, 56, 57 ] ]
gap> CheckFixedPoints( ComputedPowerMaps( subtbl )[5], fus,
> ComputedPowerMaps( tbl )[5] );
[ 48, 49 ]
gap> fus{ [ 48, 49 ] };
[ [ 56, 57 ], [ 56, 57 ] ]
TransferDiagram( inside1, between, inside2[, improvements] ) F
Let inside1, between, inside2 be parametrized maps covering parametrized maps m1, f, m2 with the property that CompositionMaps( m2, f ) is equal to CompositionMaps( f, m1 ).
TransferDiagram checks this consistency, and changes the arguments
such that all possible images are removed that cannot occur in the
parametrized maps mi and f.
So TransferDiagram is similar to CommutativeDiagram
(see CommutativeDiagram),
but between occurs twice in each diagram checked.
If a record improvements with fields impinside1, impbetween and
impinside2 is specified, only those diagrams with elements of
impinside1 as preimages of inside1, elements of impbetween as
preimages of between or elements of impinside2 as preimages of
inside2 are considered.
When an inconsistency is detected,
TransferDiagram immediately returns fail.
Otherwise a record is returned that contains three lists impinside1,
impbetween, and impinside2 of positions where the arguments were
changed.
gap> subtbl:= CharacterTable( "2F4(2)" );; tbl:= CharacterTable( "Ru" );;
gap> fus:= InitFusion( subtbl, tbl );;
gap> permchar:= Sum( Irr( tbl ){ [ 1, 5, 6 ] } );;
gap> CheckPermChar( subtbl, tbl, fus, permchar );; fus;
[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20,
[ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [ 18, 19 ],
[ 25, 26 ], [ 25, 26 ], 27, 27 ]
gap> tr:= TransferDiagram( PowerMap( subtbl, 2 ), fus, PowerMap( tbl, 2 ) );
rec( impinside1 := [ ], impbetween := [ 12, 23 ], impinside2 := [ ] )
gap> tr:= TransferDiagram( PowerMap( subtbl, 3 ), fus, PowerMap( tbl, 3 ) );
rec( impinside1 := [ ], impbetween := [ 14, 24, 25 ], impinside2 := [ ] )
gap> tr:= TransferDiagram( PowerMap( subtbl, 3 ), fus, PowerMap( tbl, 3 ),
> tr );
rec( impinside1 := [ ], impbetween := [ ], impinside2 := [ ] )
gap> fus;
[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ], [ 25, 26 ],
5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27, 27 ]
TestConsistencyMaps( powermap1, fusionmap, powermap2[, fus_imp] ) F
Let powermap1 and powermap2 be lists of parametrized maps,
and fusionmap a parametrized map,
such that for each i, the i-th entry in powermap1, fusionmap,
and the i-th entry in powermap2 (if bound) are valid arguments for
TransferDiagram (see TransferDiagram).
So a typical situation for applying TestConsistencyMaps is that
fusionmap is an approximation of a class fusion, and powermap1,
powermap2 are the lists of power maps of the subgroup and the group.
TestConsistencyMaps repeatedly applies TransferDiagram to these
arguments for all i until no more changes occur.
If a list fus_imp is specified then only those diagrams with elements of fus_imp as preimages of fusionmap are considered.
When an inconsistency is detected,
TestConsistencyMaps immediately returns false.
Otherwise true is returned.
gap> subtbl:= CharacterTable( "2F4(2)" );; tbl:= CharacterTable( "Ru" );;
gap> fus:= InitFusion( subtbl, tbl );;
gap> permchar:= Sum( Irr( tbl ){ [ 1, 5, 6 ] } );;
gap> CheckPermChar( subtbl, tbl, fus, permchar );; fus;
[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, [ 13, 15 ], 16, [ 18, 19 ], 20,
[ 25, 26 ], [ 25, 26 ], 5, 5, 6, 8, 14, [ 13, 15 ], [ 18, 19 ], [ 18, 19 ],
[ 25, 26 ], [ 25, 26 ], 27, 27 ]
gap> TestConsistencyMaps( ComputedPowerMaps( subtbl ), fus,
> ComputedPowerMaps( tbl ) );
true
gap> fus;
[ 1, 2, 2, 4, 5, 7, 8, 9, 11, 14, 14, 15, 16, 18, 20, [ 25, 26 ], [ 25, 26 ],
5, 5, 6, 8, 14, 13, 19, 19, [ 25, 26 ], [ 25, 26 ], 27, 27 ]
gap> Indeterminateness( fus );
16
Indeterminateness( paramap ) F
For a parametrized map paramap, Indeterminateness returns the number
of maps contained in paramap, that is, the product of lengths of lists
in paramap denoting lists of several images.
gap> Indeterminateness( [ 1, [ 2, 3 ], [ 4, 5 ], [ 6, 7, 8, 9, 10 ], 11 ] ); 20
PrintAmbiguity( list, paramap ) F
For each map in the list list, PrintAmbiguity prints its position in
list,
the indeterminateness (see Indeterminateness) of the composition with
the parametrized map paramap,
and the list of positions where a list of images occurs in this
composition.
gap> paramap:= [ 1, [ 2, 3 ], [ 3, 4 ], [ 2, 3, 4 ], 5 ];; gap> list:= [ [ 1, 1, 1, 1, 1 ], [ 1, 1, 2, 2, 3 ], [ 1, 2, 3, 4, 5 ] ];; gap> PrintAmbiguity( list, paramap ); 1 1 [ ] 2 4 [ 2, 4 ] 3 12 [ 2, 3, 4 ]
ContainedSpecialVectors( tbl, chars, paracharacter, func ) F
IntScalarProducts( tbl, chars, candidate ) F
NonnegIntScalarProducts( tbl, chars, candidate ) F
ContainedPossibleVirtualCharacters( tbl, chars, paracharacter ) F
ContainedPossibleCharacters( tbl, chars, paracharacter ) F
Let tbl be an ordinary character table,
chars a list of class functions (or values lists),
paracharacter a parametrized class function of tbl,
and func a function that expects the three arguments tbl, chars,
and a values list of a class function, and that returns either true or
false.
ContainedSpecialVectors returns
the list of all those elements vec of paracharacter that
have integral norm,
have integral scalar product with the principal character of tbl,
and that satisfy func( tbl, chars, vec ) = true,
Two special cases of func are the check whether the scalar products in
tbl between the vector vec and all lists in chars are integers or
nonnegative integers, respectively.
These functions are accessible as global variables IntScalarProducts
and NonnegIntScalarProducts,
and ContainedPossibleVirtualCharacters and
ContainedPossibleCharacters provide access to these special cases of
ContainedSpecialVectors.
gap> subtbl:= CharacterTable( "HSM12" );; tbl:= CharacterTable( "HS" );;
gap> fus:= InitFusion( subtbl, tbl );;
gap> rest:= CompositionMaps( Irr( tbl )[8], fus );
[ 231, [ -9, 7 ], [ -9, 7 ], [ -9, 7 ], 6, 15, 15, [ -1, 15 ], [ -1, 15 ], 1,
[ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ -2, 0 ], [ 1, 2 ], [ 1, 2 ],
[ 1, 2 ], 0, 0, 1, 0, 0, 0, 0 ]
gap> irr:= Irr( subtbl );;
gap> # no further condition
gap> cont1:= ContainedSpecialVectors( subtbl, irr, rest,
> function( tbl, chars, vec ) return true; end );;
gap> Length( cont1 );
24
gap> # require scalar products to be integral
gap> cont2:= ContainedSpecialVectors( subtbl, irr, rest,
> IntScalarProducts );;
[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ],
[ 231, 7, -9, -9, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ] ]
gap> # additionally require scalar products to be nonnegative
gap> cont3:= ContainedSpecialVectors( subtbl, irr, rest,
> NonnegIntScalarProducts );
[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ] ]
gap> cont2 = ContainedPossibleVirtualCharacters( subtbl, irr, rest );
true
gap> cont3 = ContainedPossibleCharacters( subtbl, irr, rest );
true
CollapsedMat( mat, maps ) F
is a record with components
fusion
fusion that collapses those columns of mat that are equal in mat
and also for all maps in the list maps,
mat
the image of mat under that fusion.
gap> mat:= [ [ 1, 1, 1, 1 ], [ 2, -1, 0, 0 ], [ 4, 4, 1, 1 ] ];;
gap> coll:= CollapsedMat( mat, [] );
rec( mat := [ [ 1, 1, 1 ], [ 2, -1, 0 ], [ 4, 4, 1 ] ],
fusion := [ 1, 2, 3, 3 ] )
gap> List( last.mat, x -> x{ last.fusion } ) = mat;
true
gap> coll:= CollapsedMat( mat, [ [ 1, 1, 1, 2 ] ] );
rec( mat := [ [ 1, 1, 1, 1 ], [ 2, -1, 0, 0 ], [ 4, 4, 1, 1 ] ],
fusion := [ 1, 2, 3, 4 ] )
ContainedDecomposables( constituents, moduls, parachar, func ) F
ContainedCharacters( tbl, constituents, parachar ) F
Let constituents be a list of rational class functions,
moduls a list of positive integers,
parachar a parametrized rational class function,
and func a function that returns either true or false when called
with (a values list of) a class function.
ContainedDecomposables returns the set of all elements c of
parachar that satisfy func ( c) = true
and that lie in the Z-lattice spanned by constituents,
modulo moduls.
The latter means they lie in the Z-lattice spanned by constituents
and the set
|
One application of ContainedDecomposables is the following.
constituents is a list of (values lists of) rational characters of an
ordinary character table tbl,
moduls is the list of centralizer orders of tbl
(see SizesCentralizers),
and func checks whether a vector in the lattice mentioned above has
nonnegative integral scalar product in tbl with all entries of
constituents.
This situation is handled by ContainedCharacters.
Note that the entries of the result list are not necessary linear
combinations of constituents,
and they are not necessarily characters of tbl.
gap> subtbl:= CharacterTable( "HSM12" );; tbl:= CharacterTable( "HS" );;
gap> rat:= RationalizedMat( Irr( subtbl ) );;
gap> fus:= InitFusion( subtbl, tbl );;
gap> rest:= CompositionMaps( Irr( tbl )[8], fus );
[ 231, [ -9, 7 ], [ -9, 7 ], [ -9, 7 ], 6, 15, 15, [ -1, 15 ], [ -1, 15 ], 1,
[ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ 1, 6 ], [ -2, 0 ], [ 1, 2 ], [ 1, 2 ],
[ 1, 2 ], 0, 0, 1, 0, 0, 0, 0 ]
gap> # compute all vectors in the lattice
gap> ContainedDecomposables( rat, SizesCentralizers( subtbl ), rest,
> ReturnTrue );
[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, -9, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, 15, 15, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ] ]
gap> # compute only those vectors that are characters
gap> ContainedDecomposables( rat, SizesCentralizers( subtbl ), rest,
> x -> NonnegIntScalarProducts( subtbl, Irr( subtbl ), x ) );
[ [ 231, 7, -9, -9, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1,
0, 0, 0, 0 ],
[ 231, 7, -9, 7, 6, 15, 15, -1, -1, 1, 6, 6, 1, 1, -2, 1, 2, 2, 0, 0, 1, 0,
0, 0, 0 ] ]
[Top] [Previous] [Up] [Next] [Index]
GAP 4 manual