Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

SSL examples.xml   Interaktion und
PortierbarkeitXML

 

<!-- #################################################################### -->
<!-- ##                                                                ## -->
<!-- ##  examples.xml         RCWA documentation          Stefan Kohl  ## -->
<!-- ##                                                                ## --> Remark" fortheexample tester">
<!-- #################################################################### -->

<Chapter Label="ch:Examples"><Heading>Examples</Heading>

<Ignore Remark="settings for the example tester">
<Example>
<![CDATA[
gap> SizeScreen([75,24]);;
gap> SetAssertionLevel(0);
]]>
</Example>
</Ignore>

This chapter discusses a number of examples of rcwa mappings
and -groups in detail. All of them show different aspects of the package,
and the order in which they appear isand -groups in  Allof them  differentaspects  the package,
they. <P/>

<Index Key="LoadRCWAExamples"><C> are not ordered by degree of difficulty or. </>
<"><>AssignGlobals/>/java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55

The rcwa mappings, global  assignments  ina sectionofthis  canbe
bed   F>kg//examples.g/>.This filecan java.lang.StringIndexOutOfBoundsException: Range [74, 75) out of bounds for length 74
read  current&AP;session bythefunction
< ="/ whichtakes no argumentsand returns the name
of a variable which the record containing the examples got assigned toItis quite thatin many instances by f little modifications
The globalvariable assignmentsmade in section  this chaptercanbe
java.lang.StringIndexOutOfBoundsException: Range [7, 4) out of bounds for length 68
component java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ofthe  sections.</java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35

The discussions of the examples are typically far from being java.lang.StringIndexOutOfBoundsException: Index 67 out of bounds for length 10
It is quite likely thatpresented  simple group.This has  foundby GrahamHigman,
radditionaleasycommands  find out  things yourself
-- have funjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<!-- #################################################################### -->

<Section Label="sec:ThompsonsGroupV">
<Heading>
  Thompson's group V
</Heading>

Thompson's (0(2),1(4)),(0(4,())((4)2(4),24,(4)>
presented infinite ]>
cf&bsp<Cite Key=Higman74/.  showthat thegroup

