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