Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

9 Utility functions
 9.1 Printing Lists
 9.2 Inclusion and Restriction Mappings
 9.3 Abelian Modules
 9.4 Distinct and Common Representatives

9 Utility functions

By a utility function we mean a GAP function which is

9.1 Printing Lists

9.1-1 PrintListOneItemPerLine
‣ PrintListOneItemPerLine( L )( operation )

This function is used in Chapter 4 when printing image lists of derivations and sections.


gap> L := [ [1,2,3,4], true, [ (1,2), (2,3) ] ];; 
gap> PrintListOneItemPerLine( L ); 
[ [ 1, 2, 3, 4 ], 
  true, 
  [ (1,2), (2,3) ] 
  ]

9.2 Inclusion and Restriction Mappings

These two functions have been moved to the gpd package, but are still documented here.

9.2-1 InclusionMappingGroups
‣ InclusionMappingGroups( G, H )( operation )
‣ RestrictionMappingGroups( hom, src, rng )( operation )
‣ MappingToOne( G, H )( operation )

This set of utilities concerns inclusion and restriction mappings. Restriction may apply to both the source and the range of the map. The map incd8 is the inclusion of d8 in d16 used in Section 3.4.


gap> Print( incd8, "\n" );
[ (11,13,15,17)(12,14,16,18), (11,18)(12,17)(13,16)(14,15) ] ->
[ (11,13,15,17)(12,14,16,18), (11,18)(12,17)(13,16)(14,15) ]
gap> imd8 := Image( incd8 );;
gap> resd8 := RestrictionMappingGroups( incd8, c4, imd8 );;
gap> Source( resd8 );  Range( resd8 );
c4
Group([ (11,13,15,17)(12,14,16,18), (11,18)(12,17)(13,16)(14,15) ])
gap> MappingToOne( c4, imd8 );
[ (11,13,15,17)(12,14,16,18) ] -> [ () ]

9.2-2 InnerAutomorphismByNormalSubgroup
‣ InnerAutomorphismByNormalSubgroup( G, N )( operation )
‣ IsGroupOfAutomorphisms( A )( property )

Inner automorphisms of a group G by the elements of a normal subgroup N are calculated with the first of these functions, usually with G = N.


gap> autd8 := AutomorphismGroup( d8 );;
gap> innd8 := InnerAutomorphismsByNormalSubgroup( d8, d8 );;
gap> GeneratorsOfGroup( innd8 );
[ ^(1,2,3,4), ^(1,3) ]
gap> IsGroupOfAutomorphisms( innd8 );
true

9.3 Abelian Modules

9.3-1 AbelianModuleObject
‣ AbelianModuleObject( grp, act )( operation )
‣ IsAbelianModule( obj )( property )
‣ AbelianModuleGroup( obj )( attribute )
‣ AbelianModuleAction( obj )( attribute )

An abelian module is an abelian group together with a group action. These are used by the crossed module constructor XModByAbelianModule.

The resulting Xabmod is isomorphic to the output from XModByAutomorphismGroup( k4 );.


gap> x := (6,7)(8,9);;  y := (6,8)(7,9);;  z := (6,9)(7,8);;
gap> k4 := Group( x, y );;  SetName( k4, "k4" );
gap> s3 := Group( (1,2), (2,3) );;  SetName( s3, "s3" );
gap> alpha := GroupHomomorphismByImages( k4, k4, [x,y], [y,x] );;
gap> beta := GroupHomomorphismByImages( k4, k4, [x,y], [x,z] );;
gap> aut := Group( alpha, beta );;
gap> act := GroupHomomorphismByImages( s3, aut, [(1,2),(2,3)], [alpha,beta] );;
gap> abmod := AbelianModuleObject( k4, act );;
gap> Xabmod := XModByAbelianModule( abmod );
[k4->s3]
gap> Display( Xabmod );

Crossed module [k4->s3] :- 
: Source group k4 has generators:
  [ (6,7)(8,9), (6,8)(7,9) ]
: Range group s3 has generators:
  [ (1,2), (2,3) ]
: Boundary homomorphism maps source generators to:
  [ (), () ]
: Action homomorphism maps range generators to automorphisms:
  (1,2) --> { source gens --> [ (6,8)(7,9), (6,7)(8,9) ] }
  (2,3) --> { source gens --> [ (6,7)(8,9), (6,9)(7,8) ] }
  These 2 automorphisms generate the group of automorphisms.


9.4 Distinct and Common Representatives

9.4-1 DistinctRepresentatives
‣ DistinctRepresentatives( list )( operation )
‣ CommonRepresentatives( list )( operation )
‣ CommonTransversal( grp, subgrp )( operation )
‣ IsCommonTransversal( grp, subgrp, list )( operation )

The final set of utilities deal with lists of subsets of [1 ... n] and construct systems of distinct and common representatives using simple, non-recursive, combinatorial algorithms.

When L is a set of n subsets of [1 ... n] and the Hall condition is satisfied (the union of any k subsets has at least k elements), a set of distinct representatives exists.

When J,K are both lists of n sets, the function CommonRepresentatives returns two lists: the set of representatives, and a permutation of the subsets of the second list. It may also be used to provide a common transversal for sets of left and right cosets of a subgroup H of a group G, although a greedy algorithm is usually quicker.


gap> J := [ [1,2,3], [3,4], [3,4], [1,2,4] ];
[ [ 1, 2, 3 ], [ 3, 4 ], [ 3, 4 ], [ 1, 2, 4 ] ]
gap> DistinctRepresentatives( J );
[ 1, 3, 4, 2 ]
gap> K := [ [3,4], [1,2], [2,3], [2,3,4] ];
[ [ 3, 4 ], [ 1, 2 ], [ 2, 3 ], [ 2, 3, 4 ] ]
gap> CommonRepresentatives( J, K );
[ [ 3, 3, 3, 1 ], [ 1, 3, 4, 2 ] ]
gap> CommonTransversal( d16, c4 );
[ (), (12,18)(13,17)(14,16), (11,12,13,14,15,16,17,18), 
  (11,12)(13,18)(14,17)(15,16) ]

 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 Bib Ind

generated by GAPDoc2HTML