Skip to content

Commit 29d79b1

Browse files
authored
Merge pull request #77 from gap-packages/my-dev
extensive collection of rewrites
2 parents 679049e + f8743be commit 29d79b1

31 files changed

+3405
-3346
lines changed

CHANGES.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
# CHANGES to the 'groupoids' package
22

3-
## Version 1.81 for GAP 4.15.1 (06/11/25)
3+
## Version 1.81 for GAP 4.15.1 (26/11/25)
4+
* (25/11/25) revised FreeProductWithAmalgamation and HnnExtension
5+
* (21/11/25) revised Families and Types for semigroups/monoids with objects
6+
* (18/11/25) major revision of Left/Right/DoubleCosets, to cope with rays
7+
* (07/11/25) Submagma operations not used or documented, so deleted
48
* (06/11/25) renamed: CosetSuperDomain and CosetActingDomain,
59
RightActionGroupoid -> GroupoidWithMonoidObjects
610
* (05/11/25) renamed GroupoidOfArrow as MWOofArrow and documented it

doc/bib.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@
118118
<school>University of Wales, Bangor</school>
119119
<year>2001</year>
120120
<note>
121-
<URL>http://www.maths.bangor.ac.uk/research/ftp/theses/moore.ps.gz</URL>
121+
<URL>https://research.bangor.ac.uk/en/studentTheses/graphs-of-groups-word-computations-and-free-crossed-resolutions/</URL>
122122
</note>
123123
</phdthesis></entry>
124124

