Definicedilhaões para Grupos
============================

 -- Funcedilhaão: todd_coxeter (RELACEDILHAÃO, SUBGROUPO)
 -- Funcedilhaão: todd_coxeter (RELACEDILHAÃO)

     Acha a ordem de G/H onde G é o módulo do Grupo Livre RELACEDILHAÃO, e H é o subgroupo de G gerado por SUBGROUPO.  SUBGROUPO é um argumento opcional, cujo valor padrão é [].  Em fazendo isso a funcedilhaão produz uma tabela de multiplicacedilhaão à direita de G sobre G/H, onde os co-conjuntos são enumerados [H,Hg2,Hg3,...].  Isso pode ser visto internamente no $todd_coxeter_state.

     As tabelas de multiplicacedilhaão para as variáveis estão em table:todd_coxeter_state[2].  Então table[i] fornece a tabela para a i'ésima variável.  multiplos_co_conjuntos(co_conjunto,i) := table[varnum][co_conjunto];

     Exemplo:

          (%i1) symet(n):=create_list(
                  if (j - i) = 1 then (p(i,j))^^3 else
                      if (not i = j) then (p(i,j))^^2 else
                          p(i,i) , j, 1, n-1, i, 1, j);
                                                                 <3>
          (%o1) symet(n) := create_list(if j - i = 1 then p(i, j)

                                          <2>
           else (if not i = j then p(i, j)    else p(i, i)), j, 1, n - 1,

          i, 1, j)
          (%i2) p(i,j) := concat(x,i).concat(x,j);
          (%o2)        p(i, j) := concat(x, i) . concat(x, j)
          (%i3) symet(5);
                   <2>           <3>    <2>           <2>           <3>
          (%o3) [x1   , (x1 . x2)   , x2   , (x1 . x3)   , (x2 . x3)   ,

                      <2>           <2>           <2>           <3>    <2>
                    x3   , (x1 . x4)   , (x2 . x4)   , (x3 . x4)   , x4   ]
          (%i4) todd_coxeter(%o3);

          Rows tried 426
          (%o4)                          120
          (%i5) todd_coxeter(%o3,[x1]);

          Rows tried 213
          (%o5)                          60
          (%i6) todd_coxeter(%o3,[x1,x2]);

          Rows tried 71
          (%o6)                          20
          (%i7) table:todd_coxeter_state[2]$
          (%i8) table[1];
          (%o8) {Array: (SIGNED-BYTE 30) #(0 2 1 3 7 6 5 4 8 11 17 9 12 14 #

          13 20 16 10 18 19 15 0 0 0 0 0 0 0 0 0 0 0 0

            0 0 0)}

     Observe que somente os elementos de 1 a 20 desse array %o8 são significativos. table[1][4] = 7 indica coset4.var1 = coset7