# "MultFreeFromTOM" # is the list of pairs $[ \pi, G ]$ where $\pi$ is a multiplicity free # permutation character and $G$ is the corresponding permutation # representation of the group with name , # as computed from the table of marks of this group. # # If there is no table of marks for this group, `fail' is returned. # MultFreeFromTOM := function( name ) local tom, # the table of marks G, # the underlying group t, # the character table fus, # fusion map from 't' to 'tom' perms, # list of perm. characters multfree, # list of mult. free characters and perm. groups i, # loop over `perms' H, # point stabilizer tr, # right transversal of `H' in `G' P; # permutation action of `G' on the cosets of `H' tom:= TableOfMarks( name ); if IsTableOfMarks( tom ) then G:= UnderlyingGroup( tom ); t:= CharacterTable( name ); fus:= FusionCharTableTom( t, tom ); if ForAll( fus, IsInt ) then perms:= PermCharsTom( fus, tom ); multfree:= []; for i in [ 1 .. Length( perms ) ] do if ForAll( Irr( t ), chi -> ScalarProduct( t, chi, perms[i] ) <= 1 ) then H:= RepresentativeTom( tom, i ); tr:= RightTransversal( G, H ); P:= Action( G, tr, OnRight ); Add( multfree, [ perms[i], P ] ); fi; od; else Print( "fusion not unique!\n" ); multfree:= fail; fi; else multfree:= fail; fi; return multfree; end;