3
* Definitions for Groups::
3
* Definitions for Groups::
6
6
@node Definitions for Groups, , Groups, Groups
7
7
@section Definitions for Groups
9
@c @unnumberedsec phony
10
@defun TODD_COXETER (relations,subgroup)
12
Find the order of G/H where G is the Free Group modulo RELATIONS, and
13
H is the subgroup of G generated by SUBGROUP. SUBGROUP is an optional
9
@deffn {Function} todd_coxeter (@var{relations}, @var{subgroup})
10
@deffnx {Function} todd_coxeter (@var{relations})
12
Find the order of G/H where G is the Free Group modulo @var{relations}, and
13
H is the subgroup of G generated by @var{subgroup}. @var{subgroup} is an optional
14
14
argument, defaulting to []. In doing this it produces a
15
15
multiplication table for the right action of G on G/H, where the
16
cosets are enumerated [H,Hg2,Hg3,...] This can be seen internally in
17
the $todd_coxeter_state. The multiplication tables for the variables
18
are in table:todd_coxeter_state[2] Then table[i] gives the table for
19
the ith variable. mulcoset(coset,i) := table[varnum][coset];
16
cosets are enumerated [H,Hg2,Hg3,...]. This can be seen internally in
17
the @code{$todd_coxeter_state}.
19
The multiplication tables for the variables are in
20
@code{table:todd_coxeter_state[2]}. Then @code{table[i]} gives the table for
21
the ith variable. @code{mulcoset(coset,i) := table[varnum][coset];}
26
@c symet(n):=create_list(
27
@c if (j - i) = 1 then (p(i,j))^^3 else
28
@c if (not i = j) then (p(i,j))^^2 else
29
@c p(i,i) , j, 1, n-1, i, 1, j);
30
@c p(i,j) := concat(x,i).concat(x,j);
33
@c todd_coxeter(%o3,[x1]);
34
@c todd_coxeter(%o3,[x1,x2]);
35
@c table:todd_coxeter_state[2]$
24
(%i1) symet(n):=create_list(if (j - i) = 1 then (p(i,j))^^3 else
25
if (not i = j) then (p(i,j))^^2 else p(i,i) , j,1,n-1,i,1,j);
27
(%o1) SYMET(N) := CREATE_LIST(IF J - I = 1 THEN P(I, J)
30
ELSE (IF NOT I = J THEN P(I, J)
31
ELSE P(I, I)), J, 1, N - 1, I, 1, J)
32
(%i2) p(i,j) :=concat(x,i).concat(x,j);
33
(%o2) P(I, J) := CONCAT(X, I) . CONCAT(X, J)
39
(%i1) symet(n):=create_list(
40
if (j - i) = 1 then (p(i,j))^^3 else
41
if (not i = j) then (p(i,j))^^2 else
42
p(i,i) , j, 1, n-1, i, 1, j);
44
(%o1) symet(n) := create_list(if j - i = 1 then p(i, j)
47
else (if not i = j then p(i, j) else p(i, i)), j, 1, n - 1,
50
(%i2) p(i,j) := concat(x,i).concat(x,j);
51
(%o2) p(i, j) := concat(x, i) . concat(x, j)
36
(%o3) [X1 . X1, (X1 . X2) , X2 . X2, (X1 . X3) , (X2 . X3) ,
54
(%o3) [x1 , (x1 . x2) , x2 , (x1 . x3) , (x2 . x3) ,
39
X3 . X3, (X1 . X4) , (X2 . X4) , (X3 . X4) , X4 . X4]
57
x3 , (x1 . x4) , (x2 . x4) , (x3 . x4) , x4 ]
40
58
(%i4) todd_coxeter(%o3);
44
62
(%i5) todd_coxeter(%o3,[x1]);
48
66
(%i6) todd_coxeter(%o3,[x1,x2]);
52
70
(%i7) table:todd_coxeter_state[2]$
53
(%i8) table:todd_coxeter_state[2]$
55
(%o9) @{Array: FIXNUM #(0 2 1 3 7 6 5 4 8 11 17 9 12 14 13 20
56
16 10 18 19 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)@}
72
(%o8) @{Array: (SIGNED-BYTE 30) #(0 2 1 3 7 6 5 4 8 11 17 9 12 14 #
74
13 20 16 10 18 19 15 0 0 0 0 0 0 0 0 0 0 0 0
59
Note only the elements 1 thru 20 of this array %o9 are meaningful.
60
table[1][4] = 7 indicates coset4.var1 = coset7
80
Note only the elements 1 thru 20 of this array @code{%o8} are meaningful.
81
@code{table[1][4] = 7} indicates coset4.var1 = coset7