1##############################################################################
2##
3#W  gpd-isos.tst               Groupoids Package                 Chris Wensley
4##
5#Y  Copyright (C) 2000-2019, Chris Wensley,
6#Y  School of Computer Science, Bangor University, U.K.
7##
8
9gap> gpd_infolevel_saved := InfoLevel( InfoGroupoids );;
10gap> SetInfoLevel( InfoGroupoids, 0 );;
11gap> s3a := Group( (1,2,3), (2,3) );;
12gap> s3b := Group( (4,6,8)(5,7,9), (4,9)(5,8)(6,7) );;
13gap> s3c := Group( (4,6,8)(5,7,9), (5,9)(6,8) );;
14gap> ida := IdentityMapping( s3a );;
15gap> isoab := IsomorphismGroups( s3a, s3b );;
16gap> isoac := IsomorphismGroups( s3a, s3c );;
17gap> isos1 := [ ida, isoab, isoac ];;
18gap> G1 := GroupoidByIsomorphisms( s3a, [-3,-2,-1], isos1 );;
19gap> SetName( G1, "G1" );
20gap> gens1 := GeneratorsOfGroupoid( G1 );;
21gap> x1 := ImageElm( isos1[2], (1,2,3) );;
22gap> a1 := Arrow( G1, [ (1,2,3), x1 ], -3, -2 );;
23gap> y1 := ImageElm( isos1[2], (2,3) );;
24gap> z1 := ImageElm( isos1[3], (2,3) );;
25gap> b1 := Arrow( G1, [ y1, z1 ], -2, -1 );;
26gap> c1 := a1*b1;;
27
28gap> isopc := IsomorphismPcGroup( s3a );;
29gap> s3p := Image( isopc );;
30gap> f2 := FreeGroup( 2 );;
31gap> s3f := f2/[ f2.1^3, f2.2^2, (f2.1*f2.2)^2 ];;
32gap> isofp := GroupHomomorphismByImages(s3a,s3f,[(1,2,3),(2,3)],[s3f.1,s3f.2]);;
33gap> isos2 := [ ida, isopc, isofp ];;
34gap> G2 := GroupoidByIsomorphisms( s3a, [-7,-6,-5], isos2 );;
35gap> SetName( G2, "G2" );
36gap> gens2 := GeneratorsOfGroupoid( G2 );;
37gap> x2 := ImageElm( isos2[2], (1,2) );
38f1*f2
39gap> a2 := Arrow( G2, [ (1,2), x2 ], -7, -6 );
40[[ (1,2), f1*f2 ] : -7 -> -6]
41gap> y2 := ImageElm( isos2[2], (2,3) );
42f1
43gap> z2 := ImageElm( isos2[3], (2,3) );
44f2^-1
45gap> b2 := Arrow( G2, [ y2, z2 ], -6, -5 );
46[[ f1, f2^-1 ] : -6 -> -5]
47gap> c2 := a2*b2;
48[[ (1,3,2), f1^2 ] : -7 -> -5]
49
50gap> hom12 := GroupoidHomomorphismFromSinglePiece( G1, G2, gens1, gens2 );;
51gap> rgh12 := RootGroupHomomorphism( hom12 );;
52gap> ia1 := ImageElm( hom12, a1 );;
53gap> ib1 := ImageElm( hom12, b1 );;
54gap> ic1 := ImageElm( hom12, c1 );;
55
56gap> d1 := Arrow( G1, [ x1, x1 ], -2, -2 );;
57gap> d2 := Arrow( G1, [ (4,7)(5,6)(8,9), (4,7)(5,6)(8,9) ], -2, -2 );;
58gap> d3 := Arrow( G1, [ (), () ], -2, -1 );;
59gap> d4 := Arrow( G1, [ (), () ], -2, -3 );;
60
61gap> d12 := ImageElm( hom12, d1 );
62[[ f2, f2 ] : -6 -> -6]
63gap> d22 := ImageElm( hom12, d2 );
64[[ f1*f2^2, f1*f2^2 ] : -6 -> -6]
65gap> d32 := ImageElm( hom12, d3 );
66[[ <identity> of ..., <identity ...> ] : -6 -> -5]
67gap> d42 := ImageElm( hom12, d4 );
68[[ <identity> of ..., () ] : -6 -> -7]
69gap> gens22 := [ d12, d22, d32, d42 ];;
70gap> hom122 := GroupoidHomomorphismFromSinglePiece( G1, G2, gens1, gens22 );;
71gap> rgh122 := RootGroupHomomorphism( hom122 );;
72gap> ia12 := ImageElm( hom122, a1 );
73[[ f2, f1 ] : -6 -> -5]
74gap> ib12 := ImageElm( hom122, b1 );
75[[ f2^-1*f1^2, (1,3) ] : -5 -> -7]
76gap> ic12 := ImageElm( hom122, c1 );
77[[ f1*f2, (1,2) ] : -6 -> -7]
78
79gap> s3 := Group( (11,22,33), (22,33) );;
80gap> G0 := SinglePieceGroupoid( s3, [-10,-9,-8] );;
81gap> SetName( G0, "G0" );
82gap> gens0 := GeneratorsOfGroupoid( G0 );;
83gap> hom01 := GroupoidHomomorphismFromSinglePiece( G0, G1, gens0, gens1 );;
84gap> rgh01 := RootGroupHomomorphism( hom01 );;
85gap> a0 := Arrow( G0, (11,22,33), -10, -9 );;
86gap> b0 := Arrow( G0, (22,33), -9, -8 );;
87gap> c0 := a0*b0;;
88gap> ia01 := ImageElm( hom01, a0 );
89[[ (1,2,3), (4,6,8)(5,7,9) ] : -3 -> -2]
90gap> ib01 := ImageElm( hom01, b0 );
91[[ (4,9)(5,8)(6,7), (5,9)(6,8) ] : -2 -> -1]
92gap> ic01 := ImageElm( hom01, c0 );
93[[ (1,3), (4,8)(5,7) ] : -3 -> -1]
94
95gap> hom022 := GroupoidHomomorphismFromSinglePiece( G0, G2, gens0, gens22 );;
96gap> rgh022 := RootGroupHomomorphism( hom022 );;
97gap> ia022 := ImageElm( hom022, a0 );
98[[ f2, f1 ] : -6 -> -5]
99gap> ib022 := ImageElm( hom022, b0 );
100[[ f2^-1*f1^2, (1,3) ] : -5 -> -7]
101gap> ic022 := ImageElm( hom022, c0 );
102[[ f1*f2, (1,2) ] : -6 -> -7]
103
104gap> hom10 := GroupoidHomomorphismFromSinglePiece( G1, G0, gens1, gens0 );;
105gap> rgh10 := RootGroupHomomorphism( hom10 );;
106gap> ia10 := ImageElm( hom10, a1 );
107[(11,22,33) : 1 -> 2]
108gap> ib10 := ImageElm( hom10, b1 );
109[(22,33) : 2 -> 3]
110gap> ic10 := ImageElm( hom10, c1 );
111[(11,33) : 1 -> 3]
112
113gap> gens00 := [ Arrow( G0, (11,22,33), -9, -9 ),
114>                Arrow( G0, (22,33), -9, -9 ),
115>                Arrow( G0, (), -9, -8 ),
116>                Arrow( G0, (), -9, -10 ) ];;
117gap> hom200 := GroupoidHomomorphismFromSinglePiece( G2, G0, gens2, gens00 );;
118gap> rgh200 := RootGroupHomomorphism( hom200 );;
119gap> a22 := Arrow( G2, [ (1,2,3), s3p.2 ], -7, -6 );;
120gap> ia22 := ImageElm( hom200, a22 );
121[(11,22,33) : 2 -> 3]
122gap> b22 := Arrow( G2, [ s3p.1, s3f.2 ], -6, -5 );;
123gap> ib22 := ImageElm( hom200, b22 );
124[(22,33) : 3 -> 1]
125gap> c22 := a22 * b22;
126[[ (1,3), f2^-1*f1^2 ] : -7 -> -5]
127gap> ic22 := ImageElm( hom200, c22 );
128[(11,33) : 2 -> 1]
129gap> ##
130gap> SetInfoLevel( InfoGroupoids, gpd_infolevel_saved );;
131