Skip to content

Commit df7dffa

Browse files
committed
added ReduceRangeToImage etc.
1 parent 62e666f commit df7dffa

File tree

16 files changed

+684
-646
lines changed

16 files changed

+684
-646
lines changed

PackageInfo.g

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ SetPackageInfo( rec(
88

99
PackageName := "groupoids",
1010
Subtitle := "Calculations with finite groupoids and their homomorphisms",
11-
Version := "1.81",
12-
Date := "26/11/2025", # dd/mm/yyyy format
11+
Version := "1.81dev",
12+
Date := "09/03/2026", # dd/mm/yyyy format
1313
License := "GPL-2.0-or-later",
1414

1515
Persons := [

doc/gpd.xml

Lines changed: 69 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ gap> d8 := Group( (5,6,7,8), (5,7) );;
103103
gap> SetName( a4, "a4" ); SetName( d8, "d8" );
104104
gap> Ga4 := SinglePieceGroupoid( a4, [-15 .. -11] );
105105
single piece groupoid: < a4, [ -15 .. -11 ] >
106-
gap> Gd8 := Groupoid( d8, [-9,-8,-7] );
107-
single piece groupoid: < d8, [ -9, -8, -7 ] >
106+
gap> Gd8 := Groupoid( d8, [-9,-8,-7,-6] );
107+
single piece groupoid: < d8, [ -9, -8, -7, -6 ] >
108108
gap> c6 := Group( (11,12,13)(14,15) );;
109109
gap> SetName( c6, "c6" );
110110
gap> Gc6 := MagmaWithSingleObject( c6, -10 );
@@ -259,14 +259,14 @@ groupoid with 3 pieces:
259259
group: a4 = <[ (1,2,3), (2,3,4) ]> >
260260
< objects: [ -10 ]
261261
group: c6 = <[ (11,12,13)(14,15) ]> >
262-
< objects: [ -9, -8, -7 ]
262+
< objects: [ -9, -8, -7, -6 ]
263263
group: d8 = <[ (5,6,7,8), (5,7) ]> >
264264
gap> Pieces( U3 );
265265
[ Ga4, Gc6, Gd8 ]
266266
gap> ObjectList( U3 );
267-
[ -15, -14, -13, -12, -11, -10, -9, -8, -7 ]
268-
gap> [ Size(Ga4), Size(Gd8), Size(Gc6), Size(U3) ];
269-
[ 300, 72, 6, 378 ]
267+
[ -15, -14, -13, -12, -11, -10, -9, -8, -7, -6 ]
268+
gap> [ Size(Ga4), Size(Gc6), Size(Gd8), Size(U3) ];
269+
[ 300, 6, 128, 434 ]
270270
gap> U2 := Groupoid( [ Gf2, Gq8 ] );;
271271
gap> [ Size(Gf2), Size(Gq8), Size(U2) ];
272272
[ infinity, 72, infinity ]
@@ -326,23 +326,23 @@ In the latter case a separate representation
326326
<Example>
327327
<![CDATA[
328328
gap> HGd8 := HomogeneousGroupoid( Gd8,
329-
> [ [-39,-38,-37], [-36,-35,-34], [-33,-32,-31] ] );
329+
> [ [-59,-58,-57,-56], [-49,-48,-47,-46], [-39,-38,-37,-36] ] );
330330
homogeneous groupoid with 3 pieces:
331-
1: single piece groupoid: < d8, [ -39, -38, -37 ] >
332-
2: single piece groupoid: < d8, [ -36, -35, -34 ] >
333-
3: single piece groupoid: < d8, [ -33, -32, -31 ] >
334-
gap> Size( HGd8 ); ## 8x3x3 + 8x3x3 + 8x3x3
335-
216
331+
1: single piece groupoid: < d8, [ -59, -58, -57, -56 ] >
332+
2: single piece groupoid: < d8, [ -49, -48, -47, -46 ] >
333+
3: single piece groupoid: < d8, [ -39, -38, -37, -36 ] >
334+
gap> Size( HGd8 ); ## 8x4x4 + 8x4x4 + 8x4x4
335+
384
336336
gap> PieceIsomorphisms( HGd8 );
337337
[ groupoid homomorphism :
338-
[ [ [(5,6,7,8) : -39 -> -39], [(5,7) : -39 -> -39], [() : -39 -> -38],
339-
[() : -39 -> -37] ],
340-
[ [(5,6,7,8) : -36 -> -36], [(5,7) : -36 -> -36], [() : -36 -> -35],
341-
[() : -36 -> -34] ] ], groupoid homomorphism :
342-
[ [ [(5,6,7,8) : -39 -> -39], [(5,7) : -39 -> -39], [() : -39 -> -38],
343-
[() : -39 -> -37] ],
344-
[ [(5,6,7,8) : -33 -> -33], [(5,7) : -33 -> -33], [() : -33 -> -32],
345-
[() : -33 -> -31] ] ] ]
338+
[ [ [(5,6,7,8) : -59 -> -59], [(5,7) : -59 -> -59], [() : -59 -> -58],
339+
[() : -59 -> -57], [() : -59 -> -56] ],
340+
[ [(5,6,7,8) : -49 -> -49], [(5,7) : -49 -> -49], [() : -49 -> -48],
341+
[() : -49 -> -47], [() : -49 -> -46] ] ], groupoid homomorphism :
342+
[ [ [(5,6,7,8) : -59 -> -59], [(5,7) : -59 -> -59], [() : -59 -> -58],
343+
[() : -59 -> -57], [() : -59 -> -56] ],
344+
[ [(5,6,7,8) : -39 -> -39], [(5,7) : -39 -> -39], [() : -39 -> -38],
345+
[() : -39 -> -37], [() : -39 -> -36] ] ] ]
346346
gap> HDc6 := HomogeneousDiscreteGroupoid( c6, [-27..-24] );
347347
homogeneous, discrete groupoid: < c6, [ -27 .. -24 ] >
348348
gap> Size( HDc6 ); ## 6x4
@@ -387,7 +387,7 @@ See Chapter <Ref Sect="chap-gpdhom"/> for details of groupoid homomorphisms.
387387
<![CDATA[
388388
gap> prod := DirectProductOp( [Gd8,Gc6], Gd8 );
389389
single piece groupoid: < Group( [ (1,2,3,4), (1,3), (5,6,7)(8,9) ] ),
390-
[ [ -9, -10 ], [ -8, -10 ], [ -7, -10 ] ] >
390+
[ [ -9, -10 ], [ -8, -10 ], [ -7, -10 ], [ -6, -10 ] ] >
391391
gap> Embedding( prod, 2 );
392392
groupoid homomorphism :
393393
[ [ [(11,12,13)(14,15) : -10 -> -10] ],
@@ -398,15 +398,16 @@ rec( embeddings := [ , groupoid homomorphism :
398398
[ [ [(11,12,13)(14,15) : -10 -> -10] ],
399399
[ [(5,6,7)(8,9) : [ -9, -10 ] -> [ -9, -10 ]] ] ] ], first := Gd8,
400400
groupoids := [ Gd8, Gc6 ], groups := [ d8, c6 ],
401-
objectlists := [ [ -9, -8, -7 ], [ -10 ] ], projections := [ ] )
401+
objectlists := [ [ -9, -8, -7, -6 ], [ -10 ] ], projections := [ ] )
402402
gap> Projection( prod, 1 );
403403
groupoid homomorphism :
404404
[ [ [(1,2,3,4) : [ -9, -10 ] -> [ -9, -10 ]],
405405
[(1,3) : [ -9, -10 ] -> [ -9, -10 ]],
406406
[(5,6,7)(8,9) : [ -9, -10 ] -> [ -9, -10 ]],
407-
[() : [ -9, -10 ] -> [ -8, -10 ]], [() : [ -9, -10 ] -> [ -7, -10 ]] ],
407+
[() : [ -9, -10 ] -> [ -8, -10 ]], [() : [ -9, -10 ] -> [ -7, -10 ]],
408+
[() : [ -9, -10 ] -> [ -6, -10 ]] ],
408409
[ [(5,6,7,8) : -9 -> -9], [(5,7) : -9 -> -9], [() : -9 -> -9],
409-
[() : -9 -> -8], [() : -9 -> -7] ] ]
410+
[() : -9 -> -8], [() : -9 -> -7], [() : -9 -> -6] ] ]
410411
]]>
411412
</Example>
412413

