@c Language: Brazilian Portuguese, Encoding: iso-8859-1
@c /Symmetries.texi/1.12/Sat Jun  2 00:13:11 2007/-ko/
@c arquivo gentilmente traduzido por Helciclever Barros da Silva
@c end concepts Symmetries
@c Notes by K.O.:
@c In {Function} mon2schur, I don't know how to produce both
@c nice-looking dvi/pdf output, and HTML output.  Same situation occurs in
@c a couple of other places.  I've favored dvi/pdf.  So right now, "make
@c html" reports some (non-fatal) errors.


@menu
* Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Simetrias::  
@end menu

@node Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Simetrias,  , Simetrias, Simetrias
@section Fun@value{cedilha}@~{o}es e Vari@'{a}veis Definidas para Simetrias


@subsection Mudando a base do sistema de numera@value{cedilha}@~ao


@deffn {Fun@value{cedilha}@~ao} comp2pui (@var{n}, @var{L})
implementa a passagem das fun@,{c}@~oes sim@'etricas completamente sim@'etricas fornecidas na lista
@var{L} para as fun@,{c}@~oes sim@'etricas elementares de 0 a @var{n}. Se a
lista @var{L} contiver menos que @var{n+1} elementos, ser@'a completada com
valores formais do tipo @var{h1}, @var{h2}, etc. Se o primeiro elemento
da lista @var{L} existir, ele @'e interpretado como sendo o tamanho do alfabeto,
de outra forma o tamanho @'e escolhido para @var{n}.

@c GENERATED FROM THE FOLLOWING
@c comp2pui (3, [4, g]);
@example
(%i1) comp2pui (3, [4, g]);
                        2                    2
(%o1)    [4, g, 2 h2 - g , 3 h3 - g h2 + g (g  - 2 h2)]
@end example

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} ele2pui (@var{m}, @var{L})
vai de fun@value{cedilha}@~{o}es sim@'{e}tricas elementares para as fun@value{cedilha}@~oes completas.
Similar a @code{comp2ele} e @code{comp2pui}.

Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} ele2comp (@var{m}, @var{L})
Vai de fun@value{cedilha}@~{o}es sim@'{e}tricas elementares para fun@value{cedilha}@~{o}es completas.
Similar a @code{comp2ele} e a @code{comp2pui}.

Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} elem (@var{ele}, @var{sym}, @var{lvar})
decomp@~{o}e o polin@^{o}mio sim@'{e}trico @var{sym}, nas vari@'{a}veis
contidas na lista @var{lvar}, em termos de fun@value{cedilha}@~{o}es elementares
sim@'{e}tricas fornecidas na lista @var{ele}.  Se o primeiro elemento de
@var{ele} for fornecido, esse primeiro elemento ser@'{a} o tamanho do alfabeto, de outra forma o
tamanho ser@'{a} o grau do polin@^{o}mio @var{sym}.  Se valores forem
omitidos na lista @var{ele}, valores formais do tipo @var{e1},
@var{e2}, etc. ser@~{a}o adicionados.  O polin@^{o}mio @var{sym} pode ser fornecido de
tr@^{e}s diferentes formas: contra@'{i}da (@code{elem} pode ent@~{a}o ser 1, seu
valor padr@~{a}o), particionada (@code{elem} pode ser 3), ou extendida
(i.e. o polin@^{o}mio completo, e @code{elem} pode ent@~{a}o ser 2).  A
fun@value{cedilha}@~{a}o @code{pui} @'{e} usada ent@~{a}o da mesma forma.

