  
  [1X6 [33X[0;0YDatabases of Residue-Class-Wise Affine Groups and -Mappings[133X[101X
  
  [33X[0;0YThe  [5XRCWA[105X  package  contains  a  number of databases of rcwa groups and rcwa
  mappings.  They  can be loaded into a [5XGAP[105X session by the functions described
  in this chapter.[133X
  
  
  [1X6.1 [33X[0;0YThe collection of examples[133X[101X
  
  [1X6.1-1 LoadRCWAExamples[101X
  
  [29X[2XLoadRCWAExamples[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            collection  of  examples  of rcwa groups and -mappings loaded from
            the file [11Xpkg/rcwa/examples/examples.g[111X got bound.[133X
  
  [33X[0;0YThe  components  of  the  examples  record  are  records  which  contain the
  individual  groups  and  mappings.  A  detailed  description  of some of the
  examples can be found in Chapter [14X7[114X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadRCWAExamples();[127X[104X
    [4X[28X"RCWAExamples"                                [128X[104X
    [4X[25Xgap>[125X [27XSet(RecNames(RCWAExamples));[127X[104X
    [4X[28X[ "AbelianGroupOverPolynomialRing", "Basics", "CT3Z", "CTPZ", [128X[104X
    [4X[28X  "CheckingForSolvability", "ClassSwitches", [128X[104X
    [4X[28X  "ClassTranspositionProducts", "ClassTranspositionsAsCommutators", [128X[104X
    [4X[28X  "CollatzFactorizationOld", "CollatzMapping", "CollatzlikePerms", [128X[104X
    [4X[28X  "CoprimeMultDiv", "F2_PSL2Z", "Farkas", "FiniteQuotients", [128X[104X
    [4X[28X  "FiniteVsDenseCycles", "GF2xFiniteCycles", "GrigorchukQuotients", [128X[104X
    [4X[28X  "Hexagon", "HicksMullenYucasZavislak", "HigmanThompson", [128X[104X
    [4X[28X  "LongCyclesOfPrimeLength", "MatthewsLeigh", [128X[104X
    [4X[28X  "MaybeInfinitelyPresentedGroup", "ModuliOfPowers", [128X[104X
    [4X[28X  "OddNumberOfGens_FiniteOrder", "Semilocals", [128X[104X
    [4X[28X  "SlowlyContractingMappings", "Syl3_S9", "SymmetrizingCollatzTree", [128X[104X
    [4X[28X  "TameGroupByCommsOfWildPerms", "Venturini", "ZxZ" ][128X[104X
    [4X[25Xgap>[125X [27XAssignGlobals(RCWAExamples.CollatzMapping);[127X[104X
    [4X[28XThe following global variables have been assigned:[128X[104X
    [4X[28X[ "T", "T5", "T5m", "T5p", "Tm", "Tp" ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.2 [33X[0;0YDatabases of rcwa groups[133X[101X
  
  [1X6.2-1 LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions[101X
  
  [29X[2XLoadDatabaseOfGroupsGeneratedBy3ClassTranspositions[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            database  of  all groups generated by 3 class transpositions which
            interchange residue classes with moduli [22X≤ 6[122X got bound.[133X
  
  [33X[0;0YThe  database  record  has at least the following components (the index [10Xi[110X is
  always  an  integer  in  the  range  [10X[1..52394][110X, and the term [21Xindices[121X always
  refers to list indices in that range):[133X
  
  [8X[10Xcts[110X[108X
        [33X[0;6YThe  list  of  all  69  class transpositions which interchange residue
        classes with moduli [22X≤ 6[122X.[133X
  
  [8X[10Xgrps[110X[108X
        [33X[0;6YThe list of the 52394 groups -- 21948 finite and 30446 infinite ones.[133X
  
  [8X[10Xsizes[110X[108X
        [33X[0;6YThe list of group orders -- it is [10XSize(grps[i]) = sizes[i][110X.[133X
  
  [8X[10Xmods[110X[108X
        [33X[0;6YThe list of moduli of the groups -- it is [10XMod(grps[i]) = mods[i][110X.[133X
  
  [8X[10Xequalityclasses[110X[108X
        [33X[0;6YA  list  of  lists of indices [10Xi[110X of groups which are known to be equal,
        i.e. if [10Xi[110X and [10Xj[110X lie in the same list, then [10Xgrps[i] = grps[j][110X.[133X
  
  [8X[10Xsamegroups[110X[108X
        [33X[0;6YA  list  of  lists, where [10Xsamegroups[i][110X is a list of indices of groups
        which are known to be equal to [10Xgrps[i][110X.[133X
  
  [8X[10Xconjugacyclasses[110X[108X
        [33X[0;6YA  list  of lists of indices of groups which are known to be conjugate
        in RCWA(ℤ).[133X
  
  [8X[10Xsubgroups[110X[108X
        [33X[0;6YA  list  of  lists,  where [10Xsubgroups[i][110X is a list of indices of groups
        which are known to be proper subgroups of [10Xgrps[i][110X.[133X
  
  [8X[10Xsupergroups[110X[108X
        [33X[0;6YA  list  of lists, where [10Xsupergroups[i][110X is a list of indices of groups
        which are known to be proper supergroups of [10Xgrps[i][110X.[133X
  
  [8X[10Xchains[110X[108X
        [33X[0;6YA list of lists, where each list contains the indices of the groups in
        a descending chain of subgroups.[133X
  
  [8X[10Xrespectedpartitions[110X[108X
        [33X[0;6YThe  list of shortest respected partitions. If [10Xgrps[i][110X is finite, then
        [10Xrespectedpartitions[i][110X  is  a list of pairs (residue, modulus) for the
        residue  classes  in  the  shortest  respected  partition  [10Xgrps[i][110X. If
        [10Xgrps[i][110X is infinite, then [10Xrespectedpartitions[i] = fail[110X.[133X
  
  [8X[10Xpartitionlengths[110X[108X
        [33X[0;6YThe  list  of  lengths  of shortest respected partitions. If the group
        [10Xgrps[i][110X  is  finite,  then  [10Xpartitionlengths[i][110X  is  the length of the
        shortest  respected partition of [10Xgrps[i][110X. If [10Xgrps[i][110X is infinite, then
        [10Xpartitionlengths[i] = 0[110X.[133X
  
  [8X[10Xdegrees[110X[108X
        [33X[0;6YThe  list of permutation degrees, i.e. numbers of moved points, in the
        action of the finite groups on their shortest respected partitions. If
        there  is  no  respected  partition, i.e. if [10Xgrps[i][110X is infinite, then
        [10Xdegrees[i] = 0[110X.[133X
  
  [8X[10Xorbitlengths[110X[108X
        [33X[0;6YThe  list of lists of orbit lengths in the action of the finite groups
        on  their  shortest respected partitions. If [10Xgrps[i][110X is infinite, then
        [10Xorbitlengths[i] = fail[110X.[133X
  
  [8X[10Xpermgroupgens[110X[108X
        [33X[0;6YThe  list  of lists of generators of the isomorphic permutation groups
        induced  by  the finite groups on their shortest respected partitions.
        If [10Xgrps[i][110X is infinite, then [10Xpermgroupgens[i] = fail[110X.[133X
  
  [8X[10Xstabilize_digitsum_base2_mod2[110X[108X
        [33X[0;6YThe  list of indices of groups which stabilize the digit sum in base 2
        modulo 2.[133X
  
  [8X[10Xstabilize_digitsum_base2_mod3[110X[108X
        [33X[0;6YThe  list of indices of groups which stabilize the digit sum in base 2
        modulo 3.[133X
  
  [8X[10Xstabilize_digitsum_base3_mod2[110X[108X
        [33X[0;6YThe  list of indices of groups which stabilize the digit sum in base 3
        modulo 2.[133X
  
  [8X[10Xfreeproductcandidates[110X[108X
        [33X[0;6YA  list  of  indices  of  groups  which  may be isomorphic to the free
        product of 3 copies of the cyclic group of order 2.[133X
  
  [8X[10Xfreeproductlikes[110X[108X
        [33X[0;6YA  list  of  indices  of  groups  which are not isomorphic to the free
        product  of  3  copies  of  the cyclic group of order 2, but where the
        shortest relation indicating this is relatively long.[133X
  
  [8X[10Xabc_torsion[110X[108X
        [33X[0;6YA  list  of  pairs  (index,  order  of  product of generators) for all
        infinite  groups  for  which  the product of the generators has finite
        order.[133X
  
  [8X[10Xcyclist[110X[108X
        [33X[0;6YA       list       described       in       the       comments      in
        [11Xrcwa/data/3ctsgroups6/spheresizecycles.g[111X.[133X
  
  [8X[10Xfiniteorbits[110X[108X
        [33X[0;6YA       record       described       in      the      comments      in
        [11Xrcwa/data/3ctsgroups6/finite-orbits.g[111X.[133X
  
  [8X[10Xintransitivemodulo[110X[108X
        [33X[0;6YFor every modulus [10Xm[110X from 1 to 60, [10Xintransitivemodulo[m][110X is the list of
        indices   of   groups  none  of  whose  orbits  on  ℤ  has  nontrivial
        intersection with all residue classes modulo [10Xm[110X.[133X
  
  [8X[10Xtrsstatus[110X[108X
        [33X[0;6YA  list  of  strings  which  describe  what is known about whether the
        groups  [10Xgrps[i][110X  act transitively on the nonnegative integers in their
        support, or how the computation has failed.[133X
  
  [8X[10Xorbitgrowthtype[110X[108X
        [33X[0;6YA  list  of  integers and lists of integers which encode what has been
        observed  heuristically  on  the  growth  of  the orbits of the groups
        [10Xgrps[i][110X on ℤ.[133X
  
  [33X[0;0YNote  that  the  database  contains  an entry for every unordered 3-tuple of
  distinct  class transpositions in [10Xcts[110X, which means that it contains multiple
  copies  of equal groups -- cf. the components [10Xequalityclasses[110X and [10Xsamegroups[110X
  described above.[133X
  
  [33X[0;0YTo  mention  an  example,  the group [10Xgrps[44132][110X might be called the [21XCollatz
  group[121X  -- its action on the set of positive integers which are not multiples
  of 6 is transitive if and only if the Collatz conjecture holds.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadDatabaseOfGroupsGeneratedBy3ClassTranspositions();[127X[104X
    [4X[28X"3CTsGroups6"[128X[104X
    [4X[25Xgap>[125X [27XAssignGlobals(3CTsGroups6); # for convenience[127X[104X
    [4X[28XThe following global variables have been assigned:[128X[104X
    [4X[28X[ "3CTsGroupsWithGivenOrbit", "Id3CTsGroup", [128X[104X
    [4X[28X  "ProbablyFixesDigitSumsModulo", "ProbablyStabilizesDigitSumsModulo", [128X[104X
    [4X[28X  "TriangleTypes", "abc_torsion", "chains", "conjugacyclasses", "cts", [128X[104X
    [4X[28X  "cyclist", "degrees", "equalityclasses", "finiteorbits", [128X[104X
    [4X[28X  "freeproductcandidates", "freeproductlikes", "groups", "grps", [128X[104X
    [4X[28X  "intransitivemodulo", "mods", "orbitgrowthtype", "orbitlengths", [128X[104X
    [4X[28X  "partitionlengths", "permgroupgens", "respectedpartitions", [128X[104X
    [4X[28X  "samegroups", "shortresidueclassorbitlengths", "sizes", "sizespos", [128X[104X
    [4X[28X  "sizesset", "stabilize_digitsum_base2_mod2", [128X[104X
    [4X[28X  "stabilize_digitsum_base2_mod3", "stabilize_digitsum_base3_mod2", [128X[104X
    [4X[28X  "subgroups", "supergroups", "trsstatus", "trsstatuspos", [128X[104X
    [4X[28X  "trsstatusset" ][128X[104X
    [4X[25Xgap>[125X [27Xgrps[44132]; # the "3n+1 group"[127X[104X
    [4X[28X<(2(3),4(6)),(1(3),2(6)),(1(2),4(6))>[128X[104X
    [4X[25Xgap>[125X [27Xtrsstatus[44132]; # deciding this would solve the 3n+1 problem[127X[104X
    [4X[28X"exceeded memory bound"[128X[104X
    [4X[25Xgap>[125X [27XLength(Set(sizes));[127X[104X
    [4X[28X1066[128X[104X
    [4X[25Xgap>[125X [27XMaximum(Filtered(sizes,IsInt)); # order of largest finite group stored[127X[104X
    [4X[28X7165033589793852697531456980706732548435609645091822296777976465116824959\[128X[104X
    [4X[28X2135499174617837911754921014138184155204934961004073853323458315539461543\[128X[104X
    [4X[28X4480515260818409913846161473536000000000000000000000000000000000000000000\[128X[104X
    [4X[28X000000[128X[104X
    [4X[25Xgap>[125X [27XPrintFactorsInt(last);                                    [127X[104X
    [4X[28X2^200*3^103*5^48*7^28*11^16*13^13*17^8*19^6*23^6*29[128X[104X
    [4X[25Xgap>[125X [27XPositions(sizes,last);                               [127X[104X
    [4X[28X[ 33814, 36548 ][128X[104X
    [4X[25Xgap>[125X [27Xgrps{last};[127X[104X
    [4X[28X[ <(1(5),4(5)),(0(3),1(6)),(3(4),0(6))>, [128X[104X
    [4X[28X  <(0(5),3(5)),(2(3),4(6)),(0(4),5(6))> ][128X[104X
    [4X[25Xgap>[125X [27Xsamegroups[1];    [127X[104X
    [4X[28X[ 1, 2, 68 ][128X[104X
    [4X[25Xgap>[125X [27Xgrps[1] = grps[68];[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XMaximum(mods);[127X[104X
    [4X[28X77760[128X[104X
    [4X[25Xgap>[125X [27XPositions(mods,last);[127X[104X
    [4X[28X[ 26311, 26313, 26452, 26453, 26455, 26456, 26457, 26459, 26461, 26462, [128X[104X
    [4X[28X  27781, 27784, 27785, 27786, 27788, 27789, 27790, 27791, 27829, 27832, [128X[104X
    [4X[28X  30523, 30524, 30525, 30526, 30529, 30530, 30532, 30534, 32924, 32927, [128X[104X
    [4X[28X  32931, 32933 ][128X[104X
    [4X[25Xgap>[125X [27XSet(sizes{last});     [127X[104X
    [4X[28X[ 45509262704640000 ][128X[104X
    [4X[25Xgap>[125X [27XCollected(mods);[127X[104X
    [4X[28X[ [ 0, 30446 ], [ 3, 1 ], [ 4, 37 ], [ 5, 120 ], [ 6, 1450 ], [ 8, 18 ], [128X[104X
    [4X[28X  [ 10, 45 ], [ 12, 3143 ], [ 15, 165 ], [ 18, 484 ], [ 20, 528 ], [128X[104X
    [4X[28X  [ 24, 1339 ], [ 30, 2751 ], [ 36, 2064 ], [ 40, 26 ], [ 48, 515 ], [128X[104X
    [4X[28X  [ 60, 2322 ], [ 72, 2054 ], [ 80, 44 ], [ 90, 108 ], [ 96, 108 ], [128X[104X
    [4X[28X  [ 108, 114 ], [ 120, 782 ], [ 144, 310 ], [ 160, 26 ], [ 180, 206 ], [128X[104X
    [4X[28X  [ 192, 6 ], [ 216, 72 ], [ 240, 304 ], [ 270, 228 ], [ 288, 14 ], [128X[104X
    [4X[28X  [ 360, 84 ], [ 432, 36 ], [ 480, 218 ], [ 540, 18 ], [ 720, 120 ], [128X[104X
    [4X[28X  [ 810, 112 ], [ 864, 8 ], [ 960, 94 ], [ 1080, 488 ], [ 1620, 44 ], [128X[104X
    [4X[28X  [ 1920, 38 ], [ 2160, 506 ], [ 3240, 34 ], [ 3840, 12 ], [128X[104X
    [4X[28X  [ 4320, 218 ], [ 4860, 16 ], [ 6480, 282 ], [ 7680, 10 ], [128X[104X
    [4X[28X  [ 8640, 16 ], [ 12960, 120 ], [ 14580, 2 ], [ 25920, 34 ], [128X[104X
    [4X[28X  [ 30720, 2 ], [ 38880, 12 ], [ 51840, 8 ], [ 77760, 32 ] ][128X[104X
    [4X[25Xgap>[125X [27XCollected(trsstatus);[127X[104X
    [4X[28X[ [ "> 1 orbit (mod m)", 593 ], [128X[104X
    [4X[28X  [ "Mod(U DecreasingOn) exceeded <maxmod>", 23 ], [128X[104X
    [4X[28X  [ "U DecreasingOn stable and exceeded memory bound", 11 ], [128X[104X
    [4X[28X  [ "U DecreasingOn stable for <maxeq> steps", 5757 ], [128X[104X
    [4X[28X  [ "exceeded memory bound", 497 ], [ "finite", 21948 ], [128X[104X
    [4X[28X  [ "intransitive, but finitely many orbits", 8 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (long)", 1227 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (medium)", 2501 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (short)", 4816 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (very long)", 230 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (very long, very unclear)", 76 ], [128X[104X
    [4X[28X  [ "seemingly only finite orbits (very short)", 208 ], [128X[104X
    [4X[28X  [ "there are infinite orbits which have exponential sphere size growth"[128X[104X
    [4X[28X        , 2934 ], [128X[104X
    [4X[28X  [ "there are infinite orbits which have linear sphere size growth", [128X[104X
    [4X[28X      10881 ],[128X[104X
    [4X[28X  [ "there are infinite orbits which have unclear sphere size growth", [128X[104X
    [4X[28X      86 ], [ "transitive", 558 ], [128X[104X
    [4X[28X  [ "transitive up to one finite orbit", 40 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.2-2 LoadDatabaseOfGroupsGeneratedBy3ClassTranspositions[101X
  
  [29X[2XLoadDatabaseOfGroupsGeneratedBy3ClassTranspositions[102X( [3Xmax_m[103X ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            database  of  all groups generated by 3 class transpositions which
            interchange  residue  classes  with  moduli  less than or equal to
            [3Xmax_m[103X got bound, where [3Xmax_m[103X is either 6 or 9.[133X
  
  [33X[0;0YIf  [3Xmax_m[103X  is  6,  this  is  equivalent  to the call of the function without
  argument  described above. If [3Xmax_m[103X is 9, the function returns a record with
  at  least the following components (in the sequel, the indices [10Xi > j > k[110X are
  always integers in the range [10X[1..264][110X):[133X
  
  [8X[10Xcts[110X[108X
        [33X[0;6YThe  list  of  all  264 class transpositions which interchange residue
        classes with moduli [22X≤ 9[122X.[133X
  
  [8X[10Xmods[110X[108X
        [33X[0;6YThe  list  of  moduli  of  the groups, i.e. [10XMod(Group(cts{[i,j,k]})) =
        mods[i][j][k][110X.[133X
  
  [8X[10Xpartlengths[110X[108X
        [33X[0;6YThe  list of lengths of shortest respected partitions of the groups in
        the  database,  i.e. [10XLength(RespectedPartition(Group(cts{[i,j,k]})))[110X [10X=[110X
        [10Xpartlengths[i][j][k][110X.[133X
  
  [8X[10Xsizes[110X[108X
        [33X[0;6YThe  list  of  orders  of the groups, i.e. [10XSize(Group(cts{[i,j,k]}))[110X [10X=[110X
        [10Xsizes[i][j][k][110X.[133X
  
  [8X[10XAll3CTs9Indices[110X[108X
        [33X[0;6YA  selector  function which takes as argument a function [3Xfunc[103X of three
        arguments  [3Xi[103X,  [3Xj[103X  and  [3Xk[103X.  It returns a list of all triples of indices
        [10X[[3Xi[103X[10X,[3Xj[103X[10X,[3Xk[103X[10X][110X where [22X264 ≥ i > j > k ≥ 1[122X for which [3Xfunc[103X returns [10Xtrue[110X.[133X
  
  [8X[10XAll3CTs9Groups[110X[108X
        [33X[0;6YA  selector  function which takes as argument a function [3Xfunc[103X of three
        arguments   [3Xi[103X,   [3Xj[103X   and   [3Xk[103X.   It   returns  a  list  of  all  groups
        [10XGroup(cts{[[3Xi[103X[10X,[3Xj[103X[10X,[3Xk[103X[10X]})[110X  from  the  database for which [10X[3Xfunc[103X[10X([3Xi[103X[10X,[3Xj[103X[10X,[3Xk[103X[10X)[110X returns
        [10Xtrue[110X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadDatabaseOfGroupsGeneratedBy3ClassTranspositions(9);[127X[104X
    [4X[28X"3CTsGroups9"[128X[104X
    [4X[25Xgap>[125X [27XAssignGlobals(3CTsGroups9);[127X[104X
    [4X[28XThe following global variables have been assigned:[128X[104X
    [4X[28X[ "All3CTs9Groups", "All3CTs9Indices", "cts", "mods", "partlengths", [128X[104X
    [4X[28X  "sizes" ][128X[104X
    [4X[25Xgap>[125X [27XPrintFactorsInt(Maximum(Filtered(Flat(sizes),n->n<>infinity)));[127X[104X
    [4X[28X2^1283*3^673*5^305*7^193*11^98*13^84*17^50*19^41*23^25*29^13*31^4[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.2-3 LoadDatabaseOfGroupsGeneratedBy4ClassTranspositions[101X
  
  [29X[2XLoadDatabaseOfGroupsGeneratedBy4ClassTranspositions[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            database  of  all groups generated by 4 class transpositions which
            interchange  residue  classes  with  moduli  [22X≤  6[122X  for  which  all
            subgroups  generated  by  3 out of the 4 generators are finite got
            bound.[133X
  
  [33X[0;0YThe  record  has at least the following components (the index [10Xi[110X is always an
  integer in the range [10X[1..140947][110X, and the term [21Xindices[121X always refers to list
  indices in that range):[133X
  
  [8X[10Xcts[110X[108X
        [33X[0;6YThe  list  of  all  69  class transpositions which interchange residue
        classes with moduli [22X≤ 6[122X.[133X
  
  [8X[10Xgrps4_3finite[110X[108X
        [33X[0;6YThe list of all 140947 groups in the database.[133X
  
  [8X[10Xgrps4_3finitepos[110X[108X
        [33X[0;6YThe  list  obtained from [10Xgrps4_3finite[110X by replacing every group by the
        list of positions of its generators in the list [10Xcts[110X.[133X
  
  [8X[10Xsizes4[110X[108X
        [33X[0;6YThe list of group orders -- it is [10XSize(grps4_3finite[i]) = sizes4[i][110X.[133X
  
  [8X[10Xmods4[110X[108X
        [33X[0;6YThe  list  of  moduli  of  the groups -- it is [10XMod(grps4_3finite[i]) =
        mods4[i][110X.[133X
  
  [8X[10Xconjugacyclasses4cts[110X[108X
        [33X[0;6YA  list  of lists of indices of groups which are known to be conjugate
        in RCWA(ℤ).[133X
  
  [8X[10Xgrps4_3finite_reps[110X[108X
        [33X[0;6YTentative  conjugacy class representatives from the list [10Xgrps4_3finite[110X
        --  [13Xtentative[113X  in the sense that likely some of the groups in the list
        are still conjugate.[133X
  
  [33X[0;0YNote  that  the  database  contains  an  entry  for every suitable unordered
  4-tuple  of  distinct  class  transpositions  in  [10Xcts[110X,  which  means that it
  contains multiple copies of equal groups.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadDatabaseOfGroupsGeneratedBy4ClassTranspositions(); [127X[104X
    [4X[28X"4CTsGroups6"[128X[104X
    [4X[25Xgap>[125X [27XAssignGlobals(4CTsGroups6);[127X[104X
    [4X[28XThe following global variables have been assigned:[128X[104X
    [4X[28X[ "conjugacyclasses4cts", "cts", "grps4_3finite", "grps4_3finite_reps", [128X[104X
    [4X[28X  "grps4_3finitepos", "mods4", "sizes4", "sizes4pos", "sizes4set" ][128X[104X
    [4X[25Xgap>[125X [27XLength(grps4_3finite);[127X[104X
    [4X[28X140947[128X[104X
    [4X[25Xgap>[125X [27XLength(sizes4);[127X[104X
    [4X[28X140947[128X[104X
    [4X[25Xgap>[125X [27XSize(grps4_3finite[1]);[127X[104X
    [4X[28X518400[128X[104X
    [4X[25Xgap>[125X [27Xsizes4[1];[127X[104X
    [4X[28X518400[128X[104X
    [4X[25Xgap>[125X [27XMaximum(Filtered(sizes4,IsInt));[127X[104X
    [4X[28X<integer 420...000 (3852 digits)>[128X[104X
    [4X[25Xgap>[125X [27XModulus(grps4_3finite[1]);[127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27Xmods4[1];[127X[104X
    [4X[28X12[128X[104X
    [4X[25Xgap>[125X [27XLength(Set(sizes4));[127X[104X
    [4X[28X7339[128X[104X
    [4X[25Xgap>[125X [27XLength(Set(mods4));[127X[104X
    [4X[28X91[128X[104X
    [4X[25Xgap>[125X [27Xconjugacyclasses4cts{[1..4]};[127X[104X
    [4X[28X[ [ 1, 23, 563, 867 ], [ 2, 859 ], [ 3, 622 ], [ 4, 16, 868, 873 ] ][128X[104X
    [4X[25Xgap>[125X [27Xgrps4_3finite[1] = grps4_3finite[23];[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27Xgrps4_3finite[4] = grps4_3finite[16];[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  
  [1X6.3 [33X[0;0YDatabases of rcwa mappings[133X[101X
  
  [1X6.3-1 LoadDatabaseOfProductsOf2ClassTranspositions[101X
  
  [29X[2XLoadDatabaseOfProductsOf2ClassTranspositions[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            database of products of 2 class transpositions got bound.[133X
  
  [33X[0;0YThere  are  69  class  transpositions which interchange residue classes with
  moduli  [22X≤  6[122X, thus there is a total of [22X(69 ⋅ 68)/2 = 2346[122X unordered pairs of
  distinct  such  class  transpositions.  Looking  at intersection- and subset
  relations  between  the  4  involved  residue classes, we can distinguish 17
  different [21Xintersection types[121X (or 18, together with the trivial case of equal
  class  transpositions).  The  intersection type does not fully determine the
  cycle structure of the product. -- In total, we can distinguish 88 different
  cycle  types of products of 2 class transpositions which interchange residue
  classes with moduli [22X≤ 6[122X.[133X
  
  [33X[0;0YThe  components  of the database record are a list [10XCTPairs[110X of all 2346 pairs
  of  distinct  class  transpositions  which  interchange residue classes with
  moduli  [22X≤  6[122X, functions [10XCTPairsIntersectionTypes[110X, [10XCTPairIntersectionType[110X and
  [10XCTPairProductType[110X,     as     well     as     data    lists    [10XOrdersMatrix[110X,
  [10XCTPairsProductClassification[110X,  [10XCTPairsProductType[110X,  [10XCTProds12[110X and [10XCTProds32[110X.
  --    For    the   description   of   these   components,   see   the   file
  [11Xpkg/rcwa/data/ctproducts/ctprodclass.g[111X.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadDatabaseOfProductsOf2ClassTranspositions();[127X[104X
    [4X[28X"CTProducts"[128X[104X
    [4X[25Xgap>[125X [27XSet(RecNames(CTProducts));[127X[104X
    [4X[28X[ "CTPairIntersectionType", "CTPairProductType", "CTPairs", [128X[104X
    [4X[28X  "CTPairsIntersectionTypes", "CTPairsProductClassification", [128X[104X
    [4X[28X  "CTPairsProductType", "CTProds12", "CTProds32", "OrdersMatrix" ][128X[104X
    [4X[25Xgap>[125X [27XLength(CTProducts.CTPairs);[127X[104X
    [4X[28X2346[128X[104X
    [4X[25Xgap>[125X [27XCollected(List(CTProducts.CTPairsProductType,l->l[2])); # order stats[127X[104X
    [4X[28X[ [ 2, 165 ], [ 3, 255 ], [ 4, 173 ], [ 6, 693 ], [ 10, 2 ], [128X[104X
    [4X[28X  [ 12, 345 ], [ 15, 4 ], [ 20, 10 ], [ 30, 120 ], [ 60, 44 ], [128X[104X
    [4X[28X  [ infinity, 535 ] ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
  [1X6.3-2 LoadDatabaseOfNonbalancedProductsOfClassTranspositions[101X
  
  [29X[2XLoadDatabaseOfNonbalancedProductsOfClassTranspositions[102X(  ) [32X function
  [6XReturns:[106X  [33X[0;10Ythe  name  of  the  variable  to  which  the record containing the
            database  of  non-balanced  products  of  class transpositions got
            bound.[133X
  
  [33X[0;0YThis  database contains a list of the 24 pairs of class transpositions which
  interchange  residue  classes  with  moduli  [22X≤  6[122X  and  whose product is not
  balanced,  as  well as a list of all 36 essentially distinct triples of such
  class transpositions whose product has coprime multiplier and divisor.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[28X[128X[104X
    [4X[25Xgap>[125X [27XLoadDatabaseOfNonbalancedProductsOfClassTranspositions();[127X[104X
    [4X[28X"CTProductsNB"[128X[104X
    [4X[25Xgap>[125X [27XSet(RecNames(CTProductsNB));[127X[104X
    [4X[28X[ "PairsOfCTsWhoseProductIsNotBalanced", [128X[104X
    [4X[28X  "TriplesOfCTsWhoseProductHasCoprimeMultiplierAndDivisor" ][128X[104X
    [4X[25Xgap>[125X [27XCTProductsNB.PairsOfCTsWhoseProductIsNotBalanced;[127X[104X
    [4X[28X[ [ ( 1(2), 2(4) ), ( 2(4), 3(6) ) ], [ ( 1(2), 2(4) ), ( 2(4), 5(6) ) ], [128X[104X
    [4X[28X  [ ( 1(2), 2(4) ), ( 2(4), 1(6) ) ], [ ( 1(2), 0(4) ), ( 0(4), 1(6) ) ], [128X[104X
    [4X[28X  [ ( 1(2), 0(4) ), ( 0(4), 3(6) ) ], [ ( 1(2), 0(4) ), ( 0(4), 5(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 1(4) ), ( 1(4), 2(6) ) ], [ ( 0(2), 1(4) ), ( 1(4), 4(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 1(4) ), ( 1(4), 0(6) ) ], [ ( 0(2), 3(4) ), ( 3(4), 4(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 3(4) ), ( 3(4), 2(6) ) ], [ ( 0(2), 3(4) ), ( 3(4), 0(6) ) ], [128X[104X
    [4X[28X  [ ( 1(2), 2(6) ), ( 3(4), 2(6) ) ], [ ( 1(2), 2(6) ), ( 1(4), 2(6) ) ], [128X[104X
    [4X[28X  [ ( 1(2), 4(6) ), ( 3(4), 4(6) ) ], [ ( 1(2), 4(6) ), ( 1(4), 4(6) ) ], [128X[104X
    [4X[28X  [ ( 1(2), 0(6) ), ( 1(4), 0(6) ) ], [ ( 1(2), 0(6) ), ( 3(4), 0(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 1(6) ), ( 2(4), 1(6) ) ], [ ( 0(2), 1(6) ), ( 0(4), 1(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 3(6) ), ( 2(4), 3(6) ) ], [ ( 0(2), 3(6) ), ( 0(4), 3(6) ) ], [128X[104X
    [4X[28X  [ ( 0(2), 5(6) ), ( 2(4), 5(6) ) ], [ ( 0(2), 5(6) ), ( 0(4), 5(6) ) ] [128X[104X
    [4X[28X ][128X[104X
    [4X[28X[128X[104X
  [4X[32X[104X
  