doc/double.xml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ When viewing or printing a square, the boundary element is shown in the centre.
113113
</ManSection>
114114
<Example>
115115
<![CDATA[
116-
gap> [ Size( DGd8 ), (3*8)^4 ];
116+
gap> [ Size(DGd8), (3*8)^4 ];
117117
[ 331776, 331776 ]
118118
gap> a1 := Arrow( Gd8, (5,7), -7, -8 );;
119119
gap> b1 := Arrow( Gd8, (6,8), -7, -7 );;
@@ -147,11 +147,6 @@ true
147147
</Example>
148148

149149

150-
151-
152-
153-
154-
155150
<ManSection>
156151
<Prop Name="IsCommutingSquare"
157152
Arg="sq" />

doc/ggraph.xml

Lines changed: 86 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ so as to produce digraphs of type <C>IsFpWeightedDigraph</C>.
4141
</ManSection>
4242
<Example>
4343
<![CDATA[
44-
gap> V1 := [ 5, 6 ];;
45-
gap> fg1 := FreeGroup( "y" );;
44+
gap> V1 := [7,8];;
45+
gap> fg1 := FreeGroup("y");;
4646
gap> y := fg1.1;;
47-
gap> A1 := [ [ y, 5, 6 ], [ y^-1, 6, 5 ] ];
47+
gap> A1 := [ [y,7,8], [y^-1,8,7]];;
4848
gap> D1 := FpWeightedDigraph( fg1, V1, A1 );
49-
weighted digraph with vertices: [ 5, 6 ]
50-
and arcs: [ [ y, 5, 6 ], [ y^-1, 6, 5 ] ]
49+
weighted digraph with vertices: [ 7, 8 ]
50+
and arcs: [ [ y, 7, 8 ], [ y^-1, 8, 7 ] ]
5151
gap> inv1 := InvolutoryArcs( D1 );
5252
[ 2, 1 ]
5353
]]>
@@ -62,15 +62,15 @@ of each inverse arc in the list of arcs.
6262
In the second example the graph is a complete digraph on three vertices.
6363
<Example>
6464
<![CDATA[
65-
gap> fg3 := FreeGroup( 3, "z" );;
66-
gap> z1 := fg3.1;; z2 := fg3.2;; z3 := fg3.3;;
67-
gap> ob3 := [ 7, 8, 9 ];;
68-
gap> A3 := [[z1,7,8],[z2,8,9],[z3,9,7],[z1^-1,8,7],[z2^-1,9,8],[z3^-1,7,9]];;
65+
gap> fg3 := FreeGroup(3,"z");;
66+
gap> z1:=fg3.1;; z2:=fg3.2;; z3:=fg3.3;;
67+
gap> ob3 := [11,12,13];;
68+
gap> A3 := [[z1,11,12],[z2,12,13],[z3,13,11],[z1^-1,12,11],[z2^-1,13,12],[z3^-1,11,13]];;
6969
gap> D3 := FpWeightedDigraph( fg3, ob3, A3 );
70-
weighted digraph with vertices: [ 7, 8, 9 ]
71-
and arcs: [ [ z1, 7, 8 ], [ z2, 8, 9 ], [ z3, 9, 7 ], [ z1^-1, 8, 7 ],
72-
[ z2^-1, 9, 8 ], [ z3^-1, 7, 9 ] ]
73-
[gap> inob3 := InvolutoryArcs( D3 );
70+
weighted digraph with vertices: [ 11, 12, 13 ]
71+
and arcs: [ [ z1, 11, 12 ], [ z2, 12, 13 ], [ z3, 13, 11 ], [ z1^-1, 12, 11 ],
72+
[ z2^-1, 13, 12 ], [ z3^-1, 11, 13 ] ]
73+
gap> inob3 := InvolutoryArcs( D3 );
7474
[ 4, 5, 6, 1, 2, 3 ]
7575
]]>
7676
</Example>
@@ -162,9 +162,9 @@ gap> ## defining graph of groups G1
162162
gap> G1 := GraphOfGroups( D1, [fa,fb], [homy,homybar] );
163163
Graph of Groups: 2 vertices; 2 arcs; groups [ fa, fb ]
164164
gap> Display( G1 );
165-
Graph of Groups with :-
166-
vertices: [ 5, 6 ]
167-
arcs: [ [ y, 5, 6 ], [ y^-1, 6, 5 ] ]
165+
Graph of Groups with :-
166+
vertices: [ 7, 8 ]
167+
arcs: [ [ y, 7, 8 ], [ y^-1, 8, 7 ] ]
168168
groups: [ fa, fb ]
169169
isomorphisms: [ [ [ a^3 ], [ b^2 ] ], [ [ b^2 ], [ a^3 ] ] ]
170170
gap> IsGraphOfGroups( G1 );
@@ -282,13 +282,13 @@ so the resulting word is a loop at vertex <M>5</M>.
282282
<Example>
283283
<![CDATA[
284284
gap> L1 := [ a^7, 1, b^-6, 2, a^-11, 1, b^9, 2, a^7 ];;
285-
gap> gw1 := GraphOfGroupsWord( G1, 5, L1 );
286-
(5)a^7.y.b^-6.y^-1.a^-11.y.b^9.y^-1.a^7(5)
285+
gap> gw1 := GraphOfGroupsWord( G1, 7, L1 );
286+
(7)a^7.y.b^-6.y^-1.a^-11.y.b^9.y^-1.a^7(7)
287287
gap> IsGraphOfGroupsWord( gw1 );
288288
true
289-
gap> [ TailOfGraphOfGroupsWord(gw1), HeadOfGraphOfGroupsWord(gw1) ];
290-
[ 5, 5 ]
291-
gap> GraphOfGroupsOfWord(gw1);
289+
gap> [ TailOfGraphOfGroupsWord( gw1 ), HeadOfGraphOfGroupsWord( gw1 ) ];
290+
[ 7, 7 ]
291+
gap> GraphOfGroupsOfWord( gw1 );
292292
Graph of Groups: 2 vertices; 2 arcs; groups [ fa, fb ]
293293
gap> WordOfGraphOfGroupsWord( gw1 );
294294
[ a^7, 1, b^-6, 2, a^-11, 1, b^9, 2, a^7 ]
@@ -334,7 +334,7 @@ a^{-1}b^{-1}a^{10}.
334334
<Example>
335335
<![CDATA[
336336
gap> nw1 := ReducedGraphOfGroupsWord( gw1 );
337-
(5)a^-1.y.b^-1.y^-1.a^10(5)
337+
(7)a^-1.y.b^-1.y^-1.a^10(7)
338338
]]>
339339
</Example>
340340
</Section>
@@ -345,7 +345,7 @@ gap> nw1 := ReducedGraphOfGroupsWord( gw1 );
345345

346346
<ManSection>
347347
<Oper Name="FreeProductWithAmalgamation"
348-
Arg="gp1, gp2, iso" />
348+
Arg="gp1, gp2, iso, verts" />
349349
<Attr Name="FreeProductWithAmalgamationInfo"
350350
Arg="fpa" />
351351
<Prop Name="IsFreeProductWithAmalgamation"
@@ -385,34 +385,34 @@ amalgamated over a cyclic subgroup <C>c3</C>.
385385
</ManSection>
386386
<Example>
387387
<![CDATA[
388-
gap> ## set up the first group s3 and a subgroup c3=<a1>
388+
## set up the first group s3 and a subgroup c3=<a1>
389389
gap> fg2 := FreeGroup( 2, "a" );;
390-
gap> rel1 := [ fg2.1^3, fg2.2^2, (fg2.1*fg2.2)^2 ];;
390+
gap> rel1 := [fg2.1^3, fg2.2^2, (fg2.1*fg2.2)^2];;
391391
gap> s3 := fg2/rel1;;
392392
gap> gs3 := GeneratorsOfGroup(s3);;
393-
gap> SetName( s3, "s3" );
394-
gap> a1 := gs3[1];; a2 := gs3[2];;
393+
gap> SetName(s3,"s3");
394+
gap> a1:=gs3[1];; a2:=gs3[2];;
395395
gap> H1 := Subgroup(s3,[a1]);;
396-
gap> ## then the second group a4 and subgroup c3=<b1>
396+
## then the second group a4 and subgroup c3=<b1>
397397
gap> f2 := FreeGroup( 2, "b" );;
398-
gap> rel2 := [ f2.1^3, f2.2^3, (f2.1*f2.2)^2 ];;
398+
gap> rel2 := [f2.1^3, f2.2^3, (f2.1*f2.2)^2];;
399399
gap> a4 := f2/rel2;;
400400
gap> ga4 := GeneratorsOfGroup(a4);;
401-
gap> SetName( a4, "a4" );
402-
gap> b1 := ga4[1]; b2 := ga4[2];;
401+
gap> SetName(a4,"a4");
402+
gap> b1 := ga4[1];; b2:=ga4[2];;
403403
gap> H2 := Subgroup(a4,[b1]);;
404404
gap> ## form the isomorphism and the fpa group
405405
gap> iso := GroupHomomorphismByImages(H1,H2,[a1],[b1]);;
406406
gap> inv := InverseGeneralMapping(iso);;
407-
gap> fpa := FreeProductWithAmalgamation( s3, a4, iso );
407+
gap> fpa := FreeProductWithAmalgamation( s3, a4, iso, [7,8] );
408408
<fp group on the generators [ f1, f2, f3, f4 ]>
409409
gap> RelatorsOfFpGroup( fpa );
410410
[ f1^2, f2^3, (f2*f1)^2, f3^3, f4^3, (f4*f3)^2, f2*f3^-1 ]
411411
gap> gg1 := GraphOfGroupsRewritingSystem( fpa );;
412412
gap> Display( gg1 );
413413
Graph of Groups with :-
414-
vertices: [ 5, 6 ]
415-
arcs: [ [ y, 5, 6 ], [ y^-1, 6, 5 ] ]
414+
vertices: [ 7, 8 ]
415+
arcs: [ [ y, 7, 8 ], [ y^-1, 8, 7 ] ]
416416
groups: [ s3, a4 ]
417417
isomorphisms: [ [ [ a1 ], [ b1 ] ], [ [ b1 ], [ a1 ] ] ]
418418
gap> LeftTransversalsOfGraphOfGroups( gg1 );
@@ -450,11 +450,11 @@ graph of groups rewriting system.
450450
</ManSection>
451451
<Example>
452452
<![CDATA[
453-
gap> fpainfo;
453+
gap> fpainfo := FreeProductWithAmalgamationInfo( fpa );
454454
rec( embeddings := [ [ a2, a1 ] -> [ f1, f2 ], [ b1, b2 ] -> [ f3, f4 ] ],
455455
groups := [ s3, a4 ], isomorphism := [ a1 ] -> [ b1 ],
456456
positions := [ [ 1, 2 ], [ 3, 4 ] ],
457-
subgroups := [ Group([ a1 ]), Group([ b1 ]) ] )
457+
subgroups := [ Group([ a1 ]), Group([ b1 ]) ], vertices := [ 7, 8 ] )
458458
gap> emb2 := Embedding( fpa, 2 );
459459
[ b1, b2 ] -> [ f3, f4 ]
460460
gap> ImageElm( emb2, b1^b2 );
@@ -467,7 +467,7 @@ f4*f3^-1
467467

468468
<ManSection>
469469
<Oper Name="HnnExtension"
470-
Arg="gp, iso" />
470+
Arg="gp, iso, verts" />
471471
<Attr Name="HnnExtensionInfo"
472472
Arg="gp, iso" />
473473
<Prop Name="IsHnnExtension"
@@ -492,20 +492,20 @@ of order 3.
492492
<![CDATA[
493493
gap> H3 := Subgroup(a4,[b2]);;
494494
gap> i23 := GroupHomomorphismByImages( H2, H3, [b1], [b2] );;
495-
gap> hnn := HnnExtension( a4, i23 );
496-
<fp group on the generators [ fe1, fe2, fe3 ]>
495+
gap> hnn := HnnExtension( a4, i23, [9] );
496+
<fp group of size infinity on the generators [ fe1, fe2, fe3 ]>
497497
gap> phnn := PresentationFpGroup( hnn );;
498498
gap> TzPrint( phnn );
499499
#I generators: [ fe1, fe2, fe3 ]
500500
#I relators:
501501
#I 1. 3 [ 1, 1, 1 ]
502502
#I 2. 3 [ 2, 2, 2 ]
503503
#I 3. 4 [ 1, 2, 1, 2 ]
504-
#I 4. 4 [ -3, 1, 3, -2 ]
504+
#I 4. 4 [ -3, 1, 3, -2 ]
505505
gap> gg2 := GraphOfGroupsRewritingSystem( hnn );
506506
Graph of Groups: 1 vertices; 2 arcs; groups [ a4 ]
507507
gap> LeftTransversalsOfGraphOfGroups( gg2 );
508-
[ [ <identity ...>, b2^-1, b1^-1*b2^-1, b1*b2^-1 ],
508+
[ [ <identity ...>, b2^-1, b1^-1*b2^-1, b1*b2^-1 ],
509509
[ <identity ...>, b1^-1, b1, b2^-1*b1 ] ]
510510
gap> gh := GeneratorsOfGroup( hnn );;
511511
gap> w3 := (gh[1]^gh[2])*gh[3]^-1*(gh[1]*gh[3]*gh[2]^2)^2*gh[3]*gh[2];
@@ -524,7 +524,7 @@ storing the group, subgroups and isomorphism involved in their construction.
524524
gap> hnninfo := HnnExtensionInfo( hnn );
525525
rec( embeddings := [ [ b1, b2 ] -> [ fe1, fe2 ] ], group := a4,
526526
isomorphism := [ b1 ] -> [ b2 ],
527-
subgroups := [ Group([ b1 ]), Group([ b2 ]) ] )
527+
subgroups := [ Group([ b1 ]), Group([ b2 ]) ], vertices := [ 9 ] )
528528
gap> emb := Embedding( hnn, 1 );
529529
[ b1, b2 ] -> [ fe1, fe2 ]
530530
gap> ImageElm( emb, b1^b2 );
@@ -580,51 +580,51 @@ on one generator, and full subgroupoids with groups
580580
</ManSection>
581581
<Example>
582582
<![CDATA[
583-
gap> Gfa := SinglePieceGroupoid( fa, [-2,-1] );;
583+
gap> Gfa := SinglePieceGroupoid( fa, [-4,-3] );;
584584
gap> ofa := One( fa );;
585585
gap> SetName( Gfa, "Gfa" );
586-
gap> Uhy := Subgroupoid( Gfa, [ [ hy, [-2,-1] ] ] );;
586+
gap> Uhy := Subgroupoid( Gfa, [ [ hy, [-4,-3] ] ] );;
587587
gap> SetName( Uhy, "Uhy" );
588-
gap> Gfb := SinglePieceGroupoid( fb, [-4,-3] );;
588+
gap> Gfb := SinglePieceGroupoid( fb, [-6,-5] );;
589589
gap> ofb := One( fb );;
590590
gap> SetName( Gfb, "Gfb" );
591-
gap> Uhybar := Subgroupoid( Gfb, [ [ hybar, [-4,-3] ] ] );;
591+
gap> Uhybar := Subgroupoid( Gfb, [ [ hybar, [-6,-5] ] ] );;
592592
gap> SetName( Uhybar, "Uhybar" );
593593
gap> gens := GeneratorsOfGroupoid( Uhy );;
594594
gap> gensbar := GeneratorsOfGroupoid( Uhybar );;
595595
gap> mory := GroupoidHomomorphismFromSinglePiece(
596596
> Uhy, Uhybar, gens, gensbar );
597597
groupoid homomorphism : Uhy -> Uhybar
598-
[ [ [a^3 : -2 -> -2], [<identity ...> : -2 -> -1] ],
599-
[ [b^2 : -4 -> -4], [<identity ...> : -4 -> -3] ] ]
598+
[ [ [a^3 : -4 -> -4], [<identity ...> : -4 -> -3] ],
599+
[ [b^2 : -6 -> -6], [<identity ...> : -6 -> -5] ] ]
600600
gap> morybar := InverseGeneralMapping( mory );
601601
groupoid homomorphism : Uhybar -> Uhy
602-
[ [ [b^2 : -4 -> -4], [<identity ...> : -4 -> -3] ],
603-
[ [a^3 : -2 -> -2], [<identity ...> : -2 -> -1] ] ]
602+
[ [ [b^2 : -6 -> -6], [<identity ...> : -6 -> -5] ],
603+
[ [a^3 : -4 -> -4], [<identity ...> : -4 -> -3] ] ]
604604
gap> gg3 := GraphOfGroupoids( D1, [Gfa,Gfb], [Uhy,Uhybar], [mory,morybar] );;
605605
gap> Display( gg3 );
606606
Graph of Groupoids with :-
607-
vertices: [ 5, 6 ]
608-
arcs: [ [ y, 5, 6 ], [ y^-1, 6, 5 ] ]
607+
vertices: [ 7, 8 ]
608+
arcs: [ [ y, 7, 8 ], [ y^-1, 8, 7 ] ]
609609
groupoids:
610610
fp single piece groupoid: Gfa
611-
objects: [ -2, -1 ]
611+
objects: [ -4, -3 ]
612612
group: fa = <[ a ]>
613613
fp single piece groupoid: Gfb
614-
objects: [ -4, -3 ]
614+
objects: [ -6, -5 ]
615615
group: fb = <[ b ]>
616616
subgroupoids: single piece groupoid: Uhy
617-
objects: [ -2, -1 ]
617+
objects: [ -4, -3 ]
618618
group: hy = <[ a^3 ]>
619619
single piece groupoid: Uhybar
620-
objects: [ -4, -3 ]
620+
objects: [ -6, -5 ]
621621
group: hybar = <[ b^2 ]>
622622
isomorphisms: [ groupoid homomorphism : Uhy -> Uhybar
623-
[ [ [a^3 : -2 -> -2], [<identity ...> : -2 -> -1] ],
624-
[ [b^2 : -4 -> -4], [<identity ...> : -4 -> -3] ] ],
623+
[ [ [a^3 : -4 -> -4], [<identity ...> : -4 -> -3] ],
624+
[ [b^2 : -6 -> -6], [<identity ...> : -6 -> -5] ] ],
625625
groupoid homomorphism : Uhybar -> Uhy
626-
[ [ [b^2 : -4 -> -4], [<identity ...> : -4 -> -3] ],
627-
[ [a^3 : -2 -> -2], [<identity ...> : -2 -> -1] ] ] ]
626+
[ [ [b^2 : -6 -> -6], [<identity ...> : -6 -> -5] ],
627+
[ [a^3 : -4 -> -4], [<identity ...> : -4 -> -3] ] ] ]
628628
gap> IsGraphOfGroupoids( gg3 );
629629
true
630630
]]>
@@ -659,53 +659,54 @@ Compare the normal form <C>nw3</C> below with the normal form <C>nw1</C> above.
659659
</ManSection>
660660
<Example>
661661
<![CDATA[
662-
gap> f1 := Arrow( Gfa, a^7, -1, -2);;
663-
gap> f2 := Arrow( Gfb, b^-6, -4, -4 );;
664-
gap> f3 := Arrow( Gfa, a^-11, -2, -1 );;
665-
gap> f4 := Arrow( Gfb, b^9, -3, -4 );;
666-
gap> f5 := Arrow( Gfa, a^7, -2, -2 );;
662+
gap> f1 := Arrow( Gfa, a^7, -3, -4);;
663+
gap> f2 := Arrow( Gfb, b^-6, -6, -6 );;
664+
gap> f3 := Arrow( Gfa, a^-11, -4, -3 );;
665+
gap> f4 := Arrow( Gfb, b^9, -5, -6 );;
666+
gap> f5 := Arrow( Gfa, a^7, -4, -3 );;
667667
gap> L3 := [ f1, 1, f2, 2, f3, 1, f4, 2, f5 ];
668-
[ [a^7 : -1 -> -2], 1, [b^-6 : -4 -> -4], 2, [a^-11 : -2 -> -1], 1,
669-
[b^9 : -3 -> -4], 2, [a^7 : -2 -> -2] ]
670-
gap> gw3 := GraphOfGroupoidsWord( gg3, 5, L3);
671-
(5)[a^7 : -1 -> -2].y.[b^-6 : -4 -> -4].y^-1.[a^-11 : -2 -> -1].y.[b^9 :
672-
-3 -> -4].y^-1.[a^7 : -2 -> -2](5)
668+
[ [a^7 : -3 -> -4], 1, [b^-6 : -6 -> -6], 2, [a^-11 : -4 -> -3], 1,
669+
[b^9 : -5 -> -6], 2, [a^7 : -4 -> -3] ]
670+
gap> gw3 := GraphOfGroupoidsWord( gg3, 7, L3);
671+
(7)[a^7 : -3 -> -4].y.[b^-6 : -6 -> -6].y^-1.[a^-11 : -4 -> -3].y.[b^9 :
672+
-5 -> -6].y^-1.[a^7 : -4 -> -3](7)
673673
gap> nw3 := ReducedGraphOfGroupoidsWord( gw3 );
674-
(5)[a^-1 : -1 -> -1].y.[b^-1 : -3 -> -3].y^-1.[a^10 : -1 -> -2](5)
674+
(7)[a^-1 : -3 -> -3].y.[b^-1 : -5 -> -6].y^-1.[a^10 : -4 -> -3](7)
675675
]]>
676676
</Example>
677677

678678
The reduction proceeds as follows.
679679
<List>
680680
<Item>
681-
<M> [a^7 : -1 \to -2] = [a^{-2} : -1 \to -1]*[a^9 : -1 \to -2]
682-
\stackrel{y}{\to} [a^{-2} : -1 \to -1]*[b^6 : -3 \to -4] </M>
681+
<M> [a^7 : -3 \to -4] = [a^{-2} : -3 \to -4]*[a^9 : -4 \to -4]
682+
\stackrel{y}{\to} [a^{-2} : -3 \to -4]*[b^6 : -6 \to -6] </M>
683+
</Item>
684+
<Item>
685+
<M> [b^6 : -6 \to -6]*[b^{-6} : -6 \to -6] = [\mathrm{id} : -6 \to -6]
686+
\stackrel{\bar{y}}{\to} [\mathrm{id} : -4 \to -4] </M>
683687
</Item>
684688
<Item>
685-
<M> [b^6 : -3 \to -4]*[b^{-6} : -4 \to -4] = [\mathrm{id} : -3 \to -4]
686-
\stackrel{\bar{y}}{\to} [\mathrm{id} : -1 \to -2] </M>
689+
<M> [a^{-2} : -3 \to -4]*[\mathrm{id} : -4 \to -4]*[a^{-11} : -4 \to -3]
690+
= [a^{-13} : -3 \to -3] </M>
687691
</Item>
688692
<Item>
689-
<M> [a^{-2} : -1 \to -1]*[\mathrm{id} : -1 \to -2]*[a^{-11} : -2 \to -1]
690-
= [a^{-13} : -1 \to -1] </M>
693+
<M> [a^{-13} : -3 \to -3] = [a^{-1} : -3 \to -3]*[a^{-12} : -3 \to -3]
694+
\stackrel{y}{\to} [a^{-1} : -3 \to -3]*[b^{-8} : -5 \to -5] </M>
691695
</Item>
692696
<Item>
693-
<M> [a^{-13} : -1 \to -1] = [a^{-1} : -1 \to -1]*[a^{-12} : -1 \to -1]
694-
\stackrel{y}{\to} [a^{-1} : -1 \to -1]*[b^{-8} : -3 \to -3] </M>
697+
<M> [b^{-8} : -5 \to -5]*[b^9 : -5 \to -6]
698+
= [b^{-1} : -5 \to -6]*[b^2 : -6 \to -6] </M>
695699
</Item>
696700
<Item>
697-
<M> [b^{-8} : -3 \to -3]*[b^9 : -3 \to -4]
698-
= [b^{-1} : -3 \to -3]*[b^2 : -3 \to -4]
699-
\stackrel{\bar{y}}{\to} [b^{-1} : -3 \to -3]*[a^3 : -1 \to -2] </M>
701+
<M> [b^2 : -6 \to -6] \stackrel{\bar{y}}{\to} [a^3 : -4 \to -4] </M>
700702
</Item>
701703
<Item>
702-
<M> [a^3 := -1 \to -2]*[a^7 : -2 \to -2] = [a^{10} : -1 \to -2] </M>
704+
<M> [a^3 := -4 \to -4]*[a^7 : -4 \to -3] = [a^{10} : -4 \to -3] </M>
703705
</Item>
704706
</List>
705707

706708
So the resulting word is
707-
<M>~(a^{-1} : -1, -1)(b^{-1} : -3, -3)(a^{10} : -1, -2)</M>.
708-
Notice that all the arrows except the final one are loops.
709+
<M>~[a^{-1} : -3, -3][b^{-1} : -5, -6][a^{10} : -4, -3]</M>.
709710
</Section>
710711

711712
</Chapter>

0 commit comments

Comments
 (0)