sobre um alfabeto de tamanho 3 com @var{e1}, a primeira fun@value{cedilha}@`{a}o elementar
sim@'{e}trica, com valor 7, o polin@^{o}mio sim@'{e}trico em 3 vari@'{a}veis cuja
forma contra@'{i}da (que aqui depende de duas de suas vari@'{a}veis) @'{e}
@var{x^4-2*x*y} decomposto como segue em fun@value{cedilha}@~{o}es elementares sim@'{e}tricas:

@c GENERATED FROM THE FOLLOWING
@c elem ([3, 7], x^4 - 2*x*y, [x, y]);
@c ratsimp (%);
@example
(%i1) elem ([3, 7], x^4 - 2*x*y, [x, y]);
(%o1) 7 (e3 - 7 e2 + 7 (49 - e2)) + 21 e3

                                         + (- 2 (49 - e2) - 2) e2
(%i2) ratsimp (%);
                              2
(%o2)             28 e3 + 2 e2  - 198 e2 + 2401
@end example

@noindent
Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn


@deffn {Function} mon2schur (@var{L})
a lsita @var{L} representa a fun@value{cedilha}@~{a}o de Schur @math{S_L}: temos
@iftex
@math{L = [i_1,i_2, \ldots, i_q]}, with @math{i_1 \le i_2 \le \ldots \le i_q}.
A fun@value{cedilha}@~{a}o de Schur @math{S_{i_1,i_2, \ldots, i_q}} @'{e} a menor
da matriz infinita @math{h_{i-j}}, @math{i \ge 1, j \ge 1},
consistindo das @math{q} primeiras linhas e as colunas @math{i_1+1,
i_2+2, \ldots, i_q+q}.
@end iftex
@c UNFORTUNATELY TEXINFO DOES NOT HAVE A NOTION OF "@ELSE"
@c SO IT IS NECESSARY TO REPEAT THE FOLLOWING NON-TEX STUFF FOR INFO AND FOR HTML ... SIGH
@ifinfo
@math{L = [i_1, i_2, ..., i_q]}, com @math{i_1 <= i_2 <= ... <= i_q}.
A fun@value{cedilha}@~{a}o de Schur @math{S_[i_1, i_2, ..., i_q]} @'{e} a menor
da matriz infinita @math{h_[i-j]}, @math{i <= 1, j <= 1},
consistindo das @math{q} primeiras linhas e as colunas @math{1 + i_1,
+2 + i_2, ..., q + i_q}.
@end ifinfo
@ifhtml
@math{L = [i_1, i_2, ..., i_q]}, com @math{i_1 <= i_2 <= ... <= i_q}.
A fun@value{cedilha}@~{o} de Schur @math{S_[i_1, i_2, ..., i_q]} @'{e} a menor
da matriz infinita @math{h_[i-j]}, @math{i <= 1, j <= 1},
consistindo das @math{q} primeiras linhas e as colunas @math{1 + i_1,
2 + i_2, ..., q + i_q}.
@end ifhtml

Essa fun@value{cedilha}@~{a}o de Schur pode ser escrita em termos de mon@^{o}mios usando
@code{treinat} e @code{kostka}.  A forma retornada @'{e} um polin@^{o}mio
sim@'{e}trico na representa@value{cedilha}@~{a}o contra@'{i}da nas vari@'{a}veis @math{x_1,x_2,\ldots}.

@c GENERATED FROM THE FOLLOWING
@c mon2schur ([1, 1, 1]);
@c mon2schur ([3]);
@c mon2schur ([1, 2]);
@example
(%i1) mon2schur ([1, 1, 1]);
(%o1)                       x1 x2 x3
(%i2) mon2schur ([3]);
                                  2        3
(%o2)                x1 x2 x3 + x1  x2 + x1
(%i3) mon2schur ([1, 2]);
                                      2
(%o3)                  2 x1 x2 x3 + x1  x2
@end example

@noindent
o qual significa que para 3 vari@'{a}veis fornece:

@c UM, FROM WHAT ARGUMENTS WAS THE FOLLOWING GENERATED ?? (original comment)
@example
   2 x1 x2 x3 + x1^2 x2 + x2^2 x1 + x1^2 x3 + x3^2 x1
    + x2^2 x3 + x3^2 x2
@end example
@noindent
Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} multi_elem (@var{l_elem}, @var{multi_pc}, @var{l_var})
decomp@~{o}es um polin@^{o}mio multi-sim@'{e}trico na forma multi-contra@'{i}da
@var{multi_pc} nos grupos de vari@'{a}veis contidas na lista de listas
@var{l_var} en termos de fun@value{cedilha}@~{o}es elementares sim@'{e}tricas contidas em
@var{l_elem}.

@c GENERATED FROM THE FOLLOWING
@c multi_elem ([[2, e1, e2], [2, f1, f2]], a*x + a^2 + x^3, [[x, y], [a, b]]);
@c ratsimp (%);
@example
(%i1) multi_elem ([[2, e1, e2], [2, f1, f2]], a*x + a^2 + x^3, [[x, y], [a, b]]);
                                                  3
(%o1)         - 2 f2 + f1 (f1 + e1) - 3 e1 e2 + e1
(%i2) ratsimp (%);
                         2                       3
(%o2)         - 2 f2 + f1  + e1 f1 - 3 e1 e2 + e1
@end example

Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn


@c WHAT ARE THE ARGUMENTS FOR THIS FUNCTION ?? (original comment)
@deffn {Fun@value{cedilha}@~{a}o} multi_pui
@'{e} para a fun@value{cedilha}@~{a}o @code{pui} o que a fun@value{cedilha}@~{a}o @code{multi_elem} @'{e} para
a fun@value{cedilha}@~{a}o @code{elem}.

@c GENERATED FROM THE FOLLOWING
@c multi_pui ([[2, p1, p2], [2, t1, t2]], a*x + a^2 + x^3, [[x, y], [a, b]]);
@example
(%i1) multi_pui ([[2, p1, p2], [2, t1, t2]], a*x + a^2 + x^3, [[x, y], [a, b]]);
                                            3
                                3 p1 p2   p1
(%o1)              t2 + p1 t1 + ------- - ---
                                   2       2
@end example

@end deffn


@c HMM, pui IS A VARIABLE AS WELL.  It's a function, for sure.
@deffn {Fun@value{cedilha}@~{a}o} pui (@var{L}, @var{sym}, @var{lvar})
decomp@~{o}e o polin@^{o}mio sim@'{e}trico @var{sym}, nas vari@'{a}veis na
lista @var{lvar}, em termos de fun@value{cedilha}@~{o}es exponenciais na lista @var{L}.
Se o primeiro elemento de @var{L} for fornecido, esse primeiro elemento ser@'{a} o tamanho do
alfabeto, de outra forma o tamanho ser@'{a} o grau do polin@^{o}mio
@var{sym}.  Se valores forem omitidos na lista @var{L}, valores formais do
tipo @var{p1}, @var{p2} , etc. ser@~{a}o adicionados. O polin@^{o}mio
@var{sym} pode ser fornecido de tr@^{e}s diferentes formas: contra@'{i}da (@code{elem}
pode ent@~{a}o ser 1, seu valor padr@~{a}o), particionada (@code{elem} pode ser
3), ou extendida (i.e. o polin@^{o}mio completo, e @code{elem} pode ent@~{a}o
ser 2). A fun@value{cedilha}@~{a}o @code{pui} @'{e} usada da mesma forma.

@c GENERATED FROM THE FOLLOWING
@c pui;
@c pui ([3, a, b], u*x*y*z, [x, y, z]);
@c ratsimp (%);
@example
(%i1) pui;
(%o1)                           1
(%i2) pui ([3, a, b], u*x*y*z, [x, y, z]);
                       2
                   a (a  - b) u   (a b - p3) u
(%o2)              ------------ - ------------
                        6              3
(%i3) ratsimp (%);
                                       3
                      (2 p3 - 3 a b + a ) u
(%o3)                 ---------------------
                                6
@end example
@noindent
Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} pui2comp (@var{n}, @var{lpui})
converte a dista das primeiras @var{n} fun@value{cedilha}@~{o}es completas (com o
comprimento em primeiro lugar) em termos de fun@value{cedilha}@~{o}es exponenciais fornecidas na lista
@var{lpui}. se a lista @var{lpui} for vazia, o cardinal @'{e} @var{n},
de outra forma o cardinal ser@'{a} seu primeiro elemento (como em @code{comp2ele} e em
@code{comp2pui}).

@c GENERATED FROM THE FOLLOWING
@c pui2comp (2, []);
@c pui2comp (3, [2, a1]);
@c ratsimp (%);
@example
(%i1) pui2comp (2, []);
                                       2
                                p2 + p1
(%o1)                   [2, p1, --------]
                                   2
(%i2) pui2comp (3, [2, a1]);
                                            2
                                 a1 (p2 + a1 )
                         2  p3 + ------------- + a1 p2
                  p2 + a1              2
(%o2)     [2, a1, --------, --------------------------]
                     2                  3
(%i3) ratsimp (%);
                            2                     3
                     p2 + a1   2 p3 + 3 a1 p2 + a1
(%o3)        [2, a1, --------, --------------------]
                        2               6
@end example
@noindent
Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} pui2ele (@var{n}, @var{lpui})
efetiva a passagem de fun@value{cedilha}@~{o}es exponenciais para as fun@value{cedilha}@~{o}es elementares sim@'{e}tricas.
Se o sinalizador @code{pui2ele} for @code{girard}, @code{pui2ele} ir@'{a} retornar a lista de
fun@value{cedilha}@~{o}es elementares sim@'{e}tricas de 1 a @var{n}, e se o sinalizador for
@code{close}, @code{pui2ele} retornar@'{a} a @var{n}-@'{e}sima fun@value{cedilha}@~{a}o sim@'{e}trica elementar.

Outras fun@value{cedilha}@~{o}es para mudan@value{cedilha}as de base: @code{comp2ele}.
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} puireduc (@var{n}, @var{lpui})
@var{lpui} @'{e} uma lista cujo primeiro elemento @'{e} um inteiro @var{m}.
@code{puireduc} fornece as primeiras @var{n} fun@value{cedilha}@~{o}es exponenciais em termos das
primeiras @var{m} fun@value{cedilha}@~{o}es.

@c GENERATED FROM THE FOLLOWING
@c puireduc (3, [2]);
@example
(%i1) puireduc (3, [2]);
                                         2
                                   p1 (p1  - p2)
(%o1)          [2, p1, p2, p1 p2 - -------------]
                                         2
(%i2) ratsimp (%);
                                           3
                               3 p1 p2 - p1
(%o2)              [2, p1, p2, -------------]
                                     2
@end example
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} schur2comp (@var{P}, @var{l_var})
@var{P} @'{e} um polin@^{o}mio nas vari@'{a}veis da lista @var{l_var}.  Cada
uma dessas vari@'{a}veis represetna uma fun@value{cedilha}@~{a}o sim@'{e}trica completa.  Na
lista @var{l_var} o @var{i}-@'{e}sima fun@value{cedilha}@~{a}o sim@'{e}trica completa @'{e} representada atrav@'{e}s da
concatena@value{cedilha}@~{a}o da letra @code{h} com o inteiro @var{i}:
@code{h@var{i}}.  Essa fun@value{cedilha}@~{a}o expressa @var{P} em termos de fun@value{cedilha}@~oes de
Schur.


@c GENERATED FROM THE FOLLOWING
@c schur2comp (h1*h2 - h3, [h1, h2, h3]);
@c schur2comp (a*h3, [h3]);
@example
(%i1) schur2comp (h1*h2 - h3, [h1, h2, h3]);
(%o1)                         s
                               1, 2
(%i2) schur2comp (a*h3, [h3]);
(%o2)                         s  a
                               3
@end example
@end deffn





@subsection Modificando represetna@value{cedilha}@~{o}es

@deffn {Fun@value{cedilha}@~{a}o} cont2part (@var{pc}, @var{lvar})
Retorna o polin@^{o}mio particionado associado 
@`{a} forma contra@'{i}da @var{pc} cujas vari@'{a}veis est@~{a}o em @var{lvar}.

