Rename specvar integer-info to *integer-info*
[maxima.git] / doc / info / Groups.texi
blobc9af0574eb0ed68fb33ce24e28f63fb587e33747
1 @menu
2 * Functions and Variables for Groups::
3 @end menu
5 @node Functions and Variables for Groups,  , Groups, Groups
6 @section Functions and Variables for Groups
8 @anchor{todd_coxeter}
9 @deffn {Function} todd_coxeter @
10 @fname{todd_coxeter} (@var{relations}, @var{subgroup}) @
11 @fname{todd_coxeter} (@var{relations})
13 Find the order of G/H where G is the Free Group modulo @var{relations}, and
14 H is the subgroup of G generated by @var{subgroup}.  @var{subgroup} is an optional
15 argument, defaulting to [].  In doing this it produces a
16 multiplication table for the right action of G on G/H, where the
17 cosets are enumerated [H,Hg2,Hg3,...].  This can be seen internally in
18 the variable @code{todd_coxeter_state}.
20 Example:
22 @c ===beg===
23 @c symet(n):=create_list(
24 @c         if (j - i) = 1 then (p(i,j))^^3 else
25 @c             if (not i = j) then (p(i,j))^^2 else
26 @c                 p(i,i) , j, 1, n-1, i, 1, j);
27 @c p(i,j) := concat(x,i).concat(x,j);
28 @c symet(5);
29 @c todd_coxeter(%o3);
30 @c todd_coxeter(%o3,[x1]);
31 @c todd_coxeter(%o3,[x1,x2]);
32 @c ===end===
33 @example
34 (%i1) symet(n):=create_list(
35         if (j - i) = 1 then (p(i,j))^^3 else
36             if (not i = j) then (p(i,j))^^2 else
37                 p(i,i) , j, 1, n-1, i, 1, j);
38                                                        <3>
39 (%o1) symet(n) := create_list(if j - i = 1 then p(i, j)
41                                 <2>
42  else (if not i = j then p(i, j)    else p(i, i)), j, 1, n - 1,
44 i, 1, j)
45 (%i2) p(i,j) := concat(x,i).concat(x,j);
46 (%o2)        p(i, j) := concat(x, i) . concat(x, j)
47 (%i3) symet(5);
48          <2>           <3>    <2>           <2>           <3>
49 (%o3) [x1   , (x1 . x2)   , x2   , (x1 . x3)   , (x2 . x3)   ,
51             <2>           <2>           <2>           <3>    <2>
52           x3   , (x1 . x4)   , (x2 . x4)   , (x3 . x4)   , x4   ]
53 (%i4) todd_coxeter(%o3);
55 Rows tried 426
56 (%o4)                          120
57 (%i5) todd_coxeter(%o3,[x1]);
59 Rows tried 213
60 (%o5)                          60
61 (%i6) todd_coxeter(%o3,[x1,x2]);
63 Rows tried 71
64 (%o6)                          20
65 @end example
66 @opencatbox{Categories:}
67 @category{Group theory}
68 @closecatbox
69 @end deffn