GAP (XMod) - Chapter 9: Utility functions

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.1-1 PrintListOneItemPerLine
9.2 Inclusion and Restriction Mappings
9.2-1 InclusionMappingGroups
9.2-2 InnerAutomorphismByNormalSubgroup
9.3 Abelian Modules
9.3-1 AbelianModuleObject
9.4 Distinct and Common Representatives
9.4-1 DistinctRepresentatives

### 9 Utility functions

By a utility function we mean a GAP function which is

- needed by other functions in this package,

- not (as far as we know) provided by the standard GAP library,

- more suitable for inclusion in the main library than in this package.

#### 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