@c GENERATED FROM THE FOLLOWING
@c pc: 2*a^3*b*x^4*y + x^5;
@c cont2part (pc, [x, y]);
@example
(%i1) pc: 2*a^3*b*x^4*y + x^5;
                           3    4      5
(%o1)                   2 a  b x  y + x
(%i2) cont2part (pc, [x, y]);
                                   3
(%o2)              [[1, 5, 0], [2 a  b, 4, 1]]
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} contract (@var{psym}, @var{lvar})
retorna uma forma contra@'{i}da (i.e. um mon@^{o}mio
@c CHECK ME!!
de grupo ssim@'etrico) do polin@^omio @var{psym} nas vari@'aveis contidas
na lista @var{lvar}.  A fun@value{cedilha}@~ao @code{explose} executa a
opera@value{cedilha}@~ao inversa.  A fun@value{cedilha}@~{a}o @code{tcontract} testa a sim@'{e}tria do
polin@^{o}mio.

@c GENERATED FROM THE FOLLOWING
@c psym: explose (2*a^3*b*x^4*y, [x, y, z]);
@c contract (psym, [x, y, z]);
@example
(%i1) psym: explose (2*a^3*b*x^4*y, [x, y, z]);
         3      4      3      4      3    4        3    4
(%o1) 2 a  b y z  + 2 a  b x z  + 2 a  b y  z + 2 a  b x  z

                                           3      4      3    4
                                      + 2 a  b x y  + 2 a  b x  y
(%i2) contract (psym, [x, y, z]);
                              3    4
(%o2)                      2 a  b x  y
@end example
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} explose (@var{pc}, @var{lvar})
retorna o polin@^{o}mio sim@'{e}trico associado com a forma contra@'{i}da
@var{pc}. A lista @var{lvar} cont@'{e} as vari@'{a}veis.

@c GENERATED FROM THE FOLLOWING
@c explose (a*x + 1, [x, y, z]);
@example
(%i1) explose (a*x + 1, [x, y, z]);
(%o1)                  a z + a y + a x + 1
@end example
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} part2cont (@var{ppart}, @var{lvar})
vai da forma particionada para a forma contra@'{i}da de um polin@^{o}mio sim@'{e}trico.
A forma contra@'{i}da @'{e} convertida com as vari@'{a}veis em @var{lvar}.

@c GENERATED FROM THE FOLLOWING
@c part2cont ([[2*a^3*b, 4, 1]], [x, y]);
@example
(%i1) part2cont ([[2*a^3*b, 4, 1]], [x, y]);
                              3    4
(%o1)                      2 a  b x  y
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} partpol (@var{psym}, @var{lvar})
@var{psym} @'{e} um polin@^{o}mio sim@'{e}trico nas vari@'{a}veis da lista
@var{lvar}. Essa fun@value{cedilha}@~{a}o retorna sua represetna@value{cedilha}@~{a}o particionada.

@c GENERATED FROM THE FOLLOWING
@c partpol (-a*(x + y) + 3*x*y, [x, y]);
@example
(%i1) partpol (-a*(x + y) + 3*x*y, [x, y]);
(%o1)               [[3, 1, 1], [- a, 1, 0]]
@end example

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} tcontract (@var{pol}, @var{lvar})
testa se o polin@^{o}mio @var{pol} @'{e} sim@'{e}trico nas vari@'{a}veis da
lista @var{lvar}.  Se for, @code{tcontract} retorna uma representa@value{cedilha}@~{a}o contra@'{i}da como o faz a
fun@value{cedilha}@~{a}o @code{contract}.

@end deffn

 
 
@deffn {Fun@value{cedilha}@~{a}o} tpartpol (@var{pol}, @var{lvar})
testa se o polin@^{o}mio @var{pol} @'{e} sim@'{e}trico nas vari@'{a}veis da
lista @var{lvar}.  Se for, @code{tpartpol} retorna sua represetna@value{cedilha}@~{a}o particionada como
o faz a fun@value{cedilha}@~{a}o @code{partpol}.

@end deffn




@subsection Grupos e @'{o}rbitas


@deffn {Fun@value{cedilha}@~{a}o} direct ([@var{p_1}, ..., @var{p_n}], @var{y}, @var{f}, [@var{lvar_1}, ..., @var{lvar_n}])
calcula a imagem direta (see M. Giusti, D. Lazard et A. Valibouze,
ISSAC 1988, Rome) associada @`{a} fun@value{cedilha}@~{a}o @var{f}, na lista de
vari@'{a}veis @var{lvar_1}, ..., @var{lvar_n}, e nos polin@^{o}mios
@var{p_1}, ..., @var{p_n} na vari@'{a}vel @var{y}.  A quantidade de argumetnos que a
fun@value{cedilha}@`{a}o @var{f} pode receber @'{e} importante para o c@'{a}lculo.  Dessa forma, se a
express@~{a}o para @var{f} n@~{a}o depende de alguma vari@'{a}vel, @'{e} in@'{u}til
incluir essa vari@'{a}vel, e n@~{a}o incluir essa vari@'{a}vel ir@'{a} tamb@'{e}m reduzir
consideravelmente o montante c@'{a}lculos efetuados.

@c GENERATED FROM THE FOLLOWING
@c direct ([z^2  - e1* z + e2, z^2  - f1* z + f2],
@c               z, b*v + a*u, [[u, v], [a, b]]);
@c ratsimp (%);
@c ratsimp (direct ([z^3-e1*z^2+e2*z-e3,z^2  - f1* z + f2],
@c               z, b*v + a*u, [[u, v], [a, b]]));
@example
(%i1) direct ([z^2  - e1* z + e2, z^2  - f1* z + f2],
              z, b*v + a*u, [[u, v], [a, b]]);
       2
(%o1) y  - e1 f1 y

                                 2            2             2   2
                  - 4 e2 f2 - (e1  - 2 e2) (f1  - 2 f2) + e1  f1
                + -----------------------------------------------
                                         2
(%i2) ratsimp (%);
              2                2                   2
(%o2)        y  - e1 f1 y + (e1  - 4 e2) f2 + e2 f1
(%i3) ratsimp (direct ([z^3-e1*z^2+e2*z-e3,z^2  - f1* z + f2],
              z, b*v + a*u, [[u, v], [a, b]]));
       6            5         2                        2    2   4
