1 \documentclass[11pt
]{article
}
2 \usepackage[letterpaper
]{geometry
}
3 \usepackage{amsmath,amssymb
}
5 \usepackage{supertabular
}
6 \usepackage[hypertex,colorlinks=true,linkcolor=blue,filecolor=webgreen,
%
7 hyperindex=true,extension=dvi
]{hyperref
}
10 \title{The SYM Package for Maxima \\ User's Manual
}
11 \author{Annick Valibouze\\
14 75252 Paris Cedex
05\\
15 Unit\'e associ\'ee au CNRS No
248\\
17 GDR DE CALCUL FORMEL MEDICIS\\
18 \small{e-mail: avb@sysal.ibp.fr
}}
30 \section{Introduction
}
32 This documentation concerns a module for manipulating symmetric functions,
33 implemented in Common Lisp. This module, named
\texttt{SYM
}, is actually
34 presented as an extension of the symbolic calculation system
\texttt{Maxima
}.
36 Among its applications we note the calculation of resolvents.
39 \section{Definitions and notation
}
41 We will consider a ring $
\mathcal{A
}$.
43 \subsection{Symmetric polynomials
}
45 We are given an integer $n>
0$.
47 \subsubsection{Group actions
}
49 Let $S_n$ be the symmetric group of degree $n$ (each element is a permutation of
52 Let $E$ be an arbitrary set. Denote by $E^n$ the set of $n$-tuples of elements
53 of $E$. The
\emph{action
} of $S_n$ on any $n$-tuple $
\underline
54 a=(a_1,
\ldots,a_n)$ of $E^n$ is defined as
56 S_n
\times E^n &
\longrightarrow & E^n\\
57 \sigma \times {\underline a
} &
\longrightarrow &
58 \sigma{\underline a
}=(a_
{\sigma (
1)
},
\ldots,a_
{\sigma (n)
}).
60 Let $
\mathcal{A
}[\underline x
]$ be the ring of polynomials in the $n$ variables
61 $
\underline x=(x_1,
\ldots ,x_n)$, with coefficients in $
\mathcal{A
}$. The
62 action of $S_n$ on $
\mathcal{A
}(
\underline x)$ is defined as follows:
64 S_n
\times \mathcal{A
}[\underline x
] &
\longrightarrow &
65 \mathcal{A
}[\underline x
] \\
66 \sigma \times f &
\longrightarrow &
\sigma f \;\; :\;
67 \sigma f(
{\underline x
}) = f(
\sigma{\underline x
}).
70 \textbf{Remark.
} The action of $S_n$ extends to the sets $E^c$ or
71 $
\mathcal{A
}[x_1,
\ldots ,x_c
]$ with $c
\leq n$ simply by embedding these sets in
72 $E^n$ and $
\mathcal{A
}[\underline x
]$ respectively.
74 Let $f$ be a function from $
\mathcal{A
}[\underline x
]$ (resp. $
\underline a$, a
75 $n$-tuple). We will denote $S_nf$ (resp. $S_n
\underline a$) the set $\
{\sigma
76 f \;|\;
\sigma \in S_n \
}$ (resp. $\
{\sigma\underline a \;|\;
\sigma \in S_n
77 \
}$), called the
\textit{orbit
} of $f$ (resp. $
\underline a$) under the action
81 \subsubsection{Partitions, symmetric polynomials
}
83 Let $m$ be a natural number. A
\textit{partition
} of $m$ is a decreasing
84 sequence of natural numbers $i_1
\geq i_2
\geq \ldots$ called
\textit{parts
}
85 whose sum is $m$. This sum is the
\textit{weight
} of the partition and its
86 \textit{length
} is the number of its non-zero parts.
88 Let $p$ be a polynomial in $n$ variables. This polynomial is
\textit{symmetric
}
89 if it remains invariant under the action of $S_n$, i.e. if $S_n p =\
{p\
}$.
91 A symmetric polynomial may be represented by partitions. Let $I=(i_1,
\ldots,
92 i_n)$ (i.e. $i_1
\geq i_2
\geq \ldots \geq i_n$) be a partition of length $
\le n$
93 and let $
{\underline x
}^I$ be the monomial
95 {\underline x
}^I = x_1^
{i_1
}x_2^
{i_2
}\ldots x_n^
{i_n
}.
97 A
\textit{monomial form
} $M_I(
{\underline x
})$ on $
{\underline x
}$ indexed by
98 $I$ is the sum of the monomials of the orbit of $
{\underline x
}^I$ under the
101 M_I(
{\underline x
}) =
\sum_{J
\in S_nI
}{\underline x
}^J.
103 The monomial forms constitute naturally a basis of the vector space on the ring
104 of symmetric polynomials: any symmetric polynomial can be represented by a
105 finite linear combination of monomial forms.
108 \subsubsection{Contracted and partitioned representations
}
110 Let $p$ be a symmetric polynomial on a ring $
\mathcal{A
}$, and suppose that it
111 is expressed in the basis of monomial forms.
113 In the
\emph{contracted
} representation of $p$ we replace every monomial form
114 $M_I(x)$ by $x^I$, or by every monomial of $S_nx^I$, its orbit.
116 In the
\emph{partitioned
} representation, we replace every monomial term
117 $cM_I(x)$ where $c$ is a coefficient in $
\mathcal{A
}$, by the list
118 $
[c,i_1,
\ldots ,i_n
]$ and join the whole into one list.
120 \textbf{Example.
} The contracted polynomial associated to $
3x^
4 +
3y^
4 -
2xy^
5 -
121 2x^
5y$ is $
3x^
4 -
2xy^
5$, and the partitioned polynomial is
[[3,
4],
[-
2,
5,
1]].
125 \subsection{Multi-symmetric polynomials
}
127 Here we generalize the symmetric case. We are given an integer $r>
0$ and an
128 $r$-tuple of integers $D=(d_1,
\ldots ,d_r)$.
130 \subsubsection{Group actions
}
132 Let $E_1, E_2,
\ldots ,E_r$ be $r$ arbitrary sets. Denote by $D(E)$ the product
133 $E_1^
{d_1
}\times E_2^
{d_2
}\times \ldots \times E_r^
{d_r
}$.
135 The action of the product of the symmetric groups $S_D=S_
{d_1
}\times S_
{d_2
}
136 \times \ldots \times S_
{d_r
}$ on $D(E)$ is naturally defined as
138 S_D
\times D(E) &
\longrightarrow & D(E) \\
139 \sigma \times A &
\longrightarrow &
140 \sigma A=(
\sigma_1{\underline a
}_1,
\ldots ,
\sigma_r{\underline a
}_r),
142 where $
\sigma = (
\sigma_1,
\ldots ,
\sigma_r)$ with $
\sigma_i \in S_
{d_i
}$. The
143 orbit of $A$ under the action of $S_D$ will be denoted $S_DA$.
145 Similarly, if $X=(
{\underline x
}_1,
\ldots,
{\underline x
}_r)$ is an $r$-tuple
146 such that the $i$th element $
{\underline x
}_i$ is a $d_i$-tuple of variables, we
147 wil denote by $
\mathcal{A
}[X
]$ the set of polynomials in the variables of $X$
148 and with coefficients in $
\mathcal{A
}$. The action of $S_D$ on $
\mathcal{A
}[X
]$
149 is defined as follows:
151 S_D
\times \mathcal{A
}[X
] &
\longrightarrow &
\mathcal{A
}[X
]\\
152 \sigma \times f &
\longrightarrow &
\sigma f \;\; :\;
153 \sigma f(X)= f(
\sigma X).
155 The orbit of $f$ under the action of $S_D$ will be denoted $S_Df$.
158 \subsubsection{Multi-partitions, multi-symmetric polynomials
}
160 A
\textit{multi-partition
}, $I$, of order $r$ is an $r$-tuple of partitions. We
161 will call the
\textit{multi-length
} of $I$ the list of lengths of the partitions
164 Let $p$ be a polynomial in $d_1+
\cdots + d_r$ variables. This polynomial is
165 called
\textit{multi-symmetric
} if it is invariant by $S_D$, that is if $S_D p =
168 A multi-symmetric polynomial may be represented by multi-partitions. Let $X$ be
169 as above and $I=(I_1,
\ldots,I_r)$ be an $r$-tuple of $
\mathbf{N
}^
{d_1
}\times
170 \ldots \times \mathbf{N
}^
{d_r
}$. We will naturally denote by $X^I$ the monomial
172 X^I =
{\underline x
}_1^
{I_1
}\ldots{\underline x
}_r^
{I_r
}.
174 If $I$ is a multi-partition of multi-length less than $D$, we will define the
175 \textit{monomial multi-form
} $M_I(X)$ on $X$ indexed by $I$ as the sum of the
176 monomials of the orbit of $X^I$ under the action of $S_D$:
178 M_I(X) \;=\;
\sum_{J
\in S_DI
} X^J.
180 It is natural to represent a multi-symmetric polynomial by a linear combination
181 of monomial multi-forms over the ring of coefficients of the polynomial.
184 \subsubsection{Contracted form
}
186 Let us now consider a multi-symmetric polynomial with coefficients in a ring
187 $
\mathcal{A
}$ in the variables of $X$. This polynomial is naturally expressed
188 as a finite sum of $cM_I(X)$ where $c
\in \mathcal{A
}$ and $M_I(X)$ is a
189 monomial multi-forme on $X$. A
\textit{contracted form
} associated to a
190 multi-symmetric polynomial consists in replacing in this polynomial each
191 $M_I(X)$ by the monomial $X^I$ or by an other monomial of its orbit $S_DX^I$.
195 \section{Initialization and usage
}
197 The file
\texttt{sym.mac
} includes all the commands for auto-loading. It is
198 ultimately in this file where one must change the path names if
\texttt{SYM
}
199 must be used from another directory than the one where it is installed.
201 The file
\texttt{compile.lisp
} includes the list of files to compile. To execute
202 it one may load it under Lisp or under Maxima by the command
203 \texttt{load("sym/compile")
}. Once the the files of
\texttt{SYM
} are compiled
204 the module can be loaded under Maxima via the file
\texttt{sym.mac
}:
209 If a function's argument is a list, the function will fill in missing values by
210 formal arguments: for the $i$th elementary symmetric function these will be
211 \texttt{ei
}, for the $i$th power function they will be
\texttt{pi
}, and for the
212 $i$th complete (homogeneous) symmetric function they will be
\texttt{hi
}.
214 There are many evaluation modes for polynomials in Maxima:
\texttt{meval
},
215 \texttt{expand
},
\texttt{rat
},
\texttt{ratsimp
}.
\texttt{SYM
} allows a choice
216 of operation mode. On every function call,
\texttt{SYM
} tests if the flag
217 \texttt{oper
} has been changed. If so, the operating mode is modified as
220 \item If
\texttt{oper = meval
} (default), the operations are carried out with
222 \item If
\texttt{oper = expand
}, they are done with
\texttt{expand
}.
223 \item If
\texttt{oper = rat
}, they are done with
\texttt{rat
}.
224 \item If
\texttt{oper = ratsimp
}, they are done with
\texttt{ratsimp
}.
226 The
\texttt{meval
} mode is advantageous in numerical calculations. With formal
227 arguments,
\texttt{rat
} mode is often preferable.
229 To set the flag
\texttt{oper
} to
\texttt{expand
}, for example, it suffices to
230 write
\texttt{oper\ :\ expand;
}.
234 \section{Description of the available functions
}
236 Take $q$ as the minimum of the degree of the polynomial
\texttt{sym
} and the
237 cardinal
\texttt{card
}.
\texttt{lvar
} contains the variables of the polynomial
238 under consideration, thus distinguishing them from any eventual parameters.
241 \subsection{Combinatorics
}
244 \item \texttt{arite(degree,arity,powers)
} \index{arite(degree, arity, powers)
}
245 applies the ``arity theorem'' (A. Valibouze
\textit{Sur l'arit\'e
246 des fonctions
}, European Journal of Combinatorics,
1992?). This function
247 allows to go from a power function of a resolvent in
\texttt{arity
} variables
248 to a power function in
\texttt{degree
} variables. It adds a binomial
249 coefficient to each partition. It is assumed that the power functions are
250 given in the basis of monomial forms, in partitioned representation, in the
251 list
\texttt{powers
}.
252 \item \texttt{card
\_orbit(part,n)
} \index{card
\_orbit(part, n)
}
253 $
\longrightarrow$
\texttt{integer
} \\
254 \texttt{part
} is a partition in the form $
[a_1,m_1,...,a_q,m_q
]$ where
255 $m_i$ is the multiplicity of $a_i$ in the partition. The function computes
256 the cardinal of the orbit of the partition under the action of the symmetric
257 group of degree
\texttt{n
}.
258 \item \texttt{multinomial(r,part)
} \index{multinomial(r, part)
}
259 $
\longrightarrow$
\texttt{integer
} \\
260 where
\texttt{r
} is the weight of the partition
\texttt{part
}. This function
261 returns the associated multinomial coefficient: if the parts of partition
262 \texttt{part
} are $i_1, i_2,
\dots, i_k$, the result is
263 $r!/(i_1!i_2!
\cdots i_k!)$.
264 \item \texttt{card
\_stab(L,eq)
} \index{card
\_stab(L, eq)
}
265 $
\longrightarrow$
\texttt{integer
} \\
266 \texttt{L
} is a list of ordered objects and
\texttt{eq
} is the equality test
267 for them. If the list
\texttt{L
} has length $n$, this function computes the
268 cardinal of the stabilizer of
\texttt{L
} under the action of the symmetric
269 group of order $n$. (The
\emph{stabilizer
} of $L$ is the subgroup of
270 permutations that maps $L$ to $L$, i.e. leaves it invariant.)
271 \item \texttt{permut(L)
} \index{permut(L)
}
272 $
\longrightarrow$
\texttt{list
} \\
273 returns the list of permutations of the list
\texttt{L
}.
278 card_orbit(
[5,
2,
1,
3],
6);
280 card_stab(
[a, a, c, b, b
], eq);
282 card_stab(
[1,
1,
2,
3,
3], "=");
285 Here the list of power functions is $
[x^
2y^
4,x^
5y^
5 + x^
2,x^
2y^
2+x^
3]$, the
286 arity is
2, and the degree is
4. (This function is useful in the calculation of
289 arite(
4,
2,
[[[1,
2,
4]],
[[1,
5,
5],
[1,
2]],
[[1,
2,
2],
[1,
3]]]);
291 [[[1,
2,
4]],
[[1,
5,
5],
[3,
2]],
[[1,
2,
2],
[3,
3]]]
296 \subsection{On polynomials in one variable
}
299 \item \texttt{ele2polynome(cele,z)
} \index{ele2polynome(cele,z)
}
300 $
\longrightarrow$
\texttt{polynomial
} \\
301 returns the polynomial in
\texttt{z
} s.t. the elementary symmetric functions of
302 its roots are in the list
\texttt{cele
}.
\texttt{cele
}=$
[n,e_1,
\dots,e_n
]$
303 where $n$ is the degree of the polynomial and $e_i$ the $i$th elementary
305 \item \texttt{polynome2ele(poly,z)
} \index{polynome2ele(poly,z)
}
306 $
\longrightarrow$
\texttt{cele
} \\
307 produces the list
\texttt{cele
}=$
[n,e_1,
\dots,e_n
]$ where $n$ is the degree
308 of the polynomial in the variable
\texttt{z
} and $e_i$ the $i$th elementary
309 symmetric function of its roots.
314 ele2polynome(
[2,e1,e2
],z);
318 polynome2ele(x^
7-
14*x^
5 +
56*x^
3 -
56*x +
22, x);
320 [7,
0, -
14,
0,
56,
0, -
56, -
22]
322 ele2polynome(
[7,
0, -
14,
0,
56,
0, -
56, -
22], x);
325 x -
14 x +
56 x -
56 x +
22
330 \subsection{Changing representations
}
332 A symmetric polynomial may be given in many forms: extended, contracted, or
333 partitioned. The functions described below-dessous allow passing from one form
334 to another. Some of them additionally test for symmetry.
336 In all cases the variables of the polynomial are contained in the list
339 \item \texttt{tpartpol(poly,lvar)
} \index{tpartpol(polynomial, lvar)
}
340 $
\longrightarrow$
\texttt{ppart
} \\
341 \texttt{partpol(poly, lvar)
} \index{partpol(poly,lvar)
}
342 $
\longrightarrow$
\texttt{ppart
} \\
343 return, in increasing (resp. decreasing) lexicographic order, the partitioned
344 polynomial associated to the polynomial given in extended form. If the
345 polynomial is not symmetric, the function
\texttt{tpartpol
} returns an error.
346 \item \texttt{tcontract(poly,lvar)
} \index{tcontract(poly, lvar)
}
347 $
\longrightarrow$
\texttt{pc
} \\
\texttt{contract(poly,lvar)
}
348 \index{contract(poly, lvar)
} $
\longrightarrow$
\texttt{pc
} \\ act respectively
349 like
\texttt{tpartpol
} and
\texttt{partpol
} in recreating the contracted
351 \item \texttt{cont2part(pc,lvar)
} \index{cont2part(pc, lvar)
}
352 $
\longrightarrow$
\texttt{ppart
} \\ returns the partitioned form
353 \texttt{ppart
} of a symmetric polynomial given in its contracted form
355 \item \texttt{part2cont(ppart,lvar)
} \index{part2cont(ppart, lvar)
}
356 $
\longrightarrow$
\texttt{pc
} \\ returns the contracted form
\texttt{pc
} of a
357 symmetric polynomial given in its partitioned form
\texttt{ppart
}.
358 \item \texttt{explose(pc,lvar)
} \index{explose(pc, lvar)
} $
\longrightarrow$
359 \texttt{psym
} \\ returns the extended form
\texttt{psym
} of a symmetric
360 polynomial given in its contracted form
\texttt{pc
}.
365 tpartpol(x^
3-y,
[x,y
]);
367 manque des monomes (no monomials)
369 Consider the symmetric polynomial in $
\mathbb{Z
}[x,y,z
]$ (the ring of
370 polynomials in $x,y,z$ with coefficients in $
\mathbb{Z
}$) of which one
371 contracted form is $
2a^
3bx^
4y$. We will perform various changes of
372 representations on it:
379 psym : explose(pc, lvar);
381 2 a b y z +
2 a b x z +
2 a b y z
383 +
2 a b x z +
2 a b x y +
2 a b x y
385 \normalsize And if we apply to it the function
\texttt{contract
} we recover a
389 contract(psym, lvar);
392 tcontract(psym, lvar);
395 tpartpol(psym, lvar);
401 ppart : cont2part(pc, lvar);
404 part2cont(ppart, lvar);
412 \subsection{Functions related to partitions
}
415 \item \texttt{kostka(part1,part2)
} \index{kostka(part1,part2)
}
416 $
\longrightarrow$ integer \\
417 (written by P.Esperet) returns the Kostka number associated to the
418 partitions
\texttt{part1
} and
\texttt{part2
}.
419 \item \texttt{treinat(part)
} \index{treinat(part)
}
420 $
\longrightarrow$ list of partitions
421 inferior in the natural order to the partition
\texttt{part
} and of the same
423 \item\texttt{treillis(n)
} \index{treillis(n)
}
424 $
\longrightarrow$ list of partitions of weight $n$.
425 \item \texttt{lgtreillis(n,m)
} \index{lgtreillis(n,m)
}
426 $
\longrightarrow$ list of partitions of weight $n$ and length $m$.
427 \item \texttt{ltreillis(n,m)
} \index{ltreillis(n,m)
}
428 $
\longrightarrow$ list of partitions of weight $n$ and length $
\le m$.
432 kostka(
[3,
3,
3],
[2,
2,
2,
1,
1,
1]);
437 [[4,
0],
[3,
1],
[2,
2]]
439 [[4],
[3,
1],
[2,
2],
[2,
1,
1],
[1,
1,
1,
1]]
442 treinat(
[1,
1,
1,
1,
1]);
443 [[5],
[4,
1],
[3,
2],
[3,
1,
1],
444 [2,
2,
1],
[2,
1,
1,
1],
[1,
1,
1,
1,
1]]
446 [[5],
[4,
1],
[3,
2]]
452 \subsection{Orbit calculations
}
455 \item \texttt{orbit(poly,lvar)
} \index{orbit(poly, lvar)
}
456 $
\longrightarrow$ $S_n$(poly) \\
457 produces the list of polynomials in the orbit of
\texttt{poly
}
458 under the action of the symmetric group $S_n$. The $n$ variables of
459 \texttt{poly
} are in the list
\texttt{lvar
}.
460 \item \texttt{multi
\_orbit(polyl,
[lvar$_
{1}$,lvar$_
{2}$,
\ldots ,lvar$_
{r
}$
])
461 \index{multi
\_orbit(poly,
[lvar$_
{1}$,lvar$_
{2}$,
\ldots ,lvar$_
{r
}$
])
}
462 $
\longrightarrow$ $
{S_D
}$(poly)
}\\
463 the variables of
\texttt{poly
} are in the lists
464 \texttt{lvar$_1$,lvar$_
{2}$,
\ldots ,lvar$_
{r
}$
} on which act, respectively,
465 the symmetric groups $S_
{d_1
},S_
{d_2
},
\ldots ,S_
{d_r
}$. This function
466 returns the orbit of
\texttt{poly
} under the action of the product $S_D$ of
467 these symmetric groups.
472 orbit(a*x+b*y,
[x,y
]);
473 [a y + b x, b y + a x
]
474 orbit(
2*x+x**
2,
[x,y,z
]);
476 [z +
2 z, y +
2 y, x +
2 x
]
477 multi_orbit(a*x+b*y,
[[x,y
],
[a,b
]]);
478 [b y + a x, a y + b x
]
479 multi_orbit(x+y+
2*a,
[[x,y
],
[a,b,c
]]);
481 [y + x +
2 c, y + x +
2 b, y + x +
2 a
]
486 \subsection{The contracted product of two symmetric polynomials
}
489 \item\texttt{multsym(ppart1,ppart2,n)
}\index{multsym(ppart1,ppart2,n)
}
490 $
\longrightarrow$
\texttt{pc
} \\
491 calculates the product of two symmetric polynomials in
\texttt{n
} variables
492 given in the partitioned forms
\texttt{part1
} and
\texttt{part2
}.
494 Given two symmetric polynomials
\texttt{p1
} and
\texttt{p2
}. We will
495 calculate their product by a classical method for the product of two
496 arbitrary polynomials, and then obtain this product by
\texttt{multsym
}. We will
497 work in $
\mathbb{Z
}[x,y
]$.
502 prod : expand(p1*p2);
507 We verify that this is the extended form of the product obtained with
512 [[1,
3,
1],
[2,
2,
2]]
513 ppart1 : partpol(p1,
[x,y
]);
515 ppart2 : partpol(p2,
[x,y
]);
517 multsym(ppart1, ppart2,
2);
518 [[1,
3,
1],
[2,
2,
2]]
523 \subsection{Basis changes
}
525 In general, the list
\texttt{lvar
} will represent the list of variables of
528 \item \texttt{elem(cel,sym,lvar)
} \index{elem(cel,sym,lvar)
}
529 $
\longrightarrow$ $P(e_1,
\dots,e_q)$ \\
530 decomposes the symmetric polynomial
\texttt{sym
} into the elementary symmetric
531 functions contained in the list
\texttt{cel
} (
3 possible flags).
532 \item \texttt{multi
\_elem(
[cel$_
{1}$,
\dots,cel$_
{r
}$
],multi
\_pc,
[lvar$_
{1}$,
534 \index{multi
\_elem(
[cel$_
{1}$,
\dots,cel$_
{p
}$
],multi
\_pc,
[lvar$_
{1}$,
536 $
\longrightarrow$ P(cel$_
{1}$,
\dots,cel$_
{r
}$) \\
537 gives a polynomial
\texttt{multi
\_pc} multi-symmetric under the action
538 of $S_D$, in multi-contracted form. It is decomposed successively into each
539 of the groups
\texttt{cel$_
{j
}$
} of elementary symmetric functions of the set
540 $
{\underline x
}_j$. The list of variables
\texttt{lvar
}$_j$ allows reading
541 the polynomial. The variables of $
{\underline x
}_j$ are found in the
542 expression of the multi-contracted polynomial.
543 \item \texttt{pui(cpui,sym,lvar)
} \index{pui(cpui, sym, lvar)
}
544 $
\longrightarrow$ $P(p_1,
\dots,p_q)$ \\ decomposes a symmetric polynomial into
545 power functions (
3 flags possible).
546 \item \texttt{multi
\_pui(
[cpui$_
{1}$,
\ldots, cpui$_
{p
}$
],multi
\_pc,
[lvar$_
{1}$,
\ldots,var$_
{p
}$
])
}
547 \index{multi
\_pui(
[cpui$_
{1}$,
\ldots,cpui$_
{p
}$
], multi
\_pc,
[lvar$_
{1}$,
\ldots,lvar$_
{p
}$
])
}
548 $
\longrightarrow$ P(cpui$_
{1}$,
\ldots,cpui$_
{p
}$) \\
549 acts like
\texttt{multi
\_elem} in decomposing the multi-symmetric polynomial
550 into power functions.
552 If the symmetric polynomial is in a contracted form, the flag
\texttt{elem
}
553 should be
1 (its default value).
555 Let us consider the symmetric polynomial $x^
4+y^
4+z^
4+t^
4 -
2(x(y+z+t) + y(z+t)
556 + z t)$ of which a contracted form is $x^
4 -
2 y z$.
561 elem(
[],x**
4 -
2*y*z,
[x,y,z
]);
564 e1 -
4 e2 e1 +
4 e3 e1 +
2 e2 -
2 e2 -
4 e4
567 Let us now suppose that the number of variables of the symmetric polynomial is
3
568 (i.e. $t=
0$). This value
3 must be noted at the head of the list
\texttt{cel
} as
572 elem(
[3],x^
4 -
2*y*z,
[x,y,z
]);
575 e1 -
4 e2 e1 +
4 e3 e1 +
2 e2 -
2 e2
578 If, in addition, the first elementary symmetric function has a particular value,
579 say $e_1=
7$, it should be in the second position of the list
\texttt{cel
}:
582 elem(
[3,
7],x^
4-
2*x*y,
[x,y
]);
585 28 e3 +
2 e2 -
198 e2 +
2401
588 The $(i+
1)$th element of the list
\texttt{cel
} should be the $i$th elementary
589 symmetric function. If the symmetric polynomial is in an extended form the flag
590 \texttt{elem
} should be
2, and if it is in a partitioned form it should be
3:
594 elem(
[3,f1,f2,f3
],x^
4+y^
4+z^
4 -
2*(x*y + x*z + y*z),
[x,y,z
]);
597 f1 -
4 f2 f1 +
4 f3 f1 +
2 f2 -
2 f2
600 elem((
[],
[[1,
2,
1]],
[]);
604 It is the same for the flag
\texttt{pui
} associated to the function
\texttt{pui
}.
606 For the function
\texttt{pui
}, if formal arguments need to be added to
607 \texttt{cpui
} we remember the cardinal of the alphabet, if it is supplied, to
608 calculate the power functions as a function of the first. We then use the
609 function
\texttt{puireduc
} (see later).
612 multi_elem(
[[2,e1,e2
],
[2,f1,f2
]],a*x+a^
2+x^
3,
[[x,y
],
[a,b
]]);
615 -
2 f2 + f1 + e1 f1 -
3 e1 e2 + e1
617 multi_pui(
[[2,p1,p2
],
[2,t1,t2
]],a*x+a^
2+x^
3,
[[x,y
],
[a,b
]]);
621 t2 + p1 t1 + ------- - ---
626 \item \texttt{ele2pui(m,cel)
} \index{ele2pui(m,cel)
}
627 $
\longrightarrow$
\texttt{cpui
} \\
628 performs the passage from the elementary symmetric functions to the power
629 functions $p_1,
\ldots,p_m$.
630 \item \texttt{pui2ele(n,cpui)
} \index{pui2ele(n,cpui)
}
631 $
\longrightarrow$
\texttt{cel
} \\
632 performs the passage from the power functions to the elementary symmetric
633 functions. If the flag
\texttt{pui2ele
} is set to
\texttt{girard
}, one gets
634 the list of the first
\texttt{n
} elementary symmetric functions
635 $e_1,
\dots,e_n$, and if it is set to
\texttt{close
}, one gets the $n$th
636 elementary symmetric function.
638 Below, we are looking for the first
3 elementary symmetric functions. We are
639 not supplying values for the first
3 power functions, so
\texttt{pui2ele
} adds
640 formal parameters
\texttt{p1
},
\texttt{p2
},
\texttt{p3
}.
646 [3, p1, --- - --, -- - ----- + ---
]
650 Below we are looking for the first
4 elementary symmetric functions in terms of
651 the power functions such that $p_1=
2$. The cardinal of the alphabet being
3,
652 the fourth elementary symmetric function is thus null. Subsequently the
653 function
\texttt{ele2pui
} calculates the first
3 power functions in terms of the
654 first
3 elementary symmetric functions.
659 [3,
2 , ------, -------------,
0]
663 [3, e1, e1 -
2 e2,
3 e3 -
3 e1 e2 + e1
]
666 Here, as the cardinal is
2, the
3d elementary symmetric function is null:
671 [2, e1, e1 -
2 e2, e1 -
3 e1 e2
]
675 \item \texttt{puireduc(n,cpui)
} \index{puireduc(n,cpui)
}
676 $
\longrightarrow$
[\texttt{card
}, $p_1,p_2,p_3,
\dots,p_n$
] \\
677 allows finding the power functions up to order
\texttt{n
} by knowing those
678 of order up to
\texttt{m
}. The cardinal (number of variables) is specified
681 If the cardinal $n$ of the alphabet is given, one may express all the power
682 functions in terms of the first $n$. We take, for example,
2 as the cardinal
683 and ask for the first
3 power functions:
689 [2, p1, p2, ------- - ---
]
694 \item \texttt{ele2comp(m,cel)
} \index{ele2comp(m,cel)
}
695 $
\longrightarrow$
\texttt{ccomp
} \\
696 effects the passage from the elementary symmetric functions to the complete
697 (homogeneous) symmetric functions $h_1,
\ldots,h_m$.
698 \item \texttt{pui2comp(n,cpui)
} \index{pui2comp(n,cpui)
}
699 $
\longrightarrow$
\texttt{ccomp
} \\
700 effects the passage from the power functions to the complete symmetric
701 functions $h_1,
\ldots,h_n$.
702 \item \texttt{comp2ele(n,ccomp)
} \index{comp2ele(n,ccomp)
}
703 $
\longrightarrow$
\texttt{cel
} \\
704 effects the passage from the complete symmetric functions to the elementary
705 symmetric functions $e_1,
\ldots,e_n$.
706 \item \texttt{comp2pui(n,ccomp)
} \index{comp2pui(n,ccomp)
}
707 $
\longrightarrow$
\texttt{cpui
} \\
708 effects the passage from the complete symmetric functions to the power
709 functions $p_1,
\ldots,p_n$.
710 \item \texttt{mon2schur(part)
} \index{mon2schur(part)
}
711 $
\longrightarrow$
\texttt{pc
} \\
712 effects the passage from the monomial forms to the Schur functions. The
713 result
\texttt{pc
} is thus a symmetric polynomial in a contracted form.
714 \item \texttt{schur2comp(P,
[$h_
{i_1
}$,
\dots,$h_
{i_q
}$
])
}
715 \index{schur2comp(P,L)
}
716 $
\longrightarrow$
\texttt{list of lists
} \\
717 effects the passage from the Schur functions, denoted $S_I$, to the complete
718 functions. The polynomial
\texttt{P
} is a polynomial in the complete
719 functions $h_
{i_k
}$.
\emph{It is necessary
} to denote these complete
720 functions by an
\texttt{h
} concatenated with an integer.
723 The function
\texttt{mon2schur
} allows writing a Schur function in the basis of
724 monomial forms represented in their contracted form. The Schur function is
725 given by a partition
\footnote{A
\emph{Schur function
} is a certain kind of
726 symmetric polynomial. Schur polynomials are connected with Vandermonde
727 determinants, and with Young tableaux, among other things. For some
728 background, see, e.g. D.E. Knuth, Vol.
3,
2nd Ed.,
\S5.1
.4, and Exercise
33
730 We will first verify that the Schur function associated with the partition
731 $(
1^
3)$ is equal to the
3d elementary symmetric function and that the one
732 associated with the partition $(
3)$ is equal to the
3d complete symmetric
733 function (this follows from a general result).
740 x1 x2 x3 + x1 x2 + x1
747 Let us see with an example how, by a circular sequence of changes of basis, we
748 indeed recover what is given initially:
751 a1 : pui2comp(
3,
[3]);
754 [3, p1, -- + ---, -- + ----- + ---
]
756 a2 : comp2ele(
3, a1);
759 [3, p1, --- - --, -- - ----- + ---
]
766 [3, h1,
2 h2 - h1 ,
3 h3 -
3 h1 h2 + h1
]
770 [3, h1, h1 - h2, h3 -
2 h1 h2 + h1
]
776 Below we show how to express a Schur function in the basis of monomial forms (in
777 \texttt{c48
}), of complete functions (in
\texttt{c50
}), elementary symmetric
778 functions (in
\texttt{c51
}), and power functions (in
\texttt{c52
}).
781 (c48) mon2schur(
[1,
2]);
784 (d48)
2 x1 x2 x3 + x1 x2
786 (c49) comp2ele(
3,
[]);
789 (d49)
[3, h1, h1 - h2, h3 -
2 h1 h2 + h1
]
791 (c50) elem(d49, d48,
[x1,x2,x3
]);
795 (c51) elem(
[], d48,
[x1,x2,x3
]);
799 (c52) pui(
[], d48,
[x1,x2,x3
]);
806 (c53) schur2comp(h1*h2-h3,
[h1,h2,h3
]);
812 (c54) schur2comp(a*h3,
[h3
]);
819 With the last commands we decomposed $h_1 h_2 - h_3$ and $h_3$ in the basis of
824 \subsection{Resolvents
}
826 Let $p$ be a polynomial of one variable $x$ and of degree $n$ on a ring $A$.
827 Let $f
\in A
[x_1,x_2,
\ldots,x_n
]$ be a transformation function and $S_nf$ its
828 orbit under the action of the symmetric group $S_n$. Then the
\emph{resolvent
}
829 of $p$ by $f$, denoted $f_*(p)$, is the unitary polynomial:
831 f_*(p)(y) =
\prod_{h
\in S_nf
} (y - h(
\alpha_1,
\ldots ,
\alpha_n)),
833 where $
\alpha_1,
\ldots,
\alpha_n$ are the roots of $p$.
835 If the transformation function is
837 \item a polynomial in a single variable ,
838 \item a linear polynomial,
839 \item a linear polynomial whose non-zero coefficients alternate in sign,
840 \item a linear polynomial with coefficients equal to
1,
841 \item a polynomial symmetric in its variables,
842 \item a monomial whose coefficient is
1,
843 \item the function of the Cayley resolvent,
844 \item of the Lagrange resolvent,
845 \item an arbitrary polynomial,
847 then each associated resolvent is respectively called
849 \item \textit{unitary
},
850 \item \textit{linear
},
851 \item \textit{alternating
},
853 \item \textit{symmetric
},
854 \item \textit{product
},
855 \item \textit{Cayley
},
856 \item \textit{Lagrange
},
857 \item \textit{general
}.
859 As we will see later, there are also other resolvents (dihedral, Klein,
\dots).
861 We define the
\textit{arity
} of a function as the number of variables that
862 appear in its expression. In general if a function is of arity $k$ we use
863 $f(x_1,
\ldots,x_k)$ in place of $f(x_1,
\ldots ,x_k ,
\ldots ,x_n)$. Let us give
864 examples for each of these cases:
866 \item $f(x)=x^
7-x+
1$ of arity
1,
867 \item $f(x_1,x_2) = x_1+
3x_2$ of arity
2,
868 \item $f(x_1,x_2,x_3,x_4) = x_1 -x_2 +
3x_3-
3x_4$ of arity
4,
869 \item $f(x_1,x_2,x_3) = x_1+x_2+x_3$ of arity
3,
870 \item $f(x_1,x_2,x_3) =
3x_1x_2 +
3x_2x_3 +
3x_1x_3$ of arity
3,
871 \item $f(x_1,x_2) =x_1x_2$ of arity
2,
872 \item $f(x_1,x_2,x_3,x_4,x_5)=(x_1x2+x_2x_3+x_3x_4+x_4x_5+x_5x_1 -
873 (x_1x_3+x_3x_5+x_5x_2+x_2x_4+x_4x_1))^
2$
874 \item $f(x_1,x_2,x_3) =
\epsilon x_1 +
\epsilon^
2 x_2 +
\epsilon^
3 x_3$, where
875 $
\epsilon$ is a third root of unity,
876 \item $f(x_1,x_2,x_3) = x_1 +
2x_2x_3$ of arity
3.
878 It is clear that a sum or product resolvant is also symmetric, and that a sum or
879 alternating resolvent is also linear.
881 The calculations of these resolvents are done in two ways. Either by the
882 function
\texttt{resolvante
} or by a specific name preceded by
883 \texttt{resolvante
}. The list of possible functions is thus:
885 \item \texttt{resolvante
\_produit\_sym(p, x)
}
886 \index{resolvante
\_produit\_sym(p, x)
} which calculates the list of all the
887 product resolvents of the polynomial
\texttt{p(x)
}.
888 \item \texttt{resolvante
\_unitaire(p,q,x)
} \index{resolvante
\_unitaire(p, q, x)
}
889 which calculates the resolvant of the polynomial $p(x)$ by the polynomial
890 $q(x)$. That is, $
\prod_{p(
\alpha)=
0}(y-q(
\alpha))$.
891 \item \texttt{resolvante
\_alternee1(p,x)
} \index{resolvante
\_alternee1(p, x)
}
892 which calculates the transformation of $p(x)$ of degree $n$ by the function
893 $
\prod_{1\leq i<j
\leq n-
1} (x_i-x_j)$.
894 \item \texttt{resolvante
\_klein(p,x)
} \index{resolvante
\_klein(p, x)
} which
895 calculates the transformation of $p(x)$ by the function $x_1x_2+x_3$, and is
896 so named because it is associated to the Klein group.
897 \item \texttt{resolvante
\_klein3(p,x)
} \index{resolvante
\_klein3(p, x)
} which
898 calculates the transformation of $p(x)$ by the function $x_1x_2x_4+x_4$.
899 \item \texttt{resolvante
\_vierer(p,x)
} \index{resolvante
\_vierer(p, x)
} which
900 calculates the transformation of $p(x)$ by the function $x_1x_2-x_3x_4$.
901 \item \texttt{resolvante
\_diedrale(p,x)
} \index{resolvante
\_diedrale(p, x)
}
902 which calculates the transformation of $p(x)$ by the function $x_1x_2+x_3x_4$.
903 \item \texttt{resolvante
\_bipartite(p,x)
} \index{resolvante
\_bipartite(p, x)
}
904 which calculates the transformation of $p(x)$ by the function $x_1x_2
\ldots
905 x_
{n/
2}+x_
{n/
2+
1}\ldots x_n$. The degree of $p$ must necessarily be even.
906 \item \texttt{resolvante(p, x, f,
[x1,x2,
\ldots,xk
])
}
907 \index{resolvante(p,x,f,
[x1,x2,
\ldots,xk
])
} which calculates the transformation
908 of $p(x)$ by the function $f$ of arity $k$ in the variables
909 $x_1,x_2,
\ldots,x_k$.
912 It is essential for the efficiency of the computations to include in the list of
913 variables of $f$ only those which appear effectively in its expression. Before
914 calling the function
\texttt{resolvante
}, according to the type of resolvent
915 calculated, one may set the flag
\texttt{resolvante
} so as to use the most
916 suitable algorithm. According to the kinds of resolvent cited above, the flag
917 \texttt{resolvante
} should be set respectively to
929 The notion of resolvent can be gneralized by the transformation of $r$
930 polynomials by a function depending on $r$ blocks of variables:
932 \item \texttt{direct
} \index{direct
}
933 (
[$P_1,P_2,
\ldots,P_r$
],y,f,
[$lvar_1,lvar_2,
\ldots ,lvar_r$
])
934 $
\longrightarrow$ $f_*(P_1,P_2,
\ldots, P_r)(y)$ \\
935 which, given the $r$ polynomials $P_1,
\ldots,P_r$ in the variable $y$, of
936 degrees $d_1,
\ldots ,d_r$, returns the product polynomial of $(y - h(a^
{(
1)
},
937 \ldots, a^
{(p)
}))$ where $a^
{(i)
}$ is the $d_i$-tuple of roots of $P_i$ for
938 $i=
1,
\dots,r$ and where $h$ runs through the whole orbit of the function $f$
939 under the action of the product of the symmetric groups $S_
{d_1
}\times \cdots
940 \times S_
{d_r
}$. We put in $lvar_i$ the variables of $f$ which appear
941 effectively in its expression. That is, $lvar_i$ may include fewer than $d_i$
942 variables. The function
\texttt{direct
} will deduce the action of the
943 symmetric group $S_
{d_i
}$.
949 resolvante(x^
7-
14*x^
5+
56*x^
3-
56*x+
22, x, x^
3-
1,
[x
]);
952 y +
7 y -
539 y -
1841 y +
51443 y
955 +
315133 y +
376999 y +
125253
957 resolvante : lineaire$
958 resolvante(x^
4-
1, x, x1+
2*x2+
3*x3,
[x1,x2,x3
]);
960 y +
80 y +
7520 y +
1107200 y
962 +
49475840 y +
344489984 y +
655360000
964 resolvante : generale$
965 resolvante(x^
4-
1, x, x1+
2*x2+
3*x3,
[x1,x2,x3
]);
967 y +
80 y +
7520 y +
1107200 y
969 +
49475840 y +
344489984 y +
655360000
971 resolvante(x^
4-
1, x, x1+
2*x2+
3*x3,
[x1,x2,x3,x4
]);
973 y +
80 y +
7520 y +
1107200 y
975 +
49475840 y +
344489984 y +
655360000
977 direct(
[x^
4-
1], x, x1+
2*x2+
3*x3,
[[x1,x2,x3
]]);
980 y +
80 y +
7520 y +
1107200 y
982 +
49475840 y +
344489984 y +
655360000
984 resolvante_diedrale(x^
5-
3*x^
4+
1, x);
986 x -
21 x -
81 x -
21 x +
207 x +
1134 x +
2331 x -
945 x
989 -
4970 x -
18333 x -
29079 x -
20745 x -
25326 x -
697
992 We verify that the function
\texttt{direct
} is a generalisation of the function
996 resolvante : lineaire$
997 resolvante(x^
4-
1, x, x1+
2*x2,
[x1,x2
]);
999 y +
13 y +
611 y -
625
1000 direct(
[x^
4-
1], x, x1+
2*x2,
[[x1,x2,x3
]]);
1002 y +
13 y +
611 y -
625
1005 The result of this last calculation was the same as
1007 direct(
[x^
4-
1], x, x1+
2*x2,
[[x1,x2
]]);
1009 As it is more efficient, it is advisable not to include variables that do not
1010 appear in the expression of the transformation function.
1013 resolvante:lineaire$
1014 resolvante(x^
4-
1, x, x1+x2+x3,
[x1,x2,x3
]);
1017 resolvante:symetrique$
1019 resolvante(x^
4-
1, x, x1+x2+x3,
[x1,x2,x3
]);
1022 resolvante:lineaire$
1023 resolvante(x^
4+x+
1, x, x1-x2,
[x1,x2
]);
1025 y +
8 y +
26 y -
112 y +
216 y +
229
1026 resolvante:alternee$
1027 resolvante(x^
4+x+
1, x, x1-x2,
[x1,x2
]);
1029 y +
8 y +
26 y -
112 y +
216 y +
229
1030 resolvante:generale$
1031 resolvante(x^
4+x+
1, x, x1-x2,
[x1,x2
]);
1033 y +
8 y +
26 y -
112 y +
216 y +
229
1036 We calculate below a direct image in two different ways. The first displays the
1037 intermediate calculations done by the function
\texttt{direct
}. One may change
1038 the flag
\texttt{direct
}. The default is
\texttt{puissances
}, which means that
1039 the function
\texttt{multi
\_pui} is used. If we set
\texttt{direct :
1040 elementaire
}, the function
\texttt{direct
} uses the function
1041 \texttt{multi
\_elem}, generally of lower performance.
1044 l : pui_direct(multi_orbit(a*x+b*y,
[[x,y
],
[a,b
]]),
[[x,y
],
[a,b
]],
[2,
2]);
1047 [a x,
4 a b x y + a x
]
1049 m: multi_elem(
[[2,e1,e2
],
[2,f1,f2
]], l
[1],
[[x,y
],
[a,b
]]);
1053 n: multi_elem(
[[2,e1,e2
],
[2,f1,f2
]], l
[2],
[[x,y
],
[a,b
]]);
1056 8 e2 f2 -
2 e1 f2 -
2 e2 f1 + e1 f1
1058 pui2ele(
2,
[2,m,n
]);
1061 [2, e1 f1, -
4 e2 f2 + e1 f2 + e2 f1
]
1066 y - e1 f1 y -
4 e2 f2 + e1 f2 + e2 f1
1068 direct(
[z^
2-e1*z+e2, z^
2-f1*z+f2
], z, b*v+a*u,
[[u, v
],
[a, b
]]);
1071 y - e1 f1 y -
4 e2 f2 + e1 f2 + e2 f1
1075 \item\texttt{pui
\_direct($
[f_1,
\ldots,f_q
]$,
[$lvar_1,
\ldots,lvar_p$
],
1076 [$d_1,d_2,
\ldots,d_p$
])
} \\
1078 Let $f$ be a polynomial in $r$ blocks of variables $lvar_1,
\ldots,lvar_r$.
1079 Let $c_i$ be the number of variables in $lvar_i$ and let $S_C$ be the product
1080 of the $r$ symmetric groups $S_
{c_i
}$ of degrees $c_1,
\dots,c_r$. This group
1081 acts naturally on $f$. The list
\texttt{orbite
} is the orbit, denoted $S_Cf$,
1082 of the function $f$ under the action of $S_C$. (This list may be obtained via
1083 the function
\texttt{multi
\_orbit}). The $d_i$ are integers such that
1084 $c_1
\leq d_1, c_2
\leq d_2,
\ldots, c_p
\leq d_p$. We denote by $S_D$ the
1085 product of the symmetric groups $S_
{d_1
} \times S_
{d_2
} \times \ldots \times
1088 The function
\texttt{pui
\_direct} returns the first $N$ power functions of
1089 the orbit $S_Df$ pf the function $f$ deduced from the power functions of the
1090 orbit $S_Cf$ where $N$ is the cardinal of $S_Df$.
1092 The result is returned in multi-contracted form relative to $S_D$ (i.e. only
1093 one element is kept per orbit under the action of $S_D$).
1099 pui_direct(
[b*y + a*x, a*y + b*x
], L,
[2,
2]);
1102 [a x,
4 a b x y + a x
]
1104 pui_direct(
[b*y + a*x, a*y + b*x
], L,
[3,
2]);
1107 [2 a x,
4 a b x y +
2 a x ,
3 a b x y +
2 a x ,
1110 12 a b x y +
4 a b x y +
2 a x ,
1113 10 a b x y +
5 a b x y +
2 a x ,
1115 3 3 3 3 4 2 4 2 5 5 6 6
1116 40 a b x y +
15 a b x y +
6 a b x y +
2 a x
]
1118 pui_direct (
[y+x+
2*c, y+x+
2*b, y+x+
2*a
],
[[x,y
],
[a,b,c
]],
[2,
3]);
1121 [3 x +
2 a,
6 x y +
3 x +
4 a x +
4 a ,
1124 9 x y +
12 a x y +
3 x +
6 a x +
12 a x +
8 a
]
1127 Evidently, we find the same result by
1130 pui_direct(
[y+x+
2*a
],
[[x,y
],
[a
]],
[2,
3]);
1133 [3 x +
2 a,
6 x y +
3 x +
4 a x +
4 a ,
1136 9 x y +
12 a x y +
3 x +
6 a x +
12 a x +
8 a
]
1142 \section{Meaning of objects
}
1145 \texttt{card
} : the cardinal of the set of variables with which we are working.
1147 \texttt{$e_k$
} : $k$-th elementary symmetric function $
\sum_{i_1<i_2<
\cdots<
1148 i_k
} x_
{i_1
} x_
{i_2
} \cdots x_
{i_k
}$.
1150 \texttt{$p_k$
} : $k$-th power function $
\sum_i x_i^k$.
1152 \texttt{$h_k$
} : $k$-th complete (homogeneous) symmetric function $
\sum_{i_1
\le
1153 i_2
\le \cdots\le i_k
} x_
{i_1
} x_
{i_2
} \cdots x_
{i_k
}$.
1155 \texttt{ele
} =
[$e_1,e_2,
\ldots,e_n$
], $n$ given in the function call.
1157 \texttt{cele
} =
[card, $e_1,e_2,
\ldots,e_n$
]
1159 \texttt{pui
} =
[$p_1,p_2,p_3,
\ldots,p_m$
], $m$ given in the function call.
1161 \texttt{cpui
} =
[card, $p_
{1},p_
{2},p_
{3},
\ldots,p_
{m
}$
].
1163 \texttt{ccomp
} =
[card, $h_
{1},h_
{2},h_
{3},
\ldots,h_
{m
}$
].
1165 \texttt{sym
} : symmetric polynomial of unspecified representation.
1167 \texttt{fmc
} : contracted monomial form.
1169 \texttt{part
} : partition.
1171 \texttt{tc
} : contracted term.
1173 \texttt{tpart
} : partitioned term.
1175 \texttt{psym
} : symmetric polynomial in extended form.
1177 \texttt{pc
} : symmetric polynomial in contracted form.
1179 \texttt{multi
\_pc} : multi-symmetric polynomial in multi-contracted form under
1182 \texttt{ppart
} : symmetric polynomial in partitioned form.
1184 \texttt{P($x_1,
\ldots,x_q$)
} : polynomial in $x_1,
\ldots,x_q$.
1186 \texttt{lvar
} : list of variables.
1188 $
[lvar_1,
\ldots,lvar_r
]$ : list of lists of variables.
1192 \addcontentsline{toc
}{section
}{Index
}