@@ -554,17 +555,19 @@ for which an <C>Iterator</C> is provided.
554555
gap> star9 := ObjectStar( Gd8, -9 );
555556
<star at -9 with vertex group d8>
556557
gap> Size( star9 );
557-
24
558+
32
558559
gap> ## print the elements in star9 from 19 to 24
559560
gap> iter := Iterator( star9 );;
560-
gap> for i in [1..18] do a := NextIterator( iter ); od;
561-
gap> for i in [19..24] do Print( i, " : ", NextIterator( iter ), "\n" ); od;
562-
19 : [(5,6,7,8) : -9 -> -9]
563-
20 : [(5,6,7,8) : -9 -> -8]
564-
21 : [(5,6,7,8) : -9 -> -7]
565-
22 : [(5,6)(7,8) : -9 -> -9]
566-
23 : [(5,6)(7,8) : -9 -> -8]
567-
24 : [(5,6)(7,8) : -9 -> -7]
561+
gap> for i in [1..24] do a := NextIterator( iter ); od;
562+
gap> for i in [25..32] do Print( i, " : ", NextIterator( iter ), "\n" ); od;
563+
25 : [(5,6,7,8) : -9 -> -9]
564+
26 : [(5,6,7,8) : -9 -> -8]
565+
27 : [(5,6,7,8) : -9 -> -7]
566+
28 : [(5,6,7,8) : -9 -> -6]
567+
29 : [(5,6)(7,8) : -9 -> -9]
568+
30 : [(5,6)(7,8) : -9 -> -8]
569+
31 : [(5,6)(7,8) : -9 -> -7]
570+
32 : [(5,6)(7,8) : -9 -> -6]
568571
gap> costar12 := ObjectCostar( Ga4, -12 );
569572
<costar at -12 with vertex group a4>
570573
gap> Size( costar12 );
@@ -664,15 +667,15 @@ with root group <C>sgp</C> and containing the rays of <C>gpd</C>.
664667
</ManSection>
665668
<Example>
666669
<![CDATA[
667-
gap> Ha4 := SubgroupoidByObjects( Ga4, [-14,-13,-12] );
668-
single piece groupoid: < a4, [ -14, -13, -12 ] >
670+
gap> Ha4 := SubgroupoidByObjects( Ga4, [-14,-13,-12,-11] );
671+
single piece groupoid: < a4, [ -14, -13, -12, -11 ] >
669672
gap> SetName( Ha4, "Ha4" );
670673
gap> IsSubgroupoid( Ga4, Ha4 );
671674
true
672675
gap> c3a := Subgroup( a4, [ (1,2,3) ] );;
673676
gap> SetName( c3a, "c3a" );
674677
gap> Hc3a := SubgroupoidBySubgroup( Ha4, c3a );
675-
single piece groupoid: < c3a, [ -14, -13, -12 ] >
678+
single piece groupoid: < c3a, [ -14, -13, -12, -11 ] >
676679
gap> [ IsWideSubgroupoid( Ga4, Ha4 ), IsWideSubgroupoid( Ha4, Hc3a ) ];
677680
[ false, true ]
678681
gap> [ IsFullSubgroupoid( Ga4, Ha4 ), IsFullSubgroupoid( Ha4, Hc3a ) ];
@@ -778,12 +781,12 @@ perm single piece groupoid: Ga4
778781
group: a4 = <[ (1,2,3), (2,3,4) ]>
779782
gap> c3b := Subgroup( a4, [ (1,2,4) ] );;
780783
gap> SetName( c3b, "c3b" );
781-
gap> pieces := [ [ c3a, [-14] ], [ c3b, [-13,-12], [(),(1,4)(2,3)] ] ];;
784+
gap> pieces := [ [ c3a, [-14,-11] ], [ c3b, [-13,-12], [(),(1,4)(2,3)] ] ];;
782785
gap> Jc3 := Subgroupoid( Ha4, pieces );;
783786
gap> SetName( Jc3, "Jc3" );
784787
gap> Display( Jc3 );
785788
groupoid with 2 pieces:
786-
< objects: [ -14 ]
789+
< objects: [ -14, -11 ]
787790
group: c3a = <[ (1,2,3) ]> >
788791
< objects: [ -13, -12 ]
789792
parent gpd: single piece groupoid: < a4, [ -13, -12 ] >
@@ -841,7 +844,8 @@ groupoid homomorphism : JU2b -> Gq8
841844
[ [ [ [x : -17 -> -17], [y : -17 -> -17], [y2 : -17 -> -17] ],
842845
[ [x : -17 -> -17], [y : -17 -> -17], [y2 : -17 -> -17] ] ] ]
843846
groupoid homomorphism :
844-
[ [ [ [(1,2,3) : -14 -> -14] ], [ [(1,2,3) : -14 -> -14] ] ],
847+
[ [ [ [(1,2,3) : -14 -> -14], [() : -14 -> -11] ],
848+
[ [(1,2,3) : -14 -> -14], [() : -14 -> -11] ] ],
845849
[ [ [(1,2,4) : -13 -> -13], [(1,4)(2,3) : -13 -> -12] ],
846850
[ [(1,2,4) : -13 -> -13], [(1,4)(2,3) : -13 -> -12] ] ] ]
847851
]]>
@@ -868,12 +872,12 @@ In the example <C>id(G)</C> denotes the identity subgroup of <M>G</M>.
868872
<![CDATA[
869873
gap> Ic3 := FullTrivialSubgroupoid( Jc3 );
870874
groupoid with 2 pieces:
871-
1: single piece groupoid: < id(c3a), [ -14 ] >
875+
1: single piece groupoid: < id(c3a), [ -14, -11 ] >
872876
2: single piece groupoid: < id(c3b), [ -13, -12 ] >
873877
gap> ParentList( Ic3);
874878
[ Ga4, Ha4, Jc3 ]
875879
gap> DiscreteTrivialSubgroupoid( Gd8 );
876-
homogeneous, discrete groupoid: < id(d8), [ -9, -8, -7 ] >
880+
homogeneous, discrete groupoid: < id(d8), [ -9, -8, -7, -6 ] >
877881
]]>
878882
</Example>
879883

@@ -906,10 +910,11 @@ groupoid with 4 pieces:
906910
gap> HomogeneousDiscreteSubgroupoid( Ga4, k4, [-15,-13,-11] );
907911
homogeneous, discrete groupoid: < a4, [ -15, -13, -11 ] >
908912
gap> MaximalDiscreteSubgroupoid( Jc3 );
909-
groupoid with 3 pieces:
913+
groupoid with 4 pieces:
910914
1: single piece groupoid: < c3a, [ -14 ] >
911915
2: single piece groupoid: < c3b, [ -13 ] >
912916
3: single piece groupoid: < Group( [ (1,4,3) ] ), [ -12 ] >
917+
4: single piece groupoid: < c3a, [ -11 ] >
913918
]]>
914919
</Example>
915920

