Hall Polynomials¶
-
sage.combinat.hall_polynomial.
hall_polynomial
(nu, mu, la, q=None)¶ Return the (classical) Hall polynomial
(where
,
and
are the inputs
nu
,mu
andla
).Let
be partitions. The Hall polynomial
(in the indeterminate
) is defined as follows: Specialize
to a prime power, and consider the category of
-vector spaces with a distinguished nilpotent endomorphism. The morphisms in this category shall be the linear maps commuting with the distinguished endomorphisms. The type of an object in the category will be the Jordan type of the distinguished endomorphism; this is a partition. Now, if
is any fixed object of type
in this category, then the polynomial
specialized at the prime power
counts the number of subobjects
of
having type
such that the quotient object
has type
. This determines the values of the polynomial
at infinitely many points (namely, at all prime powers), and hence
is uniquely determined. The degree of this polynomial is at most
, where
for every partition
. (If this is negative, then the polynomial is zero.)
These are the structure coefficients of the
(classical) Hall algebra
.If
, then we have
. More generally, if the Littlewood-Richardson coefficient
vanishes, then
.
The Hall polynomials satisfy the symmetry property
.
ALGORITHM:
If
and
, then we compute
as follows (cf. Example 2.4 in [Schiffmann]):
First, write
, and define a sequence
such that
Thus if
, we have the following system of equations:
and solving for
and back substituting we obtain the equations:
or in general we have the recursive equation:
This, combined with the condition that
, determines the
uniquely (recursively). Next we define
and with these notations we have
To compute
in general, we compute the product
in the Hall algebra and return the coefficient of
.
EXAMPLES:
sage: from sage.combinat.hall_polynomial import hall_polynomial sage: hall_polynomial([1,1],[1],[1]) q + 1 sage: hall_polynomial([2],[1],[1]) 1 sage: hall_polynomial([2,1],[2],[1]) q sage: hall_polynomial([2,2,1],[2,1],[1,1]) q^2 + q sage: hall_polynomial([2,2,2,1],[2,2,1],[1,1]) q^4 + q^3 + q^2 sage: hall_polynomial([3,2,2,1], [3,2], [2,1]) q^6 + q^5 sage: hall_polynomial([4,2,1,1], [3,1,1], [2,1]) 2*q^3 + q^2 - q - 1 sage: hall_polynomial([4,2], [2,1], [2,1], 0) 1