(%o3) y  - 2 e1 f1 y  + ((2 e1  - 6 e2) f2 + (2 e2 + e1 ) f1 ) y

                          3                               3   3
 + ((9 e3 + 5 e1 e2 - 2 e1 ) f1 f2 + (- 2 e3 - 2 e1 e2) f1 ) y

         2       2        4    2
 + ((9 e2  - 6 e1  e2 + e1 ) f2

                    2       2       2                   2    4
 + (- 9 e1 e3 - 6 e2  + 3 e1  e2) f1  f2 + (2 e1 e3 + e2 ) f1 )

  2          2                      2     3          2
 y  + (((9 e1  - 27 e2) e3 + 3 e1 e2  - e1  e2) f1 f2

                 2            2    3                5
 + ((15 e2 - 2 e1 ) e3 - e1 e2 ) f1  f2 - 2 e2 e3 f1 ) y

           2                   3           3     2   2    3
 + (- 27 e3  + (18 e1 e2 - 4 e1 ) e3 - 4 e2  + e1  e2 ) f2

         2      3                   3    2   2
 + (27 e3  + (e1  - 9 e1 e2) e3 + e2 ) f1  f2

                   2    4        2   6
 + (e1 e2 e3 - 9 e3 ) f1  f2 + e3  f1
@end example

Encontrando um polin@^{o}mio cujas ra@'{i}zes s@~{a}o somat@'{o}rios @math{a+u} onde @math{a}
@'{e} uma ra@'{i}z de @math{z^2 - e_1 z + e_2} e @math{u} @'{e} uma ra@'{i}z de @math{z^2 -
+f_1 z + f_2}.

@c GENERATED FROM THE FOLLOWING
@c ratsimp (direct ([z^2 - e1* z + e2, z^2 - f1* z + f2],
@c                           z, a + u, [[u], [a]]));
@example
(%i1) ratsimp (direct ([z^2 - e1* z + e2, z^2 - f1* z + f2],
                          z, a + u, [[u], [a]]));
       4                    3             2
(%o1) y  + (- 2 f1 - 2 e1) y  + (2 f2 + f1  + 3 e1 f1 + 2 e2

     2   2                              2               2
 + e1 ) y  + ((- 2 f1 - 2 e1) f2 - e1 f1  + (- 2 e2 - e1 ) f1

                  2                     2            2
 - 2 e1 e2) y + f2  + (e1 f1 - 2 e2 + e1 ) f2 + e2 f1  + e1 e2 f1

     2
 + e2
@end example

@code{direct} aceita dois sinalizadores: @code{elementaires} (elementares) e
@code{puissances} (exponenciais - valor padr@~{a}o) que permitem a decomposi@value{cedilha}@~{a}o
de polin@^{o}mios sim@'{e}tricos que aparecerem nesses c@'{a}lculos em
fun@value{cedilha}@~{o}es sim@'{e}tricas elementares ou em fun@value{cedilha}@~{o}es exponenciais respectivamente.

Fun@value{cedilha}@~{o}es de @code{sym} utilizadas nesta fun@value{cedilha}@~{a}o :

@code{multi_orbit} (portanto @code{orbit}), @code{pui_direct}, @code{multi_elem}
(portanto @code{elem}), @code{multi_pui} (portanto @code{pui}), @code{pui2ele}, @code{ele2pui}
(se o sinalizador @code{direct} for escolhido para @code{puissances}).

@end deffn




@deffn {Fun@value{cedilha}@~{a}o} multi_orbit (@var{P}, [@var{lvar_1}, @var{lvar_2},..., @var{lvar_p}])

@var{P} @'{e} um polin@^{o}mio no conjunto de vari@'{a}veis contidas nas lista
@var{lvar_1}, @var{lvar_2}, ..., @var{lvar_p}. Essa fun@value{cedilha}@~{a}o retorna a
@'{o}rbita do polin@^{o}mio @var{P} sob a a@value{cedilha}@~{a}o do produto dos
grupos sim@'{e}tricos dos conjuntos de vari@'{a}veis represetnadas nas @var{p}
listas.

@c GENERATED FROM THE FOLLOWING
@c multi_orbit (a*x + b*y, [[x, y], [a, b]]);
@c multi_orbit (x + y + 2*a, [[x, y], [a, b, c]]);
@example
(%i1) multi_orbit (a*x + b*y, [[x, y], [a, b]]);
(%o1)                [b y + a x, a y + b x]
(%i2) multi_orbit (x + y + 2*a, [[x, y], [a, b, c]]);
(%o2)        [y + x + 2 c, y + x + 2 b, y + x + 2 a]
@end example
@noindent
Veja tamb@'{e}m: @code{orbit} para a a@value{cedilha}@~{a}o de um grupo sim@'{e}trico simples.
@end deffn




@deffn {Fun@value{cedilha}@~{a}o} multsym (@var{ppart_1}, @var{ppart_2}, @var{n})
retorna oproduto de dois polin@^{o}mios sim@'{e}tricos em @var{n}
varieis trabalhando somente m@'{o}dulo a a@value{cedilha}@~{a}o do grupo sim@'{e}trico de
ordem @var{n}. O polin@^{o}mios est@~{a}o em sua forma particionada.

Dados 2 polin@^{o}mio sim@'{e}tricos em @var{x}, @var{y}:  @code{3*(x + y)
+ 2*x*y} e @code{5*(x^2 + y^2)} cujas formas particionadas s@~{a}o @code{[[3,
1], [2, 1, 1]]} e @code{[[5, 2]]}, seu produto ir@'{a} ser

@c GENERATED FROM THE FOLLOWING
@c multsym ([[3, 1], [2, 1, 1]], [[5, 2]], 2);
@example
(%i1) multsym ([[3, 1], [2, 1, 1]], [[5, 2]], 2);
(%o1)         [[10, 3, 1], [15, 3, 0], [15, 2, 1]]
@end example
@noindent
isso @'{e} @code{10*(x^3*y + y^3*x) + 15*(x^2*y + y^2*x) + 15*(x^3 + y^3)}.
 
Fun@value{cedilha}@~oes para mudar as representac@~{o}es de um polin@^{o}mio sim@'{e}trico:
 
@code{contract}, @code{cont2part}, @code{explose}, @code{part2cont},
@code{partpol}, @code{tcontract}, @code{tpartpol}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} orbit (@var{P}, @var{lvar})
calcula a @'{o}rbita do polin@^{o}mio @var{P} nas vari@'{a}veis na lista
@var{lvar} sob a a@value{cedilha}@~{a}o do grupo sim@'{e}trico do conjunto das
vari@'{a}veis na lista @var{lvar}.
 
@c GENERATED FROM THE FOLLOWING
@c orbit (a*x + b*y, [x, y]);
@c orbit (2*x + x^2, [x, y]);
@example
(%i1) orbit (a*x + b*y, [x, y]);
(%o1)                [a y + b x, b y + a x]
(%i2) orbit (2*x + x^2, [x, y]);
                        2         2
(%o2)                 [y  + 2 y, x  + 2 x]
@end example
@noindent
Veja tamb@'{e}m @code{multi_orbit} para a a@value{cedilha}@~{a}o de um produto de grupos
sim@'{e}tricos sobre um polin@^{o}mio.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} pui_direct (@var{orbite}, [@var{lvar_1}, ..., @var{lvar_n}], [@var{d_1}, @var{d_2}, ..., @var{d_n}])

