GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
<!-- #################################################################### -->1<!-- ## ## -->2<!-- ## examples.xml RCWA documentation Stefan Kohl ## -->3<!-- ## ## -->4<!-- #################################################################### -->56<Chapter Label="ch:Examples"><Heading>Examples</Heading>78<Ignore Remark="settings for the example tester">9<Example>10<![CDATA[11gap> SizeScreen([75,24]);;12gap> SetAssertionLevel(0);13]]>14</Example>15</Ignore>1617This chapter discusses a number of examples of rcwa mappings18and -groups in detail. All of them show different aspects of the package,19and the order in which they appear is entirely arbitrary. In particular20they are not ordered by degree of difficulty or interest. <P/>2122<Index Key="LoadRCWAExamples"><C>LoadRCWAExamples</C></Index>23<Index Key="AssignGlobals"><C>AssignGlobals</C></Index>2425The rcwa mappings, rcwa groups and other objects defined in this chapter can26be found in the file <F>pkg/rcwa/examples/examples.g</F>. This file can be27read into the current &GAP; session by the function28<Ref Func="LoadRCWAExamples"/> which takes no arguments and returns the name29of a variable which the record containing the examples got assigned to.30The global variable assignments made in a section of this chapter can be31made by applying the function <C>AssignGlobals</C> to the respective32component of the examples record. The component names are given at the end33of the corresponding sections. <P/>3435The discussions of the examples are typically far from being exhaustive.36It is quite likely that in many instances by just a few little modifications37or additional easy commands you can find out interesting things yourself38-- have fun!3940<!-- #################################################################### -->4142<Section Label="sec:ThompsonsGroupV">43<Heading>44Thompson's group V45</Heading>4647Thompson's group V, also known as Higman-Thompson group, is a finitely48presented infinite simple group. This group has been found by Graham Higman,49cf. <Cite Key="Higman74"/>. We show that the group5051<Example>52<![CDATA[53gap> G := Group(List([[0,2,1,4],[0,4,1,4],[1,4,2,4],[2,4,3,4]],54> ClassTransposition));55<(0(2),1(4)),(0(4),1(4)),(1(4),2(4)),(2(4),3(4))>56]]>57</Example>5859is isomorphic to Thompson's group V.60This isomorphism has been pointed out by John P. McDermott.61We take a slightly different set of generators:6263<Example>64<![CDATA[65gap> k := ClassTransposition(0,2,1,2);;66gap> l := ClassTransposition(1,2,2,4);;67gap> m := ClassTransposition(0,2,1,4);;68gap> n := ClassTransposition(1,4,2,4);;69gap> H := Group(k,l,m,n);70<(0(2),1(2)),(1(2),2(4)),(0(2),1(4)),(1(4),2(4))>71gap> G = H; # k, l, m and n generate G as well72true73]]>74</Example>7576Now we verify that our four generators satisfy the relations given on77page 50 in <Cite Key="Higman74"/>, when we read <C>k</C>78as <M>\kappa</M>, <C>l</C> as <M>\lambda</M>, <C>m</C>79as <M>\mu</M> and <C>n</C> as <M>\nu</M>:8081<Example>82<![CDATA[83gap> HigmanThompsonRels :=84> [ k^2, l^2, m^2, n^2, # (1) in Higman's book85> l*k*m*k*l*n*k*n*m*k*l*k*m, # (2) "86> k*n*l*k*m*n*k*l*n*m*n*l*n*m, # (3) "87> (l*k*m*k*l*n)^3, (m*k*l*k*m*n)^3, # (4) "88> (l*n*m)^2*k*(m*n*l)^2*k, # (5) "89> (l*n*m*n)^5, # (6) "90> (l*k*n*k*l*n)^3*k*n*k*(m*k*n*k*m*n)^3*k*n*k*n,# (7) "91> ((l*k*m*n)^2*(m*k*l*n)^2)^3, # (8) "92> (l*n*l*k*m*k*m*n*l*n*m*k*m*k)^4, # (9) "93> (m*n*m*k*l*k*l*n*m*n*l*k*l*k)^4, #(10) "94> (l*m*k*l*k*m*l*k*n*k)^2, #(11) "95> (m*l*k*m*k*l*m*k*n*k)^2 ]; #(12) "96[ IdentityMapping( Integers ), IdentityMapping( Integers ),97IdentityMapping( Integers ), IdentityMapping( Integers ),98IdentityMapping( Integers ), IdentityMapping( Integers ),99IdentityMapping( Integers ), IdentityMapping( Integers ),100IdentityMapping( Integers ), IdentityMapping( Integers ),101IdentityMapping( Integers ), IdentityMapping( Integers ),102IdentityMapping( Integers ), IdentityMapping( Integers ),103IdentityMapping( Integers ), IdentityMapping( Integers ) ]104]]>105</Example>106107We conclude that our group is an homomorphic image of Thompson's group V.108But since Thompson's group V is simple and our group is not trivial,109this means indeed that the two groups are isomorphic. <P/>110111In fact it is straightforward to show that <C>G</C> is the group112<C>CT([2],Integers)</C> which is generated by the set of all113class transpositions which interchange residue classes modulo powers114of 2. First we check that <C>G</C> contains all 11 class115transpositions which interchange residue classes modulo 2 or 4:116117<Example>118<![CDATA[119gap> S := Filtered(List(ClassPairs(4),ClassTransposition),120> ct->Mod(ct) in [2,4]);121[ ( 0(2), 1(2) ), ( 0(2), 1(4) ), ( 0(2), 3(4) ), ( 0(4), 1(4) ),122( 0(4), 2(4) ), ( 0(4), 3(4) ), ( 1(2), 0(4) ), ( 1(2), 2(4) ),123( 1(4), 2(4) ), ( 1(4), 3(4) ), ( 2(4), 3(4) ) ]124gap> IsSubset(G,S);125true126]]>127</Example>128129Then we give a function which takes a class transposition130<M>\tau \in {\rm CT}_\emptyset(&ZZ;)</M>, and which returns131a factorization of an element <M>\gamma</M> satisfying132<M>\tau^\gamma \in S</M> into <M>g_1 := \tau_{0(2),1(4)} \in S</M>,133<M>g_2 := \tau_{0(2),3(4)} \in S</M>, <M>g_3 := \tau_{1(2),0(4)} \in S</M>,134<M>g_4 := \tau_{1(2),2(4)} \in S</M>, <M>h_1 := \tau_{0(4),1(4)} \in S</M>135and <M>h_2 := \tau_{1(4),2(4)} \in S</M>:136137<Listing Type="GAP code">138<![CDATA[139ReducingConjugator := function ( tau )140141local w, F, g1, g2, g3, g4, h1, h2, h, cls, cl, r;142143g1 := ClassTransposition(0,2,1,4); h1 := ClassTransposition(0,4,1,4);144g2 := ClassTransposition(0,2,3,4); h2 := ClassTransposition(1,4,2,4);145g3 := ClassTransposition(1,2,0,4);146g4 := ClassTransposition(1,2,2,4);147148F := FreeGroup("g1","g2","g3","g4","h1","h2");149150w := One(F); if Mod(tau) <= 4 then return w; fi;151152# Before we can reduce the moduli of the interchanged residue classes,153# we must make sure that both of them have at least modulus 4.154cls := TransposedClasses(tau);155if Mod(cls[1]) = 2 then156if Residue(cls[1]) = 0 then157if Residue(cls[2]) mod 4 = 1 then tau := tau^g2; w := w * F.2;158else tau := tau^g1; w := w * F.1; fi;159else160if Residue(cls[2]) mod 4 = 0 then tau := tau^g4; w := w * F.4;161else tau := tau^g3; w := w * F.3; fi;162fi;163fi;164165while Mod(tau) > 4 do # Now we can successively reduce the moduli.166if not ForAny(AllResidueClassesModulo(2),167cl -> IsEmpty(Intersection(cl,Support(tau))))168then169cls := TransposedClasses(tau);170h := Filtered([h1,h2],171hi->Length(Filtered(cls,cl->IsSubset(Support(hi),cl)))=1);172h := h[1]; tau := tau^h;173if h = h1 then w := w * F.5; else w := w * F.6; fi;174fi;175cl := TransposedClasses(tau)[2]; # class with larger modulus176r := Residue(cl);177if r mod 4 = 1 then tau := tau^g1; w := w * F.1;178elif r mod 4 = 3 then tau := tau^g2; w := w * F.2;179elif r mod 4 = 0 then tau := tau^g3; w := w * F.3;180elif r mod 4 = 2 then tau := tau^g4; w := w * F.4; fi;181od;182183return w;184end;185]]>186</Listing>187188After assigning <C>g1</C>, <C>g2</C>, <C>g3</C>, <C>g4</C>, <C>h1</C>189and <C>h2</C> appropriately, we obtain for example:190191<Listing Type="Example">192<![CDATA[193gap> ReducingConjugator(ClassTransposition(3,16,34,256));194h2*g1*h1*g1*h1*g1*h1*g1*h2*g2*h2*g4*h2*g4*h2*g3195gap> gamma := h2*g1*h1*g1*h1*g1*h1*g1*h2*g2*h2*g4*h2*g4*h2*g3;196<rcwa permutation of Z with modulus 256>197gap> ct := ClassTransposition(3,16,34,256)^gamma;;198gap> IsClassTransposition(ct);;199gap> ct;200ClassTransposition(1,4,2,4)201]]>202</Listing>203204Thompson's group V can also be embedded in a natural way into CT(GF(2)[x]):205206<Example>207<![CDATA[208gap> x := Indeterminate(GF(2));; SetName(x,"x");209gap> R := PolynomialRing(GF(2),1);;210gap> k := ClassTransposition(0,x,1,x);;211gap> l := ClassTransposition(1,x,x,x^2);;212gap> m := ClassTransposition(0,x,1,x^2);;213gap> n := ClassTransposition(1,x^2,x,x^2);;214gap> G := Group(k,l,m,n);215<rcwa group over GF(2)[x] with 4 generators>216]]>217</Example>218219The correctness of this representation can likewise be verified by simply220checking the defining relations given above. <P/>221222Enter <C>AssignGlobals(LoadRCWAExamples().HigmanThompson);</C>223in order to assign the global variables defined in this section.224225</Section>226227<!-- #################################################################### -->228229<Section Label="sec:FactoringTheCollatzPermutation">230<Heading>231Factoring Collatz' permutation of the integers232</Heading>233234In 1932, Lothar Collatz mentioned in his notebook the following permutation235of the integers:236237<Example>238<![CDATA[239gap> Collatz := RcwaMapping([[2,0,3],[4,-1,3],[4,1,3]]);;240gap> Display(Collatz);241242Rcwa mapping of Z with modulus 3243244/245| 2n/3 if n in 0(3)246n |-> < (4n-1)/3 if n in 1(3)247| (4n+1)/3 if n in 2(3)248\249250gap> ShortCycles(Collatz,[-50..50],50); # There are some finite cycles:251[ [ 0 ], [ -1 ], [ 1 ], [ 2, 3 ], [ -2, -3 ], [ 4, 5, 7, 9, 6 ],252[ -4, -5, -7, -9, -6 ],253[ 44, 59, 79, 105, 70, 93, 62, 83, 111, 74, 99, 66 ],254[ -44, -59, -79, -105, -70, -93, -62, -83, -111, -74, -99, -66 ] ]255]]>256</Example>257258The cycle structure of Collatz' permutation has not been completely259determined yet. In particular it is not known whether the cycle260containing 8 is finite or infinite.261Nevertheless, the factorization routine included in this package can262determine a factorization of this permutation into class transpositions,263i.e. involutions interchanging two disjoint residue classes:264265<Example>266<![CDATA[267gap> Collatz in CT(Integers); # `Collatz' lies in the simple group CT(Z).268true269gap> Length(Factorization(Collatz));270212271]]>272</Example>273274Setting the Info level of <C>InfoRCWA</C> equal to 2 (simply issue275<C>RCWAInfo(2);</C>) causes the factorization routine to display detailed276information on the progress of the factoring process. For reasons of saving277space, this is not done in this manual. <P/>278279We would like to get a factorization into fewer factors. Firstly, we try280to factor the inverse -- just like the various options interpreted by the281factorization routine, this has influence on decisions taken during the282factoring process:283284<Example>285<![CDATA[286gap> Length(Factorization(Collatz^-1));287129288]]>289</Example>290291This is already a shorter product, but can still be improved.292We remember the <C>mKnot</C>'s, of which the permutation <C>mKnot(3)</C>293looks very similar to Collatz' permutation. Therefore it is straightforward294to try to factor both <C>mKnot(3)</C> and <C>Collatz/mKnot(3)</C>, and to295look whether the sum of the numbers of factors is less than 129:296297<Example>298<![CDATA[299gap> KnotFacts := Factorization(mKnot(3));;300gap> QuotFacts := Factorization(Collatz/mKnot(3));;301gap> List([KnotFacts,QuotFacts],Length);302[ 59, 9 ]303gap> CollatzFacts := Concatenation(QuotFacts,KnotFacts);304[ ( 0(6), 4(6) ), ( 0(6), 5(6) ), ( 0(6), 3(6) ), ( 0(6), 1(6) ),305( 0(6), 2(6) ), ( 2(3), 4(6) ), ( 0(3), 4(6) ), ( 2(3), 1(6) ),306( 0(3), 1(6) ), ( 0(36), 35(36) ), ( 0(36), 22(36) ),307( 0(36), 18(36) ), ( 0(36), 17(36) ), ( 0(36), 14(36) ),308( 0(36), 20(36) ), ( 0(36), 4(36) ), ( 2(36), 8(36) ),309( 2(36), 16(36) ), ( 2(36), 13(36) ), ( 2(36), 9(36) ),310( 2(36), 7(36) ), ( 2(36), 6(36) ), ( 2(36), 3(36) ),311( 2(36), 10(36) ), ( 2(36), 15(36) ), ( 2(36), 12(36) ),312( 2(36), 5(36) ), ( 21(36), 28(36) ), ( 21(36), 33(36) ),313( 21(36), 30(36) ), ( 21(36), 23(36) ), ( 21(36), 34(36) ),314( 21(36), 31(36) ), ( 21(36), 27(36) ), ( 21(36), 25(36) ),315( 21(36), 24(36) ), ( 26(36), 32(36) ), ( 26(36), 29(36) ),316( 10(18), 35(36) ), ( 5(18), 35(36) ), ( 10(18), 17(36) ),317( 5(18), 17(36) ), ( 8(12), 14(24) ), ( 6(9), 17(18) ),318( 3(9), 17(18) ), ( 0(9), 17(18) ), ( 6(9), 16(18) ), ( 3(9), 16(18) ),319( 0(9), 16(18) ), ( 6(9), 11(18) ), ( 3(9), 11(18) ), ( 0(9), 11(18) ),320( 6(9), 4(18) ), ( 3(9), 4(18) ), ( 0(9), 4(18) ), ( 0(6), 14(24) ),321( 0(6), 2(24) ), ( 8(12), 17(18) ), ( 7(12), 17(18) ),322( 8(12), 11(18) ), ( 7(12), 11(18) ), PrimeSwitch(3)^-1,323( 7(12), 17(18) ), ( 2(6), 17(18) ), ( 0(3), 17(18) ),324PrimeSwitch(3)^-1, PrimeSwitch(3)^-1, PrimeSwitch(3)^-1 ]325gap> Product(CollatzFacts) = Collatz; # Check.326true327]]>328</Example>329330The factors <C>PrimeSwitch(3)</C> are products of 6 class transpositions331(cf. <Ref Func="PrimeSwitch" Label="p"/>). <P/>332333Enter <C>AssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>334in order to assign the global variables defined in this section.335336</Section>337338<!-- #################################################################### -->339340<Section Label="sec:3nplus1Group">341<Heading>342The <M>3n+1</M> group343</Heading>344345The following group acts transitively on the set of positive integers346for which the <M>3n+1</M> conjecture holds and which are not divisible by 6:347348<Example>349<![CDATA[350gap> a := ClassTransposition(1,2,4,6);;351gap> b := ClassTransposition(1,3,2,6);;352gap> c := ClassTransposition(2,3,4,6);;353gap> G := Group(a,b,c);354<(1(2),4(6)),(1(3),2(6)),(2(3),4(6))>355gap> LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions();356"3CTsGroups6"357gap> 3CTsGroups6.Id3CTsGroup(G,3CTsGroups6.grps); # 'catalogue number' of G35844132359]]>360</Example>361362To see this, consider the action of <M>G</M> on the <Q><M>3n+1</M> tree</Q>.363The vertices of this tree are the positive integers for which the <M>3n+1</M>364conjecture holds, and for every vertex <M>n</M> there is an edge from365<M>n</M> to <M>T(n)</M>, where <M>T</M> denotes the Collatz mapping366<Alt Only="LaTeX">367<Display>368<![CDATA[T: \ \ \mathbb{Z} \longrightarrow \mathbb{Z}, \ \ \ \369n \ \longmapsto \370\begin{cases}371\frac{n}{2} & \text{if} \ \ n \ \ \text{is even}, \\372\frac{3n+1}{2} & \text{if} \ \ n \ \ \text{is odd}373\end{cases}]]>374</Display>375</Alt>376<Alt Only="HTML"><![CDATA[<center>377<img src = "collatz.png" width = "342" height = "63"378alt = "T: Z -> Z, n |-> (n/2 if n even, (3n+1)/2 if n odd)"/>379</center>]]></Alt>380<Alt Only="Text"><Verb><![CDATA[381/382| n/2 if n even,383T: Z -> Z, n |-> <384| (3n+1)/2 if n odd385\386]]></Verb></Alt>387(cf. Chapter <Ref Label="ch:AboutRCWA"/>).388It is easy to check that for every vertex <M>n</M>, either <M>a</M>,389<M>b</M> or <M>c</M> maps <M>n</M> to <M>T(n)</M>, and that the390other two generators either fix <M>n</M> or map it to one of its391preimages under <M>T</M>.392So the <M>3n+1</M> conjecture is equivalent to the assertion that the393group <M>G</M> acts transitively on <M>\mathbb{N} \setminus 0(6)</M>.394First let's have a look at balls of small radius about 1 under the395action of <M>G</M> -- these consist of those numbers whose trajectory396under <M>T</M> reaches 1 quickly:397398<Example>399<![CDATA[400gap> Ball(G,1,5,OnPoints);401[ 1, 2, 4, 5, 8, 10, 16, 32, 64 ]402gap> Ball(G,1,10,OnPoints);403[ 1, 2, 3, 4, 5, 8, 10, 13, 16, 20, 21, 26, 32, 40, 52, 53, 64, 80, 85,404128, 160, 170, 256, 320, 340, 341, 512, 1024, 2048 ]405gap> Ball(G,1,15,OnPoints);406[ 1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 26, 32, 34,40735, 40, 44, 45, 46, 52, 53, 64, 68, 69, 70, 75, 80, 85, 104, 106, 113,408128, 136, 140, 141, 151, 160, 170, 208, 212, 213, 226, 227, 256, 272,409277, 280, 301, 302, 320, 340, 341, 416, 424, 452, 453, 454, 512, 640,410680, 682, 832, 848, 853, 904, 908, 909, 1024, 1280, 1360, 1364, 1365,4111664, 1696, 1706, 1808, 1813, 1816, 2048, 2560, 2720, 2728, 4096,4125120, 5440, 5456, 5461, 8192, 10240, 10880, 10912, 10922, 16384,41332768, 65536 ]414gap> Ball(G,1,15,OnPoints:Spheres);415[ [ 1 ], [ 2, 4 ], [ 8 ], [ 16 ], [ 5, 32 ], [ 10, 64 ],416[ 3, 20, 21, 128 ], [ 40, 256 ], [ 13, 80, 85, 512 ],417[ 26, 160, 170, 1024 ], [ 52, 53, 320, 340, 341, 2048 ],418[ 17, 104, 106, 113, 640, 680, 682, 4096 ],419[ 34, 35, 208, 212, 213, 226, 227, 1280, 1360, 1364, 1365, 8192 ],420[ 11, 68, 69, 70, 75, 416, 424, 452, 453, 454, 2560, 2720, 2728, 16384421],422[ 22, 23, 136, 140, 141, 151, 832, 848, 853, 904, 908, 909, 5120,4235440, 5456, 5461, 32768 ],424[ 7, 44, 45, 46, 272, 277, 280, 301, 302, 1664, 1696, 1706, 1808,4251813, 1816, 10240, 10880, 10912, 10922, 65536 ] ]426gap> List(Ball(G,1,50,OnPoints:Spheres),Length);427[ 1, 2, 1, 1, 2, 2, 4, 2, 4, 4, 6, 8, 12, 14, 17, 20, 26, 32, 43, 52,42866, 81, 104, 133, 170, 211, 271, 335, 424, 542, 686, 873, 1096, 1376,4291730, 2205, 2794, 3522, 4429, 5611, 7100, 8978, 11343, 14296, 18058,43022828, 28924, 36532, 46146, 58399, 73713 ]431gap> FloatQuotientsList(last);432[ 2., 0.5, 1., 2., 1., 2., 0.5, 2., 1., 1.5, 1.33333, 1.5, 1.16667,4331.21429, 1.17647, 1.3, 1.23077, 1.34375, 1.2093, 1.26923, 1.22727,4341.28395, 1.27885, 1.2782, 1.24118, 1.28436, 1.23616, 1.26567, 1.2783,4351.26568, 1.27259, 1.25544, 1.25547, 1.25727, 1.27457, 1.26712,4361.26056, 1.25752, 1.26688, 1.26537, 1.26451, 1.26342, 1.26034,4371.26315, 1.26415, 1.26704, 1.26303, 1.26317, 1.26553, 1.26223 ]438gap> Difference(Filtered([1..100],n->n mod 6 <> 0),Ball(G,1,40,OnPoints));439[ 27, 31, 41, 47, 55, 62, 63, 71, 73, 82, 83, 91, 94, 95, 97 ]440gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;441gap> List(last2,n->Length(Trajectory(T,n,[1])));442[ 71, 68, 70, 67, 72, 69, 69, 66, 74, 71, 71, 60, 68, 68, 76 ]443]]>444</Example>445446It is convenient to define an epimorphism from the free group of rank 3447to <M>G</M>:448449<Example>450<![CDATA[451gap> F := FreeGroup("a","b","c");452<free group on the generators [ a, b, c ]>453gap> phi := EpimorphismByGenerators(F,G);454[ a, b, c ] -> [ ( 1(2), 4(6) ), ( 1(3), 2(6) ), ( 2(3), 4(6) ) ]455]]>456</Example>457458We can compute balls about 1 in <M>G</M>:459460<Example>461<![CDATA[462gap> B := Ball(G,One(G),7:Spheres);;463gap> List(B,Length);464[ 1, 3, 6, 12, 24, 48, 96, 192 ]465gap> List(B[3],Order);466[ 12, infinity, infinity, infinity, infinity, 12 ]467gap> List(B[3],g->PreImagesRepresentative(phi,g));468[ b*a, c*b, c*a, b*c, a*c, a*b ]469gap> g := a*b;; Order(g);;470gap> Display(g);471472Rcwa permutation of Z with modulus 18, of order 12473474( 1(6), 8(36), 4(18), 2(12) ) ( 3(6), 20(36), 10(18) )475( 5(6), 32(36), 16(18) )476477]]>478</Example>479480Spending some more time to compute <C>B := Ball(G,One(G),12:Spheres);;</C>,481one can check that <M>(ab)^{12}</M> is the shortest word in the generators482of <M>G</M> which does not represent the identity in the free product of4833 cyclic groups of order 2, but which represents the identity in <M>G</M>.484However, the group <M>G</M> has elements of other finite orders as well --485for example:486487<Example>488<![CDATA[489gap> g := (b*a)^3*b*c;; Order(g);;490gap> Display(g);491492Rcwa permutation of Z with modulus 36, of order 105493494( 8(9), 16(18), 64(72), 256(288), 85(96), 128(144), 32(36) )495( 7(12), 11(18), 22(36) ) ( 5(18), 10(36), 40(144), 13(48),49620(72) ) ( 1(24), 2(36), 4(72) ) ( 14(36), 28(72), 112(288),49737(96), 56(144) )498499gap> Order(a*c*b*a*b*c*a*c);50060501]]>502</Example>503504With some more efforts, one finds that e.g. <M>(abc)^2c^b</M> has order505616, that <M>(abc)^2b</M> has order 2310, that <M>(ab)^2a^ca^bc</M> has506order 27720, and that <M>a(c(ab)^2)^2</M> has order 65520.507Of course <M>G</M> has many elements of infinite order as well.508Some of them have infinite cycles, like e.g.509510<Example>511<![CDATA[512gap> g := b*c;;513gap> Display(g);514515Rcwa permutation of Z with modulus 12516517/518| 4n if n in 1(3)519| 2n if n in 5(6)520n |-> < n/2 if n in 2(12)521| n/4 if n in 8(12)522| n if n in 0(3)523\524525gap> Sinks(g);526[ 4(12) ]527gap> Trajectory(g,last[1],10);528[ 4(12), 16(48), 64(192), 256(768), 1024(3072), 4096(12288),52916384(49152), 65536(196608), 262144(786432), 1048576(3145728) ]530gap> Trajectory(g,4,20);531[ 4, 16, 64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304,53216777216, 67108864, 268435456, 1073741824, 4294967296, 17179869184,53368719476736, 274877906944, 1099511627776 ]534]]>535</Example>536537Others seem to have only finite cycles. Some of these appear to have538<Q>on average</Q> comparatively <Q>short</Q> cycles, like e.g.539540<Example>541<![CDATA[542gap> g := a*b*a*c*b*c;543<rcwa permutation of Z with modulus 144>544gap> cycs := ShortCycles(g,[0..10000],100,10^20);;545gap> Difference([0..10000],Union(cycs));546[ ]547gap> Collected(List(cycs,Length));548[ [ 1, 2222 ], [ 3, 1945 ], [ 4, 1111 ], [ 5, 93 ], [ 6, 926 ],549[ 7, 31 ], [ 8, 864 ], [ 9, 10 ], [ 10, 289 ], [ 11, 4 ], [ 12, 95 ],550[ 13, 1 ], [ 14, 31 ], [ 16, 12 ], [ 18, 4 ], [ 20, 1 ] ]551]]>552</Example>553554If the cycle of <M>g</M> containing some <M>n \in &ZZ;</M> is finite555and has a certain length <M>l</M>, then there is some <M>m \in &ZZ;</M>556such that for every <M>k \in &ZZ;</M> the cycle of <M>g</M> containing557<M>n + km</M> has length <M>l</M> as well. Thus, in other words, every558finite cycle of <M>g</M> <Q>belongs to</Q> a cycle of residue classes.559(This is a special property of <M>g</M> which is not shared by every560rcwa permutation -- cf. e.g. Collatz' permutation from561Section <Ref Label="sec:FactoringTheCollatzPermutation"/>.)562We can find some of these infinitely many <Q>residue class cycles</Q>:563564<Example>565<![CDATA[566gap> cycsrc := ShortResidueClassCycles(g,Mod(g),20);567[ [ 0(6) ], [ 3(6), 160(288), 20(36) ],568[ 7(18), 352(864), 44(108), 28(72) ],569[ 11(18), 544(864), 2896(4608), 362(576), 68(108), 88(144) ],570[ 13(18), 640(864), 80(108), 52(72) ], [ 10(36) ], [ 34(36) ],571[ 1(54), 64(2592), 8(324), 4(216), 16(1152), 2(144) ],572[ 5(54), 256(2592), 1360(13824), 170(1728), 32(324), 40(432),573208(2304), 26(288) ],574[ 17(54), 832(2592), 4432(13824), 23632(73728), 2954(9216), 554(1728),575104(324), 136(432) ],576[ 37(54), 1792(2592), 224(324), 148(216), 784(1152), 98(144) ],577[ 41(54), 1984(2592), 10576(13824), 1322(1728), 248(324), 328(432),5781744(2304), 218(288) ],579[ 53(54), 2560(2592), 13648(13824), 72784(73728), 9098(9216),5801706(1728), 320(324), 424(432) ], [ 38(72), 58(108), 304(576) ],581[ 62(72), 94(108), 496(576) ] ]582gap> List(cycsrc,Length);583[ 1, 3, 4, 6, 4, 1, 1, 6, 8, 8, 6, 8, 8, 3, 3 ]584gap> Sum(List(Flat(cycsrc),cl->1/Mod(cl)));58597459/110592586gap> Float(last); # about 88% 'coverage'5870.881248588gap> cycsrc := ShortResidueClassCycles(g,3*Mod(g),20);589[ [ 0(6) ], [ 3(6), 160(288), 20(36) ],590[ 7(18), 352(864), 44(108), 28(72) ],591[ 11(18), 544(864), 2896(4608), 362(576), 68(108), 88(144) ],592[ 13(18), 640(864), 80(108), 52(72) ], [ 10(36) ], [ 34(36) ],593[ 1(54), 64(2592), 8(324), 4(216), 16(1152), 2(144) ],594[ 5(54), 256(2592), 1360(13824), 170(1728), 32(324), 40(432),595208(2304), 26(288) ],596[ 17(54), 832(2592), 4432(13824), 23632(73728), 2954(9216), 554(1728),597104(324), 136(432) ],598[ 37(54), 1792(2592), 224(324), 148(216), 784(1152), 98(144) ],599[ 41(54), 1984(2592), 10576(13824), 1322(1728), 248(324), 328(432),6001744(2304), 218(288) ],601[ 53(54), 2560(2592), 13648(13824), 72784(73728), 9098(9216),6021706(1728), 320(324), 424(432) ], [ 38(72), 58(108), 304(576) ],603[ 62(72), 94(108), 496(576) ],604[ 23(162), 1120(7776), 5968(41472), 746(5184), 140(972), 184(1296),605976(6912), 5200(36864), 650(4608), 122(864) ],606[ 35(162), 1696(7776), 9040(41472), 48208(221184), 257104(1179648),60732138(147456), 6026(27648), 1130(5184), 212(972), 280(1296) ],608[ 73(162), 3520(7776), 440(972), 292(648), 1552(3456), 8272(18432),6091034(2304), 194(432) ],610[ 77(162), 3712(7776), 19792(41472), 2474(5184), 464(972), 616(1296),6113280(6912), 17488(36864), 2186(4608), 410(864) ],612[ 89(162), 4288(7776), 22864(41472), 121936(221184), 650320(1179648),61381290(147456), 15242(27648), 2858(5184), 536(972), 712(1296) ],614[ 127(162), 6112(7776), 764(972), 508(648), 2704(3456), 14416(18432),6151802(2304), 338(432) ],616[ 14(216), 22(324), 112(1728), 592(9216), 74(1152) ],617[ 86(216), 130(324), 688(1728), 3664(9216), 458(1152) ] ]618gap> List(cycsrc,Length);619[ 1, 3, 4, 6, 4, 1, 1, 6, 8, 8, 6, 8, 8, 3, 3, 10, 10, 8, 10, 10, 8, 5,6205 ]621gap> Sum(List(Flat(cycsrc),Density));6225097073/5308416623gap> Float(last); # already about 96% 'coverage'6240.960187625]]>626</Example>627628There are also some elements of infinite order whose cycles seem to be629all finite, but <Q>on average</Q> pretty <Q>long</Q> -- e.g.630631<Example>632<![CDATA[633gap> g := (b*a*c)^2*a;;634gap> Display(g);635636Rcwa permutation of Z with modulus 288637638/639| (16n-1)/3 if n in 1(3)640| (9n+5)/4 if n in 3(24) U 11(24)641| (27n+19)/4 if n in 15(24) U 23(24)642| (3n+1)/4 if n in 5(24)643| (n-3)/6 if n in 21(24)644| (27n+29)/8 if n in 9(48) U 41(48)645| (9n+7)/8 if n in 17(48) U 33(48)646| (2n-7)/9 if n in 8(36)647n |-> < (4n-11)/9 if n in 32(36)648| (27n+38)/8 if n in 14(48)649| (3n+2)/8 if n in 26(48)650| (9n+10)/8 if n in 38(48)651| (3n+4)/4 if n in 20(72)652| n/4 if n in 56(72)653| (9n+14)/16 if n in 2(96)654| (27n+58)/16 if n in 50(96)655| n if n in 0(6)656\657658gap> List([1..100],n->Length(Cycle(g,n)));659[ 6, 1, 6, 6, 6, 1, 194, 6, 216, 26, 26, 1, 26, 194, 65, 26, 26, 1, 216,66026, 6, 216, 46, 1, 640, 26, 70, 194, 216, 1, 70, 26, 216, 216, 26, 1,661194, 216, 73, 26, 110, 1, 194, 216, 194, 111, 39, 1, 194, 640, 640,662194, 26, 1, 171, 194, 204, 640, 216, 1, 111, 70, 91, 26, 194, 1, 216,663216, 26, 111, 65, 1, 50, 194, 26, 216, 640, 1, 502, 26, 111, 40, 110,6641, 26, 194, 385, 640, 88, 1, 100, 111, 65, 110, 416, 1, 171, 194, 194,665640 ]666gap> Length(Cycle(g,25));667640668gap> Maximum(Cycle(g,25));669323270249684063829670gap> Length(Cycle(g,25855));6714751672gap> Maximum(Cycle(g,25855));673507359605810239426786254778159924369135184044618585904603866210104085674gap> cycs := ShortCycles(g,[0..50000],10000,10^100);;675gap> S := [0..50000];;676gap> for cyc in cycs do S := Difference(S,cyc); od;677gap> S; # no cycle containing some n in [0..50000] has length > 10000678[ ]679]]>680</Example>681682Taking a look at the lengths of the trajectories of the Collatz mapping683<M>T</M> starting at the points in a cycle, we can see how a cycle of684<M>g</M> goes <Q>up and down</Q> in the <M>3n+1</M> tree:685686<Example>687<![CDATA[688gap> List(Cycle(g,25),n->Length(Trajectory(T,n,[1])));689[ 17, 21, 25, 29, 33, 31, 35, 34, 32, 33, 37, 41, 45, 44, 42, 39, 43,69041, 45, 44, 42, 43, 40, 38, 35, 39, 37, 41, 40, 44, 48, 46, 50, 49,69147, 48, 45, 42, 46, 44, 48, 47, 45, 46, 50, 49, 47, 43, 41, 38, 39,69236, 34, 30, 27, 31, 29, 33, 32, 30, 31, 35, 33, 37, 36, 40, 39, 43,69341, 45, 44, 42, 43, 47, 51, 55, 53, 57, 56, 54, 55, 59, 58, 62, 66,69464, 68, 67, 65, 66, 63, 60, 64, 62, 66, 65, 63, 64, 68, 67, 65, 61,69559, 56, 52, 49, 53, 51, 55, 54, 52, 53, 57, 55, 59, 58, 56, 57, 54,69650, 48, 45, 49, 47, 51, 50, 54, 52, 56, 55, 53, 54, 58, 62, 66, 70,69774, 72, 76, 75, 79, 83, 87, 91, 90, 94, 93, 97, 95, 99, 98, 96, 97,69894, 91, 88, 85, 89, 87, 91, 90, 88, 89, 86, 84, 81, 85, 83, 87, 86,69990, 94, 98, 97, 101, 105, 109, 107, 111, 110, 108, 109, 113, 117, 115,700119, 118, 122, 126, 125, 123, 120, 124, 122, 126, 125, 123, 124, 121,701119, 116, 117, 114, 111, 115, 113, 117, 116, 114, 115, 119, 123, 122,702120, 117, 121, 119, 123, 122, 120, 121, 118, 116, 112, 110, 106, 103,703107, 105, 109, 108, 106, 107, 111, 109, 113, 112, 116, 114, 118, 117,704115, 116, 113, 110, 111, 108, 104, 102, 99, 103, 101, 105, 104, 108,705106, 110, 109, 107, 108, 112, 111, 109, 105, 102, 103, 100, 98, 95,70692, 96, 94, 98, 97, 95, 96, 93, 91, 88, 92, 90, 94, 93, 97, 101, 105,707109, 108, 106, 103, 107, 105, 109, 108, 106, 107, 104, 102, 99, 103,708101, 105, 104, 108, 112, 110, 114, 113, 111, 112, 116, 115, 113, 109,709106, 110, 108, 112, 111, 109, 110, 114, 112, 116, 115, 113, 114, 111,710107, 105, 102, 103, 100, 98, 95, 99, 97, 101, 100, 104, 103, 107, 105,711109, 108, 106, 107, 104, 101, 98, 99, 96, 94, 91, 92, 89, 87, 84, 85,71282, 80, 77, 81, 79, 83, 82, 86, 85, 89, 88, 86, 83, 80, 81, 78, 76,71373, 74, 71, 68, 72, 70, 74, 73, 71, 72, 76, 80, 79, 83, 87, 91, 90,71488, 85, 89, 87, 91, 90, 88, 89, 86, 84, 81, 85, 83, 87, 86, 90, 94,71592, 96, 95, 93, 94, 98, 96, 100, 99, 97, 98, 102, 106, 110, 114, 113,716111, 108, 112, 110, 114, 113, 111, 112, 109, 107, 104, 108, 106, 110,717109, 113, 117, 115, 119, 118, 116, 117, 114, 111, 115, 113, 117, 116,718114, 115, 119, 118, 116, 112, 110, 107, 108, 105, 103, 100, 104, 102,719106, 105, 109, 108, 112, 110, 114, 113, 111, 112, 116, 115, 113, 109,720106, 103, 104, 101, 99, 95, 91, 88, 92, 90, 94, 93, 91, 92, 96, 94,72198, 97, 95, 96, 100, 98, 102, 101, 105, 104, 102, 99, 100, 97, 93, 89,72287, 84, 85, 82, 80, 77, 74, 78, 76, 80, 79, 77, 78, 75, 73, 69, 67,72364, 68, 66, 70, 69, 73, 71, 75, 74, 72, 73, 70, 67, 68, 65, 63, 60,72464, 62, 66, 65, 69, 68, 66, 63, 64, 61, 59, 56, 60, 58, 62, 61, 65,72564, 62, 59, 60, 57, 55, 51, 48, 49, 46, 44, 40, 37, 34, 35, 32, 28,72626, 23, 27, 25, 29, 28, 32, 30, 34, 33, 31, 32, 36, 35, 33, 29, 26,72727, 24, 22, 19, 23, 21, 25, 24, 28, 27, 25, 22, 23, 20, 18, 14, 18,72822, 20, 24, 23, 21, 22, 19, 16, 20, 18, 22, 21, 19, 20, 24, 23, 21,72917, 15, 17, 15, 19, 18, 16 ]730gap> lngs := List(Cycle(g,25855),n->Length(Trajectory(T,n,[1])));;731gap> Minimum(lngs);73255733gap> Maximum(lngs);734521735gap> Position(lngs,55);73615737gap> Position(lngs,521);7382807739]]>740</Example>741742Finally let's have a look at elements of <M>G</M> with small modulus:743744<Example>745<![CDATA[746gap> B := RestrictedBall(G,One(G),20,36:Spheres);;747gap> List(B,Length);748[ 1, 3, 6, 12, 4, 6, 6, 4, 4, 4, 6, 6, 3, 3, 2, 0, 0, 0, 0, 0, 0 ]749gap> Sum(last);75070751gap> Position(last2,0)-2;75214753]]>754</Example>755756So we have 70 elements of modulus 36 or less in <M>G</M> which757can be reached from the identity by successive multiplication with758generators without passing elements with mudulus exceeding 36.759Further we see that the longest word in the generators yielding an760element with modulus at most 36 has length 14.761Now we double our bound on the modulus:762763<Example>764<![CDATA[765gap> B := RestrictedBall(G,One(G),100,72:Spheres);;766gap> List(B,Length);767[ 1, 3, 6, 12, 22, 14, 18, 22, 24, 26, 26, 34, 35, 32, 37, 38, 46, 58,76865, 73, 82, 91, 93, 96, 110, 121, 114, 117, 146, 138, 148, 168, 174,769196, 215, 214, 232, 255, 280, 305, 315, 359, 377, 371, 363, 366, 397,770419, 401, 405, 405, 401, 407, 415, 435, 424, 401, 359, 338, 330, 332,771281, 278, 271, 269, 254, 255, 257, 258, 258, 233, 215, 202, 185, 154,772121, 88, 55, 35, 20, 10, 5, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,7730, 0, 0, 0, 0 ]774gap> Sum(last);77515614776gap> Position(last2,0)-2;77783778gap> Collected(List(Flat(B),Modulus));779[ [ 1, 1 ], [ 6, 3 ], [ 12, 4 ], [ 18, 2 ], [ 24, 4 ], [ 36, 56 ],780[ 48, 4 ], [ 72, 15540 ] ]781]]>782</Example>783784We observe that there are 15540 elements in <M>G</M> with modulus 72785which are <Q>reachable</Q> from the identity by successive786multiplication with generators without passing elements with mudulus787exceeding 72. Further we see that the longest word in the generators788yielding an element with modulus at most 72 has length 83. <P/>789790It is obvious that many questions regarding the group <M>G</M>791remain open.792793</Section>794795<!-- #################################################################### -->796797<Section Label="sec:GroupWithHugeFiniteOrbits">798<Heading>799A group with huge finite orbits800</Heading>801802In this section we investigate a group which has huge finite orbits on &ZZ;.803804<Example>805<![CDATA[806gap> a := ClassTransposition(0,2,1,2);;807gap> b := ClassTransposition(0,5,4,5);;808gap> c := ClassTransposition(1,4,0,6);;809gap> G := Group(a,b,c);810<(0(2),1(2)),(0(5),4(5)),(1(4),0(6))>811gap> LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions();812"3CTsGroups6"813gap> 3CTsGroups6.Id3CTsGroup(G,3CTsGroups6.grps); # 'catalogue number' of G8141284815]]>816</Example>817818We look for orbits of length at most 100 containing an integer in the819range <C>[0..1000]</C>:820821<Example>822<![CDATA[823gap> orbs := ShortOrbits(G,[0..1000],100);;824gap> List(orbs,Length);825[ 16, 2, 24, 2, 2, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 2, 2, 40, 2, 8, 24, 2,8268, 2, 2, 8, 2, 24, 8, 2, 56, 2, 2, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 2, 2,82724, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 24, 2, 2, 2, 8, 2, 8, 2, 2, 8, 2, 8,8282, 2, 2, 2, 8, 24, 2, 8, 2, 2, 8, 2, 24, 8, 2, 2, 2, 2, 8, 2, 8, 2, 2,8298, 2, 8, 2, 2, 2, 24, 2, 8, 2, 8, 2, 2, 8, 2, 8, 2, 24, 2, 2 ]830gap> Collected(last);831[ [ 2, 67 ], [ 8, 32 ], [ 16, 1 ], [ 24, 9 ], [ 40, 1 ], [ 56, 1 ] ]832gap> Length(Difference([0..1000],Union(orbs)));833491834]]>835</Example>836837So almost half of the integers in the range <C>[0..1000]</C> lie in838orbits of length larger than 100. In fact there are much larger orbits.839For example:840841<Example>842<![CDATA[843gap> B := Ball(G,32,500,OnPoints:Spheres);; # compute ball about 32844gap> Position(B,[]); # <> fail -> we have exhausted the orbit845354846gap> Sum(List(B,Length)); # the orbit length8476296848gap> Maximum(Flat(B)); # the largest integer in the orbit8493301636381609509797437679850gap> B := Ball(G,736,5000,OnPoints:Spheres);; # the same for 736 ...851gap> Position(B,[]);8522997853gap> Sum(List(B,Length)); # the orbit length for this time854495448855gap> Maximum(Flat(B));8562461374276522713949036151811903149785690151467356354652860276957152301465\8570546360696627187194849439881973442451686685024708652634593861146709752378\858847078493406287854573381920553713155967741550498839859]]>860</Example>861862It seems that the cycles of <M>abc</M> completely traverse all orbits863of <M>G</M>, with the only exception of the orbit of 0. Let's check this864in the above examples:865866<Example>867<![CDATA[868gap> g := a*b*c;;869gap> Display(g);870871Rcwa permutation of Z with modulus 60872873/874| n-1 if n in 3(30) U 9(30) U 17(30) U 23(30) U 27(30) U875| 29(30)876| 3n/2 if n in 0(20) U 12(20) U 16(20)877| n+1 if n in 2(20) U 6(20) U 10(20)878| (2n+1)/3 if n in 7(30) U 13(30) U 19(30)879| n+3 if n in 1(30) U 11(30)880n |-> < n-5 if n in 15(30) U 25(30)881| (3n+12)/2 if n in 4(20)882| (3n-12)/2 if n in 8(20)883| n+5 if n in 14(20)884| n-3 if n in 18(20)885| (2n-7)/3 if n in 5(30)886| (2n+9)/3 if n in 21(30)887\888889gap> Length(Cycle(g,32));8906296891gap> Length(Cycle(g,736));892495448893]]>894</Example>895896Representatives and lengths of the cycles of <M>g</M> which intersect897nontrivially with the range <C>[0..1000]</C> are as follows:898899<Example>900<![CDATA[901gap> CycleRepresentativesAndLengths(g,[0..1000]:notify:=50000);902n = 736: after 50000 steps, the iterate has 157 binary digits.903n = 736: after 100000 steps, the iterate has 135 binary digits.904n = 736: after 150000 steps, the iterate has 131 binary digits.905n = 736: after 200000 steps, the iterate has 507 binary digits.906n = 736: after 250000 steps, the iterate has 414 binary digits.907n = 736: after 300000 steps, the iterate has 457 binary digits.908n = 736: after 350000 steps, the iterate has 465 binary digits.909n = 736: after 400000 steps, the iterate has 325 binary digits.910n = 736: after 450000 steps, the iterate has 534 binary digits.911n = 896: after 50000 steps, the iterate has 359 binary digits.912n = 896: after 100000 steps, the iterate has 206 binary digits.913[ [ 1, 15 ], [ 2, 2 ], [ 16, 24 ], [ 22, 2 ], [ 26, 2 ], [ 32, 6296 ],914[ 46, 2 ], [ 52, 8 ], [ 56, 296 ], [ 62, 2 ], [ 76, 8 ], [ 82, 2 ],915[ 86, 2 ], [ 92, 8 ], [ 106, 2 ], [ 112, 104 ], [ 116, 8 ],916[ 122, 2 ], [ 136, 440 ], [ 142, 2 ], [ 146, 2 ], [ 152, 40 ],917[ 166, 2 ], [ 172, 8 ], [ 176, 24 ], [ 182, 2 ], [ 196, 8 ],918[ 202, 2 ], [ 206, 2 ], [ 212, 8 ], [ 226, 2 ], [ 232, 24 ],919[ 236, 8 ], [ 242, 2 ], [ 256, 56 ], [ 262, 2 ], [ 266, 2 ],920[ 272, 408 ], [ 286, 2 ], [ 292, 8 ], [ 296, 104 ], [ 302, 2 ],921[ 316, 8 ], [ 322, 2 ], [ 326, 2 ], [ 332, 8 ], [ 346, 2 ],922[ 352, 264 ], [ 356, 8 ], [ 362, 2 ], [ 376, 1304 ], [ 382, 2 ],923[ 386, 2 ], [ 392, 24 ], [ 406, 2 ], [ 412, 8 ], [ 416, 200 ],924[ 422, 2 ], [ 436, 8 ], [ 442, 2 ], [ 446, 2 ], [ 452, 8 ],925[ 466, 2 ], [ 472, 104 ], [ 476, 8 ], [ 482, 2 ], [ 496, 24 ],926[ 502, 2 ], [ 506, 2 ], [ 512, 696 ], [ 526, 2 ], [ 532, 8 ],927[ 536, 3912 ], [ 542, 2 ], [ 556, 8 ], [ 562, 2 ], [ 566, 2 ],928[ 572, 8 ], [ 586, 2 ], [ 592, 888 ], [ 596, 8 ], [ 602, 2 ],929[ 616, 728 ], [ 622, 2 ], [ 626, 2 ], [ 632, 2776 ], [ 646, 2 ],930[ 652, 8 ], [ 656, 24 ], [ 662, 2 ], [ 676, 8 ], [ 682, 2 ],931[ 686, 2 ], [ 692, 8 ], [ 706, 2 ], [ 712, 24 ], [ 716, 8 ],932[ 722, 2 ], [ 736, 495448 ], [ 742, 2 ], [ 746, 2 ], [ 752, 1272 ],933[ 766, 2 ], [ 772, 8 ], [ 776, 376 ], [ 782, 2 ], [ 796, 8 ],934[ 802, 2 ], [ 806, 2 ], [ 812, 8 ], [ 826, 2 ], [ 832, 120 ],935[ 836, 8 ], [ 842, 2 ], [ 856, 2264 ], [ 862, 2 ], [ 866, 2 ],936[ 872, 24 ], [ 886, 2 ], [ 892, 8 ], [ 896, 132760 ], [ 902, 2 ],937[ 916, 8 ], [ 922, 2 ], [ 926, 2 ], [ 932, 8 ], [ 946, 2 ],938[ 952, 456 ], [ 956, 8 ], [ 962, 2 ], [ 976, 24 ], [ 982, 2 ],939[ 986, 2 ], [ 992, 1064 ] ]940]]>941</Example>942943So far the author has checked that all positive integers less than944173176 lie in finite cycles of <M>g</M>. Several of them are longer945than 1000000, and the cycle containing 25952 has length 245719352.946Whether the cycle containing 173176 is finite or infinite has not947been checked so far -- in any case it is longer than 5700000000, and948it exceeds <M>10^{40000}</M>. Presumably it is finite as well, but949checking this may require a lot of computing time. <P/>950951On the one hand the cycles of <M>g</M> seem to behave <Q>randomly</Q>,952perhaps as if they would ascend or descend from one point to the next953by a certain factor depending on which side a thrown coin falls on.954-- In this <Q>model</Q>, cycles would be finite with probability 1955since the simple random walk on &ZZ; is recurrent.956On the other, there seems to be quite some structure on them,957however little is known so far. <P/>958959First we observe that each orbit under the action of <M>G</M>960seems to split into two cycles of <M>h := abcacb</M> of the same961length (of course this has been checked for many more orbits than962those shown here):963964<Example>965<![CDATA[966gap> h := a*b*c*a*c*b;967<rcwa permutation of Z with modulus 360>968gap> List(CyclesOnFiniteOrbit(G,h,32),Length);969[ 3148, 3148 ]970gap> List(CyclesOnFiniteOrbit(G,h,736),Length);971[ 247724, 247724 ]972]]>973</Example>974975One cycle seems to contain the points at the odd positions and the976other seems to contain the points at the even positions in the977cycle of <M>g</M>:978979<Example>980<![CDATA[981gap> cycle_g := Cycle(g,32);;982gap> positions1 := List(Cycle(h,32),n->Position(cycle_g,n));;983gap> Collected(positions1 mod 2);984[ [ 1, 3148 ] ]985gap> positions2 := List(Cycle(h,33),n->Position(cycle_g,n));;986gap> Collected(positions2 mod 2);987[ [ 0, 3148 ] ]988]]>989</Example>990991However the ordering in which these points are traversed looks992pretty <Q>scrambled</Q>:993994<Example>995<![CDATA[996gap> positions1{[1..200]};997[ 1, 6271, 6291, 6281, 6285, 6287, 6283, 6289, 6273, 6275, 6277, 6279,9986293, 5, 15, 17, 19, 6259, 6261, 6263, 6265, 21, 23, 25, 41, 6227,9996229, 6231, 6233, 6235, 6237, 6239, 43, 53, 55, 57, 63, 59, 61, 65,100045, 47, 49, 51, 67, 6223, 6221, 69, 6163, 6215, 6205, 6209, 6211,10016207, 6213, 6165, 6171, 6177, 6179, 6181, 6183, 6175, 6173, 6185,10026189, 6191, 6187, 6193, 6169, 6167, 6195, 6199, 6201, 6197, 6203,10036217, 73, 83, 85, 87, 103, 113, 115, 117, 4357, 4361, 4363, 4359,10044365, 4371, 4373, 4375, 4377, 4369, 4367, 4379, 119, 121, 123, 125,1005129, 131, 127, 133, 139, 141, 143, 145, 137, 135, 147, 149, 151, 153,1006155, 159, 161, 157, 163, 169, 175, 4283, 4281, 177, 4271, 4273, 4275,10074277, 181, 4255, 4257, 4259, 4261, 4263, 4265, 4267, 183, 2161, 2163,10084195, 4199, 4201, 4197, 4203, 4209, 4211, 4213, 4215, 4207, 4205,10094217, 2165, 2167, 2169, 2171, 2175, 2177, 2173, 2179, 2185, 2187,10102189, 2191, 2183, 2181, 2193, 2195, 2197, 2199, 2201, 2467, 2469,10114117, 4121, 4123, 4119, 4125, 4131, 4133, 4135, 4137, 4129, 4127,10124139, 2471, 2473, 2475, 2477, 2487, 2489, 2491, 2507, 2517, 2519,10132521, 2537, 3923, 3925, 3941, 3943 ]1014]]>1015</Example>10161017</Section>10181019<!-- #################################################################### -->10201021<Section Label="sec:FourTransitiveGroup">1022<Heading>1023A group which acts 4-transitively on the positive integers1024</Heading>10251026In this section, we would like to show that the group <M>G</M> generated1027by the two permutations10281029<Example>1030<![CDATA[1031gap> a := RcwaMapping([[3,0,2],[3,1,4],[3,0,2],[3,-1,4]]);;1032gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;1033gap> SetName(a,"a"); SetName(u,"u"); G := Group(a,u);;1034]]>1035</Example>10361037which we have already investigated in earlier examples acts 4-transitively1038on the set of positive integers.10391040Obviously, it acts on the set of positive integers.1041First we show that this action is transitive.10421043We start by checking in which residue classes sufficiently large positive1044integers are mapped to smaller ones by a suitable group element:10451046<Example>1047<![CDATA[1048gap> List([a,a^-1,u,u^-1],DecreasingOn);1049[ 1(2), 0(3), 0(5) U 2(5), 2(3) ]1050gap> Union(last);1051Z \ 4(30) U 16(30) U 28(30)1052]]>1053</Example>10541055We see that we cannot always choose such a group element from the set of1056generators and their inverses -- otherwise the union would be1057<C>Integers</C>.10581059<Example>1060<![CDATA[1061gap> List([a,a^-1,u,u^-1,a^2,a^-2,u^2,u^-2],DecreasingOn);1062[ 1(2), 0(3), 0(5) U 2(5), 2(3), 1(8) U 7(8), 0(3) U 2(9) U 7(9),10630(25) U 12(25) U 17(25) U 20(25), 2(3) U 1(9) U 3(9) ]1064gap> Union(last); # Still not enough ...1065Z \ 4(90) U 58(90) U 76(90)1066gap> List([a,a^-1,u,u^-1,a^2,a^-2,u^2,u^-2,a*u,u*a,(a*u)^-1,(u*a)^-1],1067> DecreasingOn);1068[ 1(2), 0(3), 0(5) U 2(5), 2(3), 1(8) U 7(8), 0(3) U 2(9) U 7(9),10690(25) U 12(25) U 17(25) U 20(25), 2(3) U 1(9) U 3(9),10703(5) U 0(10) U 7(20) U 9(20), 0(5) U 2(5), 2(3), 3(9) U 4(9) U 8(9) ]1071gap> Union(last); # ... but that's it!1072Integers1073]]>1074</Example>10751076Finally, we have to deal with <Q>small</Q> integers. We use the notation for1077the coefficients of rcwa mappings introduced at the beginning of this manual.1078Let <M>c_{r(m)} > a_{r(m)}</M>. Then we easily see that1079<M>(a_{r(m)}n+b_{r(m)})/c_{r(m)} > n</M> implies1080<M>n < b_{r(m)}/(c_{r(m)}-a_{r(m)})</M>.1081Thus we can restrict our considerations to integers1082<M>n < b_{\rm max}</M>, where <M>b_{\rm max}</M> is the largest1083second entry of a coefficient triple of one of the group elements1084in our list:10851086<Example>1087<![CDATA[1088gap> List([a,a^-1,u,u^-1,a^2,a^-2,u^2,u^-2,a*u,u*a,(a*u)^-1,(u*a)^-1],1089> f->Maximum(List(Coefficients(f),c->c[2])));1090[ 1, 1, 4, 2, 7, 7, 56, 28, 25, 17, 17, 11 ]1091gap> Maximum(last);1092561093]]>1094</Example>10951096Thus this upper bound is 56. The rest is easy -- all we have to do is1097to check that the orbit containing 1 contains also all other positive1098integers less than or equal to 56:10991100<Example>1101<![CDATA[1102gap> S := [1];;1103gap> while not IsSubset(S,[1..56]) do1104> S := Union(S,S^a,S^u,S^(a^-1),S^(u^-1));1105> od;1106gap> IsSubset(S,[1..56]);1107true1108]]>1109</Example>11101111Checking 2-transitivity is computationally harder, and in the sequel we1112will omit some steps which are in practice needed to find out1113<Q>what to do</Q>.11141115The approach taken here is to show that the stabilizer of 11116in <M>G</M> acts transitively on the set of positive integers greater1117than 1. We do this by similar means as used above for showing the1118transitivity of the action of <M>G</M> on the positive integers.11191120We start by determining all products of at most 5 generators and their1121inverses, which stabilize 1 (taking at most 4-generator products would1122not suffice!):11231124<Example>1125<![CDATA[1126gap> gens := [a,u,a^-1,u^-1];;1127gap> tups := Concatenation(List([1..5],k->Tuples([1..4],k)));;1128gap> Length(tups);112913641130gap> tups := Filtered(tups,tup->ForAll([[1,3],[3,1],[2,4],[4,2]],1131> l->PositionSublist(tup,l)=fail));;1132gap> Length(tups);11334841134gap> stab := [];;1135gap> for tup in tups do1136> n := 1;1137> for i in tup do n := n^gens[i]; od;1138> if n = 1 then Add(stab,tup); fi;1139> od;1140gap> Length(stab);11411181142gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i])));;1143gap> ForAll(stabelm,elm->1^elm=1); # Check.1144true1145]]>1146</Example>11471148The resulting products have various different not quite small moduli:11491150<Example>1151<![CDATA[1152gap> List(stabelm,Modulus);1153[ 4, 3, 16, 25, 9, 81, 64, 100, 108, 100, 25, 75, 27, 243, 324, 243,1154256, 400, 144, 400, 100, 432, 324, 400, 80, 400, 625, 25, 75, 135,1155150, 75, 225, 81, 729, 486, 729, 144, 144, 81, 729, 1296, 729, 6561,11561024, 1600, 192, 1600, 400, 576, 432, 1600, 320, 1600, 2500, 100, 100,1157180, 192, 192, 108, 972, 1728, 972, 8748, 1600, 400, 320, 80, 1600,11582500, 300, 2500, 625, 625, 75, 675, 75, 75, 135, 405, 600, 120, 600,11591875, 75, 225, 405, 225, 225, 675, 243, 2187, 729, 2187, 216, 216,1160243, 2187, 1944, 2187, 19683, 576, 144, 576, 432, 81, 81, 729, 2187,11615184, 324, 8748, 243, 2187, 19683, 26244, 19683 ]1162gap> Lcm(last);1163125971200001164gap> Collected(Factors(last));1165[ [ 2, 10 ], [ 3, 9 ], [ 5, 4 ] ]1166]]>1167</Example>11681169Similar as before, we determine for any of the above mappings the1170residue classes whose elements larger than the largest <M>b_{r(m)}</M>1171- coefficient of the respective mapping are mapped to smaller integers:11721173<Example>1174<![CDATA[1175gap> decs := List(stabelm,DecreasingOn);;1176gap> List(decs,Modulus);1177[ 2, 3, 8, 25, 9, 9, 16, 100, 12, 50, 25, 75, 27, 81, 54, 81, 64, 400,117848, 200, 100, 72, 108, 400, 80, 200, 625, 25, 75, 45, 75, 75, 225, 81,1179243, 81, 243, 144, 144, 81, 243, 216, 243, 243, 128, 1600, 64, 400,1180400, 48, 144, 1600, 320, 400, 2500, 100, 100, 60, 96, 192, 108, 324,1181144, 324, 972, 400, 400, 80, 80, 400, 2500, 100, 1250, 625, 625, 25,118275, 75, 75, 45, 135, 600, 120, 150, 1875, 75, 225, 135, 225, 225, 675,1183243, 729, 243, 729, 108, 216, 243, 729, 162, 729, 2187, 144, 144, 144,1184144, 81, 81, 243, 729, 1296, 324, 972, 243, 729, 2187, 1458, 2187 ]1185gap> Lcm(last);11861749600001187]]>1188</Example>11891190Since the least common multiple of the moduli of these unions of residue1191classes is as large as 174960000, directly forming their union and1192checking whether it is equal to the set of integers would take relatively1193much time and memory. However, starting with the set of integers and1194subtracting the above sets one-by-one in a suitably chosen order is cheap:11951196<Example>1197<![CDATA[1198gap> SortParallel(decs,stabelm,1199> function(S1,S2)1200> return First([1..100],k->Factorial(k) mod Modulus(S1)=0)1201> < First([1..100],k->Factorial(k) mod Modulus(S2)=0);1202> end);1203gap> S := Integers;;1204gap> for i in [1..Length(decs)] do1205> S_old := S; S := Difference(S,decs[i]);1206> if S <> S_old then ViewObj(S); Print("\n"); fi;1207> if S = [] then maxind := i; break; fi;1208> od;12090(2)12102(6) U 4(6)1211<union of 8 residue classes (mod 30)>1212<union of 19 residue classes (mod 90) (9 classes)>1213<union of 114 residue classes (mod 720)>1214<union of 99 residue classes (mod 720)>1215<union of 57 residue classes (mod 720)>1216<union of 54 residue classes (mod 720)>1217<union of 41 residue classes (mod 720)>1218<union of 35 residue classes (mod 720)>1219<union of 8 residue classes (mod 720) (6 classes)>12204(720) U 94(720) U 148(720) U 238(720)1221<union of 24 residue classes (mod 5760)>1222<union of 72 residue classes (mod 51840)>1223<union of 48 residue classes (mod 51840)>1224<union of 192 residue classes (mod 259200)>1225<union of 168 residue classes (mod 259200)>1226<union of 120 residue classes (mod 259200)>1227<union of 96 residue classes (mod 259200)>1228<union of 72 residue classes (mod 259200)>1229<union of 60 residue classes (mod 259200)>1230<union of 48 residue classes (mod 259200)>1231<union of 24 residue classes (mod 259200)>1232<union of 12 residue classes (mod 259200) (6 classes)>1233<union of 24 residue classes (mod 777600)>1234<union of 12 residue classes (mod 777600) (6 classes)>1235111604(194400) U 14404(777600) U 208804(777600)1236[ ]1237]]>1238</Example>12391240Similar as above, it remains to check that the <Q>small</Q> integers all1241lie in the orbit containing 2. Obviously, it is sufficient to check1242that any integer greater than 2 is mapped to a smaller one by some1243suitably chosen element of the stabilizer under consideration:12441245<Example>1246<![CDATA[1247gap> Maximum(List(stabelm{[1..maxind]},1248> f->Maximum(List(Coefficients(f),c->c[2]))));124965811250gap> Filtered([3..6581],n->Minimum(List(stabelm,elm->n^elm))>=n);1251[ 4 ]1252]]>1253</Example>12541255We have to treat 4 separately:12561257<Example>1258<![CDATA[1259gap> 1^(u*a*u^2*a^-1*u);126011261gap> 4^(u*a*u^2*a^-1*u);126231263]]>1264</Example>12651266Now we know that any positive integer greater than 1 lies in the same1267orbit under the action of the stabilizer of 1 in <M>G</M>1268as 2, thus that this stabilizer acts transitively on1269<M>&NN; \setminus \{1\}</M>. But this means that we have established1270the 2-transitivity of the action of <M>G</M> on &NN;. <P/>12711272In the following, we essentially repeat the above steps to show that1273this action is indeed 3-transitive:12741275<Example>1276<![CDATA[1277gap> tups := Concatenation(List([1..6],k->Tuples([1..4],k)));;1278gap> tups := Filtered(tups,tup->ForAll([[1,3],[3,1],[2,4],[4,2]],1279> l->PositionSublist(tup,l)=fail));;1280gap> stab := [];;1281gap> for tup in tups do1282> l := [1,2];1283> for i in tup do l := List(l,n->n^gens[i]); od;1284> if l = [1,2] then Add(stab,tup); fi;1285> od;1286gap> Length(stab);12872121288gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i])));;1289gap> decs := List(stabelm,DecreasingOn);;1290gap> SortParallel(decs,stabelm,function(S1,S2)1291> return First([1..100],k->Factorial(k) mod Mod(S1)=0)1292> < First([1..100],k->Factorial(k) mod Mod(S2)=0); end);1293gap> S := Integers;;1294gap> for i in [1..Length(decs)] do1295> S_old := S; S := Difference(S,decs[i]);1296> if S <> S_old then ViewObj(S); Print("\n"); fi;1297> if S = [] then break; fi;1298> od;1299Z \ 1(8) U 7(8)1300<union of 151 residue classes (mod 240)>1301<union of 208 residue classes (mod 720)>1302<union of 51 residue classes (mod 720)>1303<union of 45 residue classes (mod 720)>1304<union of 39 residue classes (mod 720)>1305<union of 33 residue classes (mod 720)>1306<union of 23 residue classes (mod 720)>1307<union of 19 residue classes (mod 720) (7 classes)>1308<union of 17 residue classes (mod 720) (6 classes)>1309<union of 16 residue classes (mod 720) (7 classes)>1310<union of 14 residue classes (mod 720) (9 classes)>1311<union of 8 residue classes (mod 720) (6 classes)>1312<union of 7 residue classes (mod 720) (6 classes)>1313238(360) U 4(720) U 148(720) U 454(720)1314<union of 38 residue classes (mod 5760)>1315<union of 37 residue classes (mod 5760)>1316<union of 25 residue classes (mod 5760)>1317<union of 21 residue classes (mod 5760)>1318<union of 17 residue classes (mod 5760) (13 classes)>1319<union of 16 residue classes (mod 5760) (12 classes)>1320<union of 138 residue classes (mod 51840)>1321<union of 48 residue classes (mod 51840)>1322<union of 32 residue classes (mod 51840)>1323<union of 20 residue classes (mod 51840) (14 classes)>1324<union of 16 residue classes (mod 51840) (12 classes)>1325<union of 68 residue classes (mod 259200)>1326<union of 42 residue classes (mod 259200)>1327<union of 32 residue classes (mod 259200)>1328<union of 26 residue classes (mod 259200)>1329<union of 25 residue classes (mod 259200)>1330<union of 11 residue classes (mod 259200) (10 classes)>1331<union of 10 residue classes (mod 259200) (9 classes)>1332<union of 7 residue classes (mod 259200) (6 classes)>133313414(129600) U 2164(259200) U 66964(259200) U 228964(259200)13342164(259200) U 66964(259200) U 228964(259200)1335[ ]1336gap> Maximum(List(stabelm,f->Maximum(List(Coefficients(f),c->c[2]))));13375158161338gap> smallnum := [4..515816];;1339gap> for i in [1..Length(stabelm)] do1340> smallnum := Filtered(smallnum,n->n^stabelm[i]>=n);1341> od;1342gap> smallnum;1343[ ]1344]]>1345</Example>13461347The same for 4-transitivity:13481349<Example>1350<![CDATA[1351gap> tups := Concatenation(List([1..8],k->Tuples([1..4],k)));;1352gap> tups := Filtered(tups,tup->ForAll([[1,3],[3,1],[2,4],[4,2]],1353> l->PositionSublist(tup,l)=fail));;1354gap> stab := [];;1355gap> for tup in tups do1356> l := [1,2,3];1357> for i in tup do l := List(l,n->n^gens[i]); od;1358> if l = [1,2,3] then Add(stab,tup); fi;1359> od;1360gap> Length(stab);13615281362gap> stabelm := [];;1363gap> for i in [1..Length(stab)] do1364> elm := One(G);1365> for j in stab[i] do1366> if Modulus(elm) > 10000 then elm := fail; break; fi;1367> elm := elm * gens[j];1368> od;1369> if elm <> fail then Add(stabelm,elm); fi;1370> od;1371gap> Length(stabelm);13723341373gap> decs := List(stabelm,DecreasingOn);;1374gap> SortParallel(decs,stabelm,1375> function(S1,S2)1376> return First([1..100],k->Factorial(k) mod Modulus(S1) = 0)1377> < First([1..100],k->Factorial(k) mod Modulus(S2) = 0);1378> end);1379gap> S := Integers;;1380gap> for i in [1..Length(decs)] do1381> S_old := S; S := Difference(S,decs[i]);1382> if S <> S_old then ViewObj(S); Print("\n"); fi;1383> if S = [] then maxind := i; break; fi;1384> od;1385Z \ 1(8) U 7(8)1386<union of 46 residue classes (mod 72)>1387<union of 20 residue classes (mod 72) (8 classes)>13884(18)1389<union of 28 residue classes (mod 576)>1390<union of 22 residue classes (mod 576)>1391<union of 21 residue classes (mod 576)>139240(72) U 4(144) U 94(144) U 346(576) U 418(576)1393<union of 16 residue classes (mod 576) (6 classes)>1394<union of 15 residue classes (mod 576) (6 classes)>13954(144) U 94(144) U 346(576) U 418(576)1396<union of 30 residue classes (mod 5184)>1397<union of 26 residue classes (mod 5184)>1398<union of 6 residue classes (mod 1296)>1399<union of 504 residue classes (mod 129600)>1400<union of 324 residue classes (mod 129600)>1401<union of 282 residue classes (mod 129600)>1402<union of 239 residue classes (mod 129600)>1403<union of 218 residue classes (mod 129600)>1404<union of 194 residue classes (mod 129600)>1405<union of 154 residue classes (mod 129600)>1406<union of 97 residue classes (mod 129600)>1407<union of 85 residue classes (mod 129600)>1408<union of 77 residue classes (mod 129600)>1409<union of 67 residue classes (mod 129600)>1410<union of 125 residue classes (mod 259200)>1411<union of 108 residue classes (mod 259200)>1412<union of 107 residue classes (mod 259200)>1413<union of 101 residue classes (mod 259200)>1414<union of 100 residue classes (mod 259200)>1415<union of 84 residue classes (mod 259200)>1416<union of 80 residue classes (mod 259200)>1417<union of 76 residue classes (mod 259200)>1418<union of 70 residue classes (mod 259200)>1419<union of 66 residue classes (mod 259200)>1420<union of 54 residue classes (mod 259200)>1421<union of 53 residue classes (mod 259200)>1422<union of 47 residue classes (mod 259200)>1423<union of 43 residue classes (mod 259200)>1424<union of 31 residue classes (mod 259200)>1425<union of 24 residue classes (mod 259200)>1426<union of 23 residue classes (mod 259200)>1427<union of 13 residue classes (mod 259200) (8 classes)>142857406(129600) U 115006(129600) U 192676(259200) U 250276(259200)142957406(129600) U 192676(259200) U 250276(259200) U 374206(388800)143057406(129600) U 192676(259200) U 250276(259200)1431250276(259200) U 57406(388800) U 316606(388800) U 451876(777600)1432316606(388800) U 451876(777600) U 509476(777600) U 768676(777600)1433<union of 18 residue classes (mod 3110400) (6 classes)>1434451876(777600) U 509476(777600) U 705406(777600) U 768676(777600)1435U 2649406(3110400)1436451876(777600) U 705406(777600) U 768676(777600) U 2649406(3110400)1437451876(777600) U 705406(777600) U 2649406(3110400)1438705406(777600) U 2007076(3110400) U 2649406(3110400) U 2784676(3110400)1439<union of 14 residue classes (mod 9331200) (8 classes)>14402260606(2332800) U 5759806(9331200) U 5895076(9331200) U 8227876(9331200)14414593406(6998400) U 15091006(27993600) U 17559076(27993600)1442U 24557476(27993600)1443<union of 14 residue classes (mod 83980800) (8 classes)>144418590206(20995200) U 24557476(83980800) U 45552676(83980800)1445U 71078206(83980800)1446[ ]1447gap> Maximum(List(stabelm{[1..maxind]},1448> f->Maximum(List(Coefficients(f),c->c[2]))));1449589751450gap> smallnum := [5..58975];;1451gap> for i in [1..maxind] do1452> smallnum := Filtered(smallnum,n->n^stabelm[i]>=n);1453> od;1454gap> smallnum;1455[ ]1456]]>1457</Example>14581459There is even some evidence that the degree of transitivity of the action of1460<M>G</M> on the positive integers is higher than 4:14611462<Example>1463<![CDATA[1464gap> phi := EpimorphismFromFreeGroup(G);1465[ a, u ] -> [ a, u ]1466gap> F := Source(phi);1467<free group on the generators [ a, u ]>1468gap> List([5..20],1469> n->RepresentativeActionPreImage(G,[1,2,3,4,5],1470> [1,2,3,4,n],OnTuples,F));1471[ <identity ...>, a^-3*u^4*a*u^-2*a^2, a^-1*(a^-1*u)^4*a^-1*u^-1*a,1472a^4*u^-2*a^-4, a^-1*u^-4*a, (u^2*a^-1)^2*u^-2, u^-2*a^-2*u^4,1473a^-1*u^2*a, a^-1*u^-6*a, a^2*u^4*a^2*u^2, u^-4*a*u^-2*a^-3,1474a^-1*u^-2*a^-3*u^4*a^2, a^2*(a*u^2)^2, (a*u^-4)^2*a^-2,1475u^-2*a*u^2*a*u^-2, u^-4*a^2*u^2 ]1476]]>1477</Example>14781479Enter <C>AssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>1480in order to assign the global variables defined in this section.14811482</Section>14831484<!-- #################################################################### -->14851486<Section Label="sec:ThreeButNotFourTransitiveGroup">1487<Heading>1488A group which acts 3-transitively, but not 4-transitively on &ZZ;1489</Heading>14901491In this section, we would like to show that the group <M>G</M> generated1492by the two permutations <M>n \mapsto n + 1</M> and <M>\tau_{1(2),0(4)}</M>1493acts 3-transitively, but not 4-transitively on the set of integers.14941495<Example>1496<![CDATA[1497gap> G := Group(ClassShift(0,1),ClassTransposition(1,2,0,4));1498<rcwa group over Z with 2 generators>1499gap> IsTame(G);1500false1501gap> (G.1^-2*G.2)^3*(G.1^2*G.2)^3; # G <> the free product C_infty * C_2.1502IdentityMapping( Integers )1503gap> Display(G:CycleNotation:=false);15041505Wild rcwa group over Z, generated by15061507[1508Tame rcwa permutation of Z: n -> n + 115091510Rcwa permutation of Z with modulus 4, of order 215111512/1513| 2n-2 if n in 1(2)1514n |-> < (n+2)/2 if n in 0(4)1515| n if n in 2(4)1516\15171518]1519]]>1520</Example>15211522This group acts transitively on &ZZ;, since already the cyclic1523group generated by the first of the two generators does so. Next we have to1524show that it acts 2-transitively. We essentially proceed as in the example1525in the previous section, by checking that the stabilizer of 01526acts transitively on <M>&ZZ; \setminus \{0\}</M>.15271528<Example>1529<![CDATA[1530gap> gens := [ClassShift(0,1)^-1,ClassTransposition(1,2,0,4),1531> ClassShift(0,1)];;1532gap> tups := Concatenation(List([1..6],k->Tuples([-1,0,1],k)));;1533gap> tups := Filtered(tups,tup->ForAll([[0,0],[-1,1],[1,-1]],1534> l->PositionSublist(tup,l)=fail));;1535gap> Length(tups);15361891537gap> stab := [];;1538gap> for tup in tups do1539> n := 0;1540> for i in tup do n := n^gens[i+2]; od;1541> if n = 0 then Add(stab,tup); fi;1542> od;1543gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i+2])));;1544gap> Collected(List(stabelm,Modulus));1545[ [ 4, 6 ], [ 8, 4 ], [ 16, 3 ] ]1546gap> decs := List(stabelm,DecreasingOn);1547[ 0(4), 3(4), 0(4), 3(4), 2(4), 0(4), 4(8), 2(4), 2(4), 0(4), 1(4),15480(8), 3(8) ]1549gap> Union(decs);1550Integers1551]]>1552</Example>15531554Similar as in the previous section, it remains to check that the integers1555with <Q>small</Q> absolute value all lie in the orbit containing 1 under1556the action of the stabilizer of 0:15571558<Example>1559<![CDATA[1560gap> Maximum(List(stabelm,f->Maximum(List(Coefficients(f),1561> c->AbsInt(c[2])))));1562211563gap> S := [1];;1564gap> for elm in stabelm do S := Union(S,S^elm,S^(elm^-1)); od;1565gap> IsSubset(S,Difference([-21..21],[0])); # Not yet ..1566false1567gap> for elm in stabelm do S := Union(S,S^elm,S^(elm^-1)); od;1568gap> IsSubset(S,Difference([-21..21],[0])); # ... but now!1569true1570]]>1571</Example>15721573Now we have to check for 3-transitivity. Since we cannot find for every1574residue class an element of the pointwise stabilizer of <M>\{0,1\}</M>1575which properly divides its elements, we also have to take additions and1576subtractions into consideration. Since the moduli of all of our stabilizer1577elements are quite small, simply looking at sets of representatives is cheap:15781579<Example>1580<![CDATA[1581gap> tups := Concatenation(List([1..10],k->Tuples([-1,0,1],k)));;1582gap> tups := Filtered(tups,tup->ForAll([[0,0],[-1,1],[1,-1]],1583> l->PositionSublist(tup,l)=fail));;1584gap> Length(tups);158530691586gap> stab := [];;1587gap> for tup in tups do1588> l := [0,1];1589> for i in tup do l := List(l,n->n^gens[i+2]); od;1590> if l = [0,1] then Add(stab,tup); fi;1591> od;1592gap> Length(stab);1593101594gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i+2])));;1595gap> Maximum(List(stabelm,Modulus));159681597gap> Maximum(List(stabelm,1598> f->Maximum(List(Coefficients(f),c->AbsInt(c[2])))));159981600gap> decsp := List(stabelm,elm->Filtered([9..16],n->n^elm<n));1601[ [ 9, 13 ], [ 10, 12, 14, 16 ], [ 12, 16 ], [ 9, 13 ], [ 12, 16 ],1602[ 9, 11, 13, 15 ], [ 9, 11, 13, 15 ], [ 12, 16 ], [ 12, 16 ],1603[ 9, 11, 13, 15 ] ]1604gap> Union(decsp);1605[ 9, 10, 11, 12, 13, 14, 15, 16 ]1606gap> decsm := List(stabelm,elm->Filtered([-16..-9],n->n^elm>n));1607[ [ -15, -13, -11, -9 ], [ -16, -12 ], [ -16, -12 ], [ -15, -11 ],1608[ -16, -14, -12, -10 ], [ -15, -11 ], [ -15, -11 ],1609[ -16, -14, -12, -10 ], [ -16, -14, -12, -10 ], [ -15, -11 ] ]1610gap> Union(decsm);1611[ -16, -15, -14, -13, -12, -11, -10, -9 ]1612gap> S := [2];;1613gap> for elm in stabelm do S := Union(S,S^elm,S^(elm^-1)); od;1614gap> IsSubset(S,Difference([-8..8],[0,1]));1615true1616]]>1617</Example>16181619At this point we have established 3-transitivity.1620It remains to check that the group <M>G</M> does not act 4-transitively.1621We do this by checking that it is not transitive on 4-tuples (mod 4).1622Since <M>n</M> mod 8 determines the image of <M>n</M> under1623a generator of <M>G</M> (mod 4), it suffices to compute (mod 8):16241625<Example>1626<![CDATA[1627gap> orb := [[0,1,2,3]];;1628gap> extend := function ()1629> local gen;1630> for gen in gens do1631> orb := Union(orb,List(orb,l->List(l,n->n^gen) mod 8));1632> od;1633> end;;1634gap> repeat1635> old := ShallowCopy(orb);1636> extend(); Print(Length(orb),"\n");1637> until orb = old;1638716392716409716412791642573164391616441185164513131646134116471344164813441649gap> Length(Set(List(orb,l->l mod 4)));16501201651gap> last < 4^4;1652true1653]]>1654</Example>16551656This shows that <M>G</M> acts not 4-transitively on &ZZ;.1657The corresponding calculation for 3-tuples looks as follows:16581659<Example>1660<![CDATA[1661gap> orb := [[0,1,2]];;1662gap> repeat1663> old := ShallowCopy(orb);1664> extend(); Print(Length(orb),"\n");1665> until orb = old;166671667271668841669207167036316714591672503167351216745121675gap> Length(Set(List(orb,l->l mod 4)));1676641677gap> last = 4^3;1678true1679]]>1680</Example>16811682Needless to say that the latter kind of argumentation is not suitable1683for proving, but only for disproving <M>k</M>-transitivity.16841685</Section>16861687<!-- #################################################################### -->16881689<Section Label="sec:SlowlyContractingMapping">1690<Heading>1691An rcwa mapping which seems to be contracting, but very slow1692</Heading>16931694The iterates of an integer under the Collatz mapping <M>T</M> seem to1695approach its contraction centre -- this is the finite set where all1696trajectories end up after a finite number of steps -- rather quickly and1697do not get very large before doing so (of course this is a purely heuristic1698statement as the <M>3n+1</M> conjecture has not been proved so far!):16991700<Example>1701<![CDATA[1702gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;1703gap> S0 := LikelyContractionCentre(T,100,1000);1704#I Warning: `LikelyContractionCentre' is highly probabilistic.1705The returned result can only be regarded as a rough guess.1706See ?LikelyContractionCentre for more information.1707[ -136, -91, -82, -68, -61, -55, -41, -37, -34, -25, -17, -10, -7, -5,1708-1, 0, 1, 2 ]1709gap> S0^T = S0; # This holds by definition of the contraction centre.1710true1711gap> List([1..30],n->Length(Trajectory(T,n,S0)));1712[ 1, 1, 5, 2, 4, 6, 11, 3, 13, 5, 10, 7, 7, 12, 12, 4, 9, 14, 14, 6, 6,171311, 11, 8, 16, 8, 70, 13, 13, 13 ]1714gap> Maximum(List([1..1000],n->Length(Trajectory(T,n,S0))));17151131716gap> Maximum(List([1..1000],n->Maximum(Trajectory(T,n,S0))));17171252521718]]>1719</Example>17201721The following mapping seems to be contracting as well, but its trajectories1722are much longer:17231724<Log>1725<![CDATA[1726gap> f6 := RcwaMapping([[ 1,0,6],[ 5, 1,6],[ 7,-2,6],1727> [11,3,6],[11,-2,6],[11,-1,6]]);;1728gap> Display(f6);17291730Rcwa mapping of Z with modulus 617311732/1733| n/6 if n in 0(6)1734| (5n+1)/6 if n in 1(6)1735| (7n-2)/6 if n in 2(6)1736n |-> < (11n+3)/6 if n in 3(6)1737| (11n-2)/6 if n in 4(6)1738| (11n-1)/6 if n in 5(6)1739|1740\17411742gap> S0 := LikelyContractionCentre(f6,1000,100000);;1743#I Warning: `LikelyContractionCentre' is highly probabilistic.1744The returned result can only be regarded as a rough guess.1745See ?LikelyContractionCentre for more information.1746gap> Trajectory(f6,25,S0);1747[ 25, 21, 39, 72, 12, 2 ]1748gap> List([1..100],n->Length(Trajectory(f6,n,S0)));1749[ 1, 1, 3, 4, 1, 2, 3, 2, 1, 5, 7, 2, 8, 17, 3, 16, 1, 4, 17, 6, 5, 2,17505, 5, 6, 1, 4, 2, 15, 1, 1, 3, 2, 5, 13, 3, 2, 3, 4, 1, 8, 4, 4, 2, 7,175119, 23517, 3, 9, 3, 1, 18, 14, 2, 20, 23512, 14, 2, 6, 6, 1, 4, 19,175212, 23511, 8, 23513, 10, 1, 13, 13, 3, 1, 23517, 7, 20, 7, 9, 9, 6,175312, 8, 6, 18, 14, 23516, 31, 12, 23545, 4, 21, 19, 5, 1, 17, 17, 13,175419, 6, 23515 ]1755gap> Maximum(Trajectory(f6,47,S0));17567363391777762473304431877054771075818733690108051469808715809256737742295\1757456988860541758]]>1759</Log>17601761Computing the trajectory of 3224 takes quite a while -- this trajectory1762ascends to about <M>3 \cdot 10^{2197}</M>, before it approaches the fixed1763point 2 after 19949562 steps. <P/>17641765When constructing the mapping <C>f6</C>, the denominators of the1766partial mappings have been chosen to be equal and the numerators have1767been chosen to be numbers coprime to the common denominator, whose product1768is just a little bit smaller than the <C>Modulus(f6)</C>th power of the1769denominator. In the example we have <M>5 \cdot 7 \cdot 11^3 = 46585</M>1770and <M>6^6 = 46656</M>. <P/>17711772Although the trajectories of <C>T</C> are much shorter than those of1773<C>f6</C>, it seems likely that this does not make the problem of deciding1774whether the mapping <C>T</C> is contracting essentially easier --1775even for mappings with much shorter trajectories than <C>T</C>1776the problem seems to be equally hard. A solution can usually only be found1777in trivial cases, i.e. for example when there is some <M>k</M> such that1778applying the <M>k</M>th power of the respective mapping to any integer1779decreases its absolute value. <P/>17801781Enter <C>AssignGlobals(LoadRCWAExamples().SlowlyContractingMappings);</C>1782in order to assign the global variables defined in this section.17831784</Section>17851786<!-- #################################################################### -->17871788<Section Label="sec:AndaloroResult">1789<Heading>Checking a result by P. Andaloro</Heading>17901791In <Cite Key="Andaloro00"/>, P. Andaloro has shown that proving that1792trajectories of integers <M>n \in 1(16)</M> under the Collatz mapping always1793contain 1 would be sufficient to prove the <M>3n+1</M> conjecture.1794In the sequel, this result is verified by &RCWA;. Checking that the1795union of the images of the residue class 1(16) under powers of the Collatz1796mapping <M>T</M> contains <M>&ZZ; \setminus 0(3)</M> is obviously1797enough. Thus we put <M>S := 1(16)</M>, and successively unite the1798set <M>S</M> with its image under <M>T</M>:17991800<Example>1801<![CDATA[1802gap> T := RcwaMapping([[1,0,2],[3,1,2]]);1803<rcwa mapping of Z with modulus 2>1804gap> S := ResidueClass(Integers,16,1);18051(16)1806gap> S := Union(S,S^T);18071(16) U 2(24)1808gap> S := Union(S,S^T);18091(12) U 2(24) U 17(48) U 33(48)1810gap> S := Union(S,S^T);1811<union of 30 residue classes (mod 144)>1812gap> S := Union(S,S^T);1813<union of 42 residue classes (mod 144)>1814gap> S := Union(S,S^T);1815<union of 172 residue classes (mod 432)>1816gap> S := Union(S,S^T);1817<union of 676 residue classes (mod 1296)>1818gap> S := Union(S,S^T);1819<union of 810 residue classes (mod 1296)>1820gap> S := Union(S,S^T);1821<union of 2638 residue classes (mod 3888)>1822gap> S := Union(S,S^T);1823<union of 33 residue classes (mod 48)>1824gap> S := Union(S,S^T);1825<union of 33 residue classes (mod 48)>1826gap> Union(S,ResidueClass(Integers,3,0)); # Et voila ...1827Integers1828]]>1829</Example>18301831Further similar computations are shown in1832Section <Ref Label="sec:CollatzImagesAndPreImages"/>. <P/>18331834Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>1835in order to assign the global variables defined in this section.18361837</Section>18381839<!-- #################################################################### -->18401841<Section Label="sec:MatthewsLeighExamples">1842<Heading>Two examples by Matthews and Leigh</Heading>18431844In <Cite Key="MatthewsLeigh87"/>, K. R. Matthews and1845G. M. Leigh have shown that two trajectories of the following1846(surjective, but not injective) mappings are acyclic (mod <M>x</M>)1847and divergent:18481849<Example>1850<![CDATA[1851gap> x := Indeterminate(GF(4),1);; SetName(x,"x");1852gap> R := PolynomialRing(GF(2),1);1853GF(2)[x]1854gap> ML1 := RcwaMapping(R,x,[[1,0,x],[(x+1)^3,1,x]]*One(R));;1855gap> ML2 := RcwaMapping(R,x,[[1,0,x],[(x+1)^2,1,x]]*One(R));;1856gap> Display(ML1);18571858Rcwa mapping of GF(2)[x] with modulus x18591860/1861| P/x if P in 0(x)1862P |-> < ((x^3+x^2+x+1)*P + 1)/x if P in 1(x)1863|1864\18651866gap> Display(ML2);18671868Rcwa mapping of GF(2)[x] with modulus x18691870/1871| P/x if P in 0(x)1872P |-> < ((x^2+1)*P + 1)/x if P in 1(x)1873|1874\18751876gap> List([ML1,ML2],IsSurjective);1877[ true, true ]1878gap> List([ML1,ML2],IsInjective);1879[ false, false ]1880gap> traj1 := Trajectory(ML1,One(R),16);1881[ 1, x^2+x+1, x^4+x^2+x, x^3+x+1, x^5+x^4+x^2, x^4+x^3+x, x^3+x^2+1,1882x^5+x^2+1, x^7+x^6+x^5+x^3+1, x^9+x^7+x^6+x^5+x^3+x+1,1883x^11+x^10+x^8+x^7+x^6+x^5+x^2, x^10+x^9+x^7+x^6+x^5+x^4+x,1884x^9+x^8+x^6+x^5+x^4+x^3+1, x^11+x^8+x^7+x^6+x^4+x+1,1885x^13+x^12+x^11+x^8+x^7+x^6+x^4, x^12+x^11+x^10+x^7+x^6+x^5+x^3 ]1886gap> traj2 := Trajectory(ML2,(x^3+x+1)*One(R),16);1887[ x^3+x+1, x^4+x+1, x^5+x^3+x^2+x+1, x^6+x^3+1, x^7+x^5+x^4+x^2+x,1888x^6+x^4+x^3+x+1, x^7+x^4+x^3+x+1, x^8+x^6+x^5+x^4+x^3+x+1,1889x^9+x^6+x^3+x+1, x^10+x^8+x^7+x^5+x^4+x+1,1890x^11+x^8+x^7+x^5+x^4+x^3+x^2+x+1, x^12+x^10+x^9+x^8+x^7+x^5+1,1891x^13+x^10+x^7+x^4+x, x^12+x^9+x^6+x^3+1,1892x^13+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x,1893x^12+x^10+x^9+x^7+x^6+x^4+x^3+x+1 ]1894]]>1895</Example>18961897The pattern which Matthews and Leigh used to show the divergence of the1898above trajectories can be recognized easily by looking at the corresponding1899Markov chains with the two states 0 mod <M>x</M> and19001 mod <M>x</M>:19011902<Example>1903<![CDATA[1904gap> traj1modx := Trajectory(ML1,One(R),400,x);;1905gap> traj2modx := Trajectory(ML2,(x^3+x+1)*One(R),600,x);;1906gap> List(traj1modx{[1..150]},val->Position([Zero(R),One(R)],val)-1);1907[ 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1,19081, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,19091, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,19101, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,19111, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19121, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,19131, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]1914gap> List(traj2modx{[1..150]},val->Position([Zero(R),One(R)],val)-1);1915[ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1,19161, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19171, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0,19181, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19191, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19201, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1,19210, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ]1922]]>1923</Example>19241925What is important here are the lengths of the intervals between two changes1926from one state to the other:19271928<Example>1929<![CDATA[1930gap> ChangePoints := l->Filtered([1..Length(l)-1],pos->l[pos]<>l[pos+1]);;1931gap> Diffs := l->List([1..Length(l)-1],pos->l[pos+1]-l[pos]);;1932gap> Diffs(ChangePoints(traj1modx)); # The pattern in the first ...1933[ 1, 1, 2, 4, 2, 2, 4, 8, 4, 4, 8, 16, 8, 8, 16, 32, 16, 16, 32, 64, 32,193432, 64 ]1935gap> Diffs(ChangePoints(traj2modx)); # ... and in the second example.1936[ 1, 7, 1, 1, 1, 13, 1, 1, 1, 1, 1, 1, 1, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1,19371, 1, 1, 1, 1, 1, 49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19381, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 97, 1, 1, 1, 1, 1, 1, 1,19391, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19401, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19411, 1, 1, 1, 1, 1, 1, 1, 1, 1, 193, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19421, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19431, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19441, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,19451, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]1946gap> Diffs(ChangePoints(last)); # Make this a bit more obvious.1947[ 1, 3, 1, 7, 1, 15, 1, 31, 1, 63, 1 ]1948]]>1949</Example>19501951This looks clearly acyclic, thus the trajectories diverge.1952Needless to say however that this computational evidence does not replace1953the proof along these lines given in the article cited above, but just1954sheds a light on the idea behind it. <P/>19551956Enter <C>AssignGlobals(LoadRCWAExamples().MatthewsLeigh);</C>1957in order to assign the global variables defined in this section.19581959</Section>19601961<!-- #################################################################### -->19621963<Section Label="sec:OrdersOfCommutators">1964<Heading>Orders of commutators</Heading>19651966We enter some wild rcwa permutation:19671968<Example>1969<![CDATA[1970gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;1971gap> IsTame(u);;1972gap> Display(u);19731974Wild rcwa permutation of Z with modulus 519751976/1977| 3n/5 if n in 0(5)1978| (9n+1)/5 if n in 1(5)1979n |-> < (3n-1)/5 if n in 2(5)1980| (9n-2)/5 if n in 3(5)1981| (9n+4)/5 if n in 4(5)1982\1983]]>1984</Example>19851986We would like to compute the order of <M>[u,n \mapsto n + k]</M>1987and <M>[u^2,n \mapsto n + k]</M> for different values of <M>k</M>:19881989<Example>1990<![CDATA[1991gap> nu := ClassShift(0,1);; # n -> n + 11992gap> l := Filtered([0..100],k->IsTame(Comm(u,nu^k)));1993[ 0, 2, 3, 5, 6, 9, 10, 12, 13, 15, 17, 18, 20, 21, 24, 25, 27, 28, 30,199432, 33, 35, 36, 39, 40, 42, 43, 45, 47, 48, 50, 51, 54, 55, 57, 58,199560, 62, 63, 65, 66, 69, 70, 72, 73, 75, 77, 78, 80, 81, 84, 85, 87,199688, 90, 92, 93, 95, 96, 99, 100 ]1997gap> List(l,k->Order(Comm(u,nu^k)));1998[ 1, 6, 5, 3, 5, 5, 3, infinity, 7, infinity, 7, 5, 3, infinity,1999infinity, 3, 5, 7, infinity, 7, infinity, 3, 5, 5, 3, 5, infinity,2000infinity, infinity, 5, 3, 5, 5, 3, infinity, 7, infinity, 7, 5, 3,2001infinity, infinity, 3, 5, 7, infinity, 7, infinity, 3, 5, 5, 3, 5,2002infinity, infinity, infinity, 5, 3, 5, 5, 3 ]2003gap> u2 := u^2;2004<wild rcwa permutation of Z with modulus 25>2005gap> Filtered([1..16],k->IsTame(Comm(u2,nu^k))); # k<15->[u^2,nu^k] wild!2006[ 15 ]2007gap> Order(Comm(u2,nu^15));2008infinity2009gap> u2nu17 := Comm(u2,nu^17);2010<rcwa permutation of Z with modulus 81>2011gap> cycs := ShortCycles(u2nu17,[-100..100],100);;2012gap> List(cycs,Length);2013[ 72, 73, 72, 72, 72, 73, 72, 72, 73, 72, 72, 73, 72, 72, 73, 72, 72,201473, 72, 72, 73, 72, 72 ]2015gap> Lcm(last);201652562017gap> u2nu17^5256; # This element has indeed order 2^3*3^2*73 = 5256.2018IdentityMapping( Integers )2019gap> u2nu18 := Comm(u2,nu^18);2020<rcwa permutation of Z with modulus 81>2021gap> cycs := ShortCycles(u2nu18,[-100..100],100);;2022gap> List(cycs,Length);2023[ 21, 22, 22, 22, 21, 22, 22, 21, 22, 22, 21, 22, 21, 22, 22, 21, 22,202422, 21, 22, 22, 21, 22 ]2025gap> Lcm(last);20264622027gap> u2nu18^462; # This is an element of order 2*3*7*11 = 462.2028IdentityMapping( Integers )2029gap> List([Comm(u2,nu^20),Comm(u2,nu^25),Comm(u2,nu^30)],Order);2030[ 29, 9, 15 ]2031]]>2032</Example>20332034We observe that our commutators have various different orders, and2035that the prime factors of these orders are not all <Q>very small</Q>. <P/>20362037Enter <C>AssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>2038in order to assign the global variables defined in this section.20392040</Section>20412042<!-- #################################################################### -->20432044<Section Label="sec:OddNumberOfGens_FiniteOrder">2045<Heading>2046An infinite subgroup of CT(GF(2)[x]) with many torsion elements2047</Heading>20482049In this section, we have a look at the following subgroup of CT(GF(2)[x]):20502051<Example>2052<![CDATA[2053gap> x := Indeterminate(GF(2));; SetName(x,"x");2054gap> R := PolynomialRing(GF(2),1);2055GF(2)[x]2056gap> a := ClassTransposition(0,x,1,x);;2057gap> b := ClassTransposition(0,x^2+1,1,x^2+1);;2058gap> c := ClassTransposition(1,x,0,x^2+x);;2059gap> G := Group(a,b,c);2060<rcwa group over GF(2)[x] with 3 generators>2061gap> Display(G);20622063Rcwa group over GF(2)[x], generated by20642065[2066Rcwa permutation of GF(2)[x]: P -> P + Z(2)^020672068Rcwa permutation of GF(2)[x] with modulus x^2+1, of order 220692070/2071| P + 1 if P in 0(x^2+1) U 1(x^2+1)2072P |-> < P if P in x(x^2+1) U x+1(x^2+1)2073|2074\207520762077Rcwa permutation of GF(2)[x] with modulus x^2+x, of order 220782079/2080| (x+1)*P + x+1 if P in 1(x)2081P |-> < (P + x+1)/(x+1) if P in 0(x^2+x)2082| P if P in x(x^2+x)2083\20842085]2086]]>2087</Example>20882089We can easily find 2 normal subgroups of <C>G</C>:20902091<Example>2092<![CDATA[2093gap> N1 := Subgroup(G,[a*b,a*c]);2094<rcwa group over GF(2)[x] with 2 generators>2095gap> IsNormal(G,N1);2096true2097gap> Index(G,N1);209822099gap> G/N1;2100Group([ (1,2), (1,2), (1,2) ])2101gap> N2 := Subgroup(G,[a*b*c,a*c]);;2102gap> IsNormal(G,N2);2103true2104gap> IsSubgroup(N1,N2);2105false2106]]>2107</Example>21082109Products of even numbers of generators of <C>G</C> may have2110infinite order. For example, we have21112112<Example>2113<![CDATA[2114gap> Order(a*b);211522116gap> Order(a*c);2117infinity2118gap> Order(b*c);2119infinity2120]]>2121</Example>21222123We would like to have a look at orders of products of odd numbers of2124generators. In order to restrict our considerations to <Q>essentially2125different</Q> products (as far as we can easily do this), we use2126the following auxiliary function:21272128<Listing Type="GAP code">2129<![CDATA[2130NormedWords := function ( F, lng )21312132local words, gens, tuples, w;21332134gens := GeneratorsOfGroup(F);2135tuples := EnumeratorOfTuples([1..3],lng);2136words := [];21372138for w in tuples do2139if (w[1] = 1 or not 1 in w)2140and PositionSublist(w,[1,1]) = fail2141and PositionSublist(w,[2,2]) = fail2142and PositionSublist(w,[3,3]) = fail2143and PositionSublist(w,[2,1]) = fail2144and w[1] < w[lng]2145and w{[1,lng]} <> [1,2]2146and (w{[1..3]} = [1,2,3] or PositionSublist(w,[1,2,3]) = fail)2147then Add(words,w); fi;2148od;21492150words := List(words,word->Product(List(word,i->gens[i])));2151return words;2152end;2153]]>2154</Listing>21552156Now let's compute the possible orders of products of 3, 5, 7 or 9 generators:21572158<Log>2159<![CDATA[2160gap> F := FreeGroup("a","b","c");;2161gap> phi := EpimorphismByGenerators(F,G);2162[ a, b, c ] ->2163[ ClassTransposition(0,x,1,x), ClassTransposition(0,x^2+1,1,x^2+1),2164ClassTransposition(1,x,0,x^2+x) ]2165gap> B3 := NormedWords(F,3);2166[ a*b*c ]2167gap> B3 := List(B3,g->g^phi);2168[ <rcwa permutation of GF(2)[x] with modulus x^3+x> ]2169gap> List(B3,Order);2170[ 20 ]2171gap> B5 := NormedWords(F,5);2172[ a*b*c*a*c, a*b*c*b*c ]2173gap> B5 := List(B5,g->g^phi);2174[ <rcwa permutation of GF(2)[x] with modulus x^3+x>,2175<rcwa permutation of GF(2)[x] with modulus x^4+x^3+x^2+x> ]2176gap> List(B5,Order);2177[ 12, 12 ]2178gap> B7 := NormedWords(F,7);2179[ a*b*c*a*c*a*c, a*b*c*a*c*b*c, a*b*c*b*c*a*c, a*b*c*b*c*b*c ]2180gap> B7 := List(B7,g->g^phi);2181[ <rcwa permutation of GF(2)[x] with modulus x^4+x^3+x^2+x>,2182<rcwa permutation of GF(2)[x] with modulus x^5+x>,2183<rcwa permutation of GF(2)[x] with modulus x^4+x^3+x^2+x>,2184<rcwa permutation of GF(2)[x] with modulus x^5+x> ]2185gap> List(B7,Order);2186[ 12, 12, 12, 30 ]2187gap> B9 := NormedWords(F,9);2188[ a*b*c*a*b*c*a*b*c, a*b*c*a*c*a*c*a*c, a*b*c*a*c*a*c*b*c, a*b*c*a*c*b*c*a*c,2189a*b*c*a*c*b*c*b*c, a*b*c*b*c*a*c*a*c, a*b*c*b*c*a*c*b*c, a*b*c*b*c*b*c*a*c,2190a*b*c*b*c*b*c*b*c ]2191gap> B9 := List(B9,g->g^phi);;2192gap> List(B9,Order);2193[ 20, 4, 30, 12, 42, 30, 4, 42, 12 ]2194]]>2195</Log>21962197Enter <C>AssignGlobals(LoadRCWAExamples().OddNumberOfGens_FiniteOrder);</C>2198in order to assign the global variables defined in this section.21992200</Section>22012202<!-- #################################################################### -->22032204<Section Label="sec:AbelianGroupOverPolynomialRing">2205<Heading>An abelian rcwa group over a polynomial ring</Heading>22062207We enter a 2-generated abelian wild rcwa group over GF(4)[<M>x</M>]:22082209<Example>2210<![CDATA[2211gap> x := Indeterminate(GF(4),1);; SetName(x,"x");2212gap> R := PolynomialRing(GF(4),1);2213GF(2^2)[x]2214gap> e := One(GF(4));;2215gap> p := x^2 + x + e;; q := x^2 + e;;2216gap> r := x^2 + x + Z(4);; s := x^2 + x + Z(4)^2;;2217gap> cg := List( AllResidues(R,x^2), pol -> [ p, p * pol mod q, q ] );;2218gap> ch := List( AllResidues(R,x^2), pol -> [ r, r * pol mod s, s ] );;2219gap> g := RcwaMapping( R, q, cg );2220<rcwa mapping of GF(2^2)[x] with modulus x^2+1>2221gap> h := RcwaMapping( R, s, ch );2222<rcwa mapping of GF(2^2)[x] with modulus x^2+x+Z(2^2)^2>2223gap> List([g,h],IsTame);2224[ false, false ]2225gap> G := Group(g,h);2226<rcwa group over GF(2^2)[x] with 2 generators>2227gap> IsAbelian(G);2228true2229gap> IsTame(G);2230false2231]]>2232</Example>22332234It is easy to see that all orbits on GF(4)[<M>x</M>] under the action2235of <C>G</C> are finite. <P/>22362237Now we compute the action of the group <C>G</C> on one of its orbits, and2238make some statistics of the orbits of <C>G</C> containing polynomials of2239degree less than 4:22402241<Example>2242<![CDATA[2243gap> orb := Orbit(G,x^5);2244[ x^5, x^5+x^4+x^2+1, x^5+x^3+x^2+Z(2^2)*x+Z(2)^0, x^5+x^3,2245x^5+x^4+x^3+x^2+Z(2^2)^2*x+Z(2^2)^2, x^5+x, x^5+x^4+x^3,2246x^5+x^2+Z(2^2)^2*x, x^5+x^4+x^2+x, x^5+x^3+x^2+Z(2^2)^2*x+Z(2)^0,2247x^5+x^4+Z(2^2)*x+Z(2^2), x^5+x^3+x, x^5+x^4+x^3+x^2+Z(2^2)*x+Z(2^2),2248x^5+x^4+x^3+x+1, x^5+x^2+Z(2^2)*x, x^5+x^4+Z(2^2)^2*x+Z(2^2)^2 ]2249gap> H := Action(G,orb);2250Group([ (1,2,4,7,6,9,12,14)(3,5,8,11,10,13,15,16),2251(1,3,6,10)(2,5,9,13)(4,8,12,15)(7,11,14,16) ])2252gap> IsAbelian(H); # check ...2253true2254gap> IsCyclic(H); # H, and therefore also G, is not cyclic2255false2256gap> Exponent(H);225782258gap> Collected(List(ShortOrbits(G,AllResidues(R,x^4),100),Length));2259[ [ 1, 4 ], [ 2, 6 ], [ 4, 12 ], [ 8, 24 ] ]2260]]>2261</Example>22622263Changing the generators a little changes the structure of the group2264and its action on the underlying ring a lot:22652266<Example>2267<![CDATA[2268gap> cg[1][2] := cg[1][2] + (x^2 + e) * p * q;;2269gap> ch[7][2] := ch[7][2] + x * r * s;;2270gap> g := RcwaMapping( R, q, cg );; h := RcwaMapping( R, s, ch );;2271gap> G := Group(g,h);2272<rcwa group over GF(2^2)[x] with 2 generators>2273gap> IsAbelian(G);2274false2275gap> Support(G);2276GF(2^2)[x] \ [ 1, Z(2^2), Z(2^2)^2 ]2277gap> orb := Orbit(G,Zero(R));;2278gap> Length(orb);2279872280gap> StructureDescription(Action(G,orb));2281"A87"2282gap> Collected(List(orb,DegreeOfLaurentPolynomial));2283[ [ -infinity, 1 ], [ 1, 2 ], [ 2, 4 ], [ 3, 16 ], [ 4, 64 ] ]2284gap> S := AllResidues(R,x^6);;2285gap> orbs := ShortOrbits(G,S,-1:finite);;2286gap> List(orbs,Length);2287[ 87, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 20, 4, 12, 4, 20, 4, 4, 12, 8, 8,228848, 48, 16, 8, 8, 56, 8, 88, 8, 8, 8, 400, 16, 48, 16, 16, 16, 80, 16,228916, 16, 96, 32, 192, 32, 16, 16, 416, 16, 48, 16, 16, 880, 16, 16, 16,229016, 16, 16, 16, 16, 16, 848, 16, 16, 32, 16, 16, 16, 16, 16, 16, 16 ]2291gap> Position(last,880);2292552293gap> Set(orbs[55],DegreeOfLaurentPolynomial); # all elm's have same degree2294[ 5 ]2295gap> H := Action(G,orbs[55]);;2296gap> IsPrimitive(H,MovedPoints(H));2297false2298gap> List(Blocks(H,MovedPoints(H)),Length);2299[ 110, 110, 110, 110, 110, 110, 110, 110 ]2300]]>2301</Example>23022303Enter <C>AssignGlobals(LoadRCWAExamples().AbelianGroupOverPolynomialRing);</C>2304in order to assign the global variables defined in this section.23052306</Section>23072308<!-- #################################################################### -->23092310<Section Label="sec:CheckingForSolvability">2311<Heading>Checking for solvability</Heading>23122313Presently there is no general method available for testing wild rcwa groups2314for solvability. However, sometimes the question for solvability can be2315answered anyway.2316In the example below, the idea is to find a subgroup <A>U</A> which acts2317on a finite set <A>S</A> of integers, and which induces on <A>S</A>2318a non-solvable finite permutation group:23192320<Example>2321<![CDATA[2322gap> a := RcwaMapping([[3,0,2],[3, 1,4],[3,0,2],[3,-1,4]]);;2323gap> b := RcwaMapping([[3,0,2],[3,13,4],[3,0,2],[3,-1,4]]);;2324gap> G := Group(a,b);;2325gap> ShortOrbits(Group(Comm(a,b)),[-10..10],100);2326[ [ -10 ], [ -9 ], [ -30, -21, -14, -13, -11, -8 ], [ -7 ], [ -6 ],2327[ -12, -5, -4, -3, -2, 1 ], [ -1 ], [ 0 ], [ 2 ], [ 3 ],2328[ 4, 5, 6, 7, 10, 15 ], [ 8 ], [ 9 ] ]2329gap> S := [ 4, 5, 6, 7, 10, 15 ];;2330gap> Cycle(Comm(a,b),4);2331[ 4, 7, 10, 15, 5, 6 ]2332gap> elm := RepresentativeAction(G,S,Permuted(S,(1,4)),OnTuples);2333<rcwa permutation of Z with modulus 81>2334gap> List(S,n->n^elm);2335[ 7, 5, 6, 4, 10, 15 ]2336gap> U := Group(Comm(a,b),elm);2337<rcwa group over Z with 2 generators>2338gap> Action(U,S);2339Group([ (1,4,5,6,2,3), (1,4) ])2340gap> IsNaturalSymmetricGroup(last);2341true2342]]>2343</Example>23442345Thus the subgroup <A>U</A> induces on <A>S</A> a natural symmetric group of2346degree 6. Therefore the group <A>G</A> is not solvable.2347We conclude this example by factoring the group element <A>elm</A> into2348generators:23492350<Example>2351<![CDATA[2352gap> F := FreeGroup("a","b");2353<free group on the generators [ a, b ]>2354gap> RepresentativeActionPreImage(G,S,Permuted(S,(1,4)),OnTuples,F);2355a^-2*b^-2*a*b*a^-1*b*a*b^-2*a2356gap> a^-2*b^-2*a*b*a^-1*b*a*b^-2*a = elm;2357true2358]]>2359</Example>23602361Enter <C>AssignGlobals(LoadRCWAExamples().CheckingForSolvability);</C>2362in order to assign the global variables defined in this section.23632364</Section>23652366<!-- #################################################################### -->23672368<Section Label="sec:LocalExample">2369<Heading>Some examples over (semi)localizations of the integers</Heading>23702371We start with something one can observe when trying to <Q>transfer</Q> an2372rcwa mapping from the ring of integers to one of its localizations:23732374<Example>2375<![CDATA[2376gap> a := RcwaMapping([[3,0,2],[3,1,4],[3,0,2],[3,-1,4]]);;2377gap> IsBijective(a);2378true2379gap> a2 := LocalizedRcwaMapping(a,2);2380<rcwa mapping of Z_( 2 ) with modulus 4>2381gap> IsSurjective(a2); # As expected2382true2383gap> IsInjective(a2); # Why not??2384false2385gap> 0^a2;238602387gap> (1/3)^a2; # That's the reason!238802389]]>2390</Example>23912392The above can also be explained easily by pointing out that the2393modulus of the inverse of <C>a</C> is 3, and that 3 is a unit2394of <M>&ZZ;_{(2)}</M>.2395Moving to <M>&ZZ;_{(2,3)}</M> solves this problem:23962397<Example>2398<![CDATA[2399gap> a23 := SemilocalizedRcwaMapping(a,[2,3]);2400<rcwa mapping of Z_( 2, 3 ) with modulus 4>2401gap> IsBijective(a23);2402true2403]]>2404</Example>24052406We get additional finite cycles, e.g.:24072408<Example>2409<![CDATA[2410gap> List(ShortOrbits(Group(a23),[0..50]/5,50),orb->Cycle(a23,orb[1]));2411[ [ 0 ], [ 1/5, 2/5, 3/5 ],2412[ 4/5, 6/5, 9/5, 8/5, 12/5, 18/5, 27/5, 19/5, 13/5, 11/5, 7/5 ],2413[ 1 ], [ 2, 3 ], [ 14/5, 21/5, 17/5 ],2414[ 16/5, 24/5, 36/5, 54/5, 81/5, 62/5, 93/5, 71/5, 52/5, 78/5, 117/5,241589/5, 68/5, 102/5, 153/5, 116/5, 174/5, 261/5, 197/5, 149/5,2416113/5, 86/5, 129/5, 98/5, 147/5, 109/5, 83/5, 61/5, 47/5, 34/5,241751/5, 37/5, 29/5, 23/5 ], [ 4, 6, 9, 7, 5 ] ]2418gap> List(last,Length);2419[ 1, 3, 11, 1, 2, 3, 34, 5 ]2420gap> List(ShortOrbits(Group(a23),[0..50]/7,50),orb->Cycle(a23,orb[1]));2421[ [ 0 ], [ -1/7, 1/7 ], [ 2/7, 3/7, 4/7, 6/7, 9/7, 5/7 ], [ 1 ],2422[ 2, 3 ], [ 4, 6, 9, 7, 5 ] ]2423gap> List(last,Length);2424[ 1, 2, 6, 1, 2, 5 ]2425]]>2426</Example>24272428However the structure of a group with prime set <M>\mathbb{P}</M>2429remains invariant under the <Q>transfer</Q> from &ZZ;2430to <M>&ZZ;_{(\mathbb{P})}</M>. <P/>24312432<Q>Transferring</Q> a non-invertible rcwa mapping from the ring of integers2433to some of its (semi)localizations can also turn it into an invertible one:24342435<Example>2436<![CDATA[2437gap> v := RcwaMapping([[6,0,1],[1,-7,2],[6,0,1],[1,-1,1],2438> [6,0,1],[1, 1,2],[6,0,1],[1,-1,1]]);;2439gap> Display(v);24402441Rcwa mapping of Z with modulus 824422443/2444| 6n if n in 0(2)2445| n-1 if n in 3(4)2446n |-> < (n-7)/2 if n in 1(8)2447| (n+1)/2 if n in 5(8)2448|2449\24502451gap> IsInjective(v);2452true2453gap> IsSurjective(v);2454false2455gap> Image(v);2456Z \ 4(12) U 8(12)2457gap> Difference(Integers,last);24584(12) U 8(12)2459gap> v2 := LocalizedRcwaMapping(v,2);2460<rcwa mapping of Z_( 2 ) with modulus 8>2461gap> IsBijective(v2);2462true2463gap> Display(v2^-1);24642465Rcwa permutation of Z_( 2 ) with modulus 424662467/2468| 1/3 n / 2 if n in 0(4)2469| 2 n + 7 if n in 1(4)2470n |-> < n + 1 if n in 2(4)2471| 2 n - 1 if n in 3(4)2472|2473\24742475gap> S := ResidueClass(Z_pi(2),2,0);; l := [S];;2476gap> for i in [1..10] do Add(l,l[Length(l)]^v2); od;2477gap> l; # Visibly v2 is wild ...2478[ 0(2), 0(4), 0(8), 0(16), 0(32), 0(64), 0(128), 0(256), 0(512),24790(1024), 0(2048) ]2480gap> w2 := RcwaMapping(Z_pi(2),[[1,0,2],[2,-1,1],[1,1,1],[2,-1,1]]);;2481gap> v2w2 := Comm(v2,w2);; v2w2^-1;;2482gap> Display(v2w2);24832484Rcwa permutation of Z_( 2 ) with modulus 824852486/2487| 3 n if n in 2(4)2488| n + 4 if n in 1(8)2489n |-> < n - 4 if n in 5(8)2490| n if n in 0(4) U 3(4)2491|2492\2493]]>2494</Example>24952496Again, viewed as an rcwa mapping of the integers the commutator given at2497the end of the example would not be surjective. <P/>24982499Enter <C>AssignGlobals(LoadRCWAExamples().Semilocals);</C>2500in order to assign the global variables defined in this section.25012502</Section>25032504<!-- #################################################################### -->25052506<Section Label="sec:Twisting257CyclesToModulus32">2507<Heading>2508Twisting 257-cycles into an rcwa mapping with modulus 322509</Heading>25102511We define an rcwa mapping <A>x</A> of order 257 with modulus 32.2512The easiest way to construct such a mapping is to prescribe a transition2513graph and then to assign suitable affine mappings to its vertices.25142515<Example>2516<![CDATA[2517gap> x_257 := RcwaMapping(2518> [[ 16, 2, 1], [ 16, 18, 1], [ 1, 16, 1], [ 16, 18, 1],2519> [ 1, 16, 1], [ 16, 18, 1], [ 1, 16, 1], [ 16, 18, 1],2520> [ 1, 16, 1], [ 16, 18, 1], [ 1, 16, 1], [ 16, 18, 1],2521> [ 1, 16, 1], [ 16, 18, 1], [ 1, 16, 1], [ 16, 18, 1],2522> [ 1, 0, 16], [ 16, 18, 1], [ 1,-14, 1], [ 16, 18, 1],2523> [ 1,-14, 1], [ 16, 18, 1], [ 1,-14, 1], [ 16, 18, 1],2524> [ 1,-14, 1], [ 16, 18, 1], [ 1,-14, 1], [ 16, 18, 1],2525> [ 1,-14, 1], [ 16, 18, 1], [ 1,-14, 1], [ 1,-31, 1]]);;2526gap> Order(x_257);; Display(x_257:CycleNotation:=false);25272528Rcwa permutation of Z with modulus 32, of order 25725292530/2531| 16n+18 if n in 1(2) \ 31(32)2532| n+16 if n in 2(32) U 4(32) U 6(32) U 8(32) U 10(32) U2533| 12(32) U 14(32)2534| n-14 if n in 18(32) U 20(32) U 22(32) U 24(32) U 26(32) U2535n |-> < 28(32) U 30(32)2536| 16n+2 if n in 0(32)2537| n/16 if n in 16(32)2538| n-31 if n in 31(32)2539|2540\25412542gap> Display(x_257);25432544Rcwa permutation of Z with modulus 32, of order 25725452546( 0(32), 2(512), 18(512), 4(512), 20(512), 6(512), 22(512),25478(512), 24(512), 10(512), 26(512), 12(512), 28(512), 14(512),254830(512), 16(512), 1(32), 34(512), 50(512), 36(512), 52(512),254938(512), 54(512), 40(512), 56(512), 42(512), 58(512), 44(512),255060(512), 46(512), 62(512), 48(512), 3(32), 66(512), 82(512),255168(512), 84(512), 70(512), 86(512), 72(512), 88(512), 74(512),255290(512), 76(512), 92(512), 78(512), 94(512), 80(512), 5(32),255398(512), 114(512), 100(512), 116(512), 102(512), 118(512),2554104(512), 120(512), 106(512), 122(512), 108(512), 124(512),2555110(512), 126(512), 112(512), 7(32), 130(512), 146(512),2556132(512), 148(512), 134(512), 150(512), 136(512), 152(512),2557138(512), 154(512), 140(512), 156(512), 142(512), 158(512),2558144(512), 9(32), 162(512), 178(512), 164(512), 180(512),2559166(512), 182(512), 168(512), 184(512), 170(512), 186(512),2560172(512), 188(512), 174(512), 190(512), 176(512), 11(32),2561194(512), 210(512), 196(512), 212(512), 198(512), 214(512),2562200(512), 216(512), 202(512), 218(512), 204(512), 220(512),2563206(512), 222(512), 208(512), 13(32), 226(512), 242(512),2564228(512), 244(512), 230(512), 246(512), 232(512), 248(512),2565234(512), 250(512), 236(512), 252(512), 238(512), 254(512),2566240(512), 15(32), 258(512), 274(512), 260(512), 276(512),2567262(512), 278(512), 264(512), 280(512), 266(512), 282(512),2568268(512), 284(512), 270(512), 286(512), 272(512), 17(32),2569290(512), 306(512), 292(512), 308(512), 294(512), 310(512),2570296(512), 312(512), 298(512), 314(512), 300(512), 316(512),2571302(512), 318(512), 304(512), 19(32), 322(512), 338(512),2572324(512), 340(512), 326(512), 342(512), 328(512), 344(512),2573330(512), 346(512), 332(512), 348(512), 334(512), 350(512),2574336(512), 21(32), 354(512), 370(512), 356(512), 372(512),2575358(512), 374(512), 360(512), 376(512), 362(512), 378(512),2576364(512), 380(512), 366(512), 382(512), 368(512), 23(32),2577386(512), 402(512), 388(512), 404(512), 390(512), 406(512),2578392(512), 408(512), 394(512), 410(512), 396(512), 412(512),2579398(512), 414(512), 400(512), 25(32), 418(512), 434(512),2580420(512), 436(512), 422(512), 438(512), 424(512), 440(512),2581426(512), 442(512), 428(512), 444(512), 430(512), 446(512),2582432(512), 27(32), 450(512), 466(512), 452(512), 468(512),2583454(512), 470(512), 456(512), 472(512), 458(512), 474(512),2584460(512), 476(512), 462(512), 478(512), 464(512), 29(32),2585482(512), 498(512), 484(512), 500(512), 486(512), 502(512),2586488(512), 504(512), 490(512), 506(512), 492(512), 508(512),2587494(512), 510(512), 496(512), 31(32) )25882589gap> Length(Cycle(x_257,0));25902572591]]>2592</Example>25932594Enter <C>AssignGlobals(LoadRCWAExamples().LongCyclesOfPrimeLength);</C>2595in order to assign the global variables defined in this section.25962597</Section>25982599<!-- #################################################################### -->26002601<Section Label="sec:ModuliOfPowers">2602<Heading> The behaviour of the moduli of powers </Heading>26032604We give some examples of how the series of the moduli of powers of a given2605rcwa mapping of the integers can look like.26062607<Example>2608<![CDATA[2609gap> a := RcwaMapping([[3,0,2],[3, 1,4],[3,0,2],[3,-1,4]]);;2610gap> List([0..4],i->Modulus(a^i));2611[ 1, 4, 16, 64, 256 ]2612gap> e1 := RcwaMapping([[1,4,1],[2,0,1],[1,0,2],[2,0,1]]);;2613gap> e2 := RcwaMapping([[1,4,1],[2,0,1],[1,0,2],[1,0,1],2614> [1,4,1],[2,0,1],[1,0,1],[1,0,1]]);;2615gap> List([e1,e2],Order);2616[ infinity, infinity ]2617gap> List([1..20],i->Modulus(e1^i));2618[ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ]2619gap> List([1..20],i->Modulus(e2^i));2620[ 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4 ]2621gap> Display(e2);26222623Rcwa permutation of Z with modulus 8, of order infinity26242625/2626| n+4 if n in 0(4)2627| 2n if n in 1(4)2628n |-> < n/2 if n in 2(8)2629| n if n in 3(4) U 6(8)2630|2631\26322633gap> e2^2 = Restriction(RcwaMapping([[1,2,1]]),RcwaMapping([[4,0,1]]));2634true2635gap> g:=RcwaMapping([[2,2,1],[1, 4,1],[1,0,2],[2,2,1],[1,-4,1],[1,-2,1]]);;2636gap> h:=RcwaMapping([[2,2,1],[1,-2,1],[1,0,2],[2,2,1],[1,-1,1],[1, 1,1]]);;2637gap> List([0..7],i->Modulus(g^i));2638[ 1, 6, 12, 12, 12, 12, 6, 1 ]2639gap> List([1..18],i->Modulus((g^3*h)^i));2640[ 12, 6, 12, 12, 12, 6, 12, 6, 12, 12, 12, 6, 12, 6, 12, 12, 12, 6 ]2641gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;2642gap> List([0..3],i->Modulus(u^i));2643[ 1, 5, 25, 125 ]2644gap> v6 := RcwaMapping([[-1,2,1],[1,-1,1],[1,-1,1]]);;2645gap> List([0..6],i->Modulus(v6^i));2646[ 1, 3, 3, 3, 3, 3, 1 ]2647gap> w8 := RcwaMapping([[-1,3,1],[1,-1,1],[1,-1,1],[1,-1,1]]);;2648gap> List([0..8],i->Modulus(w8^i));2649[ 1, 4, 4, 4, 4, 4, 4, 4, 1 ]2650gap> z := RcwaMapping([[2,1,1],[1, 1,1],[2,-1,1],[2, -2,1],2651> [1,6,2],[1, 1,1],[1,-6,2],[2, 5,1],2652> [1,6,2],[1, 1,1],[1, 1,1],[2, -5,1],2653> [1,0,1],[1,-4,1],[1, 0,1],[2,-10,1]]);;2654gap> IsBijective(z);2655true2656gap> List([0..25],i->Modulus(z^i));2657[ 1, 16, 32, 64, 64, 128, 128, 128, 128, 128, 128, 256, 256, 256, 256,2658256, 256, 512, 512, 512, 512, 512, 512, 1024, 1024, 1024 ]2659]]>2660</Example>26612662Enter <C>AssignGlobals(LoadRCWAExamples().ModuliOfPowers);</C>2663in order to assign the global variables defined in this section.26642665</Section>26662667<!-- #################################################################### -->26682669<Section Label="sec:CollatzImagesAndPreImages">2670<Heading> Images and preimages under the Collatz mapping </Heading>26712672We have a look at the images of the residue class 1(2)2673under powers of the Collatz mapping.26742675<Example>2676<![CDATA[2677gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;2678gap> S0 := ResidueClass(Integers,2,1);;2679gap> S1 := S0^T;26802(3)2681gap> S2 := S1^T;26821(3) U 8(9)2683gap> S3 := S2^T;26842(3) U 4(9)2685gap> S4 := S3^T;2686Z \ 0(3) U 5(9)2687gap> S5 := S4^T;2688Z \ 0(3) U 7(9)2689gap> S6 := S5^T;2690Z \ 0(3)2691gap> S7 := S6^T;2692Z \ 0(3)2693]]>2694</Example>26952696Thus the image gets stable after applying the mapping <M>T</M> for2697the 6th time. Hence <M>T^6</M> maps the residue class 1(2) surjectively2698onto the union of the residue classes 1(3) and 2(3), which <M>T</M>2699stabilizes setwise.2700Now we would like to determine the preimages of 1(3) and 2(3) in 1(2)2701under <M>T^6</M>. The residue class 1(2) has to be the disjoint union of2702these sets.27032704<Example>2705<![CDATA[2706gap> U := Intersection(PreImage(T^6,ResidueClass(Integers,3,1)),S0);2707<union of 11 residue classes (mod 64)>2708gap> V := Intersection(PreImage(T^6,ResidueClass(Integers,3,2)),S0);2709<union of 21 residue classes (mod 64)>2710gap> AsUnionOfFewClasses(U);2711[ 1(64), 5(64), 7(64), 9(64), 21(64), 23(64), 29(64), 31(64), 49(64),271251(64), 59(64) ]2713gap> AsUnionOfFewClasses(V);2714[ 3(32), 11(32), 13(32), 15(32), 25(32), 17(64), 19(64), 27(64), 33(64),271537(64), 39(64), 41(64), 53(64), 55(64), 61(64), 63(64) ]2716gap> Union(U,V) = S0 and Intersection(U,V) = []; # consistency check2717true2718]]>2719</Example>27202721The images of the residue class 0(3) under powers of <M>T</M> look2722as follows:27232724<Example>2725<![CDATA[2726gap> S0 := ResidueClass(Integers,3,0);27270(3)2728gap> S1 := S0^T;27290(3) U 5(9)2730gap> S2 := S1^T;27310(3) U 5(9) U 7(9) U 8(27)2732gap> S3 := S2^T;2733<union of 20 residue classes (mod 27) (6 classes)>2734gap> S4 := S3^T;2735<union of 73 residue classes (mod 81)>2736gap> S5 := S4^T;2737Z \ 10(81) U 37(81)2738gap> S6 := S5^T;2739Integers2740gap> S7 := S6^T;2741Integers2742]]>2743</Example>27442745Thus every integer is the image of a multiple of 32746under <M>T^6</M>. This means that it would be sufficient to prove the2747<M>3n+1</M> conjecture for multiples of 3.2748We can obtain the corresponding result for multiples of 5 as follows:27492750<Example>2751<![CDATA[2752gap> S := [ResidueClass(Integers,5,0)];2753[ 0(5) ]2754gap> for i in [1..12] do Add(S,S[i]^T); od;2755gap> for s in S do View(s); Print("\n"); od;27560(5)27570(5) U 8(15)27580(5) U 4(15) U 8(15)27590(5) U 2(15) U 4(15) U 8(15) U 29(45)2760<union of 73 residue classes (mod 135)>2761<union of 244 residue classes (mod 405)>2762<union of 784 residue classes (mod 1215)>2763<union of 824 residue classes (mod 1215)>2764<union of 2593 residue classes (mod 3645)>2765<union of 2647 residue classes (mod 3645)>2766<union of 2665 residue classes (mod 3645)>2767<union of 2671 residue classes (mod 3645)>27681(3) U 2(3) U 0(15)2769gap> Union(S[13],ResidueClass(Integers,3,0));2770Integers2771gap> List(S,Si->Float(Density(Si)));2772[ 0.2, 0.266667, 0.333333, 0.422222, 0.540741, 0.602469, 0.645267,27730.678189, 0.711385, 0.7262, 0.731139, 0.732785, 0.733333 ]2774]]>2775</Example>27762777Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>2778in order to assign the global variables defined in this section.27792780</Section>27812782<!-- #################################################################### -->27832784<Section Label="sec:Sigma_T">2785<Heading>2786An extension of the Collatz mapping T to a permutation of <M>&ZZ;^2</M>2787</Heading>27882789The Collatz mapping <M>T</M> is surjective, but not injective:27902791<Example>2792<![CDATA[2793gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;2794gap> Display(T);27952796Rcwa mapping of Z with modulus 227972798/2799| n/2 if n in 0(2)2800n |-> < (3n+1)/2 if n in 1(2)2801|2802\28032804gap> IsInjective(T); IsSurjective(T);2805false2806true2807gap> PreImages(T,2);2808[ 1, 4 ]2809]]>2810</Example>28112812Often, dealing with rcwa permutations is easier.2813Indeed the Collatz mapping <M>T</M> can be extended in natural2814ways to permutations of <M>&ZZ;^2</M>. For example, the following2815permutation acts on the second coordinate just like <M>T</M>:28162817<Example>2818<![CDATA[2819gap> Sigma_T := RcwaMapping( Integers^2, [[1,0],[0,6]],2820> [[[[2,0],[0,1]],[0,0],2],2821> [[[4,0],[0,3]],[2,1],2],2822> [[[2,0],[0,1]],[0,0],2],2823> [[[4,0],[0,3]],[2,1],2],2824> [[[4,0],[0,1]],[0,0],2],2825> [[[4,0],[0,3]],[2,1],2]] );2826<rcwa mapping of Z^2 with modulus (1,0)Z+(0,6)Z>2827gap> IsBijective(Sigma_T);2828true2829gap> Display(Sigma_T);28302831Rcwa permutation of Z^2 with modulus (1,0)Z+(0,6)Z28322833/2834| (2m+1,(3n+1)/2) if (m,n) in (0,1)+(1,0)Z+(0,2)Z2835| (m,n/2) if (m,n) in (0,0)+(1,0)Z+(0,6)Z U2836(m,n) |-> < (0,2)+(1,0)Z+(0,6)Z2837| (2m,n/2) if (m,n) in (0,4)+(1,0)Z+(0,6)Z2838|2839\28402841gap> Display(Sigma_T^-1);28422843Rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z28442845/2846| (m,2n) if (m,n) in (0,0)+(1,0)Z+(0,3)Z U2847| (0,1)+(1,0)Z+(0,3)Z2848(m,n) |-> < (m/2,2n) if (m,n) in (0,2)+(2,0)Z+(0,3)Z2849| ((m-1)/2,(2n-1)/3) if (m,n) in (1,2)+(2,0)Z+(0,3)Z2850|2851\2852]]>2853</Example>28542855Now, the <M>3n+1</M> conjecture is equivalent to the assertion that2856the line <M>n=4</M> is a set of representatives for the cycles of2857<C>Sigma&uscore;T</C> on the half plane <M>n > 0</M>. <P/>28582859Let's have a look at a part of a cycle of <C>Sigma&uscore;T</C>:28602861<Example>2862<![CDATA[2863gap> Trajectory(Sigma_T,[0,27],75);2864[ [ 0, 27 ], [ 1, 41 ], [ 3, 62 ], [ 3, 31 ], [ 7, 47 ], [ 15, 71 ],2865[ 31, 107 ], [ 63, 161 ], [ 127, 242 ], [ 127, 121 ], [ 255, 182 ],2866[ 255, 91 ], [ 511, 137 ], [ 1023, 206 ], [ 1023, 103 ],2867[ 2047, 155 ], [ 4095, 233 ], [ 8191, 350 ], [ 8191, 175 ],2868[ 16383, 263 ], [ 32767, 395 ], [ 65535, 593 ], [ 131071, 890 ],2869[ 131071, 445 ], [ 262143, 668 ], [ 262143, 334 ], [ 524286, 167 ],2870[ 1048573, 251 ], [ 2097147, 377 ], [ 4194295, 566 ], [ 4194295, 283 ],2871[ 8388591, 425 ], [ 16777183, 638 ], [ 16777183, 319 ],2872[ 33554367, 479 ], [ 67108735, 719 ], [ 134217471, 1079 ],2873[ 268434943, 1619 ], [ 536869887, 2429 ], [ 1073739775, 3644 ],2874[ 1073739775, 1822 ], [ 2147479550, 911 ], [ 4294959101, 1367 ],2875[ 8589918203, 2051 ], [ 17179836407, 3077 ], [ 34359672815, 4616 ],2876[ 34359672815, 2308 ], [ 68719345630, 1154 ], [ 68719345630, 577 ],2877[ 137438691261, 866 ], [ 137438691261, 433 ], [ 274877382523, 650 ],2878[ 274877382523, 325 ], [ 549754765047, 488 ], [ 549754765047, 244 ],2879[ 1099509530094, 122 ], [ 1099509530094, 61 ], [ 2199019060189, 92 ],2880[ 2199019060189, 46 ], [ 4398038120378, 23 ], [ 8796076240757, 35 ],2881[ 17592152481515, 53 ], [ 35184304963031, 80 ], [ 35184304963031, 40 ],2882[ 70368609926062, 20 ], [ 70368609926062, 10 ], [ 140737219852124, 5 ],2883[ 281474439704249, 8 ], [ 281474439704249, 4 ], [ 562948879408498, 2 ],2884[ 562948879408498, 1 ], [ 1125897758816997, 2 ],2885[ 1125897758816997, 1 ], [ 2251795517633995, 2 ],2886[ 2251795517633995, 1 ] ]2887gap> Trajectory(Sigma_T^-1,[0,27],20);2888[ [ 0, 27 ], [ 0, 54 ], [ 0, 108 ], [ 0, 216 ], [ 0, 432 ], [ 0, 864 ],2889[ 0, 1728 ], [ 0, 3456 ], [ 0, 6912 ], [ 0, 13824 ], [ 0, 27648 ],2890[ 0, 55296 ], [ 0, 110592 ], [ 0, 221184 ], [ 0, 442368 ],2891[ 0, 884736 ], [ 0, 1769472 ], [ 0, 3538944 ], [ 0, 7077888 ],2892[ 0, 14155776 ] ]2893]]>2894</Example>28952896While it seems easy to make conjectures regarding the behaviour of cycles2897of <C>Sigma&uscore;T</C>, obtaining results on it is apparently hard.2898We observe however that <C>Sigma&uscore;T</C> can be written as a product2899of two permutations of <M>&ZZ;^2</M> whose cycles can be described2900easily:29012902<Example>2903<![CDATA[2904gap> a := RcwaMapping(Integers^2,[[1,0],[0,2]],[[[[4,0],[0,1]],[0, 0],2],2905> [[[4,0],[0,1]],[2,-1],2]]);2906<rcwa mapping of Z^2 with modulus (1,0)Z+(0,2)Z>2907gap> b := a^-1*Sigma_T;2908<rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z>2909gap> Display(a);29102911Rcwa permutation of Z^2 with modulus (1,0)Z+(0,2)Z29122913/2914| (2m,n/2) if (m,n) in (0,0)+(1,0)Z+(0,2)Z2915(m,n) |-> < (2m+1,(n-1)/2) if (m,n) in (0,1)+(1,0)Z+(0,2)Z2916|2917\29182919gap> Display(b);29202921Rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z29222923/2924| (m,3n+2) if (m,n) in (1,0)+(2,0)Z+(0,1)Z2925| (m/2,n) if (m,n) in (0,0)+(2,0)Z+(0,3)Z U2926(m,n) |-> < (0,1)+(2,0)Z+(0,3)Z2927| (m,n) if (m,n) in (0,2)+(2,0)Z+(0,3)Z2928|2929\2930]]>2931</Example>29322933It is easy to see that both <C>a</C> and <C>b</C> have infinite order.2934The cycles of <C>a</C> have roughly hyperbolic shape and run, so to2935speak, from <M>(0,\pm \infty)</M> to <M>(\pm \infty,0)</M>.2936A given cycle contains only finitely many points both of whose coordinates2937are nonzero. The fixed points of <C>a</C> are (0,0) and (-1,-1).2938We have a look at an example of a cycle of <C>a</C>:29392940<Example>2941<![CDATA[2942gap> Trajectory(a,[1000,1000],15);2943[ [ 1000, 1000 ], [ 2000, 500 ], [ 4000, 250 ], [ 8000, 125 ],2944[ 16001, 62 ], [ 32002, 31 ], [ 64005, 15 ], [ 128011, 7 ],2945[ 256023, 3 ], [ 512047, 1 ], [ 1024095, 0 ], [ 2048190, 0 ],2946[ 4096380, 0 ], [ 8192760, 0 ], [ 16385520, 0 ] ]2947gap> Trajectory(a^-1,[1000,1000],15);2948[ [ 1000, 1000 ], [ 500, 2000 ], [ 250, 4000 ], [ 125, 8000 ],2949[ 62, 16001 ], [ 31, 32002 ], [ 15, 64005 ], [ 7, 128011 ],2950[ 3, 256023 ], [ 1, 512047 ], [ 0, 1024095 ], [ 0, 2048190 ],2951[ 0, 4096380 ], [ 0, 8192760 ], [ 0, 16385520 ] ]2952]]>2953</Example>29542955It is left as an easy exercise to the reader to find out how the cycles2956of <C>b</C> look like. <P/>29572958Enter <C>AssignGlobals(LoadRCWAExamples().ZxZ);</C>2959in order to assign the global variables defined in this section.29602961</Section>29622963<!-- #################################################################### -->29642965<Section Label="sec:GrigorchukGroups">2966<Heading>2967Finite quotients of Grigorchuk groups2968</Heading>29692970In this section, we show how to construct finite quotients of the two2971infinite periodic groups introduced by Rostislav Grigorchuk2972in <Cite Key="Grigorchuk80"/> with the help of &RCWA;.29732974The first of these, nowadays known as <Q>Grigorchuk group</Q>, is2975investigated in an example given on the &GAP; website -- see2976<URL>http://www.gap-system.org/Doc/Examples/grigorchuk.html</URL>.29772978The &RCWA; package permits a simpler and more elegant construction2979of the finite quotients of this group: The function <C>TopElement</C>2980given on the mentioned webpage gets unnecessary, and the function2981<C>SequenceElement</C> can be simplified as follows:29822983<Listing>2984<![CDATA[2985SequenceElement := function ( r, level )29862987return Permutation(Product(Filtered([1..level-1],k->k mod 3 <> r),2988k->ClassTransposition( 2^(k-1)-1,2^(k+1),29892^k+2^(k-1)-1,2^(k+1))),2990[0..2^level-1]);2991end;2992]]>2993</Listing>29942995The actual constructors for the generators are modified as follows:29962997<Listing>2998<![CDATA[2999a := level -> Permutation(ClassTransposition(0,2,1,2),[0..2^level-1]);3000b := level -> SequenceElement(0,level);3001c := level -> SequenceElement(2,level);3002d := level -> SequenceElement(1,level);3003]]>3004</Listing>30053006All computations given on the webpage can now be done just as with the3007<Q>original</Q> construction of the quotients of the Grigorchuk group.3008In the sequel, we construct finite quotients of the second group introduced3009in <Cite Key="Grigorchuk80"/>:30103011<Example>3012<![CDATA[3013gap> FourCycle := RcwaMapping((4,5,6,7),[4..7]);3014( 0(4), 1(4), 2(4), 3(4) )3015gap> GrigorchukGroup2Generator := function ( level )3016> if level = 1 then return FourCycle; else3017> return Restriction(FourCycle, RcwaMapping([[4,1,1]]))3018> * Restriction(FourCycle, RcwaMapping([[4,3,1]]))3019> * Restriction(GrigorchukGroup2Generator(level-1),3020> RcwaMapping([[4,0,1]]));3021> fi;3022> end;;3023gap> GrigorchukGroup2 := level -> Group(FourCycle,3024> GrigorchukGroup2Generator(level));;3025]]>3026</Example>30273028We can do similar things as shown in the example on the &GAP; webpage3029for the <Q>first</Q> Grigorchuk group:30303031<Example>3032<![CDATA[3033gap> G := List([1..4],lev->GrigorchukGroup2(lev)); # The first 4 quotients.3034[ <rcwa group over Z with 2 generators>,3035<rcwa group over Z with 2 generators>,3036<rcwa group over Z with 2 generators>,3037<rcwa group over Z with 2 generators> ]3038gap> H := List([1..4],lev->Action(G[lev],[0..4^lev-1])); # Isom. perm.-gps.3039[ Group([ (1,2,3,4), (1,2,3,4) ]),3040Group([ (1,2,3,4)(5,6,7,8)(9,10,11,12)(13,14,15,16),3041(1,5,9,13)(2,6,10,14)(4,8,12,16) ]),3042<permutation group with 2 generators>,3043<permutation group with 2 generators> ]3044gap> List(H,Size);3045[ 4, 1024, 4294967296, 1329227995784915872903807060280344576 ]3046gap> List(last,n->Collected(Factors(n)));3047[ [ [ 2, 2 ] ], [ [ 2, 10 ] ], [ [ 2, 32 ] ], [ [ 2, 120 ] ] ]3048gap> List(H,NilpotencyClassOfGroup);3049[ 1, 6, 14, 40 ]3050]]>3051</Example>30523053Enter <C>AssignGlobals(LoadRCWAExamples().GrigorchukQuotients);</C>3054in order to assign the global variables defined in this section.30553056</Section>30573058<!-- #################################################################### -->30593060<Section Label="sec:ForwardOrbit">3061<Heading>3062Forward orbits of a monoid with 2 generators3063</Heading>30643065The <M>3n+1</M> conjecture asserts that the forward orbit of any positive3066integer under the Collatz mapping <M>T</M> contains 1. In contrast,3067it seems likely that <Q>most</Q> trajectories of the two mappings3068<Alt Only="LaTeX">3069<Display>3070<![CDATA[T_5^\pm: \ \mathbb{Z} \longrightarrow \mathbb{Z}, \ \ \ \3071n \ \longmapsto \3072\begin{cases}3073\frac{n}{2} & \text{if} \ n \ \text{even}, \\3074\frac{5n \pm 1}{2} & \text{if} \ n \ \text{odd}3075\end{cases}]]>3076</Display>3077</Alt>3078<Alt Only="HTML"><![CDATA[<center>3079<img src = "t5pm.png" width = "372" height = "61"3080alt = "T5+/-: Z -> Z, n |-> (n/2 if n even, (5n+/-1)/2 if n odd)" />3081</center>]]></Alt>3082<Alt Only="Text"><Verb><![CDATA[3083/3084| n/2 if n even,3085T_5+/-: Z -> Z, n |-> <3086| (5n +/- 1)/2 if n odd3087\3088]]></Verb></Alt>3089diverge.3090However we can show by means of computation that the forward orbit of any3091positive integer under the action of the monoid generated by the two3092mappings <M>T_5^-</M> and <M>T_5^+</M> indeed contains 1.3093First of all, we enter the generators:30943095<Example>3096<![CDATA[3097gap> T5m := RcwaMapping([[1,0,2],[5,-1,2]]);;3098gap> T5p := RcwaMapping([[1,0,2],[5, 1,2]]);;3099]]>3100</Example>31013102We look for a number <M>k</M> such that for any residue class <M>r(2^k)</M>3103there is a product <M>f</M> of <M>k</M> mappings <M>T_5^\pm</M>3104whose restriction to <M>r(2^k)</M> is given by <M>n \mapsto (an+b)/c</M>3105where <M>c>a</M>:31063107<Example>3108<![CDATA[3109gap> k := 1;;3110gap> repeat3111> maps := List(Tuples([T5m,T5p],k),Product);3112> decr := List(maps,DecreasingOn);3113> decreasable := Union(decr);3114> Print(k,": "); View(decreasable); Print("\n");3115> k := k + 1;3116> until decreasable = Integers;31171: 0(2)31182: 0(4)31193: Z \ 1(8) U 7(8)31204: 0(4) U 3(16) U 6(16) U 10(16) U 13(16)31215: Z \ 7(32) U 25(32)31226: <union of 48 residue classes (mod 64)>31237: Integers3124]]>3125</Example>31263127Thus <M>k=7</M> serves our purposes.3128To be sure that for any positive integer <M>n</M> our monoid contains3129a mapping <M>f</M> such that <M>n^f<n</M>, we still need to check this3130condition for <Q>small</Q> <M>n</M>. Since in case <M>c>a</M> we have3131<M>(an+b)/c \geq n</M> if only if <M>n \leq b/(c-a)</M>, we only need to3132check those <M>n</M> which are not larger than the largest coefficient3133<M>b_{r(m)}</M> occurring in any of the products under consideration:31343135<Example>3136<![CDATA[3137gap> maxb := Maximum(List(maps,f->Maximum(List(Coefficients(f),t->t[2]))));3138259993139gap> small := Filtered([1..maxb],n->ForAll(maps,f->n^f>=n));3140[ 1, 7, 9, 11 ]3141]]>3142</Example>31433144This means that except of 1, only for <M>n \in \{{7,9,11\}}</M> there3145is no product of 7 mappings <M>T_5^\pm</M> which maps <M>n</M> to a smaller3146integer. We check that also the forward orbits of these three integers3147contain 1 by successively computing preimages of 1:31483149<Example>3150<![CDATA[3151gap> S := [1];; k := 0;;3152gap> repeat3153> S := Union(S,PreImage(T5m,S),PreImage(T5p,S));3154> k := k+1;3155> until IsSubset(S,small);3156gap> k;3157173158]]>3159</Example>31603161Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>3162in order to assign the global variables defined in this section.31633164</Section>31653166<!-- #################################################################### -->31673168<Section Label="sec:F2andPSL2Z">3169<Heading>3170The free group of rank 2 and the modular group PSL(2,&ZZ;)3171</Heading>31723173The free group of rank 2 embeds into RCWA(&ZZ;) -- in fact it embeds3174even in the subgroup which is generated by all class transpositions.3175An explicit embedding can be constructed by transferring the construction3176of the so-called <Q>Schottky groups</Q> (cf. <Cite Key="LaHarpe00"/>,3177page 27) from PSL(2,&CC;) to RCWA(&ZZ;)3178(we use the notation from the cited book):31793180<Example>3181<![CDATA[3182gap> D := AllResidueClassesModulo(4);3183[ 0(4), 1(4), 2(4), 3(4) ]3184gap> gamma1 := RepresentativeAction(RCWA(Integers),3185> Difference(Integers,D[1]),D[2]);;3186gap> gamma2 := RepresentativeAction(RCWA(Integers),3187> Difference(Integers,D[3]),D[4]);;3188gap> F2 := Group(gamma1,gamma2);3189<rcwa group over Z with 2 generators>3190]]>3191</Example>31923193We can do some checks:31943195<Example>3196<![CDATA[3197gap> X1 := Union(D{[1,2]});; X2 := Union(D{[3,4]});;3198gap> IsSubset(X1,X2^gamma1) and IsSubset(X1,X2^(gamma1^-1))3199> and IsSubset(X2,X1^gamma2) and IsSubset(X2,X1^(gamma2^-1));3200true3201]]>3202</Example>32033204The generators are products of 3 class transpositions, each:32053206<Example>3207<![CDATA[3208gap> Factorization(gamma1);3209[ ( 0(2), 1(2) ), ( 3(4), 5(8) ), ( 0(2), 1(8) ) ]3210gap> Factorization(gamma2);3211[ ( 0(2), 1(2) ), ( 1(4), 7(8) ), ( 0(2), 3(8) ) ]3212]]>3213</Example>32143215The above construction is used by <Ref Attr="IsomorphismRcwaGroup"3216Label="for a group"/> to embed free groups of any rank <M>\geq 2</M>.3217<P/>32183219We give another only slightly different representation of the free group3220of rank 2. We verify that it really is one by applying the3221so-called <E>Table-Tennis Lemma</E> (see e.g. <Cite Key="LaHarpe00"/>,3222Section II.B.) to the infinite cyclic groups generated by the two3223generators and to the same two sets <C>X1</C> and <C>X2</C> as above:32243225<Example>3226<![CDATA[3227gap> r1 := ClassTransposition(0,2,1,2)*ClassTransposition(0,2,1,4);;3228gap> r2 := ClassTransposition(0,2,1,2)*ClassTransposition(0,2,3,4);;3229gap> F2 := Group(r1^2,r2^2);;3230gap> List(GeneratorsOfGroup(F2),IsTame);3231[ false, false ]3232gap> IsSubset(X1,X2^F2.1) and IsSubset(X1,X2^(F2.1^-1))3233> and IsSubset(X2,X1^F2.2) and IsSubset(X2,X1^(F2.2^-1));3234true3235gap> [Sources(r1),Sinks(r1),Loops(r1)]; # compare with X13236[ [ 0(4) ], [ 1(4) ], [ 0(4), 1(4) ] ]3237gap> [Sources(r2),Sinks(r2),Loops(r2)]; # compare with X23238[ [ 2(4) ], [ 3(4) ], [ 2(4), 3(4) ] ]3239gap> IsSubset(X1,Union(Sinks(r1))) and IsSubset(X1,Union(Sinks(r1^-1)))3240> and IsSubset(X2,Union(Sinks(r2))) and IsSubset(X2,Union(Sinks(r2^-1)));3241true3242gap> IsSubset(Union(Sinks(r1)),X2^F2.1) and3243> IsSubset(Union(Sinks(r1^-1)),X2^(F2.1^-1));3244true3245gap> IsSubset(Union(Sinks(r2)),X1^F2.2) and3246> IsSubset(Union(Sinks(r2^-1)),X1^(F2.2^-1));3247true3248]]>3249</Example>32503251Drawing the transition graphs of <C>r1</C> and <C>r2</C> for modulus 43252may help to understand what is actually done in this calculation.3253It is easy to see that the group generated by <C>r1</C> and <C>r2</C>3254is <E>not</E> free:32553256<Example>3257<![CDATA[3258gap> Order(r1/r2);325933260]]>3261</Example>32623263The modular group PSL(2,&ZZ;) embeds into CT(&ZZ;) as well.3264We give an embedding, and check that it really is one by applying3265the Table Tennis Lemma as above:32663267<Example>3268<![CDATA[3269gap> PSL2Z :=3270> Group(ClassTransposition(0,3,1,3) * ClassTransposition(0,3,2,3),3271> ClassTransposition(1,3,0,6) * ClassTransposition(2,3,3,6));;3272gap> List(GeneratorsOfGroup(PSL2Z),Order);3273[ 3, 2 ]3274gap> X1 := Difference(Integers,ResidueClass(0,3));3275Z \ 0(3)3276gap> X2 := ResidueClass(0,3);32770(3)3278gap> IsSubset(X1,X2^PSL2Z.1) and IsSubset(X1,X2^(PSL2Z.1^2));3279true3280gap> IsSubset(X2,X1^PSL2Z.2);3281true3282]]>3283</Example>32843285A slightly different representation of PSL(2,&ZZ;) can be obtained by using3286&RCWA;'s general method for <C>IsomorphismRcwaGroup</C> for free products of3287finite groups:32883289<Example>3290<![CDATA[3291gap> G := Image(IsomorphismRcwaGroup(FreeProduct(CyclicGroup(3),3292> CyclicGroup(2))));3293<wild rcwa group over Z with 2 generators>3294gap> List(GeneratorsOfGroup(G),Factorization);3295[ [ ( 0(4), 2(4) ), ( 1(2), 0(4) ) ], [ ( 0(2), 1(2) ) ] ]3296]]>3297</Example>32983299Enter <C>AssignGlobals(LoadRCWAExamples().F2_PSL2Z);</C>3300in order to assign the global variables defined in this section.33013302<Alt Only="HTML"> </Alt>33033304</Section>33053306<!-- #################################################################### -->33073308</Chapter>33093310<!-- #################################################################### -->331133123313