{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"This worksheet is an implementation of the product rules that are in\n",
"\"Products of characters of the symmetric group\" (arXiv:1709.08098)\n",
"by Rosa Orellana and Mike Zabrocki
\n",
"Abstract: In a recent paper (arXiv:1605.06672), the authors introduced a new basis of the ring of symmetric functions which evaluate to the irreducible characters of the symmetric group at roots of unity. The structure coefficients for this new basis are the stable Kronecker coefficients. In this paper we give combinatorial descriptions for several products that have as consequences several versions of the Pieri rule for this new basis of symmetric functions. In addition, we give several applications of the products studied in this paper.
\n",
"In this worksheet we will compute a few examples of the three main theorems of the paper. These theorems provide a combinatorial rule for the product of characters of the symmetric group as symmetric functions in terms of certain types of multiset tableaux. The coefficients represent the multiplicity of the irreducibles a tensor product of symmetric group modules.
\n",
"This worksheet is available in both
pdf and
jupyter notebook form.
\n",
"Note that the majority of the tableaux and multiset partition code that makes these functions run has not been integrated into Sage, but for the time being I am making these programs available on my website (subject to update and change):
\n",
"http://garsia.math.yorku.ca/~zabrocki/msp.py
\n",
"http://garsia.math.yorku.ca/~zabrocki/mst.py
\n",
"Programs for calculating with the symmetric functions ${\\tilde s}_\\lambda$ and ${\\tilde h}_\\lambda$ is part of SymmetricFunctions code as a part of Sage.
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"load(\"http://garsia.math.yorku.ca/~zabrocki/msp.py\")\n",
"load(\"http://garsia.math.yorku.ca/~zabrocki/mst.py\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"SymmetricFunctions(QQ).inject_shorthands('all')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"MCTableaux([3,2],[3,3],[2,1,1],rlex_bsp)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"#optional: At least some of the tableaux options are followed by this class (including 'convention')\n",
"Tableaux.options(convention='French')"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"MCTableaux([3,2],[3,3],[2,1],rlex_bsp).cardinality()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"MCTableaux([3,2],[3,3],[2,1],rlex_bsp).first().pp()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# Here is an example of a set of tableaux that can be computed for this class\n",
"for T in MCTableaux([1,1],[2],[1,1],rlex_bsp):\n",
" T.pp()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"Tlist = MCTableaux([3,2],[2],[2,2],rlex_bsp).list()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"len(Tlist)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# some examples of the negative reading word is NOT lattice\n",
"for T in Tlist:\n",
" if not T.neg_reading_word_is_lattice():\n",
" T.pp()\n",
" print \"reading word = \", T.neg_reading_word()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"for T in Tlist:\n",
" if T.neg_reading_word_is_lattice():\n",
" T.pp()\n",
" print \"reading word = \", T.neg_reading_word()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# here is a single coefficient in the product from Theorem 13\n",
"(st[2,1]*h[3,2,1]).coefficient([3,2])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and here it is computed combinatorially\n",
"len([T for T in MCTableaux([3,2],[3,2,1],[2,1],rlex_bsp) if T.neg_reading_word_is_lattice()])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# Consider the following symmetric function expression\n",
"st[1,1]*h[2,1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and this may be computed combinatorially with the following sum\n",
"sum(len([T for T in MCTableaux(la,[2,1],[1,1],rlex_bsp) if T.neg_reading_word_is_lattice()])*st(la) \\\n",
" for d in range(6) for la in Partitions(d))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# Here is a demonstration of the calculation of a single coefficient from Theorem 14\n",
"(st[2,1]*ht[3]*ht[2]*ht[1]).coefficient([3,2])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and here it is computed combinatorially\n",
"len([T for T in MCTableaux([3,2],[3,2,1],[2,1],rlex_bsp) if T.neg_reading_word_is_lattice() and T.has_set_entries()])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"st[1,1]*ht[2]*ht[1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and this may be computed combinatorially with the following sum\n",
"sum(len([T for T in MCTableaux(la,[2,1],[1,1],rlex_bsp) if T.neg_reading_word_is_lattice()\\\n",
" and T.has_set_entries()])*st(la) for d in range(6) for la in Partitions(d))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {
"deletable": true,
"editable": true
},
"source": [
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# Here is a demonstration of the calculation of a single coefficient from Theorem 15\n",
"(st[2,1]*st[3]*st[2]*st[1]).coefficient([3,2])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and here it is computed combinatorially\n",
"len([T for T in MCTableaux([3,2],[3,2,1],[2,1],rlex_bsp) if T.neg_reading_word_is_lattice()\\\n",
" and T.has_set_entries() and T.has_first_row_entries_size_greater_than_one()])"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"st[1,1]*st[2]*st[1]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": false,
"deletable": true,
"editable": true
},
"outputs": [],
"source": [
"# and this may be computed combinatorially with the following sum\n",
"sum(len([T for T in MCTableaux(la,[2,1],[1,1],rlex_bsp) if T.neg_reading_word_is_lattice()\\\n",
" and T.has_set_entries() and T.has_first_row_entries_size_greater_than_one()])*st(la) \\\n",
" for d in range(6) for la in Partitions(d))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true,
"deletable": true,
"editable": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Raw Cell Format",
"kernelspec": {
"display_name": "SageMath 8.1.beta9",
"language": "",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.14"
}
},
"nbformat": 4,
"nbformat_minor": 2
}