A symmetric function is a polynomial or rational function (quotient of polynomials) in n variables which remains invariant no matter how you permute variables (e.g. swap x1 with x2). They feature prominently in Galois theory. The elementary symmetric functions appear as the coefficients of a polynomial in n indeterminates (i.e. the coefficients of f(t) = (t - x1)···(t - xn) ), and the fundamental theorem of symmetric functions says that any symmetric function can be expressed as a polynomial or rational function of elementary symmetric functions. When the original function isn't symmetric, we can still say something interesting.

Theorem: Let g(x) be any polynomial where x = (x1, ..., xn) are n variables, and let s1, ..., sn be the elementary symmetric functions in n variables. Then g(x) can be written as a linear combination of monomials

x1ν1 x2ν2 ··· xnνn

such that νii - 1 and the coefficients of the monomials are polynomials in the si.

This theorem, seemingly due to Emil Artin, is a slight generalisation of the fundamental theorem of symmetric functions. It gives the closest possible expression of any polynomial in terms of symmetric functions no matter if the original polynomial is symmetric or not. Or if you prefer, the fundamental theorm of symmetric functions comes as an easy corollary to this theorem.

The corollary is obvious. Observe that the nature of monomials is such that they can't be symmetrised, because the powers in the monomial have to be nondecreasing by indices. Thus, if the original polynomial g(x) was symmetric, then the only way it can still be symmetric after being written in this form is if the only monomial with nonzero coefficient is the one for which all the νi are zero, i.e. the constant term. But then the constant term is a polynomial of elementary symmetric functions, proving the corollary.

The proof is an algorithm for putting g(x) in the desired form.

Proof: Let fn(t) := (t - x1)(t - x2 )···(t - xn) = tn - s1tn-1 + ··· + (-1)nsn and define recursively

fi - 1(t) := fi(t)/(t - xi).

Three things are immediately clear:

  • The polynomial fi(t) has xi as a root, the other roots being the other xj with j < i, because it's just fn(t) with the last n - i linear factors divided away.
  • By synthetic division and by the recursive definition, the coefficients of fi(t) are polynomials in terms of the elementary symmetric functions and the xj with j > i.
  • The degree of fi(t) is i.

Now for the algorithm to put g(x) in the desired form. Since x1 is a root of f1(t), it is possible to express x1 in terms of the symmetric functions si and the rest of the xi with i > 1. Substitute this expression of x1 into g(x), and expand out the result, which does not contain any term with x1 now.

We proceed recursively as follows. Since x2 is a root of f2(t), it is possible to express x22 or any higher power in terms of the symmetric functions si and the rest of the xi with i > 2, with perhaps a few terms of x2 of degree less than 2. Substitute this expression of x22 (or higher) into g(x), and expand out the result, which no longer contains any term with x22 or higher degree.

Continuing in this process of eliminating all third powers of x3 or higher with f3(t), all fourth powers of x4 or higher with f4(t), we obtain the desired form for g(x).

QED.

Let's work out an example. Unfortunately, the only way to make an interesting enough example involves heavy computations. I will work out some steps of the example, but I will leave most of the boring manipulations to Maxima or to a diligent reader.

Let us consider the symmetric polynomial in 3 variables

g(x) = x12x2 + x12x3 + x22x1 + x22x3 + x32x1 + x32x2

Now, in 3 variables, the fi(t) from the proof above are

f3(t) = t3 - s1t2 + s2t - s3,
f2(t) = t2 + (x3 - s1)t + (s2 - s1x3 + x32),
f1(t) = t - s1 + x2 + x3.

Recall that f2 and f1 are obtained by symbolic synthetic division of the polynomial above them and that the remainders are zero. Also, recall at this point that the elementary symmetric functions in three variables are

s1 = x1 + x2 + x3,
s2 = x1x2 + x1x3 + x2x3,
s3 = x1x2x3.

Since f1(x1) = 0, f2(x2) = 0 and f3(x3) = 0, we obtain that

x1 = s1 - x2 - x3,
x22 = s1x2 + s1x3 - s2 - x2x3 - x32,
x33 = s1x32 - s2x3 + s3.

So, the algorithm now says to replace this expression for x1 into g(x), which after expanding everything out becomes

3x2x32 - s1x32 + 3x22x3 - 4s1x2 x3 + s12x3 - s1x22 + s12x2.

Note that we have succeeded in eliminating x1 from this expression. Now we do the same with x22, to obtain

-3x33 + 3s1x32 - 3s2x3 + s1s2.

Finally we replace x33 by its own expression to conclude that

g(x) = s1s2 - 3s3,

which is the expression of g(x) in terms of elementary symmetric functions that we sought.