@@ -1039,14 +1044,17 @@ gap> Perform( re6, Display );
10391044
[() : -12 -> -12]
10401045
gap> rcra4 := RightCosetRepresentatives( Ha4, Jc3 );
10411046
[ [() : -14 -> -14], [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14],
1042-
[(1,4)(2,3) : -14 -> -14], [() : -14 -> -13], [(1,2)(3,4) : -14 -> -13],
1043-
[(1,3)(2,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -13], [() : -14 -> -12],
1044-
[(1,2)(3,4) : -14 -> -12], [(1,3)(2,4) : -14 -> -12],
1045-
[(1,4)(2,3) : -14 -> -12], [() : -13 -> -13], [(1,2)(3,4) : -13 -> -13],
1046-
[(1,3)(2,4) : -13 -> -13], [(1,4)(2,3) : -13 -> -13], [() : -12 -> -12],
1047-
[(1,2)(3,4) : -12 -> -12], [(1,3)(2,4) : -12 -> -12],
1048-
[(1,4)(2,3) : -12 -> -12], [() : -13 -> -14], [(1,2)(3,4) : -13 -> -14],
1049-
[(1,3)(2,4) : -13 -> -14], [(1,4)(2,3) : -13 -> -14] ]
1047+
[(1,4)(2,3) : -14 -> -14], [() : -11 -> -11], [(1,2)(3,4) : -11 -> -11],
1048+
[(1,3)(2,4) : -11 -> -11], [(1,4)(2,3) : -11 -> -11], [() : -14 -> -13],
1049+
[(1,2)(3,4) : -14 -> -13], [(1,3)(2,4) : -14 -> -13],
1050+
[(1,4)(2,3) : -14 -> -13], [() : -14 -> -12], [(1,2)(3,4) : -14 -> -12],
1051+
[(1,3)(2,4) : -14 -> -12], [(1,4)(2,3) : -14 -> -12], [() : -13 -> -13],
1052+
[(1,2)(3,4) : -13 -> -13], [(1,3)(2,4) : -13 -> -13],
1053+
[(1,4)(2,3) : -13 -> -13], [() : -12 -> -12], [(1,2)(3,4) : -12 -> -12],
1054+
[(1,3)(2,4) : -12 -> -12], [(1,4)(2,3) : -12 -> -12], [() : -13 -> -14],
1055+
[(1,2)(3,4) : -13 -> -14], [(1,3)(2,4) : -13 -> -14],
1056+
[(1,4)(2,3) : -13 -> -14], [() : -13 -> -11], [(1,2)(3,4) : -13 -> -11],
1057+
[(1,3)(2,4) : -13 -> -11], [(1,4)(2,3) : -13 -> -11] ]
10501058
gap> le6 := LeftCoset( Ha4, Jc3, e6 );
10511059
<left coset of Jc3b with representative [(2,4,3) : -13 -> -12]>
10521060
gap> Perform( le6, Display );
@@ -1058,14 +1066,17 @@ gap> Perform( le6, Display );
10581066
[(1,3,2) : -13 -> -12]
10591067
gap> lcra4 := LeftCosetRepresentatives( Ha4, Jc3 );
10601068
[ [() : -14 -> -14], [(1,2)(3,4) : -14 -> -14], [(1,3)(2,4) : -14 -> -14],
1061-
[(1,4)(2,3) : -14 -> -14], [() : -13 -> -14], [(1,2)(3,4) : -13 -> -14],
1062-
[(1,3)(2,4) : -13 -> -14], [(1,4)(2,3) : -13 -> -14], [() : -12 -> -14],
1063-
[(1,2)(3,4) : -12 -> -14], [(1,3)(2,4) : -12 -> -14],
1064-
[(1,4)(2,3) : -12 -> -14], [() : -13 -> -13], [(1,2)(3,4) : -13 -> -13],
1065-
[(1,3)(2,4) : -13 -> -13], [(1,4)(2,3) : -13 -> -13], [() : -12 -> -12],
1066-
[(1,2)(3,4) : -12 -> -12], [(1,3)(2,4) : -12 -> -12],
1067-
[(1,4)(2,3) : -12 -> -12], [() : -14 -> -13], [(1,2)(3,4) : -14 -> -13],
1068-
[(1,3)(2,4) : -14 -> -13], [(1,4)(2,3) : -14 -> -13] ]
1069+
[(1,4)(2,3) : -14 -> -14], [() : -11 -> -11], [(1,2)(3,4) : -11 -> -11],
1070+
[(1,3)(2,4) : -11 -> -11], [(1,4)(2,3) : -11 -> -11], [() : -13 -> -14],
1071+
[(1,2)(3,4) : -13 -> -14], [(1,3)(2,4) : -13 -> -14],
1072+
[(1,4)(2,3) : -13 -> -14], [() : -12 -> -14], [(1,2)(3,4) : -12 -> -14],
1073+
[(1,3)(2,4) : -12 -> -14], [(1,4)(2,3) : -12 -> -14], [() : -13 -> -13],
1074+
[(1,2)(3,4) : -13 -> -13], [(1,3)(2,4) : -13 -> -13],
1075+
[(1,4)(2,3) : -13 -> -13], [() : -12 -> -12], [(1,2)(3,4) : -12 -> -12],
1076+
[(1,3)(2,4) : -12 -> -12], [(1,4)(2,3) : -12 -> -12], [() : -14 -> -13],
1077+
[(1,2)(3,4) : -14 -> -13], [(1,3)(2,4) : -14 -> -13],
1078+
[(1,4)(2,3) : -14 -> -13], [() : -11 -> -13], [(1,2)(3,4) : -11 -> -13],
1079+
[(1,3)(2,4) : -11 -> -13], [(1,4)(2,3) : -11 -> -13] ]
10691080
gap> lcr11 := LeftCosetRepresentativesFromObject( Ha4, Jc3, -12 );
10701081
[ [() : -12 -> -14], [(1,2)(3,4) : -12 -> -14], [(1,3)(2,4) : -12 -> -14],
10711082
[(1,4)(2,3) : -12 -> -14], [() : -12 -> -12], [(1,2)(3,4) : -12 -> -12],

0 commit comments

Comments
 (0)