Macaulay2 » Documentation
Packages » SchurRings :: internalProduct(RingElement,RingElement)
next | previous | forward | backward | up | index | toc

internalProduct(RingElement,RingElement) -- Kronecker product of symmetric functions

Description

Given symmetric functions f1 and f2, the method computes the Kronecker product ip between f1 and f2. The output ip is an element in the ring of f2.

i1 : R = symmetricRing(QQ,6);
i2 : S = schurRing(QQ,s,6);
i3 : toE(h_3**e_3)

o3 = e
      3

o3 : R
i4 : Q = schurRing(QQ,q,6);
i5 : internalProduct(s_{3,3},q_{4,2})

o5 = q    + q      + q    + q      + q
      5,1    4,1,1    3,3    3,2,1    2,2,1,1

o5 : Q

An error is returned if f1 and f2 don't have the same degree.

Products of complete homogeneous functions give characters of permutation representations of S_n; their Kronecker product decomposes accordingly. For instance, in degree 4:

i6 : internalProduct(h_3*h_1, h_2*h_2)

      4    2
o6 = p  + p p
      1    1 2

o6 : QQ[e ..e , p ..p , h ..h ]
         1   6   1   6   1   6

The same computation can be carried out directly in a Schur ring with option GroupActing => "Sn", where multiplication * is the internal product. The Kronecker square of the standard representation s_{3,1} of S_4 decomposes as trivial + sign + standard + s_{2,2}:

i7 : Sn = schurRing(QQ,c,4,GroupActing => "Sn");
i8 : c_{3,1} * c_{3,1}

o8 = c  + c    + c    + c
      4    3,1    2,2    2,1,1

o8 : Sn
i9 : internalProduct(c_{3,1}, c_{3,1})

o9 = c  + c    + c    + c
      4    3,1    2,2    2,1,1

o9 : Sn

The method is compatible with toSn: we can first convert a product of h's into the Schur basis of an S_n ring, then take Kronecker products there.

i10 : toSn(h_2*h_1*h_1, Sn) * c_{3,1}

o10 = 2c  + 5c    + 3c    + 4c      + c
        4     3,1     2,2     2,1,1    1,1,1,1

o10 : Sn

Ways to use this method:


The source of this document is in /build/reproducible-path/macaulay2-1.26.05+ds/M2/Macaulay2/packages/SchurRings.m2:7566:0.