~ubuntu-branches/debian/squeeze/maxima/squeeze

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
@c Language: Portuguese, Encoding: iso-8859-1
@c /Groups.texi/1.11/Thu Apr 21 04:26:33 2005/-ko/
@menu
* Defini@value{cedilha}@~oes para Grupos::
@end menu

@node Defini@value{cedilha}@~oes para Grupos,  , Grupos, Grupos
@section Defini@value{cedilha}@~oes para Grupos

@deffn {Fun@value{cedilha}@~ao} todd_coxeter (@var{rela@value{cedilha}@~ao}, @var{subgroupo})
@deffnx {Fun@value{cedilha}@~ao} todd_coxeter (@var{rela@value{cedilha}@~ao})

Acha a ordem de G/H onde G @'e o m@'odulo do Grupo Livre @var{rela@value{cedilha}@~ao}, e
H @'e o subgroupo de G gerado por @var{subgroupo}.  @var{subgroupo} @'e um argumento
opcional, cujo valor padr@~ao @'e [].  Em fazendo isso a fun@value{cedilha}@~ao produz uma
tabela de multiplica@value{cedilha}@~ao @`a direita de G sobre G/H, onde os
co-conjuntos s@~ao enumerados [H,Hg2,Hg3,...].  Isso pode ser visto internamente no
@code{$todd_coxeter_state}.

As tabelas de multiplica@value{cedilha}@~ao para as vari@'aveis est@~ao em
@code{table:todd_coxeter_state[2]}.  Ent@~ao @code{table[i]} fornece a tabela para
a i'@'esima vari@'avel.  @code{multiplos_co_conjuntos(co_conjunto,i) := table[varnum][co_conjunto];}

Exemplo:

@c ===beg===
@c symet(n):=create_list(
@c         if (j - i) = 1 then (p(i,j))^^3 else
@c             if (not i = j) then (p(i,j))^^2 else
@c                 p(i,i) , j, 1, n-1, i, 1, j);
@c p(i,j) := concat(x,i).concat(x,j);
@c symet(5);
@c todd_coxeter(%o3);
@c todd_coxeter(%o3,[x1]);
@c todd_coxeter(%o3,[x1,x2]);
@c table:todd_coxeter_state[2]$
@c table[1];
@c ===end===
@example
(%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)@}

@end example

Observe que somente os elementos de 1 a 20 desse array @code{%o8} s@~ao significativos.
@code{table[1][4] = 7} indica coset4.var1 = coset7

@end deffn