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.