<is isomor   Thompson'group . 
<[CDATAjava.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
: L([,24,,4,[14,24],[2,4,3,],
>                    ))java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
<((),(4)(04,())((,2(4))(()34)>
]]>
</Example>

is isomorphic to Thompson's group V. 
his has  pointedoutby John .McDermott.
We take a slightly different set of generators:

<Example>
<![CDATA[
gap2,12))(12,())(0()1()(()2(4)>
l = ClassTransposition(,2,,4);;
gap> m := ClassTransposition(0,2,1,4);;
gap> n := ClassTransposition(1,4true
gap> H := Group(k,l,m,n);
<(0(2),1(2)),(1(2),]>
java.lang.StringIndexOutOfBoundsException: Range [6, 3) out of bounds for length 46
true
>
</Example>

java.lang.StringIndexOutOfBoundsException: Range [6, 3) out of bounds for length 69
page 50 in <Cite Key="Higman74"/>, when we read <C>k</C>
as <M>\kappa</M>, <C>l</C> as java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 9
as&<M>mu<M and<C>n<>as&;<>nu/>java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51

<Example>
<   l*k*m********l**,                   #()"
gap>    k*n*lk**n**l***nlnm                  # 3        java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
> [ k^2, l^2, m^2, n^2,                           # (1) in Higman'(*nm)2**(**)2*k,                       5        "
>  *kk***l*n**nm****m                    # 2)       "
>   k*n*l*k*m*n*k*l*n*m*n*l*n*m,                  # (3)        "
>  (****ln^3 (mk**k*mn^,              4 "
>   (l*n*m)^2*k*(m*n*l)^2*k,                      # (5)        "
*n*)^5                                   ()"
>java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 64
>   ((l*k*m*n)^2*(m*k*   lmk*l*m**k**)2 #(11)       "
>   *n***m****l*n*m***k^,#(        "
>   (m*n*m*k IdentityMapping( Integers ,IdentityMapping(Integers ),
>   (**k*lk***k**)^,#11        "
>   (m*l*k*m*kIdentityMapping(Integers ),IdentityMapping Integers ) 
[IdentityMapping  , IdentityMapping Integers , 
  IdentityMapping( Integers(Integers , IdentityMapping(Integers ,java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60
  (Integers )  java.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 60
  IdentityMapping Integers ),IdentityMapping Integers) 
  IdentityMapping( Integers ), IdentityMapping( Integers ), 
  IdentityMapping( Integers ), java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 3
  dentityMapping( Integers ), IdentityMapping( Integers ), 
  IdentityMapping( But since Thompson's groupsince Thompsons group is andour group isnot trivial,
]>
</Example>

We conclude that our group is an homomorphic image <C>CT([2],Integers)</C> which is generated by the set
But sjava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 68
this means&;2.Firstwe  that <><C contains  11class

In fact it is straightforward to show that <C>G</C> is 
<>([]Integers</>which is generatedby  ofall
class transpositions which interchange  S := Filtered(List(ClassPairs(4),ClassTransposition
of;.First we check that<CG/contains all11class
transpositions which interchange residue classes ( 0(2), 1(2) ), ( 0(2), 1(4) ), ( 0(2), 3(4) ), ( 0(4 

<Example>
<![CDATA[
gap> S := Filtered(List(ClassPairs(4),ClassTransposition 1(,2()) ( 4, 34) (2() 3)) ]
>                  -Mod() [,4];
[ ( 0(2), 1(2) ), ( 0(2), 1(4) ),java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
   (4),(4) ),  04)34) ), (12, (4 ,(1) ()) 
  ( 1(4), 2(4) ), ( 1(4), 3(4) ), ( 2(4), 3(4) ) of anelementM>\amma<M satisfying
gap> IsSubset(G,S);
true<M = \au_{()3(4}\ </M,<Mg_3: t120(} \ S<M>java.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
]]>
</Example>

Then we give a function and <M>h_2 := \tau_{1(4),2(4)} \in S</M>:
<M>\java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
a factorization an element <>\gamma/M satisfying
<amma\n S/>into<>g_1 = tau_{02)14}\nS<M,
<M>g_2: \tau_{0(2,34}\S/>,Mg_3 = \1()0)}\ /M>java.lang.StringIndexOutOfBoundsException: Range [75, 76) out of bounds for length 75
<M>g_4 := \tau_{1(2),2(4)} \in S</M>, <M>h_1:=(,20;
and <M>h_2 := \tau_{1(g := (12,24)

<Listing Type="GAP code">
<!java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ReducingConjugator := function ( java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 0

  local  w, F, g1 must makesure thatbothof them  least modulus .

  g1 := ClassTransposition(0,2,1,4cls =TransposedClassestau)java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
  g2 := ClassTransposition(0,2,Residuecls[] mod4=1 tau: tau^g2; =w * F.;
  g3 := ClassTransposition(1,2,0,4);
  

  F := FreeGroup("g1","g2","e

  w := One(F); if Mod(tau) <= 4 then return w;  elsetau :=tau^; w: w*F;fi

  # Before we can reduce the modulif;
  # we must make surewhile Mod( > #Now we   themoduli.
  cls : (tau)java.lang.StringIndexOutOfBoundsException: Range [32, 33) out of bounds for length 32
  if([1) =2then
    cls: TransposedClassest)
      if ([2) mod 4=  then tau =tau^; w: w* 2;
 tau=^g1g1 w = w*F.;;
    else
      if Residue(cls
                                   else tau <[DATA
    fi;
  fi;

  while Mod(tau) > 4 do # Now we can successively reduce the moduli.
    if not ForAny(AllResidueClassesModulo(2),
                  cl -> IsEmpty(Intersection(cl,Support(tau))))
    then
      cls := TransposedClasses(tau);
      h := Filtered([h1,h2],
             hi->Length(Filtered(cls,cl->IsSubset(Support(hi),cl)))=1gap>R : PolynomialRing(F2)1);
      h := hgap> = ClassTransposition1xxx);java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
      f  = thenthen   *F.5;else  : w *F.;fi
    rcwa group  GF2)x] with4g>
    :TransposedClasses(au)2]  classwith largermodulus
     correctness  this  can likewisebe verified by simply
    if^g1 w: w  .1
    elif r mod 4 = 
    lifr mod 4 = 0 then tau := tau^g3; w := w * F.3;
    elif r mod 4 =in orderto assign globalvariablesdefined  this .
  od;

  return;
end;
]]>
</Listing>

Afterassigning Cg1</,<>g2<C,C>/> <C>g4</,<>1/C
and></> appropriately,   forexample

<Listing Type="Example">
<![CDATA[
gapIn 1932,LotharCollatzmentionedinhisnotebook thefollowingpermutation
 theintegers:
gap> gamma := h2*g1*h1*g1*h1*g1*java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0
<cwaofZ256
gap> ct := ClassTransposition(3,16,34,256)^gamma;;
 ();;
gap
ClassTransposition | n if n(3
 n|>  (1)3if nin 1()
</isting>

Thompson's group V can also be embedded in a natural way into CT(GF(2)[x]):

<Example>
<![\
gap> xgap> ShortCycles(Collatz[-50.50]50; #Thereare some finite cycles:
gap> R := PolynomialRing(GF(2),1);;
gap> k := ClassTransposition(0,x,1,x);;
gapl:=ClassTransposition(,,x,x2);
gap> m := [ 44, 59, 79,,70 93,  , 111,74,99, 66 ],
gap n: ClassTransposition(,x2,,x^;
gap> G := Group(k,l,m,n);
<rcwa group over GF(2)[x] with 4 generators>
]]>
</>

The correctness The cycle structure of Collatz' permutation has not been completely
checking the defining  givenabove.<P>

java.lang.StringIndexOutOfBoundsException: Range [17, 5) out of bounds for length 62
in order to assign the determine a factorization of this permutation into class transpositions,

</Section>

<!-- #################################################################### -->

<="secFactoringTheCollatzPermutation>
<Heading>
  Factoring Collatz' gap> Length(Factorization(Collatz));
</Heading>

InExample
of the   Infolevel of <CInfoRCWA</ equaltonbsp2(implyissue

<Example>
<![CDATA[
gap> Collatz := information on the progress of the factoring process. For java.lang.StringIndexOutOfBoundsException: Range [0, 65) out of bounds for length 44
gap> Display(Collatz);

Rcwa mapping of Z with modulus 3

        /
        | 2n/3     if n in 0(3)
 n |-> <  (4n-1)/3 if :
        | (4n+1!CDATA[
        \

gap> ShortCycles(Collatz,[-50..129
 [0]  -1],[ 1] [, 3]  -,-3] [4,7,9 6 ] 
 4 5 -7, -,- ,
  [ 44, 59, 79, 105, 70, 93, 62, 83, 111, 74, 99, 66 ], 
   ,-59,-,-105, -, -93,-2 - -111 -4 -, -66 ]]
]]>
</Example>

The cycle structurelook  thesum ofthenumbers lthan&;129java.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
determined .   itis knownwhether  cycle
containing >QuotFacts: Collatz/3);java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
Nevertheless, the > CollatzFacts := Concatenation;
rmine  factorization  this permutation into class transpositions,
i.e. involutions interchanging two disjoint(0() 26 ,(23), 4()) ( 3, 4(  (23, 16 ) 

<Example>
<![( 0),18(36 ) (036, 17(6)) (0(),14() ) 
gap Collatz Integers;  Collatz'lies  the simple  CT()java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
true
gap> Length(Factorization(Collatz));
212
] 2(,736 ,( 236), 6(),(2() ()) 
</Example>

Setting the ( 2(36), 10(36),( () 15() )  (), 1236 ,
<CRCWAInfo2);/C>  thefactorization routine to  detailed
information on the progress of 2136, (36 ) 21(), 2336 ,(21(),3436 ,
isnot donein thismanual </

e wouldlike oget afactorizationintofewer .Firstly we try
( (8) 3536 ,(51) 36) ,( (,17()) 
( (18,17(36)) (8(12, 1424,(6() 17),
factoring processjava.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18

<Example>
<![CDATA[
gap> Length(Factorization(Collatz^-1));
129
]]java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
<Example>

This is already a shorter product, but can still be improved.
Wee  the <></>s of which java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 72
looks verysimilarto'. Therefore it is straightforward
to bothCmKnot3</>and <>CollatzmKnot(3/C,and 
java.lang.StringIndexOutOfBoundsException: Range [12, 4) out of bounds for length 69

<Examplet
<![CDATA[
gap> KnotFacts := java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 10
> :=((3);java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
gap List[notFactsQuotFacts],)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
[ ,  ]
gap> CollatzFacts := Concatenationables defined in this section.
[ ( 0(6), 4(6) ), />
  ( <!-- #################################################################### -->
  ( 0(3), 1(6) )Section =sec3>
   (),18(),(0(),17) ,(036,14() , 
  ( 0(36)Headingjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
  ( 2(36), 16(36) ), ( 2(36),  <M3n+/>conjectureholdsand are notdivisibleby :
  ( 2(36), 7(36>a =(1,4,6;java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
  ( 2(36), 10(36g G : Groupa,bc;
  (236) 536 ,( (36), ), (36)) ( 21() 3336) 
  ( 21(36), 30(36) ), ( 21(36), 23(36) ), ( 21(36), 34(36) ), 
  (21(),31() ), ( 21(36), 27() ) (2136, 2536 ,
  /
  ( 10(18), 35(36) ), ( 5T see this consider   of<></> the<Q><>n+<M>tree/Q>.
  ( 5(18), 17(36) ), ( 8(12), 14(24) ), ( 6(9), 17(18) ), 
  ( 3(9), 17(18) ), ( 0(9), 17(18)M>n</M> to <M>T(n)</M>, where <M>Tthe Collatz java.lang.StringIndexOutOfBoundsException: Range [68, 67) out of bounds for length 68
  (0(),16()  69,1118),( () 1118) )  09),1118 ),
   69, (18 ,(3(9, () )  0(9,4( ,(06) 1424 ,
   2))  (2) 171))  7() 1)) 
  ( 8(12 \endcases}]>
  ( 7(12), 17(18) ), ( 2(6), 17(18) ), ( 0(3)<Display>
  PrimeSwitch(3)^-1, PrimeSwitch(3)^-1,<imgsrc  "ollatz"= 342 height ="3
.
true
]]>
<Example

The factors <C>PrimeSwitch(3)</C> are products of| n/2if even,
Func=PrimeSwitch"Label"p">) <P/>

nter<CAssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section cf. Chapter =cAboutRCWA">.
<Heading>
  The <M>3n+1</M> group
</java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10

The following group acts transitively on the set of positive integers
forwhichthe <M>n1</>conjecture holdsand  are not divisible by 6:

<>
<![ the <M3n+<M  is  tothe assertion thatthe
gap> a := ClassTransposition(1,group<>G/ transitively  <>\mathbb{}\etminus ()/M>java.lang.StringIndexOutOfBoundsException: Range [69, 70) out of bounds for length 69
gap of<><M>- theseconsist of numbers whosetrajectory
> c =ClassTransposition(23,,6);
gap> G := Group(aExample
<((2)4(6),1(3)2(6),(234())java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
gap>LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions
"3CTsGroups6"
gap 3CTsGroups6I(G,3CTsGroups6grps) #
java.lang.StringIndexOutOfBoundsException: Range [5, 6) out of bounds for length 5
]]>
</Example>

osee this the  of MG<M>on the<><>3n3n+1/M>tree<Q.
ertices ofthis    positiveintegers which  M3+1/M>
conjectureholds,and forevery  <n/>  an  
<M>n</M> to <M>T(128 136,140, 141, 160 170 208 212,213 226 ,256 272, 
<Alt Only="LaTeX">
  <Display>
  <![CDATA[T: \ \ \mathbb{Z} \longrightarrow \mathbb{Z},680,682 832 848,   , ,1024,1280 1360 1364,1365
    n \ \longmapsto \
    \begin{cases}
      \frac{5120,5440 ,  8192,10240 10880 10912 10922 16384 
      frac{n+1}2}  text{f \  n  \\ext{odd}
    e{]]>
  <Display>
<Alt>
<Alt java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 46
  <img src = "collatz.png" width = "342" height = "63"
       alt = "T: Z -> Z, n |-> (n/2 if n even, (3n+1)/2 if n odd)"/>
</center>]]></Alt>
<Alt Only="Text"><Verb><![CDATA[
                                      /
                                      | n/2 if n even,
               T:  Z -> Z,   n  |->  <
                                      | (3n+1)/2 if n odd
                                      \
]]></Verb></Alt>
(cf. Chapter <Ref Label="ch:AboutRCWA"/>).
It is easy to check that for every vertex <M>n</M>, either <M>a</M>,
<M>b</M> or <M>c</M> maps <M>n</M> to <M>T(n)</M>, and that the
other two generators either fix <M>n</M> or map it to one of its
preimages under <M>T</M>.
So the <M>3n+1</M> conjecture is equivalent to the assertion that the
group <M>G</M> acts transitively on <M>\mathbb{N} \setminus 0(6)</M>.
First let's have a look at balls of small radius about 1 under the
action of <M>G</M> -- these consist of those numbers whose trajectory
under <M>T</M> reaches 1 quickly: 

<Example>
<![CDATA[
gap> Ball(G,1,5,OnPoints);
[ 1, 2, 4, 5, 8, 10, 16, 32, 64 ]
gap> Ball(G,1,10,OnPoints);
[ 1, 2, 3, 4, 5, 8, 10, 13, 16, 20, 21, 26, 32, 40, 52, 53, 64, 80, 85, 
  128, 160, 170, 256, 320, 340, 341, 512, 1024, 2048 ]
gap> Ball(G,1,15,OnPoints);
[ 1, 2, 3, 4, 5, 7, 8, 10, 11, 13, 16, 17, 20, 21, 22, 23, 26, 32, 34, 
  35, 40, 44, 45, 46, 52, 53, 64, 68, 69, 70, 75, 80, 85, 104, 106, 113, 
  128, 136, 140, 141, 151, 160, 170, 208, 212, 213, 226, 227, 256, 272, 
  277, 280, 301, 302, 320, 340, 341, 416, 424, 452, 453, 454, 512, 640, 
  680, 682, 832, 848, 853, 904, 908, 909, 1024, 1280, 1360, 1364, 1365, 
  1664, 1696, 1706, 1808, 1813, 1816, 2048, 2560, 2720, 2728, 4096, 
  5120, 5440, 5456, 5461, 8192, 10240, 10880, 10912, 10922, 16384, 
  32768, 65536 ]
gap> Ball(G,1,15,OnPoints:Spheres);
[ [ 1 ], [ 2, 4 ], [ 8 ], [ 16 ], [ 5, 32 ], [ 10, 64 ], 
  [ 3, 20, 21, 128 ], [ 40, 256 ], [ 13, 80, 85, 512 ], 
  [ 26, 160, 170, 1024 ], [ 52, 53, 320, 340, 341, 2048 ], 
  [ 17, 104, 106, 113, 640, 680, 682, 4096 ], 
  [ 34,   [11 68,69 70452,453,454,2560,2720,2728  
   ,68 69,70,75 416,424,452 453 454 2560,2720,2728,16384
     ], 
   22 ,136 140,141,151,832 848, 853, 904, 908, 909, 5120, 
      5440, 5456, 5461, 32768 ], 
  [ 7, 44, 45, 46, 272, 277, 280, 301, 302, 1664, 1696, 1706, 1808, 
      1813, 1816, 10240, 10880, 10912, 10922, 65536 ] ]
gap> List(Ball(G,1,50,OnPoints:Spheres),Length);
[ 1, 2, 1, 1, 2, 2  7,44 45 , , 277 280 301 302 1664 ,1706,1808, 
  66, 81,BallG,1,50,nPoints:Spheres),)java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
  1730, 2205, 2794, 3522, 4429, 5611, 7100, 8978, 11343, 14296, 18058, 
  2828 , ,46146 , 73713 ]
gap> FloatQuotientsList, 2205 2794 , ,5611 7100 ,11343 ,18058, 
[ 2., 0.5, 1., 2., 1., 2., 0.5, 2., 1., 1.5, 1.33333, 1.5, 1.16667, 
  1.21429, 1.17647, 1.3, 1.23077, 1.34375, 1.2093, 1.26923, 1.22727, 
  1.28395, 1.27885, 1.2782, 1.24118, 1.28436, 1.23616, 1.26567, 1.2783, 
  1.26568, 1.27259, 1.25544, 1.25547, 1.25727, 1., 1.6712,
  ., ., .2668826688, .,126451 1.26342, 126034, 
  1.26704,1.26303 2,26553 126223]
gap Difference(Filtered([..],n>nmod 6 >0,(,,,);
[ 27, 31, 41, 47, 55, 62, 63, 71, 73, 82, 83, 91, 94, 95, 97 ]
gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;
p (last2,n->Length(Trajectory(T,n,[1])));
[ 71, 68, 70, 67, 72, 69, 69, 66, 74, 71, 71, 60, 68, 68, 76 ]
]]>
</Example>

It is convenient to  1.26568 .,1. 125547 1257271.,1.26712 
to <>G/>:

<Example>
<![CDATA[
gap> F := FreeGroup("a","b","c");
<free group on the generators [ a, b, c ]>
gap> phi := EpimorphismByGenerators(F,G);
[ a,b  ] >[( 12),4() ) ( 1()26 ),( 23) 46) )]
]]>
<Example>

We can compute balls about 1 in <M>G</M>:

<Example>
<![CDATA[
gap> B := Ball(G,One(G),7:Spheres);;
> java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 20
[ 1, 3, 6, 12, 24, 48, 96, 192 ]
gap> List(B[3],It isconvenienttodefinean      of 3
[ 12, infinity,
gap> List(B[3],g->java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 9
[ b<ree on the generators a ,c]java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
> : a*b;;Order();java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
gap> Display(g);

java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0

(1(6,8(6) (), 2() ) (36,20(), (18)java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54
( 5([1,3 ,12 ,48,96,192

]]>
<Example>

java.lang.StringIndexOutOfBoundsException: Range [40, 8) out of bounds for length 75
one can check that < b*a *,c*a,b*, *c,ab]
of <M>G</M> which does not represent the java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 16
3cyclic groups of order 2 but whichrepresents the   <>G</.
However, the group < 6), (36)4(), 212   (),2036),10())
for example:

<Example>
!CDATA[
g: ba^3**;Order();java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
gap> Display(g);

Rcwa permutation of Z withone  check  M(ab^{12}M  the shortestword inthe 

(),85() 128144, () )
( 7H,   MG/M>haselements  finite java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 74
  20(72)Example
  37(96), 56(144) )

 Ordera*b*a*cac;
60
]]>
<Example

(8( () 6472, (288) 85(6) (), (36))
616, that <M>(abc)^2b</M> has order 2310, that <M>(ab)^2() 1118 ( ) ( (18,36),40(144, (48) 
order 27720, and that <M>a(c(ab)^2)^2</M> has order 65520.
Of course <M>G</M> has many elements of infinite order as well.
Some of them have infinite java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 28

<Example>
<![CDATA[
gap> g := b*c;;
gap> Display(g);

Rcwajava.lang.StringIndexOutOfBoundsException: Range [19, 16) out of bounds for length 37

        /
         4  if   1)
        | 2n|n   ifn in0()
 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
        | n/4 java.lang.StringIndexOutOfBoundsException: Range [70, 71) out of bounds for length 70
        | n   if n in 0(
        \

rcwapermutationZwithmodulus144
[ 4(12gap cycs:=ShortCycles(g[..]1001^);
gap> Trajectory(g,last[1],10);
[ 4(12), 16(48), 64(192),  [ 7, 31 ], [ 8, 864 ], [ 9, 10 ], [ 10, 289 ], [ 11, 4 ], [ 12, 95 ], 
  16384(49152), 65536(196608), 262144(786432), 1048576(3145728) ]
gap> Trajectory(g,4,20If  cycle <M></> someM>n \in ;<  
[4, 16, 64 256 , 4096 16384,65536 262144, 1048576, 4194304, 
  16777216, 67108864, 268435456, 1073741824, 4294967296, 17179869184, 
  68719476736, 274877906944, 1099511627776 ]
]]>
java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 10

Others seem to have <M <> to</> cycleof  .
<Q>on average</Q> comparatively <Q>short</Q> cycles, like e.g.
 
<Example>
<![CDATA[
gap> g := a*b*a*c*b*c;
<java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 40
 cycs: ShortCycles(g[0..10000,1001020);
gap> Difference([0.Example>
[]
gap> Collected(List(cycs,Length));
[[1 ]  ,1945]4,1111]  ,93] [ 6,926 ],java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Range [55, 2) out of bounds for length 72
  [ 13, 1 ], [ 14, 31 ], [ 16, 12 ], [ 18, 4 [1318,640864,80), 72 ,  1036) ,[ (36 ] 
]]>
</Example>

If the cycle of <M>g</M> containing some <M>n \in &ZZ;</M> is finite
and has a certain length <M>l</M>, then there is some <M>m \in &ZZ;</M>
such that   [ 1(54), 64 1() 64(),8324, () (),2144 ,
M haslength Ml<M>  .Thus,in otherwords,every
finite cycle of <M>g</M> 208),26288 ] 
Tis special property of <><M>which   sharedbyevery
rcwa permutation -- cf. e.g. Collatz'104() 432 ]
&;< Label="sec:FactoringTheCollatzPermutation"/>.)
We can find some of these infinitely many <Q>residue class cycles</Q>:

<Example>
<![CDATA[
gap> cycsrc := ShortResidueClassCycles(g,Mod(g),20);
[ [ 0(6) ], [ 3((288), 20() ],
   7(8) (,44(108),2872 ,
  [ 11(18)17442304), 218(288 ],
   13(8) 640(864) 80() 52(72) ], [ 10(36) ], [ 3436 , 
   1(54) 64() 8324,4) 161152) (144 ] 
  [ 5(54), 256(2592), 1360 [62(72) (),496576  java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
      208(2304), 26(288) ], 
  [ 17(54), 832(2592), 4432(13824), 23632(73728), 2954(9216), 554(1728), 
      104> Floatl# 88% coverage
  [ 37gap>cycsrc = ShortResidueClassCyclesg,3Mod(g)20)java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
  [ 41(54), 1984(2592), 10576(13824), 1322(1728), 248(java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 40
      1744(2304), 218(288) ], 
  [ 53(54), 2560(2592), 13648(13824), 72784(73728), 9098(9216), 
      1706(1728), 320(324), 424(432) ], [ 38(72), 58(108), 304(576) ], 
  [ 62(72), 94(108), 496(576) ] ]
gap> List(cycsrc,Length);
[ 1, 3, 4, 6, 4, 1, 1, 6, 8, 8, 6, 8, 8, 3, 3 ]
gap> Sum(List(Flat(cycsrc),cl->1/Mod(cl)));
97459/110592
gap> Float(last); # about 88% 'coverage'
0.881248
gap> cycsrc := ShortResidueClassCycles(g,3*Mod(g),20);
[ [ 0(6) ], [ 3(6), 160(288  [ 1318) 640() 80) 5272)] [1036] [ 34()],java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
java.lang.StringIndexOutOfBoundsException: Range [3, 2) out of bounds for length 40
  [ 11(18), 544(864), 2896(4608), 362(576), 68(108), 88(144) ], 
  [13(18), 640(864),80108) () ] [ () , [ 3436 ,
  [ 1(54), 64(104( ()] 
  [ 5(54), 256(2592), 1360(13824), 170(1728), 32(324), 40(432), 
      208(2304), 26(288) ], 
  [ 17(54), 832(2592), 4432(13824), 23632(73728), 2954(9216), 554(1728), 
      104(324), 136(432) ]   53(, 25602592,13648(),7278473728), 90989216),
  [ 37(54), 1792(2592), 224(324), 148(216), 784(1152), 98(144) ], 
   (54),1984), (),(, (324) 328432,java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
      1744(2304), 218(288) ], 
  [ 53(54), 2560(2592), 13648(13824), 72784(73728), 9098(9216), 
      1706(1728), 320(324), 424(432) ], [ 38( 32138(147456), 6026(27648), 1130(5184), 212972 1296 ] 
  [ 62(72), 94(108), 496(576) ], 
  [ 23(162), 1120(7776), 5968(41472), 746(5184), 140(972), 184([77() (7776)19792( 24745184) 464972,616(1296) 
      976(6912) 1290147456) 1524227648) (),536(),7121296 ,
  [(), 1696(776, 904041472, 48208() 2571041),
      32138(147456), 6026(27648), 1130(5184), 212(972), 1802(),338432 ] 
  [ 73(162), 3520(7776), 440(972), 292(648), 1552(3456), 8272(18432), 
      1034(2304), 194(gap> List(cycsrc,Length)
   (), 3712(7776, (),24745184) 464(),616(1296) 
      3280(6912), 17488(36864), 2186(4608), 410(864) 5]
  [ 89(162), 4288(7776), 22864(41472), 121936(221184), 650320(1179648), 
      81290(147456), 15242(27648), 2858(5184), 536(972), 712(1296) ], 
  [ 127(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
      ), 338() ] 
  [ 14(216), 22(324), 112(1728), 592(9216), 74(1152) ], 
  [ 86(216), 130(324), 688(1728), 3664(9216), 458(
<[CDATA[
[1,3,4, , 4,1,16, 8,, 6 ,8, 3,3,10,10, ,10 ,8 ,
  5 ]
gap> Sum(java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
5097073/5308416
gap>Float(ast);# already  %'overage'
|(16-)3if in1()
]]>
</Example>

There are also some| 3+1)/4    if n in 5(24)
all finite, but <Q>on average</Q> pretty <Q>long</Q> -- e.g.

<Example>
<![CDATA[
gap> g := (b*a*c)^2*a;;
gap>Displayg;

Rcwa permutation of Z with modulus 288

        /
        | (16n-1)/3   if n in 1(3)
        | (9n+5)/4    if n in 3(24) U 11(24)
        | (27n+19)/        |(n7)9    ifnin836)
         (3+/     nin (24java.lang.StringIndexOutOfBoundsException: Range [35, 36) out of bounds for length 35
        | (n-3)/6     if n in 21(24)
        | (27n+29)/8  if n in 9(48) U 41(48)
        | (9n+7)/8    if |(n+)/4if (72java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
         (n7/ if nin8)
 java.lang.StringIndexOutOfBoundsException: Range [8, 2) out of bounds for length 36
        | (27n+38)/8  if n in 14(48)
        | (3n+2)/8    if n in java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
        | ([6 1, 6, 6,6, 194,6 21626, ,1 26,194 65,26,26, , ,
        | (3n+4)/4    if n in 20(72)
        | n/4         if n in 56(72)
         9n+14/16   n in296java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
         27+58/16 ifn in (96java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
        |216 26 111,65 1 50,194 26 216,640,1,502,26,111, ,
        

gap> List([1. 640]
  ,6, ,6,1,194 6 216,26,26 1,,194,65 26 26,1 , 
  26, 6, 216, 46, 1, 640, 26, 70, 194, 216, 1, 70, 26, 216, 216, 26, 1, 
  94 216 , 26 110 1 194,216,194 111 ,1640, 640, 
  194, 26, 1, 171, 194, 204, 640, 216, java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 28
  216, 26, 111, 65, 1, 50, 194, 26java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
  1, 26, 194, 385, 640, 88, 1, 100
  640 ]
gap> Length(Cycle(g,25));
640
gap>MaximumCycle(,25);
323270249684063829
gap> Length(Cycle(g,25855));
4751
gap> Maximum(Cycle(g,25855));
507359605810239426786254778159924369135184044618585904603866210104085
gap> cycs := ShortCycles(g,[0..50000],10000,10^100);;
gap> S := [0..50000];;
gap>for cyc incycs doS:= (,cyc);od;
gap> S; # no cycle containing some n in [0..50000] has lengthjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
[  ]
]]
</Example>

Taking a look at the lengths of the trajectories of the Collatz mapping
<M>T</M> starting at the points in a cycle, we can see how a cycle of
<M>g</M> goes <Q>up and down</Q> in the <M>3n+1</M> tree:

<Example>
<[CDATAjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
gap> List(Cycle(g,25),n->Length(Trajectory(T,n,[1] 47,48, 45, 42, , 44, 48, 47 45, 46, 50,49, 7, , 41 ,39 
[ 17, 21, 25, 29, 33, 31, 35, 34, 32, 33, 37, 41, 45, 44, 42, 39, 43, 
  41, 45, 44, 42, 43, 40, 38, 35, 39, 37, 41, 40, 44, 48, 46, 50, 49, 
  , 48, 45, 42 46,44,48, , 45 46 ,49 47 43 41 38 39 
  36 34,30 27,31,29 33,32, 30, 31, 35, 33, 37, 36, 40, 39, 43, 
  41, 45, 44, 42, 43, 47, 51, 55, 53, 57, 56, 54, 55, 59, 58, 62, 66, 
  64, 68, 67, 65, 66, 63, 60, 64, 62, 66, 65, 63, 64, 68, 67, 65, 61, 
  59, 56, 52, 49, 53, 51, 55, 54, 52, 53, 57, 55, 59, 58, 56, 57, 54, 
  50, 48, 45, 49, 47, 51, 50, 54, 52, 56, 55, 53, 54, 58, 62, 66, 70, 
  74, 72, 76, 75, 79, 83, 87, 91, 90, 94, 93, 97, 9594, ,88, 85 ,87 ,90,88,89,86 , ,83 87 86, 
  94, 91, 88, 85, 89, 87, 91, 90, 88, 89, 86, 84, 81, 85, 83, 87, 86, 
  90, 94, 98, 97, 101, 105, 109, 107, 111, 110, 108, 109, 113, 117, 115, 
  119, 118, 122, 126, 125, 123, 120, 124, 122, 126, 125, 123, 124, 121, 
  119, 116, 117, 114, 111, 115, 113, 117, 116, 114, 115, 119, 123, 122, 
  120, 117, 121, 119, 123, 122  107 105,109 108 106,107 ,109 ,112 ,114,118 ,
  107, 105, 109, 108, 106, 107, 111, 109, 113, 112,  106, 110, 109, 107, 108, 112, 111, 109, 105, 102, 103106 110 ,107,108 , ,,105,102 103 100 98 95
  115, 116, 113, 110, 111, 108, 104, 1021,108, 106 103 ,105 109,108 106 107, , 102 99, ,
  106, 110, 109, 107, 108, 112, 111, 109, 105, 102, 103, 100, 98, 95, 
 96 ,91, 88,92 ,94 ,97 101,105,
  109, 108, 106, 103, 107, 105, 109, 108, 106,107,105,102  100 98,,99 ,101 100,104 103,,105 
  101, 105, 104, 108, 112, 110, 114, 113, 111, 112, 116, 115, 113, 109, 
  106, 110, 108, 112, 111, 109, 110, 114, 112, 116, 115, 113, 114, 111, 
  107, 105, 102, 103, 100, 98, 95, 99, 97, 101, 100, 104, 103, 107, 105, 
  109, 108, 106, 107, 104, 101, 98, 99, 96, 94, 91, 92, 89, 87  82 ,77,81,  ,82 ,85 89 88,86 83 ,81,78 76 
  82, , 77,, , ,82,86 85 , 88,86,83,80, 81 , 76 
  73, 74, 71, 68, 72, 70, 74, 73, 71, 72, 76, 80, 79,  92,96 95 ,94,98, , 100 99 , ,102,,110, 114 , 
  88, 85, 89, 87, 91, 90, 88, 89, 86, 84, 81, 85, 83, 87, 86, 90, 94, 
  92, 96, 95, 93, 94, 98, 96, 100, 99, 97, 98, 102, 106, 110, 114, 113, 
 ,108 112,110 114,113,111, 112 ,,104 108 106 110 
  109, 113, 117, 115, 119, 118, 116, 117, 114, 111, 115, 113, 117, 116, 
  114, 115, 119, 118, 116, 112, 110, 107, 108, 105, 103, 100, 104, 102, 
  106, 105, 109, 108, 112, 110, 114, 113, 111, 112, 116, 115, 113, 109, 
  106, 103, 104, 101, 99, 95, 91, 88, 92, 90, 94, 93, 91, 92, 96, 94, 
  98, 97, 95, 96, 100, 98, 102, 101, 105, 104, 102, 99, 100, 97, 93, 89, 
  87, 84, 85, 82, 80, 77, 74, 78, 76, 80, 79, 77, 78, 75, 73, 69, 67, 
  64, 68, 66, 70, 69, 73, 71, 75, 74, 72, 73, 70, 67, 68, 65, 63, 60, 
  64, 62, 66, 65, 69, 68, 66, 63, 64, 61, 59, 56, 60, 58, 62, 61, 65, 
  64, 62, 59, 60, 57, 55, 51, 48, 49, 27,25, ,23 20,18 ,18 
  26, 23, 27, 25, 29, 28, 32, 30, 34, 33, 31, 32, 36, 35, 33, 29, 26, 
  ,24, 22 , ,21,25 24 28 27, ,22,23,20 , ,18 
  22, 20, 24, 23, 21, 22, 19, 16, 20, 18, 22, 21, 19,  22, 20, 24, 23, 21, 22, 19, 16, 20, 18, 22, 21, 19, 20
  17, 15, 17, 15, 19, 18, 16 ]
gap> lngs := List(Cycle(g,25855),n->Length(Trajectory
gap> Minimum(lngs);
55
gap> Maximum(lngs);
521
gap> Position(lngs,55);
15
gap> Position(lngs,521);
2807
]]>
</Example>

Finally let's have a look at elements of <M>G</M> with small modulus:

<Example>
<![CDATA[
gap> B := RestrictedBall(G,One(G),20,36:Spheres);;
gap> List(B,Length);
[ 1, 3, 6, 12, 4, 6, 6, 4, 4, 4, 6, 6, 3, 3, 2, 0, 0, 0, 0, 0, 0 ]
gap> Sum(last);
70
gap> Position(last2,0)-2;
14
]]>
</Example>

So we have 70 elements of modulus 36 or less in <M>G</M> which
can be reached from the identity by successive multiplication with
generators without passing elements with mudulus exceeding 36.
Further we see that the longest word in the generators yielding an
element with modulus at most 36 has length 14.
Now we double our bound on the modulus:

<Example>
<![CDATA[
gap> B := RestrictedBall(G,One(G),100,72:Spheres);;
gap> List(B,Length);
[ 1, 3, 6, 12, 22, 14, 18, 22, 24, 26, 26, 34, 35, 32, 37, 38, 46, 58, 
  65, 73, 82, 91, 93, 96, 110, 121, 114, 117, 146, 138, 148, 168, 174, 
  196]>
  419 ,405, ,401, 407, 415, 435, 424, 401 359, , 330, 332 
  281, 278, 271, 269, 254, 255, 257, 258, 258, 233, 215, 202, 185, 154, 
  121, 88, 55, 35, 20, 10, 5, 1, 2, 0, 0, 0, 0,So we have   modulus    <><M which
  0, 0, 0, 0, 0 ]
gap> Sum(last);
15614
gap> Position(last2,0)-2;
83
gap> Collected(List(Flat(B),Modulus));
[ [ 1, 1 ], [  that the longest word in the with modulus at most 36 has length 
  [ 48, 4 ] [ 72,15540] ]
]]>
<Example

observethat there are15540 in<></  72
whichgap> List(Length)java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
multiplication with generators without passing elements with mudulus
exceeding 72. Further65,73 82 91,93, 96 ,121,114,117 146 138 148,,1, 
yielding an element with modulus at most 72 has length 83. <P/>

It is obvious that many questions regarding the group <M>G</M>
remain open.

</Section>

<!-- #################################################################### -->

<Section Label="sec:GroupWithHugeFiniteOrbits">
<Heading>
  A group with huge finite orbits
</Heading>

In this section we investigate a group which has huge finite orbits on &ZZ;.

<Example>
<![CDATA[
gap> a := ClassTransposition(0,2,1,2);;
gap> b := ClassTransposition(0,5,4,5);;
gap> c := ClassTransposition(1,4,0,6);;
gap> G := Group(a,b,c);
<((),())(05)45)(14,(6))>
gap> LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions(419 401 405,401 407 415 435,424 401,359,338 330 , 
"3CTsGroups6"
gap> 3CTsGroups6.Id3CTsGroup(G,3CTsGroups6.grps); # 'catalogue number' of G
1284
]]>
</Example>

We look for orbits of length at most 100 containing an integer in the
range <C>[0..1000]</C>:

<Example>
<![CDATA[
gap>orbs: ShortOrbits(,0.1000,100);
gap> List(orbs,Length);
[ 16121, 88,55 35 20,10 5 1, 2,0  ,0,0 0,0,0 , ,0, 
  8, 2, 2, 8, 2, 24, 8, 2, 56, 2, 2, 2, 8, 2, 8, 2, 2, ,2 ,2 ,2,
  24, 2, 8, 2, 8, 2, 2, 8gap>Sum(ast)
  2, 2, 2, 2, 8, 24, 2, gap> Position(last2,0)-2;
  8, 2, 8, 2, 2, 2, 24, 2, 8java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
gap> Collected(ast;
[ [ 2, 67 ], [ 8, 32 ], [ 16, 1 ], [ 24, 9 ], [ 40, 1    ,  , [72,   ]
gap> Lengthjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
491
]which are <>reachable<Q from  by successive
<ultiplication with generators ithoutpassing java.lang.StringIndexOutOfBoundsException: Range [56, 55) out of bounds for length 68

tegers inthe range <>[.1000]/>liein
orbits of length larger than 100. In fact there are much larger orbits.
ForIt is obvious that many questions   the  <G/>

<Example>
<![CDATA[
gap> B := Ball(G,32,500java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
gap> Position(B,[]); # <> fail -><ection Label="sec:GroupWithHugeFiniteOrbits">
354
gap> A groupwith hugefinite 
6296
gap> Maximum(Flat(B)); # the largest integer in the orbit
3301636381609509797437679
gap> B := Ball(G,736,5000,OnPoints:Spheres);; # the same for 736 ...
ap>Position(,];
2997
gap> Sum(List(B,gap> b := ClassTransposition,,);;
495448
Maximum(Flat();
2461374276522713949036151811903149785690151467356354652860276957152301465\
0546360696627187194849439881973442451686685024708652634593861146709752378\
847078493406287854573381920553713155967741550498839
]]>
</Example>

It seems that the cycles of <M>abc</M> completely traverse all orbits
of <M>G</M>, with the only exception of the orbit of 0. Let's check this
in the above examples:

<Example>
<![CDATA[
gap>g :=*bc;
gap> Display(g);

java.lang.StringIndexOutOfBoundsException: Range [26, 4) out of bounds for length 37

        /
        | n-1       if n 
         29()
        | 3n/2      if n in 0(20) U 12(20)range C>[0.]</>
        | n+1       if n in 2(20) U 6(20) U 10(20)
        | (2n+1)/3  if n in 7(30) U 13(30) U 19(30)
         +       if n  130)U 11(30)
 n |-> <  n-5       if n in 15(30) U 25(30)
        | (3n+12)/2 if n in 4(20)
        | (3n-12)/2 if n in 8(20)
        | n+5       if n in 14(20)
        | n-3       if n in 18(20)
        | (2n-7)/3  if n in 5(30)
        | (2n+9)/32, 2,2, ,8 ,2 8 2,2, ,2 , ,2 ,2 2,82 ,2 2 
        \

gap> Length(Cycle(g,32));
6296
gap> Length(Cycle(g,736));
495448
]]>
</Example>

Representatives and lengths of the cycles of <M>g</M> which intersect
nontrivially with the range <C>[0..1000]</C> are as follows:

<Example>
<![CDATA[
gap> CycleRepresentativesAndLengths(g,[0..1000]:notify:=50000);
n = 736: after 50000 steps, the iterate has 157 binary digits.
n = 736: after 100000 steps, the iterate has 135 binary digits.
n = 736: after 150000 steps, the iterate has 131 binary digits.
n = 736: after 200000 steps, the iterate has 507 binary digits.
n= 736:after 250000 steps, the  has414 binarydigits.
n = 736: after 300000 steps, the iterate has 457 binary digits.
n = 736: after 350000 steps, the iterate has 465 binary digits.
n = 736: after 400000 steps, the iterate has 325 binary digits.
n = 736: after 450000 steps, the iterate has 534 binary digits.
n = 896: after 50000 steps, the iterate has 359 binary digits.
n = 896: after 100000 steps, the iterate has 206 binary digits.
[ [ 1, 15 ], [ 2, 2 ], [ 16, 24 ], [ 22, 2 ], [ 26, 2 ], [ 32, 6296 ], 
  [ 46, 2 ], [ 52, 8 ], [ 56, 296 ], [ 62, 2 ], [ 76, 8 ], [ 82, 2 ], 
  [ 86, 2 ], [ 92, 8 ], [ 106, 2 ], [ 112, 104 ], [ 116, 8 ], 
  [ 122, 2 ], [ 136, 440 ], [ 142, 2 ], [ 146, 2 ], [ 152, 40 ], 
    2]  172, 8 ] [ ,  ] [182,  , ,8 ,
  [ 202, 2 ], [ 206, 2 ], [ 212, 8 ], [ 226, 2 ], [ 232, 24 ], 
  [ 236, 8 ], [ 242, 2 ], [ 256, 56 ], [ 262, 2 ], [ 266, 2 ], 
  [ 272, 408 ], [ 286, 2 ], [ 292, 8 ], [ 296, 104 ], [ 302, 2 ], 
  [316 8] [ , 2]  ,  ,[ 332 8 [ ,2 ] 
  [ 352, 264 ], [ 356, 8 ], [ 362, 2 ], [ 376, 1304 ], [ 382, 2 ], 
   , 2] [392,24] [ , 2]  ,8] [416,200],java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
  [ 422, 2 ], [ 436, 8 ], [ 442, 2 ], [ 446, 2 ], [ 452, 8 ], 
  [ 466, 2 ], [ 472, 104 ], [ 476, 8 ], [ 
  [ 502, 2 ], [ 506, 2 ], [ 512, 696 ], [ 526, 2 ], [ 532, 8 ], 
  [ 536,gap>Position(,[)  < fail- we have the
  [ 572, 8 ], [ 586, 2 ], [ 592, 888 ], [ 596, 8 Sum(istB,ength)  the orbitlength
  [ 616, 728 ],gap(B); #the largest integer inthe 
  [ 652, 8 ], [ 656, 24 ], [ 662, 2 ], [ 676, 8 ], [ 682, 2 ], 
  [ 686, 2 ], [ 692, 8 ], [ 706, 2 ], [ 712, 24 ], [ 716, 8 ], 
  [ 722, 2 ], [ 736, 495448 ], [ 742, 2 ], [ 746, 2 ], [ 752, 1272 ], 
  [ 766, 2 ], [ 772, 8 ], [ 2461374276522713949036151811903149785690151467356354652860276957152301465\
  ,120] 
  [ 836java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
  [<Example>
  [ 916, 8 ], [ 922, 2 ], [ 926, 2 ], [ 932, 8 ], [ 946, 2 ], 
  ,456]  ,8 ] [962 2 ],[976  ] [ 982  ], 
  [ 986, 2 ], [ 992, 1064 ] ]
]]>
</Example>

So
173176 lie in finite cycles of <M>g</M>. Several of them are longer
 ,and   25952 has  245719352.
Whether thegap> ();
been checked so far -- in any case it is longer than 5700000000, and
it java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
tmay require alot of time.<P/

On the one hand the cycles of <M>g</M> seem to behave <Q>randomly</Q>,
perhaps as if they would ascend or descend from one point to the next
by a certain factor depending on which side a thrown coin falls on.
-- In this <Q>model</Q>, cycles would be finite with probability 1
since the simple random walk on &ZZ; is recurrent.
On the other, there seems to be quite some structure on them,
however little is known so far. <P/>

First we observe |n5       n in14)
seems to split into two cycles of <M>h := abcacb</M> of the same
length (of course this |(2n-)3if in 53)
thoseshown )

<Example>
CDATAjava.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
*b;
<rcwa permutation of Z with modulus 360>
gap> List(CyclesOnFiniteOrbit/>
[ 3148, 3148 ]
gap> List(CyclesOnFiniteOrbit(G,h,736),Length);
[247724 247724 ]
]]>
</Example>

One cycle seems to contain the points at the odd positions <[CDATAjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
other seems to contain the points at the even positions in the
cycle of <M>g</M>:

<Example>
<![CDATA[
gap> cycle_g := Cycle(g,32);;
gap> positions1 := List(Cycle(h,32),n->Position(cycle_g,n = 736: after 300000 steps, the iterate has 457 binary digits.
gap> Collected(positions1 mod 2);
[ [ 1, 3148 ] ]
ion(cycle_g,n));
gap> Collected(n = 736: after 450000 steps, the iterate has 534 binary digits.
  ,3148]]
]]
</[ [ 115 ] [ 2 2] [16,24 ] [22 2 ,[ ,[32,  ] 

   86,2] [92  ] [106, 2] [112 104  116 8] 
pretty Qscrambled/>:

<Example>
<![CDATA[
gap> positions1{[1..200]};
[ 1, 6271, 6291, 6281, 6285, 6287, 6283, 6289, 6273, 6275, 6277, 6279, 
  6293, 5, 15, 17, 19, 6259, 6261, 6263, 6265, 21, 23, 25, 41, 6227, 
  6229, 6231, 6233, 6235, 6237, 6239, 43, 53, 55, 57, 63,  [316,8 ,  ,2]  326  ,[332 8]  ,2] 
  5,49 51 67 6223 6221, ,6163, 6215, , 6209,, 
  6207, 6213, 6165, 6171, 6177, 6179, 6181, 6183, 6175, 6173,[ 22  ,[436, 8]  ,2],[,2 , [ 452,8] 
  6189, 6191, 6187, 6193, 6169, 6167, 6195, 6199, 6201, 6197, 6203, 
  6217, 73, 83, 85, 87, 103, 113, 115, 117, 4357, 4361, 4363, 4359, 
  4365, 4371, 4373, 4375, 4377, 4369, 4367, 4379, 119, 121, 123, 125, 
  129, 131, 127, 133, 139, 141, 143, 145, 137, 135, 147, 149, 151, 
  155, 159, 161, 157, 163, 169, 175, 4283, 4281, 177, 4271, 4273, 4275, 
  4277, 181, 4255, 4257, 4259, 4261, 4263, 4265, 4267, 183, 2161, 2163, 
  4195, 4199, 4201, 4197, 4203, 4209, 4211, 4213, 4215, 4207,  766,  ]  772 8],[776,376]  , ,[ ,8] 
  4217, 2165, 2167, 2169, 2171, 2175, 2177, 2173, 2179, 2185, 2187, 
  2189, 2191, 2183, 2181, 2193, 2195, 2197, 2199, 2201, 2467, 2469, 
  4117, 4121, 4123, 4119, 4125, 4131, 4133, 4135, 4137, 4129, 4127, 
  4139, 2471, 2473, 2475, 2477, 2487, 2489, 2491, 2507, 2517, 2519, 
  2521, 2537, 3923, 3925, 3941, 3943 ]
]]>
</Example>

</Section>

<!-- #################################################################### -->

<Section Label="sec:FourTransitiveGroup">
<Heading>
  A group which acts 4-transitively on the positive integers
</Heading>

In this section, we would like to show that the group <M>G</M> generated
by the two permutations

<Example>
<![CDATA[
gap> a := RcwaMapping([[3,0,2],[3,1,4],[3,0,2],[3,-1,4]]);;
gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;
gap> SetName(a,"a"); SetName(u,"u"); G := Group(a,u);;
]]>
</Example>

which we have already investigated in earlier examples acts 4-transitively
on the set of positive integers.

Obviously, it acts on the set of positive integers.
First we show that this action is transitive.

We start by checking in which residue classes sufficiently large positive
integers are mapped to smaller ones by a suitable group element:

<Example>
<![CDATA[
gap> List([a,a^-1,u,u^-1],DecreasingOn);
[ 1(2), 0(3), 0(5) U 2(5), 2(3) ]
gap> Union(last);
Z \ 4(30) U 16(30) U 28(30)
]]>
</Example>

We see that we cannot always choose such a group element from the set of
generators and their inverses -- otherwise the union would be
<C>Integers</C>.

<Example>
<![CDATA[
gap> List([a,a^-1,u,u^-1,a^2,a^-2,u^2,u^-2],DecreasingOn);
[ 1(2), 0(3), 0(5) U 2(5), 2(3), 1(8) U 7(8), 0(3) U 2(9) U 7(9), 
  0(25) U 12(25) U 17(25) U 20(25), 2(3) U 1(9) U 3(9) ]
gap> Union(last); # Still not enough ...
Z \ 4(90) U 58(90) U 76(90)
gap> 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],
>         DecreasingOn);
[ 1(2), 0(3), 0(5) U 2(5), 2(3), 1(8) U 7(8), 0(3) U 2(9) U 7(9), 
  0(25) U 12(25) U 17(25) U 20(25), 2(3) U 1(9) U 3(9), 
  3(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) ]
gap> Union(last); # ... but that's it!
Integers
]]>
</Example>

Finally, we have to deal with <Q>small</Q> integers. We use the notation for
the coefficients of rcwa mappings introduced at the beginning of this manual.
Let <M>c_{r(m)} > a_{r(m)}</M>. Then we easily see that
<M>(a_{r(m)}n+b_{r(m)})/c_{r(m)} > n</M> implies
<M>n < b_{r(m)}/(c_{r(m)}-a_{r(m)})</M>.
Thus we can restrict our considerations to integers
<M>n < b_{\rm max}</M>, where <M>b_{\rm max}</M> is the largest
second entry of a coefficient triple of one of the group elements
in our list:

<Example>
<![CDATA[
gap> 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],
>         f->Maximum(List(Coefficients(f),c->c[2])));
[ 1, 1, 4, 2, 7, 7, 56, 28, 25, 17, 17, 11 ]
gap> Maximum(last);
56
]]>
</Example>

Thus this upper bound is 56. The rest is easy -- all we have to do is
to check that the orbit containing 1 contains also all other positive
integers less than or equal to 56:

<Example>
<![CDATA[
gap> S := [1];;
gap> while not IsSubset(S,[1..56]) do
>      S := Union(S,S^a,S^u,S^(a^-1),S^(u^-1));
>    od;
gap> 181, ,4265, 4267 183, ,2163 
true
]]>
</Example>

Checking 2-transitivity is computationally harder, and in the sequel we
will omit some steps which are in practice needed to find out
<Q>what to do</Q>.

The approach taken here is to show that the stabilizer of 1
in <M>G</M> acts transitively on the set of positive integers greater
than 1. We do this by similar means as used above for showing the
transitivity of the action of <M>G</M> on the positive integers.

We start by determining all products of at most 5 generators and their
inverses, which stabilize 1 (taking at most 4-generator products would
not suffice!):

<Example>
<Cjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
gap> gens := [a
gap> tups := Concatenation(List([1..5],k->Tuples([1..4],k)));;
gap> Section Labelsec:"
1364
gap  : Filtered(tupstup-ForAll([13,[,][,4][42],
>                                      l->PositionSublist(tup,l)=fail));;
gap> Length(tups);
484
gap> stab := [];;
gap> for tup in tups do
>      n := 1;
>      for i in tup do n := n^gens[i]; od;
>      if n = 1 then Add(stab,tup); fi;
>    od;
gap> Length(stab);
118
gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i])));;
gap> ForAll(stabelm,elm->1^elm=1); # Check.
true
]]>
</Example>

The resulting products have various different not quite small moduli:

<Example>
![DATA[
gap> List(stabelm,Modulus);
[ 4, 3, 16, 25, 9, 81, 64, 100, 108, 100, 25, 75, 27, 243, 324, 243, 
  256,,144,400,100,4, 324 ,80 , 625 ,75,1 
  150, 75, 225, 81, 729, 486java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 3
  1024, 1600, 192, 1600, 400, 576, 432, 1600, 320, 1600, 2500, 100, 100, 
  180, 192, 192, 108, 972,on set of positive .
  2500, 300, 2500, 625
   ,225,405 225, 225 ,243 , 729,2187 ,216 
  243, 19683, 576, 144 576,432 81 81, 729, 2187,java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
  5184, 324, 8748, 243, 2187, 19683, 26244, 19683 ]
gap> Lcm(last);
12597120000
gap> Collected(Factors(last));
[ [ 2, 10 ], [ 3, 9 ], [ 5, 4 ] ]
]]>
</Example>

Similar as before, we determine for any of the above mappings the
residue classes whose elements larger than/Examplejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
- to smaller 

<Example>
!C
gap>  decs := List(stabelm,DecreasingOn);;
gap> List(decs,Modulus);
2,3,8,25,9,9,16, ,12 50,25,,27 ,54 ,64 , 
  48, 200, 100, 72, 108, 400, 80, 200,[ 12,03,0()  (),23) 1)U78),0()U 29 79) 
  243, 81, 243, 144,gap> 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],
  400, 48, 144, 1600, 320,java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
  ,324,,,400 ,, 400 2500 , 1250 625 625 , 
 ,135,600,120 150 ,75 225 135 225 , ,java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
  243, 729, 243, 729, 108, 216, 243, 729, 162, 729, 2187, 144, java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 8
  144, 81, 81, 243, 729, 1296, 324, 972, 243, 729, 2187, 1458, 2187 ]
gap> Lcm(last);
174960000
]]>
</Example>

java.lang.StringIndexOutOfBoundsException: Range [47, 5) out of bounds for length 72
classes is as large as 174960000, directly forming their union and
checking whether it is equal to>nlt;{rm)/({()-a_{(m})/>java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
much time and memory. However, startingM> lt b_\max<M>,where<M>b_{rmmax}/M   
second entryofa  triple  java.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 65

<Example>
<![CDATA[
gap> SortParallel(decs,stabelm,
>      function(S1,S2)
>        return First([1..100],k->Factorial(k) mod Modulus(S1)=0)
>             < First([1..100],k->Factorial(k) mod Modulus(S2)=0);
>      end);
gap> S := Integers;;
gap> for i in [1..Length(decs)] do
>      S_old := S; S := Difference(S,decs[i]);
>      if S <> S_old then ViewObj(S); Print("\n"); fi;
>      if S = [] then maxind := i; break; fi;
>    od;
0(2)
2(6) U 4(6)
<union of 19 residue classes (mod 60) (6 classes)>
<union of 8 residue classes (mod 30)>
<union of 120 residue classes (mod 720)>
<union of 112 residue classes (mod 720)>
<union of 80 residue classes (mod 720)>
<union of 24 residue classes (mod 720)>
<union of 16 residue classes (mod 720) (12 classes)>
<union of 8 residue classes (mod 720)>
<union of 6 residue classes (mod 720)>
4(720) U 94(720) U 148(720) U 238(720)
<union of 24 residue classes (mod 5760)>
<union of 72 residue classes (mod 51840)>
<union of 48 residue classes (mod 51840)>
<union of 204 residue classes (mod 259200)>
<union of 144 residue classes (mod 259200)>
<union of 120 residue classes (mod 259200)>
<union of 84 residue classes (mod 259200)>
<union of 72 residue classes (mod 259200)>
<union of 48 residue classes (mod 259200)>
<union of 24 residue classes (mod 259200)>
<union of 12 residue classes (mod 259200) (6 classes)>
<union of residue classes (777600)>
54004(64800) U 151204(259200) U 216004(259200)
[  ]
]]>
</Example>

Similar as above, it remains to check that the <Q>small</Q> integers all
lie in the orbit containing 2. Obviously, it is sufficient to check
that any integer greater than 2 is mapped to a smaller one by some
suitably chosen element of the stabilizer under consideration:

<Example>
<![CDATA[
gap> Maximum(List(stabelm{[1..maxind]},
>                 f->Maximum(List(Coefficients(f),c->c[2]))));
6581
gap> Filtered([3..6581],n
[ 4 ]
]]>
</Example>

We:

<Example>
<![CDATA[
gap> 1^(u*a*u^2*a^-1*u!C
1
gap> 4^(u*a*u^2*a^-1*u);
3
]]>
</Example>

Now we know that any positive integer greater than 1 lies in the same
orbit under the action of
as 2, thus that this stabilizer acts transitively on
<M>&NN; \setminus \{1\}</M>. But this means that we have established
the 2-transitivity of the action of <M>G</M> on &NN;. <P/>

In the following, we essentially repeat the above steps to show that
this action is indeed 3-transitive:

<Example>
<![CDATA[
gap> tups := Concatenation(List([1..6],k->Tuples([1..4],k)));;
gap> tups := Filtered(tups,tup->ForAll([[1,3],[3,1],[2,4],[4,2]],
>                                      l->PositionSublist(tup,l)=fail));;
gap> stab := [];;
gap> for tup in tups do
>l: 12;
>      for i in tup do l := List(l,n->n^gens[i]); od;
>      if l = [1,2] then Add(stab,tup); fi;
>    od;
gap> Length(stab);
212
gap(stab,tup-->ProductList(upi->gens[));;
java.lang.StringIndexOutOfBoundsException: Range [9, 3) out of bounds for length 41
gap> SortParallel(decs,stabelm,function(S1,S2)
>      return First([1..100],k->Factorial(k) mod Mod(S1)=0)
>           < First([1484
gap S := Integers;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
gap> for i in [1..Length(decs)] do
>      S_old := >      for i in t : ^gensi;od;
>  >S_old then ViewObj(S; (\n";fi;
>      if S = [] then break; fi;
>    od;
Z \ 1(8) U 7(8)
<union of 424 residue classes (mod 720)>
<union of 169 residue classes (mod 720)>
<union of 51 residue classes (mod 720)>
<union of 45 residue classes (mod 720)>
</Examplejava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
<union of 35 residue classes (mod 720ifferent   small java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69
<union of 30 java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 9
<union of 16 residue classes (mod 720) (10 classes)>
<union of 11 residue classes (mod 720) (7 classes)>
<union of 8 residue classes (mod 720) (6 classes)>
148(360) U 238(360) U 4(720) U 454(720)
238(360) U 4(720) U 148(720) U 454(720)
<union of 28 residue classes (mod 5760)>
<union of 24 residue classes (mod 5760)>
<union of 23 residue classes (mod 5760)>
<union of 22 residue classes (mod 5760)>
<union of 20 residue classes (mod 5760) (14 classes)>
<union of 19 residue classes (mod 5760) 2, ,2500,625,625  ,75 , ,405, ,120 ,
<nionof 16residue classes m  (12 )java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
<union of 112 residue classes (mod 51840)>
<union of 96 residue classes (mod 51840)>
<union of 90 residue classes (mod 51840)>
<union of 51 residue classes (mod 51840)>
<union of 21 residue classes (mod 51840)>
<union of 19 residue classes (mod 51840) (15 classes)>
<union of 16 residue classes (mod 51840) (12 classes)>
<union of 54 residue classes (mod 259200)>
<union of 53 residue classes (mod 259200)>
<union of 50 residue classes (mod 259200)>
<union of 38 residue classes (mod 259200)>
<union of 35 residue classes (mod 259200)>
< of 32 residueclasses m259200)
s(mod259200)>
<union of 22 residue s);
< of  residue classes( 259200) 16 classes)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
<union of 18 residue classes (mod 259200) (15 classes)>
<union of 16 residue classes243 ,243 , ,81 243 216 243,243,128,1600 64 400 
<union of 15 residue classes (mod 259200) (12 classes400 , 1600 ,400 ,,100 60 ,192 ,324, 
< of12 residue (od259200)( >
<union of 7 residue classes (mod 259200)>
2164(259200) U 66964(259200) U 228964(259200)
[  ]
gap> Maximum(List(stabelm,f->Maximum(List(Coefficients(java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 69
515816
gap> smallnum := [4
gap> for i in [1..Length(stabelm)] do
>      smallnum := Filtered(smallnum,n->n^stabelm[i]>=n);
>    od;
java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 14
[  ]
]]che whetheritis equalto theset integerswouldtake 
</muchtime andmemory.However,startingwith the set of integers and

The same for 4-transitivity:

<Example>
<![CDATA[
gap> tups := Concatenation(List([1..8],k->Tuples([1..4],k)));;
aptups :=Filteredtups,tup-ForAll([,][,][,4][,]],
>                                      l->PositionSublist(tup,l)=fail));;
gap> stab := [];;
tupintupsdo
>      l := [1gap>S : ;
>      for gap>for iin [1.engthdecs)] do
>if l=[1,3]then stab,) java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
>    od;
gap> Length(stab);
528
gap> stabelm := [];;
gap> for i in [1..Length(stab)] do
>      elm := One(G);
>      for j in stab[i] do
>        if Modulus(elm) > 10000 then elm := fail; break; fi;
>        elm := elm * gens[j];
>      od;
>      if elm <> fail then Add(stabelm,elm); fi;
>    od;
gap> Length(stabelm);
334
gap> decs := List(stabelm,DecreasingOn);;
gap> union of24residueclasses (od5760>
>(,S2
>        return First([union of 48 residue classes (mod 51840)>
>             < First<union 2residue classes( 259200)>
>      end);
  :Integers;java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
gap> for i in [1..Length(decs)] do
>      S_old := S; S := Difference(S,decs[i]);
>      if S <> S_old then ViewObj(S); Print("\n"); fi;
>      if S = [] then maxind := i; break; fi;
>    od;
Z \ 1(8) U 7(8)
<
<union of 22 residue classes (mod 259200)>
<union of 17 residue classes (mod 72) (9 classes)>
4(18)
<union of 28 residue classes (mod 576)>
<union of 26 residue classes (mod 576)>
<union of 21 residue classes (mod 576)>
<union of 20 residue classes (mod 576) (7 classes)>
<union </Example
<union of 16 residue classes (mod 576) (6 java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 0
<union of 15 residue classes (mod 576) (6 classes)>
<union of 120 residue classes (mod 5184)>
<union of 45 residue classes (mod 5184)>
<union of 30 residue classes (mod 5184)>
<union of 28 residue classes (java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 9
<union of 6 residue classes (mod 1296)>
<union of 116 residue classes (mod 32400)>
<union of 104 residue classes (mod 32400)>
<union of 92 residue classes (mod 32400)>
<union of 84 residue classes (mod 32400)>
<union of 80 residue classes (mod 32400)>
<union of 210 residue classes (mod 129600)>
<union of 189 residue classes (mod 129600)>
<union of 160 residue classes (mod 129600)>
<union of 136  have to treat 4 separately
<union of 133 residue classes (mod 129600)>
<union of 122 residue classes (mod 129600)>
<union gap>1^(u**^2a-*u)
<union of 106 residue classes (mod 129600)>
<union of 104 residue classes (mod 129600)>
<union of 100 residue classes (mod 129600)>
<union of 96 residue classes (mod 129600)>
<union of 60 residue classes (mod 129600)>
<union of 52 residue classes (mod 129600)>
<union of 48 residue classes (mod 129600)>
<union of 40 residue classes (mod 129600)>
<union of 36 residue classes (mod 129600)>
<union of 32 residue classes (mod 129600)>
<union of 24 residue Now we know that any positive integer greater than 1 lies in the same
<union of 16 residue classes (mod 129600) (10 classes)>
<nionof 12  (od129600)java.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
<union of 10 java.lang.StringIndexOutOfBoundsException: Range [68, 17) out of bounds for length 68
<union of 8 residue classes (mod 129600)>
<union of 6 residue classes a  ,we essentiallyrepeat the
57406(129600) U 63076(129600) U 115006(129600) U 120676(129600)
57406(129600) U 115006(129600) U 192676(259200) U 250276(259200)
<union of 15 residue classes (mod 777600) (6 classes)>
<union of 9 residue classes (mod 777600) (6 classes)>
<union of 30 residue classes (mod 3110400)>
<union of 26 residue classes (mod 3110400)>
<of   classes (mod 3110400)>
<>     l->PositionSublist(l=);
<union of 14 residue classes (mod 3110400) (8 java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 17
705406(777600) U 2007076(3110400) U 2649406(3110400) U 2784676(3110400)
<union of 14 residue classes (mod 9331200) (8 classes)>
1483006(2332800) U 2649406(9331200) U 2784676(9331200) U 5117476(9331200)
<union of 16 residue classes (mod 27993600) (6 classes)>
2784676(9331200) U 5117476(9331200)
[ java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
gap> Maximum(List(stabelm{[1..maxind]},
>                 f->Maximum(gap> ();
37387
ap  = 537387;java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
gap> for i in [1g>SortParallel(decs,stabelm,(,)
>      smallnum := Filtered(smallnum,n->n^stabelm[i]>=n);
>    od;
gap> smallnum;
[  ]
]]>
</Example>

There is even some evidence that the degree of transitivity of the action of
<M>G</M> on the positive integers java.lang.StringIndexOutOfBoundsException: Range [34, 36) out of bounds for length 8

<Example>
<![CDATA[
gap> phi := EpimorphismFromFreeGroup(G);
[ a, u ] -> [ a, u ]
gap> F := Source(phi);
<free group unionof30 residueclasses (od 720>
gap> List([5..20],
>         n->RepresentativeActionPreImage(G,[1,2,3,4,5],
>                                           [1,2,3,4,n],OnTuples,F));
[ <identity ...>, a^-3*u^4*a*u^-2*a^2, a^-1*(a^-1*u)^4*a^-1*u^-1*a, 
  a^4*u^-union 28 classes mod5760)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
  a^-1*u^2*a, a^-1*u^-6*a, a^union   java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 40
  a^-1*u^-2*a^-3*u^4*a^2, a^2*(a*u^2)^2, (a*u^-4)^2*a^-2, 
  u^-2*a*u^2*a*u^-2, u^-4*a^2*u^2 ]
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:ThreeButNotFourTransitiveGroup">
<Heading>
  A group which acts 3-transitively, but not 4-java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 42
</

In this section, weunion of16residue java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 55
by the two permutations <M>n \mapsto n + 1</M> union of 12 residue classes (mod 259200) (10 classes)>
acts 3-transitively, but not 4-transitively on the set of integers.

<Example>
<![CDATA[
gap> G := Group(ClassShift(0,1),ClassTransposition(1,2,0,4));
<rcwa group over Z with 2 generatorsfor in[.Lengthstabelm]do
 IsTame(G;
false
>(1-*.22)3(.^*.)3  < free product C_infty*java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
IdentityMapping( Integers )
gap> Display(G:CycleNotation:=false);

Wild rcwa group over ZThe same  -:

[
Tame rcwa permutation of Z: n -> n + 1

Rcwa gap> tups := Filtered(tups,>orAll[13,[,],24,42]

        /
        | 2n-2    if n in 
 n |-> <  (n+2)/2 if n in 0>     l: 123;
       |n        n in 24)
        \

]
]]>
</Example>

This group acts transitively on &ZZ;, since already the cyclic
group generated by the first>           for  in stab[]do
show that it acts 2-transitively. We essentially proceed as in the example
in the previous section, by checking that the stabilizer ofjava.lang.StringIndexOutOfBoundsException: Index 59 out of bounds for length 30
acts transitively on <M>&ZZ; \setminus \{0\}</M>.

<Example>
<![CDATA[
Transposition(,04,
>             ClassShift(0,1    odjava.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
gap> tups := Concatenation(List([1..6],k->Tuples([-1,0,java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3
gap> tups := Filtered(tups,tup->ForAll([[0,0],[-1,1],[1,-1]],
>                                      l->PositionSublist(java.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 22
gap> Length(tups);
189
gap> stab := [];;
gap> for tup in tups do
>      n := 0;
>      for i in tup do n := n^gens[i+2]; od;
>      if n = 0 then Add(stab,tup); fi;
>    od;
gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i+2])));;
gap> Z \ 1(8) U 7 () 78
[[4 6] [8,4][ 16 3]]
gap>decs: List(,);
(4,3() (4, (4,2(),04),4(,2(4),4,0) () 
  0(8), 3(8) ]
gap> Union(decs);
Integers
]]>
</Example>

 as in  previoussection,itremainsto checkthat the 
<>/>value all lie in orbit containing 
ofn;0java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39

<Example>
<![CDATA[
gap> Maximum(List(stabelm,f->Maximum(List(Coefficients(f),
>                                         c->AbsInt(c[2])))));

gap> S :unionof 116 residueclasses(mod32400)
>for elminstabelmdo S =Union(Selm,^(elm-); odjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
gap> IsSubset(S,Difference([-21..21],[0])); # Not yet ..
false
gap> for elm in stabelm do S := Union(S,S^elm,S^(elm^-1)); od;
gap> IsSubset(S,Difference([-21..21],[0])); # ... but u  189residueclasses)>
true
]]>
</Example>

Now we have to check for 3-transitivity. Since we cannot find for every
residue class an element of the pointwise stabilizer of <M>\{0,1\}</M>
whichunion of104 residue (129600)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
subtractions into consideration. union of 96 residue classes (mod 129600
elementsare uite small,simply   sets representatives  :

<Example>
<![CDATA[
gap> tups := Concatenation(List([1..10],k->Tuples([-1,0,1],k)));;
gap>unionof 32residueclasses ( )
>                                      l->PositionSublist(tup,l)=fail));;
gap> Length(tups);
3069
gap> stab := [];;
gap> for tup in tups do
>      l := [0,1];
>      for i in tup do l := List(l,n->n^gens[i+2]); od;
>      if l = [0,1] then Add(stab,tup); fi;
>    od;
gap>Length(tab)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
10
gap> stabelm := List(stab,tup->Product(List(tup,i->gens[i+2])));;
gap> Maximum(List(stabelm,Modulus));
8
gap> Maximum(List(stabelm,
>                 f->Maximum(List(Coefficients(f),c->AbsInt(c[2])))));
8
 decsp =(tabelm,lm-Filtered[.16,n-nelmn);
[ [ 9,13 ] [10, ,14  ,[12 16,[ , ,  ,16 ,
  [ 9, 11, 13, 15 ], [ 9, 11, 13, 15 ], [ 12, 16 ], [ 12, 16 ], 
   , ,13,15 ]
gap Union(ecsp);
[ 9 .. 16 ]
gap> decsm := List(stabelm,elm->Filtered([-16..-9],n->n^elm>n));
[ [ -15, -13, -11, -9 ], [gap> for iin[.maxind do
  [ -16, -14, -12, -10 ], [ -15, -11 ], [ -15, -11 ], 
  [ -16, -14, -12, -10 ], [ -16, -14, -12, -10 ], [ -15, -11 ] ]
gap> Union(decsm);
[ -16 .. -9 ]
gap> S := [2];;
gap> for elm in stabelm do S := Union(S,S^elm,S^(elm^-1)); od;
gap> IsSubsetgap>smallnum;
true
]]>
</Example>

At this point we have established 3-transitivity.
Itremains to  the  M><M does not act 4-.
We do
Since <M>n</M> mod 8 determines the image of <M>n</M> under
a generator of <M>G</M> (mod 4), it suffices to compute (mod 8):

<Example>
<!<ree group onthe
gap> orb := [[0,1,2,3]];;
gap> extend := function ()
>      local gen;
>      for gen in gens do
>        orb := Union(orb,List(orb,l->List(l,n->n^gen) mod 8));
>     java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
>   ;
gap> repeat
      old =ShallowCopy)java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
>      extend(); Print(Length(orb),"\n");
>    until orb = old;
7
27
97
279
573
916
1185
1313
1341
1344
1344
gap> Length(Set(List(orb,l->l mod 4)));
120
gap> last < 4^4;
true
]]>
</Example>

hows that<><M>   4transitively on&;&ZZ.
The corresponding calculation for 3-tuples looks as follows:

<Example>
<![CDATA[
gap> orb := [[0,1,2]];;
gap> repeat
>      old := ShallowCopy(orb);
>      extend(); Print(Length(orb),"\n");
>    until orb = old;
7
27
84
207
363
459
503

512
gap/
64
gap> last = 4^3;
true
]]>
</Example>

Needless to say that the latter kind of argumentation is not suitable
for proving, but only for java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 3

<>

<!-- #################################################################### -->

<Section Label="sec:SlowlyContractingMapping">
<Heading>
  An rcwa mapping which seems to be contracting, but very slow
</Heading>

The iterates of an integer under the Collatz mapping <M>T</M> seem to
approach its contraction centre -- this is the finite set where all
trajectories end up after a java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 9
do not get very large before doing so (of course this is a purely heuristic
statement as the <M>3n+1</M> conjecture has not been proved so far!):

<Example>
<[[
gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;
gap> S0 := LikelyContractionCentre(T,100,1000);
#I  Warning: `LikelyContractionCentre' is highly probabilistic.
The returned result can only
See ?LikelyContractionCentre for more information.
[ -136, -91, -82, -68, -61, -55, -41, -37, -34, -25, -17, -10, -7, -5, 
  -1, 0, 1, 2 ]
gap> S0^T = S0; # This holds by definition of the contraction centre.
true
gap> List([1..30],n->Length(Trajectory(T,n,S0)));
[ 1, 1, 5, 2, 4gap>stabelm: List(,-ProductListtup-gens[+]);;
  11, 11, 8, 16, 8, 70, 13, 13, 13 ]
gap> Maximum(List([1..1000],n->Length(Trajectory(T,n,S0))));
113
ap>Maximum(List(.1000]n-Maximum((T,,S0)));
125252
]]>
</Example>

The following mapping seems to be contracting as well, but its trajectories
are much longer:

<Log>
<![CDATA[
gap> f6    stabilizerof&bsp:
>                       [11,3,6],[11,-2,6],[11,-1,6]]);;
gap> Display(f6);



        /
        | n/6       if n in 0(6)
        | (5n+1)/6  if n in 1(6)
        | (7n-2)/6  if n in 2(6)
  |><(1n+)6ifnin 36java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
        | (11n-2)/6 if n in 4(6)
        | (11n-1)/6 if n in 5(6)
        |
        \

gap> S0 := LikelyContractionCentre(f6,1000,100000);;
#I  Warning: `LikelyContractionCentre' is highly probabilistic.
The returned result can only be regarded as a rough guess.
See ?LikelyContractionCentre for more information.
gap> Trajectory(f6,25,S0);
[ 25, 21, 39, 72, 12, 2 ]
gap> List([1..
[ 1, 1, 3, 4, 1, 2, 3, 2, 1, 5, 7, 2, 8, 17, 3, 16, 1, 4, 17, 6, 5, 2, 
  5, 5, 6, 1, 4gap>tupstupstup-ForAll[[,][11,1,1]java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61
  19, 23517, 3, 9, 3, 1, 18, 14, 2, 20, 23512, 14, 2, 6, 6, 1, 4, 19, 
  12, 23511, 8, 23513, 10, 1, 13, 13, 3, 1, 23517, 7gap>  : [;
  12, 8, 6, 18, 14, 23516, 31, 12, 23545, 4, 21, 19, 5, 1, 17, 17, 13, 
     java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
gap> Maximum(Trajectory(f6,47,S0));
7363391777762473304431877054771075818733690108051469808715809256737742295\
45698886054
]]>
</Log>

Computing the trajectory of 3224 takes quite a while -- this trajectory
ascends to about <M>3 \cdot 10^{2197}</M>, before it approaches the java.lang.StringIndexOutOfBoundsException: Range [0, 73) out of bounds for length 1
point 2 after 19949562 steps. <P/>[[ ,13 ,[10 ,14, 16,[,16]  , 13] [12 16], 

When constructing the mapping <C>f6</C>, the denominators of the
partial mappings have been chosen to be equal and the numerators have
been chosen to be numbers coprime to the common denominator, whose product
wer of the
denominator. In the example we have <M>5 \cdot 7 \cdot 11^3 = 46585</M>
and <M>6^6 = 46656</M>. <P/>

Although the trajectories of <C>T</C> are much shorter than those of
<C>f6</C>, it seems likely that this does not make the problem of deciding
whether the mapping <C>T</C> is contracting [[-,-,-1, 9] [-, 12],[-, - ] [ -,-1] 
even for mappings with much shorter trajectories than <C>T</C>
the problem seems to be equally hard. A solution can usually only be found
in trivial cases, i.e. for example when there is some <M>k</M> such that
applying the <M>k</M>th power of the respective mapping to any integer
decreases its absolute value. <P/>

Enter<>AssignGlobals(oadRCWAExamples(.);<C
in order to assign the global variables defined in this section.

</po wehave established-ransitivity.

<!-- #################################################################### -->

<ectionLabel=sec:ndaloroResult>
<Heading>Checking a result bya generatorof <></>(od ) sufficesto compute m&;8)java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74

In <Cite Key="Andaloro00"/>, P. Andaloro has shown that java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 25
trajectories of integers <M>n \in 1(16)</M> under the Collatz mapping always
contain 1 would be sufficient to prove the <M>3n+1</M> conjecture.
nthis java.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 67
union of the <script type="text/>java.lang.StringIndexOutOfBoundsException: Range [46, 45) out of bounds for length 57
mapping <M>T</M> contains <M>&   od;
 Thusweput<> = (<enough. Thus we put <M>S := 1(16)</M
set&java.lang.StringIndexOutOfBoundsException: Range [1, 8) out of bounds for length 6

<
!CDATA
gap>
<    2
gap> S
(16
gap> :UnionSjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
1(16) U 2(24)
  :Union(SSjava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
s "APprompt>&t;/span> <java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 95
ionS^);
<union of 30 residue classes (mod 144)>
>S:UnionS^,
< of classes (od )java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
gap>S = SS;
<union of 172
gap> S := Union(S,S^T);
<union of 676 residue java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 0
UnionSS)
< of residueclasses( )>
gap> span=>&;/
<of 2638residue classes(od 3888>
gap> S := Union(S,S^T);
<union of 33 residue classes (mod 48)>
gap> S := Union(S,S^T);
<union of 33 residue classes (mod 48)>
gap> Union(S,ResidueClass(Integers,3,0)); # Et voila ...
Integers
]]>
java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 10

Furtherjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
Section <Ref Label="sec:java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 3

Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:MatthewsLeighExamples">
<Heading>Two examples by Matthews and Leigh</Heading>

In <Cite Key="MatthewsLeigh87"/>, K. R. Matthews and
G. M. Leigh have shown that two trajectories of the following
(surjective, but not injective) mappings are acyclic (mod <M>x<java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
and divergent:

<Example>
<![CDATA[
java.lang.StringIndexOutOfBoundsException: Range [32, 3) out of bounds for length 50
gap> R := PolynomialRing(GF(2),1);
GF(2)[x]
gap> ML1 := RcwaMapping(R,x,[[1,0,x],[(x+1)^3,1,x]]*One(R));;
gap> ML2 := RcwaMapping(R,x,[[1,0,x],[(x+1)^2,1,x]]*One(R));;
gap> Display(ML1);

Rcwa mapping of GF(2)[x] with modulus x

        /
        | P/x                     if P in 0(x)
 P |-> <  ((x^3+x^2+x+1)*P + 1)/x if P in 1(x)
        |
        \

gap> Display(ML2);

mapping  GF()x]with modulusx

        [ -,-1, -82 -68 61 55-,-, 34 -25 -17, -, 7,- 
        | P/x               if P in 0(x)
 P |  -,0,1,2]
        |
        \

 List(ML1ML2,);
[, ]
gap> List([ML1,ML2],IsInjective);
[ false, false ]
gap> traj1 := Trajectory(ML1,One(R),16);
[ 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, 
  x^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, 
  x^11+x^10+x^8+x^7+x^6+x^5+x^2, x^10+x^9+
  x^9+x^8+x^6+x^5+x^4+x^3ms to be contractingas well,butitstrajectories
  x^13+x^12+x^11+x^8+x^7+x^6+x^4, java.lang.StringIndexOutOfBoundsException: Range [0, 35) out of bounds for length 0
gap> traj2 := Trajectory(ML2,(x^3+x+1)*One(R),16);
[ 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, 
  x^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, 
  x^9+x^6+x^3+x+1, x^10+x^8+x^7+x^5+x^4+x+1, 
  x^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, 
  x^13+x^10+x^7+x^4+x, x^12+x^9+x^6+x^3+1, 
  x^13+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x, 
  x^12+x^10+x^9+x^7+x^6+x^4+x^3+x+1 ]
]]>
</Example>

The pattern which Matthews and Leigh used to show the divergence of the
above trajectories
Markovchainswith the two  0nbsp;mod&;<x/>and
1 mod&#  Warning `'highly probabilistic.

<Example>
<![CDATA[
gap> traj1modx := Trajectory(ML1,One(R),400,xgap> Trajectoryf6,25S0;
gap> traj2modx := Trajectory(ML2,(x^3+x+1)*One(R),600,x);;
gap> List(traj1modx{[1..150]},val->Position([Zero(R),One(R)],val)-1);
 ,1 ,1 , 0, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 
  1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 
  1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,  12 23511 1 13 ,3 1,23517,7 20, 7, 9,9 ,
  , ,1,1,1 1,1 1 1 1, 1,1]
gap> List(traj2modx{[1..150]},val->Position([Zero(R),One(R)],val)-1);
[ 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 19, ,23515 java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
  1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 
  1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
  0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 ]
]]>
</Example>

What is important here are the lengths of the intervals between two changes
from one state to the other:

<Example>
<![CDATA[
gap> ChangePoints := l->Filtered([1..Length(l)-1],pos->l[pos]<>l[pos+1]);;
gap> Diffs := l->List([1..Length(l)-1],pos->l[pos+1]-l[pos]);;
gap> Diffs(ChangePoints(traj1modx)); # The pattern in the first ...
[ 1, 1, 2, 4, 2, 2, 4, 8, 4, 4, 8, 16, 8, 8, 16, 32, 16, 16, 32, 64, 32, 
  32, 64 ]
gap> Diffs(ChangePoints(traj2modx)); # ... and in the second example.
[ 1, 7, 1, 1, 1, 13, 1, 1, 1, 1, 1, 1, 1, 25, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 49, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 97, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1,hen constructingthemapping <C>f6<C>, the denominators ofthe
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ]
gap> Diffs(ChangePoints(last)); # Make this a bit more obvious.
[ 1, 3, 1, 7, 1, 15, 1, 31, 1, 63, 1 ]
]]>
</gap> S := Union(S,S^T);

This looks clearly acyclic, thus the trajectories diverge.
Needless to say<union of  residueclasses mod144>
the proof along these lines given in the article cited above, but just
sheds a light on the idea behind it. <P/>

Enter <C>AssignGlobals(LoadRCWAExamples().MatthewsLeigh);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:OrdersOfCommutators">
<Heading>Orders of commutators</Heading>

We enter some wild rcwa permutation:

<Example>
<![CDATA[
gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;
gap> IsTame(u);;
gap> Display(u);

Wild rcwa permutation of Z with modulus 5

        /
        | 3n/5     if n in 0(5)
        | (9n+1)/5 if n in 1(5)
 n |-> <  (3nin order to assign the globalvariables ithis section
        | (9n-2)/5 if n in 3(5)
        | (9n+4)/5 if n in 4(5)
       
]]>
</Example>

We would like to compute the order of <M>[u,n \mapsto n + k]</M>
and <M>[u^2,n \mapsto n + k]</M> for different values of <M>k<G. M. eigh shownthat  trajectories  the 

<Example>
<![CDATA[
gap> nu := ClassShift(0,1);; # n -> n + 1
gap> l := Filtered([0..100],k->IsTame(Comm(u,nu^k)));
[ 0, 2, 3, 5, 6, 9, 10, 12, 13, 15, 17, 18, 20, 21, 24, 25, 27, 28, 30, 
  32, 33, 35, 36, 39, 40, 42, 43, 45, 47, 48, 50, 51, 54, 55, 57, 58, 
  60, 62, 63, 65, 66, 69, 70, 72, 73, 75, 77, 78, 80, 81, 84, 85, 87, 
  88, 90, 92, 93, 95, 96, 99, 100 ]
gap> List(l,k->Order(Comm(u,nu^k)));
[ 1, 6, 5, 3, 5, 5, 3, infinity, 7, infinity, 7, 5, 3, infinity, 
  infinity, 3, 5, 7, infinity, 7, infinity, 3, 5, 5, 3, 5, infinity, 
  infinity, infinity, 5, 3, 5, 5, 3, infinity, 7, infinity, 7, 5, 3, 
  infinity, infinity, 3, 5, 7, infinity, 7, infinity, 3, 5, 5, 3, 5, 
  infinity, infinity, infinity, 5, 3, 5, 5, 3 ]
gap> u2 := u^2;
<wild rcwa permutation of Z with modulus 25>
gap> Filtered([1..16],k->IsTame(Comm(u2,nu^k))); # k<15->[u^2,nu^k] wild!
[ 15 ]
gap> Order(Comm(u2,nu^15));
infinity
gap> u2nu17 := Comm(u2,nu^17);
<rcwa permutation of Z with modulus 81>
gap> cycs := ShortCycles(u2nu17,[-100..100],100);;
gap> List(cycs,Length);
[ 72, 73, 72, 72, 72, 73, 72, 72, 73, 72, 72, 73, 72, 72 P |   (21)P+ )x if  in()
  73, 72, 72, 73, 72, 72 ]
gap> Lcm(last);
5256
gap> gap> List([ML1,ML2],IsInjective);
IdentityMapping( Integers )
gap> u2nu18 := Comm(u2,nu^18);
<rcwa permutation of Z with modulus 81>
gap> cycs := ShortCycles(u2nu18,[-100..100],100);;
gap>Listcycs,ength)
[ 21, 22, 22, 22, 21, 22, 22, 21, 22, 22, 21, 22, 21, 22, 22, 21, 22, 
   2122 ]
 x^+^12x^11x^+^7x6x4 x^2x11+x^+x^7x^+^+x^]
462
 ^; Thisis an element of order 2*3*7*11 = 462.
IdentityMapping( Integers )
gap> List([Comm(u2,nu^20),Comm(u2,nu^25),Comm(u2,nu^30)],Order);
]
]]>
</Example>

observe our commutatorshave different orders, and
that the prime factors of these orders are not all <Q>very small</Q>. <P/>

Enter <C>AssignGlobals(LoadRCWAExamples().CollatzlikePerms);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -

<Section Label="sec:OddNumberOfGens_FiniteOrder">
<Heading>
  An infinite subgroup of CT(GF(2)[x]) with many torsion elements
</Heading>

In this section, we have a look at the following subgroup of CT(GF(2)[x]):

<Example>ap>traj1modx =TrajectoryML1,ne(),,);java.lang.StringIndexOutOfBoundsException: Range [48, 49) out of bounds for length 48
<![CDATA[
gap> x := Indeterminate(GF(2));; SetName(x,"x");
gap> R := PolynomialRing(GF(2),1);
GF(2)[]
gap> a := ClassTransposition(0,x,1,x);;
gap>b :=ClassTransposition(,x2,1x2);
c :=1,,0x2+x);;
gap> G := Group(a,b,c);
<rcwa group over GF(2)[x] with 3 generators>
gap> Display(G);

Rcwa group over GF(2)[x], generated by

java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
Rcwa permutation of GF(2)[x]gap> List[(RR,neR)]val-)java.lang.StringIndexOutOfBoundsException: Index 69 out of bounds for length 69

Rcwa permutation of GF(2)[x] with modulus x^2+1, of order 2

        /
        | P + 1 if P in 0(x^2+1) U 1(x^2+1)
 P |-> <  P     if P in 1, 0,1, , ,0,1 1 , ,1 ,1 ,1 1 1,1 ,1 1,1 1 
        |
        \


Rcwa permutation of GF(2)[x] with modulus x^2+x, of order 2

        /
        | (x+1)*P + x+1   if P in 1(x)
 P |-> <  (P + x+1)/(x+1) if P in 0(x^2+x)
        | P               if P in x(x^2+x)
        \

]
]]>
</Example>

We can easily find 2 normal subgroups of <C>G</C>:

<Example>
<![CDATA[
gap> N1 := Subgroup(G,[a*b,a*c]);
<rcwa group over GF(2)[x] with 2 generators>
gap> IsNormal(G,N1);
true
gap> Index(G,N1);
2
gap> G/N1;
Group([ (1,2), (1,2), (1,2) ])
gap> N2 := Subgroup(G,[a*b*c,a*c]);;
gap> IsNormal(G,N2);
true
gap> IsSubgroup(N1,N2);
false
]]>
</Example>

Products of even numbers of generators of <C>G</C> may have
infinite order.For  wehave

<xample
<!CDATA[
gap> Order(a*b);
2
gap> Order(a*c);
infinity
gap> Order(b*c);
infinity
]]
</Example>

We would like to have a look at orders of products of odd numbers of
generators. In order to restrict our considerations to <Q>essentially
different</Q> products (as far as we can easily do this), we use
the following auxiliary function:

<Listing Type="GAP code">
<![CDATA[
NormedWords := function ( F, ]]java.lang.StringIndexOutOfBoundsException: Range [3, 4) out of bounds for length 3

  local  words, gens, tuples, w;

     =()java.lang.StringIndexOutOfBoundsException: Range [33, 34) out of bounds for length 33
  tuples := EnumeratorOfTuples([1..3],lng);
  words  := [];

  for w in tuples do
    if    (w[1] = 1 or not 1 in w)
      and PositionSublist(w,[1,1]) = fail
      and PositionSublist(w,[2,2]) = fail
      and PositionSublist(w,[3,3]) = fail
      and PositionSublist(w,[2,1]) = fail
      and w[1] < w[lng]
      and w{[1,lng]} <> [1,2]
      and (w{[1..3]} = [1,2,3] or PositionSublist(w,[1,2,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
    then Add(words,w); fi;
  od;

  words := List(words,word->Product(List(word,i->gens[i])));
  return words;
end;
]]>
</Listing>

Now let's compute the possible orders of products of 3, 5, 7 or 9 generators:

<Log>
<![CDATA[Wild rcwa permutationof  modulus5
gap> F := FreeGroup("a","b","c");;
gap> phi := EpimorphismByGenerators(F,G);
[ a, b, c ] -> 
[ ClassTransposition(0,x,1,x), ClassTransposition(0,x^2+1,1,x^2+1), 
  ClassTransposition(1,x,0,x^2+x) ]
gap>B3 : F3;
[a**cc java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
gap> B3 := List(B3,g->g^phi);
[ <rcwa permutation of GF(2)[x] java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 10
gap> List(B3,Order);
[ 20 ]
gap> B5 := NormedWords(F,5);
[ a*b*c*a*c, a*b*c*b*c ]
gap> B5 := List(B5,g->g^phi);
[ <rcwa permutation of GF(2)[x] with modulus x^3+x>, 
  <rcwa gap> nu := ClassShift(0,1);; # n -> n + 1
gap> List(B5,Order);
[ 12, 12 ]
gap> B7 := NormedWords(F,7);
[ 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 ]
gap> B7 := List(B7,g->g^phi);
[ <rcwa permutation of GF(2)[x] with modulus  ,62 63 65,66, 69  , 73 , , 80, ,84 85 87 
  <88 , ,93
  <rcwa gap> List(l,k->Order(Comm(u,nu^k)));
  <rcwa permutation of GF(2)[x] with modulus x 13infinity7 , ,5 , infinity, 
gap> List(B7,Order);
[ 12, 12, 12, 30 ]
gap> B9 := NormedWords(F,9);
[ ****bcabc a**c****a*c ***a****bc ***aac***ac,java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
  a*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, 
  a*b*c*b*c*b*c*b*c ]
gap> B9 := List(B9,g->g^phi);;
gap> List(B9,Order);
[ 20, 4, 30, 12, 42, 30, 4, 42, 12 ]
]]>
</Log>

Enter <C>AssignGlobals(LoadRCWAExamples().OddNumberOfGens_FiniteOrder);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:AbelianGroupOverPolynomialRing">
<Heading>An abelian rcwa group over a polynomial ring</Heading>

We enter a 2-generated abelian wild rcwa group over GF(4)[<M>x</M>]:

Example>
<![CDATA[
gap> x := Indeterminate(GF(4),1);; SetName(x,"x");
gap> R := PolynomialRing(GF(4),1);
GF(2^2)[x]
gap> e := One(GF(4));;
gap> p := x^2 + x + e;;    q := x^2 + e;;
gap> r := x^2 + x + Z(4);; s := x^2 + x + Z(4)^2;;
gap> cg := List( AllResidues(R,x^2), pol -> [ p, p * pol mod q, q ] );;
gap> ch := List( AllResidues(R,x^2), pol -> [ r, r * pol mod s, s ] );;
gap> g := RcwaMapping( R, q, cg );
<rcwa mapping of GF(2^2)[x] with modulus x^2+1>
gap> h := RcwaMapping( R, s, ch );
<rcwa mapping of GF(2^2)[x] with modulus x^2+x+Z(2^2)^2>
gap> List([g,h],IsTame);
[ false, false ]
gap> G := Group(g,h);
<rcwa group over GF(2^2)[x] with 2 generators>
gap> IsAbelian(G);
true
gap> IsTame(G);
false
]]>
</Example>

It is easy to see that all orbits on GF(4)[<M>x</M>] under the action
of <C>G</C> are finite. <P/>

Now we compute the action of the group <C>G</C> on one of its orbits, and
make some statistics of the orbits of <C>G</C> containing polynomials of
degree less than 4:

<Example>
<![CDATA[
gap> orb := Orbit(G,x^5);
[ 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, 
  x^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, 
  x^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, 
4
  ^x^+^++ ^+x^2+(^2)* x^5+^Z(^2^2*Z22^2]
gap> H := Action(G,orb);
Group([ (1,2,4,7,6,9,12,14)(3,5,8,11,10,13,15,16), 
  (1,3,6,10)(2,5,9,13)(4,8,12,15)(7,11,14,16) ])
gap> IsAbelian(H); # check ...
true
gap> IsCyclic(H);  # H, and therefore also G, is not cyclic
false
gap> Exponent(H);
8
gap> Collected(List(ShortOrbits(G,AllResidues(R,x^4),100),Length));
[ [ 1, 4 ], [ 2, 6 ], [ 4, 12 ], [ 8, 24 ] ]
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
</Example

Changing the generators a little changes the structure of the group
and its action on the underlying ring a lot:

<Example>
<![CDATA[
gap> cg[1][2] := cg[1][2] + (x^2 + e) * p * q;;
gap> ch[7][2] := ch[7][2] + x * r * s;;
gap> g := RcwaMapping( R, q, cg );; h := RcwaMapping( R, s, ch );;
gap> G := Group(g,h);
<rcwa group over GF(2^2)[x] with 2 generators>
gap> IsAbelian(G);
false
gap> Support(G);
GF(2^2)[x] \ [ 1, Z(2^2), Z(2^2)^2 ]
gap> orb := Orbit(G,Zero(R));;
gap> Length(orb);
87
gap> StructureDescription(Action(G,orb));
"A87"
gap> Collected(List(orb,DegreeOfLaurentPolynomial));
[ [ -infinity, 1 ], [ 1, 2 ], [ 2, 4 ], [ 3, 16 ], [ 4, 64 ] ]
gap> S := AllResidues(R,x^6);;
gap> orbs := ShortOrbits(G,S,-1:finite);;
gap> List(orbs,Length);
[ 87, 1, 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 20, 4, 12, 4, 20, 4, 4, 12, 8, 8, 
  48, 48, 16, 8, 8, 56, 8, 88, 8, 8, 8, 400, 16, 48, 16, 16, 16, 80, 16, 
  16, 16, 96, 32, 192, 32, 16, 16, 416, 16, 48, 16, 16, 880, 16, 16, 16, 
  16, 16, 16, 16, 16, 16, 848, 16, 16, 32, 16, 16, 16, 16, 16, 16, 16 ]
gap> Position(last,880);
55
gap> Set(orbs[55],DegreeOfLaurentPolynomial); # all elm's have same degree
[ 5 ]
gap> H := Action(G,orbs[55]);;
gap> IsPrimitive(H,MovedPoints(H));
false
gap> List(Blocks(H,MovedPoints(H)),Length);
[ 110, 110, 110, 110, 110, 110, 110, 110 ]
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().AbelianGroupOverPolynomialRing);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:CheckingForSolvability">
<Heading>Checking for solvability</Heading>

Presently there is no general method available for testing wild rcwa groups
for solvability. However, sometimes the question for solvability can be
answered anyway.
In the example below, the idea is to find a subgroup <A>U</A> which acts
on a finite set <A>S</Agap> a =ClassTransposition(0,x,1x);
a non-solvable finite permutation group:

<Example>
<![CDATA[
gap> a := RcwaMapping([[3,0,2],[3, 1,4],[3,0,2],[3,-1,4]]);;
gap> b := RcwaMappingjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
gap> G := Group(a,b);;
gap> ShortOrbits(Group()[] P- P  Z2^0
[ [ -10 ], [ -9 ], [ -30, -21, -14, -13, -11, -8 ], [ -7 ], [ -6 ], 
  [ -12, -5, -4, -3, -2, 1 ], [ -1 ], [ 0 ], [ 2 ], [ 3 ], 
  [ 4, 5, 6, 7, 10, 15 ], [ 8 ], [ 9 ] ]
gap> S := [ 4, 5, 6, 7, 10, 15 ];;
gap> Cycle(Comm(a,b),4);
[ 4, 7, 10, 15, 5, 6 ]
gap> elm := RepresentativeAction(G,S,Permuted(S,(1,4)),OnTuples);
<rcwa permutation of Z with modulus 81>
gap> List(S,n
[ 7, 5, 6, 4, 10, 15 ]
gap> U := Group(Comm(a,b),elm);
<rcwa group over Z with 2 generators>
gap> Action(U,S);
Group([ (1,4,5,6,2,3), (1,4) ])
gap> IsNaturalSymmetricGroup(last);
true
]]>
</Example>

Thus the subgroup <A>
degree 6. Therefore the group <A>G</A> is not solvable.
We conclude this example by factoring the group element <A>elm</A> into
generators:

<Example>
<![CDATA[
gap> F := FreeGroup("a","b");
<group on the generators [a  ]
RepresentativeActionPreImageG,S,(,1,),nTuples,;
a^-2*b^-2*a*b*a^-1*b*a*b^-2*a
gap> a^-2*b^-2*a*b*a^-1*b*a*b^-2*a = elmgap> /;
true
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().CheckingForSolvability);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:LocalExample">
<Heading>Some examples over (semi)localizations of the integers</Heading>

start with something  canobserve when trying to Qtransfer<Q>an
rcwa mapping from the ring of integers to one of its localizations:

<Example>
<![CDATA[
gap> a := RcwaMapping([[3,0,2],[3,1,4],[3,0,2],[3,-1,4]]);;
gap> IsBijective(a);
true
gap> a2 := LocalizedRcwaMapping(a,2);
<rcwa mapping of Z_( 2 ) with modulus 4>
gap> IsSurjective(a2); # As expected
true
gap> IsInjective(a2); # Why not??
false
gap> 0^a2;
0
gap> (1/3)^a2; # That's the reason!
0
]]>
</Example>

The above can also be explained easily by pointing out that the
modulus of the inverse of <C>a</C> is 3, and that 3 is a unit
of&<>&;{(2}/.
Moving to <M>&ZZ;_{(2,3)}</M> java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 0

<Example>
<![CDATA[
gap> a23 := SemilocalizedRcwaMapping(a,[2,3]);
<rcwa mapping of Z_      and PositionSublist(,11)= 
gap> IsBijective(a23);
true
]]>
</Example>

We get additional finite cycles, e.g.:

<Examplethen words,) ;
<![CDATA[
gap> List(ShortOrbits(Group(a23),[0..50]/5,50),orb->Cycle(a23,orb[1]));
[ [ 0 ], [ 1/5, 2/5, 3/5 ], 
  [ 4
  [ 1 ], [ 2, 3 ], [ 14/5, 21/5, 17/5 ], 
  [ 16/5, 24/5, 36/5, 54/5, 81/5, 62/5, 93/5, 71/5, 52/5, 78/5, 117/5, 
      89/5, 68/5, 102/5, 153/5, 116/5, 174/5, 261/5, 197/5, 149/5, 
      113/5, 86/5, 129/5, 98/5, 147/5, 109/5, 83/5, 61/5, 47/5, 34/5, 
      51/5, 37/5, 29/5, 23/5 ], [ 4, 6, 9, 7, 5 ] ]
gap> List(last,Length);
[ 1, 3, 11, 1, 2, 3, 34, 5 ]
gap> List(ShortOrbits(Group(a23),[0..50]/7,50),java.lang.StringIndexOutOfBoundsException: Range [0, 50) out of bounds for length 0
[ [ 0 ], [ -1/7, 1/7 ], [ 2/7, 3/7, 4/7, 6/7, 9/7, 5/7 ], [ 1 ], 
  [ 2, 3 ], [ 4, 6, 9, 7, 5 ] ]
gap> List(last,Length);
[ 1, 2, 6, 1, 2, 5 ]
]]>
</Example>

However the structure of a group with prime set <M>\mathbb{P}</M>
remains invariant under the <Q>transfer</Q> from &ZZ;
to <M>&ZZ;_{(\mathbb{P})}</M>. <P/>

<Q>Transferring</Q> a non-invertible rcwa mapping from the ring of integers
to some of its (semi)localizations can also turn it into an invertible one:

<Example>
<![CDATA[
gap> v := RcwaMapping([[6,0,1],[1,-7,2],[6,0,1],[1,-1,1],
>                      [6,0,1],[1, 1,2],[6,0,1],[1,-1,1]]);;
gap> Display(v);

Rcwa mapping of Z with modulus 8

        /
        | 6n      if n in 0(2)
        | n-1     if n in 3(4)
 n |-> <  (n-7)/2 if n in 1(8)
        n+1)2  n 5(8)
        |
        \

gap> IsInjective(v);
true
gap> IsSurjective(v);
false
gap> Image(v);
Z \ 4(12) U 8(12)
gap> Difference(Integers,last);
4(12) U 8(12)
gap> v2 := LocalizedRcwaMapping(v,2);
<rcwa mapping of Z_( 2 ) with modulus 8>
gap> IsBijective(v2);
true
gap> Display(v2^-1);

Rcwa permutation of Z_( 2 ) with modulus 4

        /
        | 1/3 n / 2 if n in 0(4)
        | 2 n + 7   if n in 1(4)
 n |-> <  n + 1     if n in 2(4)
        | 2 n - 1   if n in 3(4)
        |
        \

gap> S := ResidueClass(Z_pi(2),2,0);; l := [S];;
gap> for i in [1..10] do Add(l,l[Length(l)]^v2); od;
gap> l; # Visibly v2 is wild ...
[ 0(2), 0(4), 0(8), 0(16), 0(32), 0(64), 0(128), 0(256), 0(512),
  0(1024), 0(2048) ]
gap> w2 := RcwaMapping(Z_pi(2),[[1,0,2],[2,-1,1],[1,1,1],[2,-1,1]]);;
gap> v2w2 := Comm(v2,w2);; v2w2^-1;;
gap> Display(v2w2);

Rcwa permutation of Z_( 2 ) with modulus 8

        /
       |3nifnin 24)
        |n  4if  in (8
  ><  4 if n in 5(8)
        | n     if n in 0(4) U 3(4)
        |
        \
]]>
</Example>

Again, viewed as an rcwa mapping of the integers the commutator given at
the end of the example would not be surjective. <P/>

Enter <C>AssignGlobals(LoadRCWAExamples().Semilocals);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:Twisting257CyclesToModulus32">
<Heading>
  Twisting 257-cycles into an rcwa mapping with modulus 32
</Heading>

We define an rcwa mapping <A>x</A> of order 257 with modulus 32.
The easiest way to construct such a mapping is to prescribe a transition
graph and then to assign suitable affine mappings to its vertices.

<Example>
<![CDATA[
gap> x_257 := RcwaMapping(
>      [[ 16,  2,  1], [ 16, 18,  1], [  1, 16,  1], [ 16, 18,  1],
>       [  1, 16,  1], [ 16, 18,  1], [  1, 16,  1], [ 16, 18,  1],
>       [  1, 16,  1], [ 16, 18,  1], [  1, 16,  1], [ 16, 18,  1],
>       [  1, 16,  1], [ 16, 18,  1], [  1, 16,  1], [ 16, 18,  1],
>       [  1,  0, 16], [ 16, 18,  1], [  1,-14,  1], [ 16, 18,  1],
>       [  1,-14,  1], [ 16, 18,  1], [  1,-14,  1], [ 16, 18,  1],
>       [  1,-14,  1], [ 16, 18,  1], [  1,-14,  1], [ 16, 18,  1],
>       [  1,-14,  1], [ 16, 18,  1], [  1,-14,  1], [  1,-31,  1]]);;
gap> Order(x_257);; Display(x_257:CycleNotation:=false);

Rcwa permutation of Z with modulus 32, of order 257


        | 16n+18 if n in 1(2) \ 31(32)
        | n+16   if n in 2(32) U 4(32) U 6(32) U 8(32) U 10(32) U 
        |                12(32) U 14(32)
        | n-14   if n in 18(32) U 20(32) U 22(32) U 24(32) U 26(32) U 
 n |-> <                 28(32) U 30(32)
        | 16n+2  if n in 0(32)
        | n/16   if n in 16(32)
         31  3132java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
        java.lang.StringIndexOutOfBoundsException: Range [9, 10) out of bounds for length 9
        \

gap> Display(x_257);

Rcwa permutation of Z with modulus 32, of order 257

( 0(32), 2(512), 18(512), 4(512), 20(512), 6(512), 22(512), 
  8(512), 24(512), 10(512), 26(512), 12(512), 28(512), 14(512), 
  30(512), 16(512), 1(32), 34(512), 50(512), 36(512), 52(512), 
  38(512), 54(512), 40(512), 56(512), 42(512), 58(512), 44(512), 
  60(512), 46(512), 62(512), 48(512), 3(32), 66(512), 82(512), 
  68(512), 84(512), 70(512), 86(512), 72(512), 88(512), 74(512), 
  0(512) 76(,92(512,78512, 94512, (512) 5(), 
  98(512), 114(512), 100(512), 116(512), 102(512), 118(512), 
  104(512), 120(512), 106(512), 122(512), 108(512), 124(512), 
  110(512), 126(512), 112(512), 7(32), 130(512), 146(512), 
  132(512), 148(512), 134(512), 150(512), 136(512), 152(512), 
  138(512), 154(512), 140(512), 156(512), 142(512), 158(512), 
  144(512), 9(32), 162(512), 178(512), 164(512), 180(512), 
  166(512), 182(512), 168(512), 184(512), 170(512), 186(512), 
  172(512), 188(512), 174(512), 190(512), 176(512), 11(32), 
  194(512), 210(512), 196(512), 212(512), 198(512), 214(512), 
  200(512), 216(512), 202(512), 218(512), 204(512), 220(512), 
  206(512), 222(512), 208(512), 13(32), 226(512), 242(512), 
  228(512), 244(512), 230(512), 246(512)[ 1, 4 ], [ 2, 6 ], [ 4, 12 ], [ 8, 24 ] ]
  234(512), 250(512), 236(512), 252(512)
  240(512), 15(32), 258(512), 274(512), 260(512), 276(512), 
  262(512), 278(512), 264(512), 280(512), 266(512), 282(512), 
  268(512), 284(512), 270(512), 286(512), 272(512), 17(32), 
  290(512), 306(512), 292(512), 308(512), 294(512), gap> a := RcwaMapping([[3,0,2],[3, 1,4],[3,0,2],[3,-1,4]);
  296(512), 312(512), 298(512), 314(512), 300(512), 316(512), 
  302(512), 318(512), 304(512), 19(32), 322(512), 338(512), 
  324(512), 340(512), 326(512), 342(512), 328(512), 344(512), 
  330(512), 346(512), 332(512), 348(512), 334(512), 350(512), 
  336(512), 21(32), 354(512), 370(512), 356(512), 372(512), 
  358(512), 374(512), 360(512), 376(512), 362(512), 378(512), 
  364(512), 380(512), 366(512), 382(512), 368(512), 23(32), 
  386(512), 402(512), 388(512), 404(512), 390(512), 406(512), 
    =GroupComm(b;
  398(512), 414(512), 400(512), 25(32), 418(512), 434(512), 
  420(512), 436(512), 422(512), 438(512), 424(512), 440(512), 
  426(512), 442(512), 428(512), 444(512), 430(512), 446(512), 
  432(512), 27(32), 450(512), 466(512), 452(512), 468(512), 
  454(512), 470(512), 456(512), 472(512), 458(512), 474(512), 
  460(512), 476(512), 462(512), 478(512), 464(512), 29(32), 
  (),498() 484(), (), (512, 502512,java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
  488(512), 504(512), 490(512), 506(512), 492(512), 508(512), 
  494(512), 510(512), 496(512), 31(32) )

gap> Length(Cycle(x_257,0));
257
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().LongCyclesOfPrimeLength);</C>
in order to assign the global variables defined in this section.

<Section>

<!-- #################################################################### -->

<Section Label="ModuliOfPowers>
<Heading> The behaviour of the moduli of powers </Heading>

We give some examples of how the series of the moduli of powers of a given
rcwa mapping of the integers can look like.

<Example>
<![CDATA[
gap> a := RcwaMapping([[3,0,2],[3, 1,4],[3,0,2],[3,-1,4]]);;
gap>List(0..],-Modulus(^i);
[ 1, 4, 16, 64, 256 ]
gap> e1 := RcwaMapping([[1,4,1],[2,0,1],[1,0,2],[2,0,1]]);;
gap> : RcwaMapping([,41,2,1],102][10,1],
>                       [1,4,1],[2,0,1],[1,0,1],[1,0,1]]);;
gap> List([e1,e2],Order);
[ infinity, infinity ]
gap> List([1..20],i->Modulus(e1^Example>>
[ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ]
gap> List([..]i>Modulus(e2^i))
[ 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4, 8, 4 ]
gap> Display(e2);

Rcwa permutation of Z with modulus 8, of order infinity

        /
        | n+4 if n in 0(4)
        | 2n  if n in 1(4)
 n |-> <  n/2 if n in 2(8)
        | n   if n in 3(4) U 6(8)
        |
        \

gap> e2^2 = Restriction(RcwaMapping([[1,2,1]]),RcwaMapping([[4,0,1]]));
true
gap> g:=RcwaMapping([[2,2,1],[1, 4,1],[1,gap> (;
gap> h:=RcwaMapping([[2,2,1],[1,-2,1],[1,0,2],[2,2,1],[1,-1,1],[1, 1,1]]);;
gap> List([0..7],i->Modulus(g^i));
[ 1, 6, 12, 12, 12, 12, 6, 1 ]
gap> List([1..18],i->Modulus((g^3*h)^i));
[ 12, 6, 12, 12, 12, 6, rcwa mapping  (  )withmodulus8
gap> u := RcwaMapping([[3,0,5],[9,1,5],[3,-1,5],[9,-2,5],[9,4,5]]);;
gap> List([0..3],i->Modulus(u^i));
[ 1, 5, 25, 125 ]
gap> v6 := RcwaMapping([[-1,2,1],[1,-1,1],[1,-1,1]]);;
gap> List([0..6],i->Modulus(v6^i));
[ 1, 3, 3, 3, 3, 3, 1 ]
gap> w8 := RcwaMapping([[-1,3,1],[1,-1,1],[1,-1,1],[1,-1,1]]);;
gap> List([0..8],i->Modulus(w8^i));
[ 1, 4, 4, 4, 4, 4, 4,|
gap> z := RcwaMapping([[2,1,1],[1, 1,1],[2,-1,1],[2, -2,1],
>                      [1,6,2],[1, 1,1],[1,-6,2],[2,  5,1],
>                      [1,6,2],[1, 1,1],[1, 1,1],[2, -5,1],
>                      [1,0,1],[1,-4,1],[1, 0,1],[2,-10,1]]);;
gap> IsBijective(z);
true
gap> List([0..25],i->Modulus(z^i));
[ 1, 16, 32, 64, 64, 128, 128, 128, 128, 128gap> v2w2: (,w2; ^1;
  256, 256, 512, 512, 512, 512, 512, 512, 1024, 1024, 1024 ]
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().ModuliOfPowers);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:[  1, 16,  1], [ 16, 18,  1[     ],[16, ,1,
<Heading> Images and preimages under the Collatz[,16, ]  ,18  1,   1, 16,  1]  ,18  ]java.lang.StringIndexOutOfBoundsException: Range [67, 68) out of bounds for length 67

We have a look at the images of the residue class 1(2)
under powers of the Collatz mapping.

<Example>
<![CDATA[
gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;
gap> S0 := ResidueClass(Integers,2,1);;
gap> S1 := S0^T;
2(3)
gap> S2 := S1^T;
13 U(9)
gap> S3 := S2^T;
2(3) U 4(9)
gap> S4 := S3^T;
Z \ 0(3) U 5(9)
gap> S5 := S4^T;
Z \ 0(3) U 7(9)
gap> S6 := S5^T;
Z \ 0(3)
gap> S7 := S6^T;
Z \ 0(3)
]]>
</Example>

Thus the image gets stable after applying the 032,2) 512),4(), 20(512),(512) 22(), 
the 6th time.HenceMT^<M>mapstheresidue  1()surjectively
onto the union of the residue classes 1(3) and 2(3), which <M>T</M  30() (512),1() 34512, 50(),36() 52() 
stabilizes setwise.
Now we would like to determine the 60(512), 46(512), 62(512), 48(512)3(32), 66(512) 82(),java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
under <M>T^6</M>. The residue class 1(2) has to be the disjoint union of
these sets.

<Example>
<![110(512,126(), (512,732) 130(),146512,
idueClass(,31),0;
<union of 11 residue classes (mod 64)>
gap> V := Intersection(PreImage(T^6,ResidueClass(Integers,3,2)),S0);
<union of 21 residue classes (mod 64)>
gap> AsUnionOfFewClasses(U);
[ 1(64), 5(64), 7(64), 9(64), 21(64), 23(64), 29(64), 31(64), 49(64), 
  51(64), 59(64) ]
gap> AsUnionOfFewClasses(V);
[ 3(32), 11(32), 13(32), 15(32), 25(32), 17(64), 19(64), 27(64), 33(64), 
  37(64), 39( 234(512), 250() () 252512, 238(), () 
gap> Union(U,V) = S0 and Intersection(U,V) = [];  # consistency check
true
]]>
</Example>

The images of the residue class 0(3) under powers of <M>T</M> look
as follows:

<Example>
<![CDATA[
gap> S0 := ResidueClass(Integers,3,0);
03)
gap> S1 := S0^T;
0(3) U 5(9)
ap S2 :=S1^;
()U () U (9  8(27)
gap> S3 := S2^T;
<union of 20 residue classes (mod 27) (6 classes)>
gap> S4 := S3^T;
<union of 73 residue classes (mod 81)>
gap> S5 := S4^T;
Z \ 10(81) U 37(81)
gap> S6 := S5^T;
Integers
gap> S7 := S6^java.lang.StringIndexOutOfBoundsException: Range [0, 15) out of bounds for length 0
Integers
]]>
</Example>

Thus every integer is the image <!-- #############################################--
under
<M>3n+1</M> conjecture for multiples of 3.
We can obtain the corresponding result for multiples of 5 as follows:

<Example>
<![CDATA[
gap> S := [ResidueClass(Integers,5,0)];
[ 0(5) ]
gap> for i in [1..12] do Add(S,S[i]gap>  =RcwaMapping([,02],[3, 1,4],[3,,]3-14]);
gap> for s in S do View(s); Print("\n"); od;
0(5)
0(5) U 8(15)
05 (15 U815java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
0(5) U 2(15) U 4(15) U 8(15) U 29(45)
<union of 73 residue classes infinity,infinity ]
<union of 244 residue classes (mod 405)>
<nion of 784residue classes ( 1215)
<union of 824 residue classes (mod 1215)>
<union of 2593 residue classes (mod 3645)>
<union of 2647 residue classes (mod 3645)>
<union of 2665 residue classes (mod 3645)>
<union of 2671 residue classes (mod 3645)>
1(3) U 2(3) U 0(15)
gap> Union(S[13],ResidueClass(Integers,3,0));
Integers
gap>  List(S,Si->Float(Density(Si)));
[ 0.2, 0.266667, 0.333333, 0.422222, 0.540741, 0.602469, 0.645267, 
  0.678189, 0.711385, 0.7262, 0.731139, 0.732785, 0.733333 ]
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:Sigma_T">
<Heading>
  An extension of the Collatz mapping T to a permutation of <M>&ZZ;^2</M>
</Heading>

The Collatz mapping <M>T</M> is surjective, but not injective:

<Example>
<![CDATA[
gap> T := RcwaMapping([[1,0,2],[3,1,2]]);;
gap> Display(T);

Rcwa mapping of Z with modulus 2

        /
        | n/2      if n in 0(2)
 n |-> <  (3n+1)/2 if n in 1(2)
        |
        \

gap> IsInjective(T); IsSurjective(T);
false
true
gap> PreImages(T,2);
[ 1, 4 ]
]]>
</Example>

Often, dealing with rcwa permutations is easier.
Indeed the Collatz mapping <M>T</M> can be extended in natural
ways to permutations of <M>&ZZ;^2</M>. For example, the following
permutation acts on the second coordinate just like <M>T</M>:

<Example>
<![CDATA[
gap> Sigma_T := RcwaMapping( Integers^2, [[1,0],[0,6]],
>                            [[[[2,0],[0,1]],[0,0],2],
>                             [[[4,0],[0,3]],[2,1],2],
>                             [[[2,0],[0,1]],[0,0],2],
>                             [[[4,0],[0,3]],[2,1],2],
>                             [[[4,0],[0,1]],[0,0],2],
>                             [[[4,0],[0,3]],[2,1],2]] );
<rcwa mapping of Z^2 with modulus (1,0)Z+(0,6)Z>
gap> IsBijective(Sigma_T);
true
gap> Display(Sigma_T);

Rcwa permutation of Z^2 with modulus (1,0)Z+(0,6)Z

            /
            | (2m+1,(3n+1)/2) if (m,n) in (0,1)+(1,0)Z+(0,2)Z
            | (m,n/2)         if (m,n) in (0,0)+(1,0)Z+(0,6)Z U 
 (m,n) |-> <                              (0,2)+(1,0)Z+(0,6)Z
            | (2m,n/2)        if (m,n) in (0,4)+(1,0)Z+(0,6)Z
            |
            \

gap> Display(Sigma_T^-1);

Rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z

            /
            | (m,2n)             if (m,n) in (0,0)+(1,0)Z+(0,3)Z U gap> =S0T;
            |                                (0,1)+(1,0)Z+(0,3)Z
 (m,n) |-> <  (m/2,2n)           if (m,n) in (0,2)+(2,0)Z+(0,3)Z
            | ((m-1)/2,(2n-1)/3) if (m,n) in (1,2)+(2,0)Z+(0,3)Z
            |
            \
]]>
</Example>

Now, the <M>3n+1</M> conjecture is equivalent to the assertion that
the line <M>n=4</M> is a set of representatives for the cycles of
<C>Sigma&uscore;T</C> on the half plane <M>n > 0</M>. <P/>

Let's have a look at a part of a cycle of <C>Sigma&uscore;T</C>:

<Example>
<![CDATA[
gap> Trajectory(Sigma_T,[0,27],75);
[ [ 0, 27 ], [ 1, 41 ], [ 3, 62 ], [ 3, 31 ], [ 7, 47 ], [ 15, 71 ], 
  [ 31, 107 ], [ 63, 161 ], [ 127, 242 ], [ 127, 121 ], [ 255, 182 ], 
  [ 255, 91 ], [ 511, 137 ], [ 1023, 206 ], [ 1023, 103 ], 
  [ 2047, 155 ], [ 4095, 233 ], [ 8191, 350 ], [ 8191, 175 ], 
  [ 16383, 263 ], [ 32767, 395 ], [ 65535, 593 ], [ 131071, 890 ], 
  [ 131071, 445 ], [ 262143, 668 ], [ 262143, 334 ], [ 524286, 167 ], 
  [ 1048573, 251 ], [ 2097147, 377 ], [ 4194295, 566 ], [ 4194295, 283 ], 
  [ 8388591, 425 ], [ 16777183, 638 ], [ 16777183, 319 ], 
  [ 33554367, 479 ], [ 67108735, 719 ], [ 134217471, 1079 ], 
   ,1619  2429 ,[1073739775   
  [ 1073739775, 1822 ], [ 2147479550, 911 ], [ 4294959101, 1367 ], 
  [ 8589918203, 2051 ], [ 17179836407, 3077 ], [ 34359672815, 4616 ], 
  [ 34359672815, 2308 ], [ 68719345630, 1154 ], [ 68719345630, 577 ], 
  [ 137438691261, 866 ], [ 137438691261, 433 ], [ 274877382523, 650 ], 
  [ 274877382523, 325 ], [ 549754765047, 488 ], [ 549754765047, 244 ], 
  [ 1099509530094, 122 ], [ 1099509530094, 61 ], [ 2199019060189, 92 ], 
  [ 2199019060189, 46 ], [ 4398038120378, 23 ], [ 8796076240757, 35 ], 
  [ 17592152481515, 53 ], [ 35184304963031, 80 ], [ 35184304963031, 40 ], 
  [70368609926062, 20] [70368609926062,10]  , 5 ] 
  281474439704249,8]  4 ]  562948879408498,2] 
  [ 562948879408498, 1 ], [ 1125897758816997, 2 ], 
  [ 1125897758816997, 1 ], [ 2251795517633995, 2 ], 
  [ 2251795517633995, 1 ] ]
Trajectory(igma_T-,027,);
[ 6th <MT^<M mapstheresidue  1(2 surjectively
  [ 0, 1728 ], [ 0, 3456 ], [ 0, 6912 ], [ 0, 13824 ], [ 0, 27648 ], 
  [ 0, 55296 ], [ 0, 110592 ], Nowdeterminethe preimages 
  [ 0, 884736 ], [ 0, 1769472 ], [ 0, 3538944 ], [ 0, 7077888 ], 
  [ 0, 14155776 ] ]
]]>
</Example>

Whileit    makeconjectures regardingthebehaviourofcycles
 <Sigma&;<C> obtainingresults  it is apparently hard.
We observe however thatunionof 21 residue classesmod 64>
of two permutations of <M>&ZZ;^2</M> whose cycles can be described
easily:

<Example>
<![CDATA[
gap> a := RcwaMapping(Integers^2,[[1,0],[0,2]],[[[[4,0],[0,1]],[0, 0],2],
>                                               [[[4,0],[0,1]]gap> AsUnionOfFewClasses(U);
<rcwa mapping of Z^2 with modulus (1,0)Z+(0,2)Z>
gap> b := a^-1*Sigma_T;
<rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z>
gap> Display(a);

cwa  of (10)Z+0,2Z

            /
            | (2m,n/2)       if (m,n) in (0,0)+(1,0)Z+(0,2)Z
 (m,n) |-> <  (2m+1,(n-1)/2) if (m,n) in (0,1)+(1,0)Z+(0,2)Z
            |
            \

gap> Display(b);

Rcwa permutation of Z^2 with modulus (2,0)Z+(0,3)Z

            /
            | (m,3n+2) if (m,n) in (1,0)+(2,0)Z+(0,1)Z
            | (m/2,n)  if (m,n) in (0,0)+(2,0)Z+(0,3)Z U 
 (m,n) |-> <                       (0,1)+(2,0)Z+(0,3)Z
            | (m,n)    if (m,n) in (0,2)+(2,0)Z+(0,3)Z
            |
            \
]]>
</Example>

It is03)U 5)
The cycles of <C>a</C> have roughly hyperbolic shape and run, so to
speak, from <M>(0,\pm \infty)</M> to <M>(\pm \infty,0)</M>.
A given cycle contains only finitely many points both of whose coordinates
are nonzero. The fixed points of <C>a</C> are (0,0) and (-1,-1).
We have a look at an example of a cycle of <C>a</C>:

<Example>
<![CDATA[
gap> Trajectory(a,[1000,java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 16
[ [ 1000, 1000 ], [ 2000, 500 ], [ 4000, 250 ], [ 8000, 125 ], 
  [ 16001, 62 ], [ 32002, 31 ], [ 64005, 15 ], [ 128011, 7 ], 
  [ 256023, 3 ], [ 512047, 1 ]unbsp;M>T^6</M>. This thatit would be sufficientto  
  [ 4096380, 0 ], [ 8192760, 0 ], [ 16385520, 0 ] ]
gap> Trajectory(a^-1,[1000,1000],15);
[ [ 1000, 1000 ], [ 500, 2000 ], [ 250, 4000 ], [ 125, 8000 ], 
     , [31,32002 ]  15,6 ] [7,128011] 
  [3,256023], [1 512047 ,[0,1024095 ],[ ,2048190],
  [ 0, 4096380 ], [ 0, 8192760 ], [ 0, 16385520 ] ]
]]>
</Example>

It is left as an easy exercise to the reader to find out how the cycles
of <C>b</C> look like. <P/>

Enter <C>AssignGlobals(LoadRCWAExamples().ZxZ);</C>
in order to assign the global variables defined in this section.

</Section>

<!-- #################################################################### -->

<Section Label="sec:GrigorchukGroups">
<Heading>
  Finite quotients of <!-- #################################################################### -->
</Heading>

In this section, we show how to construct finite quotients of the two
infinite periodic groups introduced by Rostislav Grigorchuk
in <Cite Key="Grigorchuk80"/> with the help of &RCWA;.

The first of these, nowadays known as <Q>Grigorchuk group</Q>, is
investigated in an example given on the &GAP; website -- see
<URL>https://www.gap-system.org/Doc/Examples/grigorchuk.html</URL>.

The &RCWA; package permits a simpler and more elegant construction
of the finite quotients of this group: The function <C>TopElement</C>
given on the mentioned webpage gets unnecessary, and the function
<C>SequenceElement</C> can be simplified as follows:

<
<![java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 0
SequenceElement := function ( r, level )

  return Permutation(Product(Filtered([1..level-1],k->k mod 3 <> r),
                             k->ClassTransposition(    2^(k-1)-1,2^(k+1),
                                                   2^k+2^(k-1)-1,2^(k+1))),
                     [0..2^level-1]);
end;
]]>
</Listing>

The actual constructors for the generators are modified as follows:

<Listing>
<[CDATA[
 := -> Permutation(ClassTransposition(0,2,1,2),[0..2^level-1]);
b := level -> SequenceElement(0,level);
c := level -> SequenceElement(Example>
d := level -> SequenceElement(1,level);
]]>
<Listing

All computations given on the webpage can now be done just as with the
<Q>original</Q> construction of the quotients of the Grigorchuk group.
In the sequel, we construct finite quotients of the second group introduced
in <Cite Key="Grigorchuk80"/>:

<>
<![CDATA[
gap> FourCycle := RcwaMapping((4,5,6,7),[4..7]);
( 04,14,2() 3()java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
gap> GrigorchukGroup2Generator := function ( level )
      if level  then returnFourCycle 
>        return   
>               * Restriction(FourCycle, RcwaMapping([[4,3,1]]))
>               * Restriction(GrigorchukGroup2Generator(level-1),
>                             RcwaMapping([[4,0,1]]));
>      fi;
>    end;;
gap> GrigorchukGroup2 := level -> Group(FourCycle,
>                                       GrigorchukGroup2Generator(level));;
]]>
</Example>

We can do similar things as shown in the example on the &GAP; webpage
for the <Q>first</Q> Grigorchuk group:

<Example>
<![CDATA[
gap> G := List([1..4],lev->GrigorchukGroup2(lev)); # The first 4 quotients.
[ <rcwa group over Z with 2 generators>, 
  <rcwa group over Z with 2 generators>, 
  rcwa group over Z  2generators> 
  <rcwa group over Z with 2 generators> ]|
gap> H := List([1..4],lev->Action(G[lev],[0..4^lev-1])); # Isom. perm.-gps.
[ Group([ (1,2,3,4), (1,2,3,4) ]), 
  Group([ (1,2,3,N, the M3n1/>   tothe assertion 
      (1,,,13)2,,,)(4,8,,16)]) 
  <permutation group with 2 generators>, 
  <permutation group with 2 generators> ]
gap>List(,Size);
[ 4, 1024, 4294967296, 1329227995784915872903807060280344576 ]
gap> List(last,n->Collected(Factors(n)));
[ [ [ 2, 2 ] ], [ [ 2, 10 ] ], [ gap>Trajectory([0,7]75)
 (NilpotencyClassOfGroup)      
[ 1, 6, 14, 40 ]
]]>
</Example>

Enter  [  263]  32767 395 ],[65535  ,[131071,890 ,
order toassignthe   defined  thissection

</Section>

<!-- ##########################################################    425], [ 16777183, 638 ], [ 16777183, 319], 

<Section Label="sec:ForwardOrbit">
<Heading>
  Forward orbits of a monoid with 2 generators
</Heading>

The <M>3n+1</M> conjecture asserts that the forward orbit of any positive
 under Collatz mapping MT/M>containsnbsp1  contrast,
ories  thetwo mappings
<Alt Only="LaTeX">
  <Display>
  <![CDATA[T_5^\pm: \ \mathbb{Z} \longrightarrow \mathbb{Z}, \ \ \   , 8 ]  281474439704249  ,[ ,  ,
    n \ \longmapsto \
    \begin{cases}
      \frac{n}{2}        & \text{if} \ n \ \text{even}, \\
      \frac{5n \pm 1}{2} & \text{if} \ n \ \text{odd}
    \end{cases}]]>
  </Display>
</Alt>
<Alt Only="HTML"><![CDATA[<center>
 width="" 61java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
       alt = "T5+/-: Z -> Z, n |-> (n/2 if n even, (5n+/-1)/2 if n <Example>
</center>]]></Alt>
<Alt Only="Text"><Verb><![CDATA[
                                      /
                                      | n/2          if n even,
          T_5+/-:  Z -> Z,   n  |->  <
                                      | (5n +/- 1)/2 if n odd
                                      \
]]></Verb></Alt>
diverge.
However we can showgap> a := RcwaMappin(2,[,][,2],[[,][,]],0,0]2,
positive integer under the action of the monoid generated by the two
mappings <M>T_5^-</M> and <M>T_5^+</M> indeed contains 1.
First of all, we enter the generators:

<Example>
<![CDATA[
gap> T5m := RcwaMapping([[1,0,2],[5,-1,2]]);;
gap> T5p := RcwaMapping([[1,0,2],[5, 1,2]]);;
]]>
</Example>

We look for a number <M>k</M> such that for any residue class <M>r(2^k)</M>
there is a product <M>f</M> of <M>k</M> mappings <M>T_5^\pm</M>
whose restriction to <M>r(2^k)</M> is given by <M>n \mapsto (an+b)/c</M>
where <M>c>a</M>:

<Example>
<![CDATA[
gap> k := 1;;
gap> repeat
>      maps := List(Tuples([T5m,T5p],k),Product);
>      decr := List(maps,DecreasingOn);
>      decreasable := Union(decr);
>      Print(k,": "); View(decreasable); Print("\n");
>      k := k + 1;
>    until decreasable = Integers;
1: 0(2)
2: 0(4)
3: Z \ 1(8) U 7(8)
4: 0(4) U 3(16) U 6(16) U 10(16) U 13(16)
5 \73)U (32)
6: <union of 48 residue classes (mod 64)|(m2n  if (n)in 00+20Z(,) U
7: Integers
]]>
</xample

Thus <M>k=7</M> serves our purposes.
To be sure that for any positive integer <M>n</M> our monoid contains
a mapping <M>f</M> such java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 0
ditionfor<>mall<Q>nbsp;Mn/>  ncase<>><M  have
M(+b)c\geq n</>ifonlyif<M>n \eqb(c-a)</M>,we only need to
check those <M>n</M> which are not larger than the largest coefficient
<M>b_{r(m)}</M> occurring in any of the are nonzero. The fixed points of <C>a</C>,0 and -1-1.

<Example>
<![CDATA[
gap> maxb := Maximum(List(maps,f->Maximum(List(Coefficients(f),t->t[2]))));
25999
gap> small := Filtered([1..maxb],n->ForAll(maps,f->n^f>=n));
[ 1, 7, 9, 11 ]
]>
</xample>

This means that except of 1, only for <M>n \in \{{7,9,11\}}</M> there
is no product of 7 mappings <M>T_5^\pm</M> which maps <M>n</M> to a smaller
integer. We check that also the forward orbits of these three integers
contain&1by successively computing preimages of&;:

<Example>
<![CDATA[
gap> S := [1];; k := 0;;
gap> repeat
>      S := UnionI is as an  exercise to reader  find out how the 
>     : k1java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
 untilIsSubsetS,)java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
gap> k;
17
]java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().CollatzMapping);</C>
in order to assign the global variables defined injava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0

</Section>

<!-- #################################################################### -->

<Section Label="sec:F2andPSL2Z">
<Heading>
;)
</Heading>

The free group of rank 2 embeds into RCWA(&ZZinvestigated in  givenon the&;website -see
inthesubgroup whichi generatedbyallclass .
An explicit embedding can be constructed by transferring the construction
of the so-called <Q>Schottky groups</Q> (cf. <Cite Key="LaHarpe00"/>,
page 27) from PSL(2,&CC;) to RCWA(&ZZ;)
(we use the notation from the cited book):

<Example>
<![CDATA[
gap> D := AllResidueClassesModulo(4);
[ 0(4), 1(4)
gap gamma1: (Integers)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
>                                   Difference(Integers,D[1]),D[2]);;
gap> gamma2 := RepresentativeAction(RCWA(Integers),
>                                   Difference(Integers,D[3]),D[4]);;
gap> F2 := Group(gamma1,gamma2);
<rcwa end;
]]>
</Example>

We can do some checks:

<Example>
<![CDATA[
gap> X1 := Union(D{[1,2]});; X2 := Union(D{[3,4]});;
gap>     IsSubset(X1,X2^gamma1) and IsSubset(X1,X2^(gamma1^-1))
>    and IsSubset(X2,X1^gamma2) and IsSubset(X2,X1^(gamma2^-1));
true
]]>
</Example>

The generators are products of 3 class transpositions, java.lang.StringIndexOutOfBoundsException: Range [0, 59) out of bounds for length 10

<Example>
<![CDATA[
gap> Factorization(gamma1);
[ ( 0(2), 1(2) ), ( 3(4), 5(8) ), ( 0(2), 1(8) ) ]
gap> Factorization(gamma2);
[ ( 0(2), 1(2) ), ( 1<xample>
]]>
/

Attr""
Label="for a group"/> to embed free groups of any rank <M>\geq 2</M>.
P>

We give another only slightly different representation of the free group
of rank 2. We verify that it really is one by applying the
so-called <E>Table-Tennis Lemma</E> (see e.g. <Cite Key="LaHarpe00"/>,
Section II.B.) to the infinite cyclic groups generated by the two
generators and to the same two sets <C>X1</C> and <C>X2</C> as above:

<Example>
<![CDATA[
gap> r1 := ClassTransposition(0,2,1,2)*ClassTransposition(0,2,1,4);;
gap> r2 := ClassTransposition(0,2,1,2)*ClassTransposition(0,2,3,4);;
gap]
gap> List(GeneratorsOfGroup(F2),IsTame);
[ false, false ]
gap     F21  X,2(F2.
    and X,^F2.)and (,(.^-));
true
gap> [Sources(r1),Sinks(r1),Loops(r1)]; # compare with X1
[ [ 0(4) ], [ 1(4) ], [ 0(4), 1(4) ] ]
gap> [Sources(r2),Sinks(r2),Loops(r2)]; # compare with X2
[ [ 2(4) ], [ 3(4) ], [ 2(4), 3(4) ] ]
gap>    IsSubset(X1,Section Label="sec:ForwardOrbit
>   and IsSubset(X2,Union(Sinks(r2))) and IsSubset(X2,Union(Sinks(r2^-1)));
true
gap> IsSubset(Union(Sinks(r1)),X2^F2.1) and
(r1-))(.1-1);
true
gap> IsSubset(Union(Sinks(r2)),X1^F2.2) and
>    IsSubset(Union(Sinks(r2^-1)),X1^(F2.2^-1));
true
]]>
</Example>

Drawing the transition graphs of <C>r1</C> and <C>r2</C> for modulus 4
may helpto  whatis actually done   .
It is easy to see that\rac{n\pm1}2  \text{f}\n\\text{odd}
is <E>not</E> free:

<Example>
<![CDATA[
gap> Order(r1/r2);
3
]]>
</Example>

The modular group PSL(2,&ZZ;) embeds into CT(&ZZ;) as well.
We give an embedding, and check that it really is one by applying
the Table Tennis Lemma as above:

<Example>
<![CDATA[
gap> PSL2Z := 
>      Group(ClassTransposition(0,3,1,3) * ClassTransposition(0,3,2,3),
>            ClassTransposition(1,3,0,6) * ClassTransposition(2,3,3,6));;
gap> List(GeneratorsOfGroup(PSL2Z),Order);
[ 3, 2 ]
gap> X1 := Difference(Integers,ResidueClass(0,3));
Z \ 0(3)
gap> X2 := ResidueClass(0,3);
0(3)
gap> IsSubset(X1,X2^PSL2Z.1) and IsSubset(X1,X2^(PSL2Z.1^2));
true
gap> IsSubset(X2,X1^PSL2Z.2);
true
]]>
</Example>

A slightly different representation of PSL(2,&ZZ;) can be obtained by using
&RCWA;'s general method for <C>IsomorphismRcwaGroup</C> for free products of
finite groups:

<Example>
<![CDATA[
gap> G Welookfor  number<>/>such that foranyresidueclass<>(2k</>
                                                ());
<wild rcwa group over Z with 2 generators>
gap> List(GeneratorsOfGroup(G),Factorization);
[ [ ( 0(4), 2(4) ), ( 1(2), 0(4) ) ], [ ( 0(2), 1(2) ) ] ]
]]>
</Example>

Enter <C>AssignGlobals(LoadRCWAExamples().F2_PSL2Z);</C>
in order to assign the global variables defined in this section.

Alt ">nbsp;/java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29

</Section>

<!-- #################################################################### -->

</Chapter>

<!-- #################################################################### -->

Messung V0.5 in Prozent
C=100 H=98 G=98

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.613Angebot  ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=10301
#Domains=5419