FusionsAllowedByRestrictions( subtbl,
tbl, subchars, chars,
fus,
parameters )
returns a list of (possibly parametrized, see More about Maps and Parametrized Maps)
maps map which are contained in the parametrized map fus
and which have the property that for all chi in the
list chars of characters of the character table tbl,
the restrictions [ chi_subtbl = CompositionMaps(
chi, fus ) ] (see
CompositionMaps) have nonnegative integral scalar products with all
characters in the list subchars.
parameters must be a record with fields
maxlen:
an integer that controls the position where branches
take place
contained:
a function, usually ContainedCharacters or
ContainedPossibleCharacters; for a restriction rest, it returns
the list contained( subtbl, subchars, rest
);
minamb, maxamb:
two arbitrary objects; contained
is called only for restrictions rest with minamb <
Indeterminateness( rest ) < maxamb;
quick:
a boolean value; if it is true, the scalar products
of uniquely determined restrictions are not checked.
fus will be improved, i.e. is changed by the algorithm.
If there is no character left which allows an immediate improvement but there
are characters in chars with indeterminateness of the restrictions
bigger than parameters.minamb, a branch is necessary.
Two kinds of branches may occur: If parameters.contained(
tbl, subchars, rest ) has length at
most parameters.maxlen, the union of maps allowed by
the characters in rest is computed; otherwise a suitable class
c is taken which is significant for some character, and the
union of all admissible maps with image x on c is
computed, where x runs over fus[c].
gap> s:= CharTable( "U3(3)" );; t:= CharTable( "J4" );;
gap> fus:= InitFusion( s, t );;
gap> TestConsistencyMaps( s.powermap, fus, t.powermap );;
gap> ConsiderTableAutomorphisms( fus, t.automorphisms );; fus;
[ 1, 2, 4, 4, [ 5, 6 ], [ 5, 6 ], [ 5, 6 ], 10, 12, [ 12, 13 ],
[ 14, 15, 16 ], [ 14, 15, 16 ], [ 21, 22 ], [ 21, 22 ] ]
gap> FusionsAllowedByRestrictions( s, t, s.irreducibles,
> t.irreducibles, fus, rec( maxlen:= 10,
> contained:= ContainedPossibleCharacters,
> minamb:= 2, maxamb:= "infinity", quick:= false ) );
[ [ 1, 2, 4, 4, 5, 5, 6, 10, 12, 13, 14, 14, 21, 21 ],
[ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 15, 15, 22, 22 ],
[ 1, 2, 4, 4, 6, 6, 6, 10, 12, 13, 16, 16, 22, 22 ] ]
# cf.\ example in "SubgroupFusions"
FusionsAllowedByRestrictions is used by SubgroupFusions SubgroupFusions.