Go to the first, previous, next, last section, table of contents.
Find the order of G/H where G is the Free Group modulo RELATIONS, and H is the subgroup of G generated by SUBGROUP. SUBGROUP is an optional argument, defaulting to []. In doing this it produces a multiplication table for the right action of G on G/H, where the cosets are enumerated [H,Hg2,Hg3,...] This can be seen internally in the $todd_coxeter_state. The multiplication tables for the variables are in table:todd_coxeter_state[2] Then table[i] gives the table for the ith variable. mulcoset(coset,i) := table[varnum][coset];
Example:
(C1) 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>
(D1) 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)
(C2) p(i,j) :=concat(x,i).concat(x,j);
(D2) P(I, J) := CONCAT(X, I) . CONCAT(X, J)
(C3) symet(5);
<3> <2> <3>
(D3) [X1 . X1, (X1 . X2) , X2 . X2, (X1 . X3) , (X2 . X3) ,
<2> <2> <3>
X3 . X3, (X1 . X4) , (X2 . X4) , (X3 . X4) , X4 . X4]
(C4) todd_coxeter(d3);
Rows tried 426
(D4) 120
(C5) todd_coxeter(d3,[x1]);
Rows tried 213
(D5) 60
(C6) todd_coxeter(d3,[x1,x2]);
Rows tried 71
(D6) 20
(C7) table:todd_coxeter_state[2]$
(C8) table:todd_coxeter_state[2]$
(C9) table[1];
(D9) {Array: FIXNUM #(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)}
Note only the elements 1 thru 20 of this array d9 are meaningful. table[1][4] = 7 indicates coset4.var1 = coset7
Go to the first, previous, next, last section, table of contents.