Tomemos @var{f} para ser um polin@^{o}mio em @var{n} blocos de vari@'{a}veis @var{lvar_1},
..., @var{lvar_n}.  Fa@value{cedilha}amos @var{c_i} ser o n;umero de vari@'{a}veis em
@var{lvar_i}, e @var{SC} ser o produto de @var{n} grupos sim@'{e}tricos de
grau @var{c_1}, ..., @var{c_n}. Essas a@value{cedilha}@~{o}es dos grupos naturalmente sobre @var{f}.
A lista @var{orbite} @'{e} a @'{o}rbita, denotada @code{@var{SC}(@var{f})}, da
fun@value{cedilha}@~{a}o @var{f} sob a a@value{cedilha}@~{a}o de @var{SC}. (Essa lista pode ser
obtida atrav@'{e}s da fun@value{cedilha}@~{a}o @code{multi_orbit}.)  Os @var{di} s@~{a}o inteiros
de forma que @math{c_1 \le d_1, c_2 \le d_2, \ldots, c_n \le d_n}.  

@iftex
Tomemos @var{SD} para ser o produto dos grupos sim@'{e}tricos @math{S_{d_1} \times
+S_{d_2} \times \cdots \times S_{d_n}}.
@end iftex
@c UNFORTUNATELY TEXINFO DOES NOT HAVE A NOTION OF "@ELSE"
@c SO IT IS NECESSARY TO REPEAT THE FOLLOWING NON-TEX STUFF FOR INFO AND FOR HTML ... SIGH
@ifinfo
Tomemos @var{SD} para ser o produto dos grupos sim@'{e}tricos @math{S_[d_1] x
S_[d_2] x ... x S_[d_n]}.
@end ifinfo
@ifhtml
Tomemos @var{SD} para ser o produto dos grupos sim@'{e}tricos @math{S_[d_1] x
S_[d_2] x ... x S_[d_n]}.
@end ifhtml
A fun@value{cedilha}@~{a}o @code{pui_direct} retorna
as primeiras @var{n} fun@value{cedilha}@~{o}es exponenciais de @code{@var{SD}(@var{f})} deduzidas
das fun@value{cedilha}@~{o}es exponenciais de @code{@var{SC}(@var{f})}, onde @var{n} @'{e}
o tamanho de @code{@var{SD}(@var{f})}.

O resultado est@'{a} na multi-forma contra@'{i}da com rela@value{cedilha}@~{a}o a @var{SD}, i.e. somente um
elemento @'{e} mantido por @'{o}rbita, sob a a@value{cedilha}@~{a}o de @var{SD}.

@c GENERATED FROM THE FOLLOWING
@c l: [[x, y], [a, b]];
@c pui_direct (multi_orbit (a*x + b*y, l), l, [2, 2]);
@c pui_direct (multi_orbit (a*x + b*y, l), l, [3, 2]);
@c pui_direct ([y + x + 2*c, y + x + 2*b, y + x + 2*a], [[x, y], [a, b, c]], [2, 3]);
@example
(%i1) l: [[x, y], [a, b]];
(%o1)                   [[x, y], [a, b]]
(%i2) pui_direct (multi_orbit (a*x + b*y, l), l, [2, 2]);
                                       2  2
(%o2)               [a x, 4 a b x y + a  x ]
(%i3) pui_direct (multi_orbit (a*x + b*y, l), l, [3, 2]);
                             2  2     2    2        3  3
(%o3) [2 a x, 4 a b x y + 2 a  x , 3 a  b x  y + 2 a  x , 

    2  2  2  2      3    3        4  4
12 a  b  x  y  + 4 a  b x  y + 2 a  x , 

    3  2  3  2      4    4        5  5
10 a  b  x  y  + 5 a  b x  y + 2 a  x , 

    3  3  3  3       4  2  4  2      5    5        6  6
40 a  b  x  y  + 15 a  b  x  y  + 6 a  b x  y + 2 a  x ]
(%i4) pui_direct ([y + x + 2*c, y + x + 2*b, y + x + 2*a], [[x, y], [a, b, c]], [2, 3]);
                             2              2
(%o4) [3 x + 2 a, 6 x y + 3 x  + 4 a x + 4 a , 

                 2                   3        2       2        3
              9 x  y + 12 a x y + 3 x  + 6 a x  + 12 a  x + 8 a ]
@end example
@c THIS NEXT FUNCTION CALL TAKES A VERY LONG TIME (SEVERAL MINUTES)
@c SO LEAVE IT OUT TIL PROCESSORS GET A LITTLE FASTER ...
@c pui_direct ([y + x + 2*c, y + x + 2*b, y + x + 2*a], [[x, y], [a, b, c]], [3, 4]);

@end deffn






@subsection Parti@value{cedilha}@~{o}es

@deffn {Fun@value{cedilha}@~{a}o} kostka (@var{part_1}, @var{part_2})
escrita por P. Esperet, calcula o n@'{u}mero de Kostka da parti@value{cedilha}@~{a}o
@var{part_1} e @var{part_2}.

@c GENERATED FROM THE FOLLOWING
@c kostka ([3, 3, 3], [2, 2, 2, 1, 1, 1]);
@example
(%i1) kostka ([3, 3, 3], [2, 2, 2, 1, 1, 1]);
(%o1)                           6
@end example
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} lgtreillis (@var{n}, @var{m})
retorna a lista de parti@value{cedilha}@~oes de peso @var{n} e comprimento @var{m}.

@c GENERATED FROM THE FOLLOWING
@c lgtreillis (4, 2);
@example
(%i1) lgtreillis (4, 2);
(%o1)                   [[3, 1], [2, 2]]
@end example
@noindent
Veja tamb@'{e}m: @code{ltreillis}, @code{treillis} e @code{treinat}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} ltreillis (@var{n}, @var{m})
retorna a lista de parti@value{cedilha}@~{o}es de peso @var{n} e comprimento menor que ou
igual a @var{m}.

@c GENERATED FROM THE FOLLOWING
@c ltreillis (4, 2);
@example
(%i1) ltreillis (4, 2);
(%o1)               [[4, 0], [3, 1], [2, 2]]
@end example
@noindent
Veja tamb@'{e}m: @code{lgtreillis}, @code{treillis} e @code{treinat}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} treillis (@var{n})
retorna todas as parti@value{cedilha}@~oes de peso @var{n}.

@c GENERATED FROM THE FOLLOWING
@c treillis (4);
@example
(%i1) treillis (4);
(%o1)    [[4], [3, 1], [2, 2], [2, 1, 1], [1, 1, 1, 1]]
@end example

