GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
############################################################################# ## #W gp2act.g XMOD example files Chris Wensley #W & Murat Alp #Y Copyright (C) 2001-2017, Chris Wensley et al, #Y School of Computer Science, Bangor University, U.K. ## ############################################################################# Print("\nXMod example file gp2act.g (version 25/04/17) :-"); Print("\ntesting actor functions\n\n"); level := InfoLevel( InfoXMod ); SetInfoLevel( InfoXMod, 0 ); s3 := Group( (1,2), (2,3) ); SetName( s3, "s3" ); X3 := XMod( s3, s3 ); reg3 := RegularDerivations( X3 ); Print("regular derivations of X3 have images list\n" ); imreg3 := ImagesList( reg3 ); Display( imreg3 ); Print("images table for these derivations:\n" ); Display( ImagesTable( reg3 ) ); wgt3 := WhiteheadGroupTable( X3 ); Print("X3 has Whitehead Group Table:\n"); Display( wgt3); wpg3 := WhiteheadPermGroup( X3 ); gwpg3 := GeneratorsOfGroup( wpg3); Print("Whitehead perm group wpg3 of X3 is ", wpg3, "\n"); Print("and has generators ", gwpg3, "\n\n"); sgsc3 := StrongGeneratorsStabChain( StabChain( wpg3 ) ); Print("WhitehadPermGroup has StrongGeneratorsStabChain\n", sgsc3, "\n" ); genchi3 := WhiteheadGroupGeneratingDerivations( X3 ); Print("Generating derivations are:\n", genchi3, "\n" ); genmor3 := List( genchi3, c -> Object2dEndomorphism( c ) ); Print("Generating morphisms are:\n", genmor3, "\n\n" ); Print("\n\n=======================================================\n"); Print("\ntesting actor functions\n\n"); zzz := 0; Print("X1 = ", X1, "\n" ); WGX1 := WhiteheadPermGroup( X1 ); genWGX1 := GeneratorsOfGroup( WGX1 ); Print("\ngenWGX1 = ", genWGX1, "\n" ); APX1 := AutomorphismPermGroup( X1 ); Print("\nAPX1 = ", APX1, "\n" ); genAPX1 := GeneratorsOfGroup( APX1 ); Print("\ngenAPX1 = ", genAPX1, "\n" ); WX1 := WhiteheadXMod( X1 ); Print("\nWhitehead XMod of X1\n"); Display( WX1 ); LX1 := LueXMod( X1 ); Print("\nLue XMod of X1\n"); Display( LX1 ); NX1 := NorrieXMod( X1 ); Print("\nNorrie XMod of X1\n"); Display( NX1 ); AX1 := ActorXMod( X1 ); Print("\nActor XMod of X1\n"); Display( AX1 ); IAX1 := InnerActorXMod( X1 ); Print("\nInnerActor XMod of X1\n"); Display( IAX1 ); IMX1 := InnerMorphism( X1 ); Print("\nInner XMod morphism of X1\n"); Display( IMX1 ); ZX1 := XModCentre( X1 ); Print("\nCentre XMod of X1\n"); Display( ZX1 ); Print("\n\n======================================================\n\n"); d12 := Group( (1,2),(2,3),(4,5)); SetName( d12, "d12"); ed12 := Elements(d12); c3 := Subgroup(d12,[(1,2,3)]); SetName(c3,"c3"); X12 := XMod(d12,c3); Display(X12); ac3 := AutomorphismGroup( c3 ); ## IsomorphismPermObject should be NiceMonomorphism ?? probably not #ipoac3 := IsomorphismPermObject( ac3 ); #noac3 := NiceObject( ac3 ); #nmac3 := NiceMonomorphism( ac3 ); #Print("\nAutomorphismGroup of c3 has NiceObject/Monomorphism:\n"); #Print( noac3, "\n", MappingGeneratorsImages( nmac3 ), "\n" ); isoac3 := IsomorphismSmallPermGroup( ac3 ); spac3 := Image( isoac3 ); Print("\nAutomorphismGroup of c3 has SmallPermRep:\n"); Print( spac3, "\n", MappingGeneratorsImages( isoac3 ), "\n" ); ad12 := AutomorphismGroup( d12 ); isoad12 := IsomorphismSmallPermGroup( ad12 ); spad12 := Image( isoad12 ); Print("\nAutomorphismGroup of d12 has SmallPermRep:\n"); Print( spad12, "\n", MappingGeneratorsImages( isoad12 ), "\n\n" ); APX12 := AutomorphismPermGroup( X12 ); Print("\nX12 has AutomorphismPermGroup\n", APX12, "\n"); GA12 := GeneratingAutomorphisms( X12 ); Print("\nAutomorphism group of X12 is generated by\n"); Display(GA12); for i in [1..Length(GA12)] do Display( GA12[i] ); Print("\n"); od; WP12 := WhiteheadPermGroup( X12 ); Print("X12 has WhiteheadPermGroup\n", WP12, "\n"); WX12 := WhiteheadXMod( X12 ); Print( "\nX12 has WhiteheadXMod" ); Display(WX12); NX12 := NorrieXMod( X12 ); Print( "X12 has NorrieXMod" ); Display(NX12); LX12 := LueXMod( X12 ); Print( "X12 has LueXMod" ); Display(LX12); AX12 := ActorXMod( X12 ); Print("\nThe actor crossed module of X12:\n"); Display(AX12); imX12 := InnerMorphism( X12 ); Print("\nInner morphism for X12:\n"); Display( imX12 ); Print("\nCentre of X12:\n"); ZX12 := XModCentre( X12 ); Display( ZX12 ); Print("\nInner actor crossed module for X12:\n"); IAX12 := InnerActorXMod( X12 ); Display( IAX12 ); Print("\n\n======================================================\n"); Print("Now for X33 = (s3 -> s3)\n\n"); s3 := Group((1,2),(2,3)); SetName(s3,"s3"); X33 := XMod( s3, s3 ); Display(X33); APX33 := AutomorphismPermGroup( X33 ); Print("\nX33 has AutomorphismPermGroup\n", APX33, "\n"); GA33 := GeneratingAutomorphisms( X33 ); Print("\nAutomorphism group of X33 is generated by\n"); Display(GA33); for i in [1..Length(GA33)] do Display( GA33[i] ); Print("\n"); od; WP33 := WhiteheadPermGroup( X33 ); Print("X33 has WhiteheadPermGroup\n", WP33, "\n"); WX33 := WhiteheadXMod( X33 ); Print( "\nX33 has WhiteheadXMod" ); Display(WX33); NX33 := NorrieXMod( X33 ); Print( "X33 has NorrieXMod" ); Display(NX33); LX33 := LueXMod( X33 ); Print( "X33 has LueXMod" ); Display(LX33); AX33 := ActorXMod( X33 ); Print("\nThe actor crossed module of X33:\n"); Display(AX33); imX33 := InnerMorphism( X33 ); Print("\nInner morphism for X33:\n"); Display( imX33 ); Print("\nCentre of X33:\n"); ZX33 := XModCentre( X33 ); Display( ZX33 ); Print("\nInner actor crossed module for X33:\n"); IAX33 := InnerActorXMod( X33 ); Display( IAX33 ); Print("\n\n======================================================\n"); Print("Now for X44 = (a4 -> s4)\n\n"); s4 := Group((1,2,3,4),(3,4)); SetName(s4,"s4"); a4 := Subgroup( s4, [(1,2,3),(2,3,4)] ); SetName( a4, "a4" ); X44 := XMod( s4, a4 ); Display(X44); APX44 := AutomorphismPermGroup( X44 ); Print("\nX44 has AutomorphismPermGroup\n", APX44, "\n"); GA44 := GeneratingAutomorphisms( X44 ); Print("\nAutomorphism group of X44 is generated by\n"); Display(GA44); for i in [1..Length(GA44)] do Display( GA44[i] ); Print("\n"); od; WP44 := WhiteheadPermGroup( X44 ); Print("X44 has WhiteheadPermGroup\n", WP44, "\n"); WX44 := WhiteheadXMod( X44 ); Print( "\nX44 has WhiteheadXMod" ); Display(WX44); NX44 := NorrieXMod( X44 ); Print( "X44 has NorrieXMod" ); Display(NX44); LX44 := LueXMod( X44 ); Print( "X44 has LueXMod" ); Display(LX44); AX44 := ActorXMod( X44 ); Print("\nThe actor crossed module of X44:\n"); Display(AX44); imX44 := InnerMorphism( X44 ); Print("\nInner morphism for X44:\n"); Display( imX44 ); Print("\nCentre of X44:\n"); ZX44 := XModCentre( X44 ); Display( ZX44 ); Print("\nInner actor crossed module for X44:\n"); IAX44 := InnerActorXMod( X44 ); Display( IAX44 ); SetInfoLevel( InfoXMod, level ); ############################################################################### ## #E gp2act.g . . . . . . . . . . . . . . . . . . . . . . . . . . . . ends here