Macaulay2 » Documentation
Packages » SchurRings :: toM
next | previous | forward | backward | up | index | toc

toM -- Monomial (m-) basis representation

Description

Given a symmetric function f, the function toM returns a representation of f as a linear combination of monomial symmetric functions. The output is a RingElement in a SchurRing with Basis => "Monomial", so that the basis element m_\mu represents the monomial symmetric function indexed by the partition \mu.

Internally, the conversion uses Kostka numbers: the Schur-to-monomial transition is s_\lambda = \sum_\mu K_{\lambda,\mu} m_\mu.

i1 : S = schurRing(QQ,s,4);
i2 : toM s_{2,1}

o2 = m    + 2m
      2,1     1,1,1

o2 : schurRing (QQ, m, 4)
i3 : toM s_{3}

o3 = m  + m    + m
      3    2,1    1,1,1

o3 : schurRing (QQ, m, 4)
i4 : toM (s_{2,1} + 2*s_{1,1,1})

o4 = m    + 4m
      2,1     1,1,1

o4 : schurRing (QQ, m, 4)

If the target monomial ring M is not specified, the first call to toM on an element of S creates and caches an associated monomial-basis ring with the same number of generators and the same coefficient ring as S; subsequent calls reuse this cached ring.

i5 : ring(toM s_{2,1}) === ring(toM s_{3})

o5 = true

Alternatively one can supply the target monomial ring explicitly.

i6 : M = schurRing(QQ,m,4,Basis => "Monomial");
i7 : toM(s_{2,1},M)

o7 = m    + 2m
      2,1     1,1,1

o7 : M

The function also accepts elements of a Symmetric ring, in which case the input is first converted to the Schur basis via toS.

i8 : R = symmetricRing(QQ,4);
i9 : toM(h_2 * h_1)

o9 = m  + 2m    + 3m
      3     2,1     1,1,1

o9 : schurRing (QQ, m, 4)

The identity h_n = \sum_\mu m_\mu, summed over all partitions of n, reflects the fact that the Kostka numbers K_{(n),\mu} are all 1:

i10 : R5 = symmetricRing(QQ,5);
i11 : toM h_3

o11 = m  + m    + m
       3    2,1    1,1,1

o11 : schurRing (QQ, m, 5)
i12 : toM h_4

o12 = m  + m    + m    + m      + m
       4    3,1    2,2    2,1,1    1,1,1,1

o12 : schurRing (QQ, m, 5)

Power-sum functions admit a particularly simple monomial expansion: p_n = m_{(n)} identically, since p_n = \sum_i x_i^n. This can be read off for any n:

i13 : toM p_3

o13 = m
       3

o13 : schurRing (QQ, m, 5)
i14 : toM p_5

o14 = m
       5

o14 : schurRing (QQ, m, 5)

Longer partitions can still be handled; the coefficients are the corresponding Kostka numbers:

i15 : S6 = schurRing(QQ,s,6);
i16 : toM s_{4,1,1,1}

o16 = m        + m        + 4m          + m        + 4m          +
       4,1,1,1    3,2,1,1     3,1,1,1,1    2,2,2,1     2,2,1,1,1  
      -----------------------------------------------------------------------
      10m
         2,1,1,1,1,1

o16 : schurRing (QQ, m, 6)

The map toM is invertible via toS, so a Schur element roundtrips through the monomial basis and back to the same Schur ring:

i17 : f = s_{3,2,1};
i18 : toS(toM f, S6) == f

o18 = true

See also

Ways to use toM:

  • toM(RingElement)
  • toM(RingElement,SchurRing)

For the programmer

The object toM is a method function.


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