Veja tamb@'{e}m: @code{lgtreillis}, @code{ltreillis} e @code{treinat}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} treinat (@var{part})
retorna a lista de parti@value{cedilha}@~oes inferiores @`{a} parti@value{cedilha}@`{a}o @var{part} com rela@value{cedilha}@~{a}o @`{a}
ordem natural.

@c GENERATED FROM THE FOLLOWING
@c treinat ([5]);
@c treinat ([1, 1, 1, 1, 1]);
@c treinat ([3, 2]);
@example
(%i1) treinat ([5]);
(%o1)                         [[5]]
(%i2) treinat ([1, 1, 1, 1, 1]);
(%o2) [[5], [4, 1], [3, 2], [3, 1, 1], [2, 2, 1], [2, 1, 1, 1], 
 
                                                 [1, 1, 1, 1, 1]]
(%i3) treinat ([3, 2]);
(%o3)                 [[5], [4, 1], [3, 2]]
@end example

Veja tamb@'{e}m: @code{lgtreillis}, @code{ltreillis} e @code{treillis}.

@end deffn





@subsection Polin@^{o}mios e suas ra@'{i}zes

@deffn {Fun@value{cedilha}@~{a}o} ele2polynome (@var{L}, @var{z})
retorna o polin@^{o}mio em @var{z} de forma que as fun@value{cedilha}@~oes elementares
sim@'{e}tricas de suas ra@'{i}zes estejam na lista @code{@var{L} = [@var{n},
@var{e_1}, ..., @var{e_n}]}, onde @var{n} @'{e} o grau dos
polin@^{o}mios e @var{e_i} @'{e} a @var{i}-@'{e}sima fun@value{cedilha}@~{a}o sim@'{e}trica elementar.

@c GENERATED FROM THE FOLLOWING
@c ele2polynome ([2, e1, e2], z);
@c polynome2ele (x^7 - 14*x^5 + 56*x^3  - 56*x + 22, x);
@c ele2polynome ([7, 0, -14, 0, 56, 0, -56, -22], x);
@example
(%i1) ele2polynome ([2, e1, e2], z);
                          2
(%o1)                    z  - e1 z + e2
(%i2) polynome2ele (x^7 - 14*x^5 + 56*x^3  - 56*x + 22, x);
(%o2)          [7, 0, - 14, 0, 56, 0, - 56, - 22]
(%i3) ele2polynome ([7, 0, -14, 0, 56, 0, -56, -22], x);
                  7       5       3
(%o3)            x  - 14 x  + 56 x  - 56 x + 22
@end example
@noindent
o inverso: @code{polynome2ele (@var{P}, @var{z})}.
 
Veja tamb@'{e}m:
@code{polynome2ele}, @code{pui2polynome}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} polynome2ele (@var{P}, @var{x})
fornece a lista @code{@var{l} = [@var{n}, @var{e_1}, ..., @var{e_n}]}
onde @var{n} @'{e} o grau do polin@^{o}mio @var{P} na vari@'{a}vel
@var{x} e @var{e_i} @'{e} a @var{i}-@'{e}sima fun@value{cedilha}@~{a}o sim@'{e}trica elementar
das ra@'{i}zes de @var{P}.

@c GENERATED FROM THE FOLLOWING
@c polynome2ele (x^7 - 14*x^5 + 56*x^3 - 56*x + 22, x);
@c ele2polynome ([7, 0, -14, 0, 56, 0, -56, -22], x);
@example
(%i1) polynome2ele (x^7 - 14*x^5 + 56*x^3 - 56*x + 22, x);
(%o1)          [7, 0, - 14, 0, 56, 0, - 56, - 22]
(%i2) ele2polynome ([7, 0, -14, 0, 56, 0, -56, -22], x);
                  7       5       3
(%o2)            x  - 14 x  + 56 x  - 56 x + 22
@end example
@noindent
A inversa: @code{ele2polynome (@var{l}, @var{x})}
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} prodrac (@var{L}, @var{k})
@var{L} @'{e} uma lista contendo as fun@value{cedilha}@~{o}es sim@'{e}tricas elementares 
sobre um conjunto @var{A}. @code{prodrac} retorna o polin@^{o}mio cujas ra@'{i}zes
s@~{a}o os produtos @var{k} por @var{k} dos elementos de @var{A}.
 
Veja tamb@'{e}m @code{somrac}.
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} pui2polynome (@var{x}, @var{lpui})
calcula o polin@^{o}mio em @var{x} cujas fun@value{cedilha}@~{o}es exponenciais
das ra@'{i}zes s@~{a}o dadas na lista @var{lpui}.

@c GENERATED FROM THE FOLLOWING
@c polynome2ele (x^3 - 4*x^2 + 5*x - 1, x);
@c ele2pui (3, %);
@c pui2polynome (x, %);
@example
(%i1) pui;
(%o1)                           1
(%i2) kill(labels);
(%o0)                         done
(%i1) polynome2ele (x^3 - 4*x^2 + 5*x - 1, x);
(%o1)                     [3, 4, 5, 1]
(%i2) ele2pui (3, %);
(%o2)                     [3, 4, 6, 7]
(%i3) pui2polynome (x, %);
                        3      2
(%o3)                  x  - 4 x  + 5 x - 1
@end example
@noindent
Veja tamb@'{e}m:
@code{polynome2ele}, @code{ele2polynome}.
@end deffn



@deffn {Fun@value{cedilha}@~{a}o} somrac (@var{L}, @var{k})
A lista @var{L} contains fun@value{cedilha}@~{a}o sim@'{e}trica elementars de um polynomial
@var{P} . The function computes the polin@^{o}mio whose roots are the 
@var{k} by @var{k} distinct sums of the roots of @var{P}. 

Also see @code{prodrac}.
@end deffn





@subsection Resolvents

@deffn {Fun@value{cedilha}@~{a}o} resolvante (@var{P}, @var{x}, @var{f}, [@var{x_1},..., @var{x_d}]) 
calcula a resilvente do polin@^{o}mio @var{P} em @var{x} de grau
@var{n} >= @var{d} atrav@'{e}s da fFun@value{cedilha}@~{a}o @var{f} expressa nas vari@'{a}veis 
@var{x_1}, ..., @var{x_d}.  Para efici@^{e}ncia de computa@value{cedilha}@~{a}o @'{e}
importante n@~{a}o incluir na lista as vari@'{a}veis
@code{[@var{x_1}, ..., @var{x_d}]} que n@~{a}o aparecem na fun@value{cedilha}@~{a}o de transforma@value{cedilha}@~{a}o @var{f}.

Para melhorar a efici@^{e}ncia do c@'{a}lculo se pode escolher sinalizadores em
@code{resolvante} de forma a usar os algor@'{i}tmos apropriados:

Se a fun@value{cedilha}@~{a}o @var{f} for unit@'{a}ria :
@itemize @bullet
@item
um polin@^{o}mio em uma vari@'{a}vel simples,
@item
  linear ,
@item
  alternando,
@item
  um somat@'{o}rio,
@item
  sim@'{e}trico,
@item
  um produto,
@item
a fun@value{cedilha}@~{a}o da resolvente de Cayley (utiliz@'{a}vel de grau 5 em diante)

@c WHAT IS THIS ILLUSTRATING EXACTLY ??
@example
(x1*x2 + x2*x3 + x3*x4 + x4*x5 + x5*x1 -
     (x1*x3 + x3*x5 + x5*x2 + x2*x4 + x4*x1))^2
@end example

  geral,
@end itemize
o sinalizador da @code{resolvante} poder@'{a} ser respectivamente :
@itemize @bullet
@item
  unitaire,
@item
  lineaire,
@item
  alternee,
@item
  somme,
@item
  produit,
@item
  cayley,
@item
  generale.
@end itemize

@c GENERATED FROM THE FOLLOWING
@c resolvante: unitaire$
@c resolvante (x^7 - 14*x^5 + 56*x^3 - 56*x + 22, x, x^3 - 1, [x]);
@c resolvante: lineaire$
@c resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3]);
@c resolvante: general$
@c resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3]);
@c resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3, x4]);
@c direct ([x^4 - 1], x, x1 + 2*x2 + 3*x3, [[x1, x2, x3]]);
@c resolvante :lineaire$
@c resolvante (x^4 - 1, x, x1 + x2 + x3, [x1, x2, x3]);
@c resolvante: symetrique$
@c resolvante (x^4 - 1, x, x1 + x2 + x3, [x1, x2, x3]);
@c resolvante (x^4 + x + 1, x, x1 - x2, [x1, x2]);
@c resolvante: alternee$
@c resolvante (x^4 + x + 1, x, x1 - x2, [x1, x2]);
@c resolvante: produit$
@c resolvante (x^7 - 7*x + 3, x, x1*x2*x3, [x1, x2, x3]);
@c resolvante: symetrique$
@c resolvante (x^7 - 7*x + 3, x, x1*x2*x3, [x1, x2, x3]);
@c resolvante: cayley$
@c resolvante (x^5 - 4*x^2 + x + 1, x, a, []);
@example
(%i1) resolvante: unitaire$
(%i2) resolvante (x^7 - 14*x^5 + 56*x^3 - 56*x + 22, x, x^3 - 1, [x]);

" resolvante unitaire " [7, 0, 28, 0, 168, 0, 1120, - 154, 7840, - 2772, 56448, - 33880, 

413952, - 352352, 3076668, - 3363360, 23114112, - 30494464, 

175230832, - 267412992, 1338886528, - 2292126760] 
  3       6      3       9      6      3
[x  - 1, x  - 2 x  + 1, x  - 3 x  + 3 x  - 1, 

 12      9      6      3       15      12       9       6      3
x   - 4 x  + 6 x  - 4 x  + 1, x   - 5 x   + 10 x  - 10 x  + 5 x

       18      15       12       9       6      3
 - 1, x   - 6 x   + 15 x   - 20 x  + 15 x  - 6 x  + 1, 

 21      18       15       12       9       6      3
x   - 7 x   + 21 x   - 35 x   + 35 x  - 21 x  + 7 x  - 1] 
[- 7, 1127, - 6139, 431767, - 5472047, 201692519, - 3603982011] 
       7      6        5         4          3           2
(%o2) y  + 7 y  - 539 y  - 1841 y  + 51443 y  + 315133 y

                                              + 376999 y + 125253
(%i3) resolvante: lineaire$
(%i4) resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3]);

" resolvante lineaire " 
       24       20         16            12             8
(%o4) y   + 80 y   + 7520 y   + 1107200 y   + 49475840 y

                                                    4
                                       + 344489984 y  + 655360000
(%i5) resolvante: general$
(%i6) resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3]);

" resolvante generale " 
       24       20         16            12             8
(%o6) y   + 80 y   + 7520 y   + 1107200 y   + 49475840 y

                                                    4
                                       + 344489984 y  + 655360000
(%i7) resolvante (x^4 - 1, x, x1 + 2*x2 + 3*x3, [x1, x2, x3, x4]);

" resolvante generale " 
       24       20         16            12             8
(%o7) y   + 80 y   + 7520 y   + 1107200 y   + 49475840 y

                                                    4
                                       + 344489984 y  + 655360000
(%i8) direct ([x^4 - 1], x, x1 + 2*x2 + 3*x3, [[x1, x2, x3]]);
       24       20         16            12             8
(%o8) y   + 80 y   + 7520 y   + 1107200 y   + 49475840 y

                                                    4
                                       + 344489984 y  + 655360000
(%i9) resolvante :lineaire$
(%i10) resolvante (x^4 - 1, x, x1 + x2 + x3, [x1, x2, x3]);

" resolvante lineaire " 
                              4
(%o10)                       y  - 1
(%i11) resolvante: symetrique$
(%i12) resolvante (x^4 - 1, x, x1 + x2 + x3, [x1, x2, x3]);

" resolvante symetrique " 
                              4
(%o12)                       y  - 1
(%i13) resolvante (x^4 + x + 1, x, x1 - x2, [x1, x2]);

" resolvante symetrique " 
                           6      2
(%o13)                    y  - 4 y  - 1
(%i14) resolvante: alternee$
(%i15) resolvante (x^4 + x + 1, x, x1 - x2, [x1, x2]);

" resolvante alternee " 
            12      8       6        4        2
(%o15)     y   + 8 y  + 26 y  - 112 y  + 216 y  + 229
(%i16) resolvante: produit$
(%i17) resolvante (x^7 - 7*x + 3, x, x1*x2*x3, [x1, x2, x3]);

" resolvante produit "
        35      33         29        28         27        26
(%o17) y   - 7 y   - 1029 y   + 135 y   + 7203 y   - 756 y

         24           23          22            21           20
 + 1323 y   + 352947 y   - 46305 y   - 2463339 y   + 324135 y

          19           18             17              15
 - 30618 y   - 453789 y   - 40246444 y   + 282225202 y

             14              12             11            10
 - 44274492 y   + 155098503 y   + 12252303 y   + 2893401 y

              9            8            7             6
 - 171532242 y  + 6751269 y  + 2657205 y  - 94517766 y

            5             3
 - 3720087 y  + 26040609 y  + 14348907
(%i18) resolvante: symetrique$
(%i19) resolvante (x^7 - 7*x + 3, x, x1*x2*x3, [x1, x2, x3]);

" resolvante symetrique " 
        35      33         29        28         27        26
(%o19) y   - 7 y   - 1029 y   + 135 y   + 7203 y   - 756 y

         24           23          22            21           20
 + 1323 y   + 352947 y   - 46305 y   - 2463339 y   + 324135 y

          19           18             17              15
 - 30618 y   - 453789 y   - 40246444 y   + 282225202 y

             14              12             11            10
 - 44274492 y   + 155098503 y   + 12252303 y   + 2893401 y

              9            8            7             6
 - 171532242 y  + 6751269 y  + 2657205 y  - 94517766 y

            5             3
 - 3720087 y  + 26040609 y  + 14348907
(%i20) resolvante: cayley$
(%i21) resolvante (x^5 - 4*x^2 + x + 1, x, a, []);

" resolvente de Cayley "
        6       5         4          3            2
(%o21) x  - 40 x  + 4080 x  - 92928 x  + 3772160 x  + 37880832 x

                                                       + 93392896
@end example

Para a resolvente de Cayley, os 2 @'{u}ltimos argumentos s@~{a}o neutros
e o polin@^{o}mio fornecido na entrada deve ser necess@'{a}riamente de grau 5.

Veja tamb@'{e}m :

@code{resolvante_bipartite}, @code{resolvante_produit_sym},
@code{resolvante_unitaire}, @code{resolvante_alternee1}, @code{resolvante_klein}, 
@code{resolvante_klein3}, @code{resolvante_vierer}, @code{resolvante_diedrale}. 

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_alternee1 (@var{P}, @var{x})
calcula a transforma@value{cedilha}@~{a}o de 
@code{@var{P}(@var{x})} de grau @var{n} pela fun@value{cedilha}@~{a}o $\prod_@{1\leq i<j\leq n-1@} (x_i-x_j)$.
@iftex
@math{\prod_{1\leq i<j\leq n-1} (x_i-x_j)}.
@end iftex
@c UNFORTUNATELY TEXINFO DOES NOT HAVE A NOTION OF "@ELSE"
@c SO IT IS NECESSARY TO REPEAT THE FOLLOWING NON-TEX STUFF FOR INFO AND FOR HTML ... SIGH
@ifinfo
@math{product(x_i - x_j, 1 <= i < j <= n - 1)}.
@end ifinfo
@ifhtml
@math{product(x_i - x_j, 1 <= i < j <= n - 1)}.
@end ifhtml

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante} , @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante_diedrale}, @code{resolvante_bipartite}.

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} resolvante_bipartite (@var{P}, @var{x})
calcula a trasforma@value{cedilha}@~{a}o de
@code{@var{P}(@var{x})} de mesmo grau @var{n} atrav@'{e}s da fun@value{cedilha}@~{a}o 
@iftex
@math{x_1 x_2 \cdots x_{n/2} + x_{n/2+1}\cdots x_n}.
@end iftex
@c UNFORTUNATELY TEXINFO DOES NOT HAVE A NOTION OF "@ELSE"
@c SO IT IS NECESSARY TO REPEAT THE FOLLOWING NON-TEX STUFF FOR INFO AND FOR HTML ... SIGH
@ifinfo
@math{x_1 x_2 ... x_[n/2] + x_[n/2 + 1] ... x_n}.
@end ifinfo
@ifhtml
@math{x_1 x_2 ... x_[n/2] + x_[n/2 + 1] ... x_n}.
@end ifhtml

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante} , @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante_diedrale}, @code{resolvante_alternee1}.

@c GENERATED FROM THE FOLLOWING
@c resolvante_bipartite (x^6 + 108, x);
@example
(%i1) resolvante_bipartite (x^6 + 108, x);
              10        8           6             4
(%o1)        y   - 972 y  + 314928 y  - 34012224 y
@end example

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante}, @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante_diedrale},
@code{resolvante_alternee1}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_diedrale (@var{P}, @var{x})
calcula a transforma@value{cedilha}@~{a}o de @code{@var{P}(@var{x})} atrav@'{e}s da fun@value{cedilha}@~{a}o
@code{@var{x_1} @var{x_2} + @var{x_3} @var{x_4}}.

@c GENERATED FROM THE FOLLOWING
@c resolvante_diedrale (x^5 - 3*x^4 + 1, x);
@example
(%i1) resolvante_diedrale (x^5 - 3*x^4 + 1, x);
       15       12       11       10        9         8         7
(%o1) x   - 21 x   - 81 x   - 21 x   + 207 x  + 1134 x  + 2331 x

        6         5          4          3          2
 - 945 x  - 4970 x  - 18333 x  - 29079 x  - 20745 x  - 25326 x

 - 697
@end example

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante_alternee1}, @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_klein (@var{P}, @var{x})
+calculates the transformation of @code{@var{P}(@var{x})} by the function
+@code{@var{x_1} @var{x_2} @var{x_4} + @var{x_4}}.

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante_alternee1}, @code{resolvante}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante_diedrale}.

@end deffn


@deffn {Fun@value{cedilha}@~{a}o} resolvante_klein3 (@var{P}, @var{x})
calcula a transforma@value{cedilha}@~{a}o de @code{@var{P}(@var{x})} atrav@'{e}s da fun@value{cedilha}@~{a}o
@code{@var{x_1} @var{x_2} @var{x_4} + @var{x_4}}.

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante_alternee1}, @code{resolvante_klein}, @code{resolvante},
@code{resolvante_vierer}, @code{resolvante_diedrale}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_produit_sym (@var{P}, @var{x})
calcula a lista de todas as resolventes de produto do polin@^{o}mio 
@code{@var{P}(@var{x})}.

@c GENERATED FROM THE FOLLOWING
@c resolvante_produit_sym (x^5 + 3*x^4 + 2*x - 1, x);
@c resolvante: produit$
@c resolvante (x^5 + 3*x^4 + 2*x - 1, x, a*b*c, [a, b, c]);
@example
(%i1) resolvante_produit_sym (x^5 + 3*x^4 + 2*x - 1, x);
        5      4             10      8       7       6       5
(%o1) [y  + 3 y  + 2 y - 1, y   - 2 y  - 21 y  - 31 y  - 14 y

    4       3      2       10      8       7    6       5       4
 - y  + 14 y  + 3 y  + 1, y   + 3 y  + 14 y  - y  - 14 y  - 31 y

       3      2       5      4
 - 21 y  - 2 y  + 1, y  - 2 y  - 3 y - 1, y - 1]
(%i2) resolvante: produit$
(%i3) resolvante (x^5 + 3*x^4 + 2*x - 1, x, a*b*c, [a, b, c]);

" resolvente produto "
       10      8       7    6        5       4       3     2
(%o3) y   + 3 y  + 14 y  - y  - 14 y  - 31 y  - 21 y  - 2 y  + 1
@end example
@c INPUT %i3 TICKLES A MINOR BUG IN resolvante: 
@c " resolvante produit " IS PRINTED FROM SOMEWHERE IN THE BOWELS OF resolvante
@c AND IT GOOFS UP THE DISPLAY OF THE EXPONENTS OF %o3 -- I THREW IN A LINE BREAK TO ADJUST

Veja tamb@'{e}m :

@code{resolvante}, @code{resolvante_unitaire},
@code{resolvante_alternee1}, @code{resolvante_klein},
@code{resolvante_klein3}, @code{resolvante_vierer},
@code{resolvante_diedrale}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_unitaire (@var{P}, @var{Q}, @var{x})
calcula a resolvente do polin@^{o}mio @code{@var{P}(@var{x})} atrav@'{e}s do
polinomio @code{@var{Q}(@var{x})}. 

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante},
@code{resolvante_alternee1}, @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante_vierer}, @code{resolvante_diedrale}.

@end deffn



@deffn {Fun@value{cedilha}@~{a}o} resolvante_vierer (@var{P}, @var{x})
calcula a transforma@value{cedilha}@~{a}o de
@code{@var{P}(@var{x})} pela fun@value{cedilha}@~{a}o @code{@var{x_1} @var{x_2} - @var{x_3} @var{x_4}}.

Veja tamb@'{e}m :

@code{resolvante_produit_sym}, @code{resolvante_unitaire},
@code{resolvante_alternee1}, @code{resolvante_klein}, @code{resolvante_klein3},
@code{resolvante}, @code{resolvante_diedrale}.

@end deffn




@subsection Miscel@^ania

@deffn {Fun@value{cedilha}@~{a}o} multinomial (@var{r}, @var{part})
onde @var{r} @'{e} o peso da parti@value{cedilha}@~{a}o @var{part}.  Essa fun@value{cedilha}@~{a}o
retorna o coefinciente multinomial associado: se as partes de
@var{part} forem @var{i_1}, @var{i_2}, ..., @var{i_k}, o resultado @'{e}
@code{@var{r}!/(@var{i_1}! @var{i_2}! ... @var{i_k}!)}.
@end deffn


@deffn {Fun@value{cedilha}@~{a}o} permut (@var{L})
retorna a lista de permuta@value{cedilha}@~{o}es da lista @var{L}.
@end deffn
