GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#############################################################################
##
#W isoclinic.tst XMOD test file Alper Odabas
#W & Enver Uslu
#Y Copyright (C) 2001-2017, Chris Wensley et al,
##
gap> START_TEST( "XMod package: isoclinic.tst" );
gap> saved_infolevel_xmod := InfoLevel( InfoXMod );;
gap> SetInfoLevel( InfoXMod, 0 );
gap> saved_infolevel_groupoids := InfoLevel( InfoGroupoids );;
gap> SetInfoLevel( InfoGroupoids, 0 );;
## Chapter 4
#### 4.1.1
gap> d24 := DihedralGroup(24);; SetName( d24, "d24" );
gap> X24 := XModByAutomorphismGroup( d24 );;
gap> Size(X24);
[ 24, 48 ]
gap> nsx := NormalSubXMods( X24 );;
gap> ids := List( nsx, n -> IdGroup(n) );;
gap> pos1 := Position( ids, [ [4,1], [8,3] ] );;
gap> Xn1 := nsx[pos1];;
gap> IdGroup( Xn1 );
[ [ 4, 1 ], [ 8, 3 ] ]
gap> nat1 := NaturalMorphismByNormalSubPreXMod( X24, Xn1 );
[[d24->PAut(d24)] => [..]]
gap> Qn1 := FactorPreXMod( X24, Xn1 );
[Group( [ f1, f2 ] )->Group( [ f1, f2 ] )]
gap> Size( Qn1 );
[ 6, 6 ]
#### 4.1.2
gap> pos2 := Position( ids, [ [24,6], [12,4] ] );;
gap> Xn2 := nsx[pos2];;
gap> IdGroup( Xn2 );
[ [ 24, 6 ], [ 12, 4 ] ]
gap> pos3 := Position( ids, [ [12,2], [24,5] ] );;
gap> Xn3 := nsx[pos3];;
gap> Xn23 := IntersectionSubXMods( X24, Xn2, Xn3 );;
gap> [ Size(Xn2), Size(Xn3), Size(Xn23) ];
[ [ 24, 12 ], [ 12, 24 ], [ 12, 6 ] ]
#### 4.1.3
gap> pos4 := Position( ids, [ [6,2], [24,14] ] );;
gap> Xn4 := nsx[pos4];;
gap> Sn4 := Source(Xn4);;
gap> Rn4 := Range(Xn4);;
gap> r := Rn4.1;; s := Sn4.1;;
gap> d := Displacement( XModAction(Xn4), r, s );
f4
gap> bn4 := Boundary( Xn4 );;
gap> Image( bn4, d ) = Comm( r, Image( bn4, s ) );
true
gap> DisplacementSubgroup( Xn4 );
Group([ f4 ])
#### 4.1.4
gap> CrossActionSubgroup( X24, Xn2, Xn3 );
Group([ f2 ])
gap> Cn23 := CommutatorSubXMod( X24, Xn2, Xn3 );;
gap> Size(Cn23);
[ 12, 6 ]
gap> Xn23 = Cn23;
true
#### 4.1.5
gap> DXn4 := DerivedSubXMod( Xn4 );
[Group( [ f4 ] )->Group( [ f2 ] )]
#### 4.1.6
gap> fix := FixedPointSubgroupXMod( Xn4, Sn4, Rn4 );
Group([ f3*f4 ])
gap> stab := StabilizerSubgroupXMod( Xn4, Sn4, Rn4 );;
gap> IdGroup( stab );
[ 12, 5 ]
#### 4.1.7
gap> ZXn4 := CentreXMod( Xn4 );;
gap> IdGroup( ZXn4 );
[ [ 2, 1 ], [ 4, 2 ] ]
gap> CDXn4 := Centralizer( Xn4, DXn4 );;
gap> IdGroup( CDXn4 );
[ [ 2, 1 ], [ 3, 1 ] ]
gap> NDXn4 := Normalizer( Xn4, DXn4 );;
gap> IdGroup( NDXn4 );
[ [ 1, 1 ], [ 12, 5 ] ]
#### 4.1.8
gap> Q24 := CentralQuotient( d24); Size( Q24 );
[d24->Group( [ f1, f2, f3 ] )]
[ 24, 12 ]
#### 4.1.9
gap> [ IsAbelian2DimensionalGroup(Xn4), IsAbelian2DimensionalGroup(X24) ];
[ false, false ]
gap> pos7 := Position( ids, [ [3,1], [6,1] ] );;
gap> IsAspherical2DimensionalGroup( nsx[pos7] );
true
gap> IsAspherical2DimensionalGroup( X24 );
false
gap> IsSimplyConnected2DimensionalGroup( Xn4 );
true
gap> IsSimplyConnected2DimensionalGroup( X24 );
true
gap> IsFaithful2DimensionalGroup( Xn4 );
false
gap> IsFaithful2DimensionalGroup( X24 );
true
#### 4.1.10
gap> lcs := LowerCentralSeries( X24 );;
gap> List( lcs, g -> IdGroup(g) );
[ [ [ 24, 6 ], [ 48, 38 ] ], [ [ 12, 2 ], [ 6, 2 ] ], [ [ 6, 2 ], [ 3, 1 ] ],
[ [ 3, 1 ], [ 3, 1 ] ] ]
gap> IsNilpotent2DimensionalGroup( X24 );
false
gap> NilpotencyClassOf2DimensionalGroup( X24 );
0
#### 4.1.11
gap> xc6s3 := AllXMods( SmallGroup(6,2), SmallGroup(6,1) );;
gap> Length( xc6s3 );
4
gap> x66 := AllXMods( [6,6] );;
gap> Length( x66 );
17
#### 4.1.12
gap> IsomorphismXMods( x66[1], x66[2] );
[[Group( [ f1, f2 ] )->Group( [ f1, f2 ] )] => [Group( [ f1, f2 ] )->Group(
[ f1, f2 ] )]]
gap> iso66 := AllXModsUpToIsomorphism( x66 );; Length( iso66 );
9
#### testing isoclinism of groups ####
#### 4.2.1
gap> G := SmallGroup( 64, 6 );;
gap> QG := CentralQuotient( G );; IdGroup( QG );
[ [ 64, 6 ], [ 8, 3 ] ]
gap> H := SmallGroup( 32, 41 );;
gap> QH := CentralQuotient( H );; IdGroup( QH );
[ [ 32, 41 ], [ 8, 3 ] ]
gap> Isoclinism( G, H );
[ [ f1, f2, f3 ] -> [ f1, f2*f3, f3 ], [ f3, f5 ] -> [ f4*f5, f5 ] ]
gap> K := SmallGroup( 32, 43 );;
gap> QK := CentralQuotient( K );; IdGroup( QK );
[ [ 32, 43 ], [ 16, 11 ] ]
gap> AreIsoclinicDomains( G, K );
false
#### 4.2.2
gap> DerivedSubgroup(G);
Group([ f3, f5 ])
gap> IsStemDomain( G );
false
gap> IsoclinicStemDomain( G );
<pc group of size 16 with 4 generators>
gap> AllStemGroupIds( 16 );
[ [ 16, 7 ], [ 16, 8 ], [ 16, 9 ] ]
gap> AllStemGroupFamilies( 16 );
[ [ [ 16, 7 ], [ 16, 8 ], [ 16, 9 ] ] ]
#### 4.2.3
gap> IsoclinicMiddleLength(G);
1
gap> IsoclinicRank( G );
4
#### testing isoclinism of crossed modules ####
#### 4.3.1
gap> C8 := Cat1Group(16,8,1);;
gap> X8 := XMod(C8); IdGroup( X8 );
[Group( [ f1*f2*f3, f3, f4 ] )->Group( [ f2, f2 ] )]
[ [ 8, 1 ], [ 2, 1 ] ]
gap> C9 := Cat1Group(32,9,1);
[(C8 x C2) : C2=>Group( [ f2, f2 ] )]
gap> X9 := XMod( C9 ); IdGroup( X9 );
[Group( [ f1*f2*f3, f3, f4, f5 ] )->Group( [ f2, f2 ] )]
[ [ 16, 5 ], [ 2, 1 ] ]
gap> AreIsoclinicDomains( X8, X9 );
true
gap> ism89 := Isoclinism( X8, X9 );;
gap> Display( ism89 );
[ [[Group( [ f1 ] )->Group( [ f2, f2 ] )] => [Group( [ f1 ] )->Group(
[ f2, f2 ] )]], [[Group( [ f3 ] )->Group( <identity> of ... )] => [Group(
[ f3 ] )->Group( <identity> of ... )]] ]
#### 4.3.2
gap> IsStemDomain(X8);
true
gap> IsStemDomain(X9);
false
#### 4.3.3
gap> IsoclinicMiddleLength(X8);
[ 1, 0 ]
gap> IsoclinicRank(X8);
[ 3, 1 ]
gap> SetInfoLevel( InfoXMod, saved_infolevel_xmod );;
gap> SetInfoLevel( InfoGroupoids, saved_infolevel_groupoids );;
gap> STOP_TEST( "isoclinic.tst", 10000 );
#############################################################################
##
#E isoclinic.tst . . . . . . . . . . . . . . . . . . . . . . . . . ends here