Dual Symmetric Functions in Non-Commuting Variables#
AUTHORS:
Travis Scrimshaw (08-04-2013): Initial version
- class sage.combinat.ncsym.dual.SymmetricFunctionsNonCommutingVariablesDual(R)#
Bases:
UniqueRepresentation
,Parent
The Hopf dual to the symmetric functions in non-commuting variables.
See Section 2.3 of [BZ05] for a study.
- a_realization()#
Return the realization of the \(\mathbf{w}\) basis of
self
.EXAMPLES:
sage: SymmetricFunctionsNonCommutingVariables(QQ).dual().a_realization() Dual symmetric functions in non-commuting variables over the Rational Field in the w basis
- dual()#
Return the dual Hopf algebra of the dual symmetric functions in non-commuting variables.
EXAMPLES:
sage: NCSymD = SymmetricFunctionsNonCommutingVariables(QQ).dual() sage: NCSymD.dual() Symmetric functions in non-commuting variables over the Rational Field
- class w(NCSymD)#
Bases:
NCSymBasis_abstract
The Hopf algebra of symmetric functions in non-commuting variables in the \(\mathbf{w}\) basis.
EXAMPLES:
sage: NCSymD = SymmetricFunctionsNonCommutingVariables(QQ).dual() sage: w = NCSymD.w()
We have the embedding \(\chi^*\) of \(Sym\) into \(NCSym^*\) available as a coercion:
sage: h = SymmetricFunctions(QQ).h() sage: w(h[2,1]) w{{1}, {2, 3}} + w{{1, 2}, {3}} + w{{1, 3}, {2}}
Similarly we can pull back when we are in the image of \(\chi^*\):
sage: elt = 3*(w[[1],[2,3]] + w[[1,2],[3]] + w[[1,3],[2]]) sage: h(elt) 3*h[2, 1]
- class Element#
Bases:
IndexedFreeModuleElement
An element in the \(\mathbf{w}\) basis.
- expand(n, letter='x')#
Expand
self
written in the \(\mathbf{w}\) basis in \(n^2\) commuting variables which satisfy the relation \(x_{ij} x_{ik} = 0\) for all \(i\), \(j\), and \(k\).The expansion of an element of the \(\mathbf{w}\) basis is given by equations (26) and (55) in [HNT06].
INPUT:
n
– an integerletter
– (default:'x'
) a string
OUTPUT:
The symmetric function of
self
expressed in then*n
non-commuting variables described byletter
.
REFERENCES:
[HNT06]F. Hivert, J.-C. Novelli, J.-Y. Thibon. Commutative combinatorial Hopf algebras. (2006). arXiv 0605262v1.
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w[[1,3],[2]].expand(4) x02*x11*x20 + x03*x11*x30 + x03*x22*x30 + x13*x22*x31
One can use a different set of variable by using the optional argument
letter
:sage: w[[1,3],[2]].expand(3, letter='y') y02*y11*y20
- is_symmetric()#
Determine if a \(NCSym^*\) function, expressed in the \(\mathbf{w}\) basis, is symmetric.
A function \(f\) in the \(\mathbf{w}\) basis is a symmetric function if it is in the image of \(\chi^*\). That is to say we have
\[f = \sum_{\lambda} c_{\lambda} \prod_i m_i(\lambda)! \sum_{\lambda(A) = \lambda} \mathbf{w}_A\]where the second sum is over all set partitions \(A\) whose shape \(\lambda(A)\) is equal to \(\lambda\) and \(m_i(\mu)\) is the multiplicity of \(i\) in the partition \(\mu\).
OUTPUT:
True
if \(\lambda(A)=\lambda(B)\) implies the coefficients of \(\mathbf{w}_A\) and \(\mathbf{w}_B\) are equal,False
otherwise
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: elt = w.sum_of_partitions([2,1,1]) sage: elt.is_symmetric() True sage: elt -= 3*w.sum_of_partitions([1,1]) sage: elt.is_symmetric() True sage: w = SymmetricFunctionsNonCommutingVariables(ZZ).dual().w() sage: elt = w.sum_of_partitions([2,1,1]) / 2 sage: elt.is_symmetric() False sage: elt = w[[1,3],[2]] sage: elt.is_symmetric() False sage: elt = w[[1],[2,3]] + w[[1,2],[3]] + 2*w[[1,3],[2]] sage: elt.is_symmetric() False
- to_symmetric_function()#
Take a function in the \(\mathbf{w}\) basis, and return its symmetric realization, when possible, expressed in the homogeneous basis of symmetric functions.
OUTPUT:
If
self
is a symmetric function, then the expansion in the homogeneous basis of the symmetric functions is returned. Otherwise an error is raised.
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: elt = w[[1],[2,3]] + w[[1,2],[3]] + w[[1,3],[2]] sage: elt.to_symmetric_function() h[2, 1] sage: elt = w.sum_of_partitions([2,1,1]) / 2 sage: elt.to_symmetric_function() 1/2*h[2, 1, 1]
- antipode_on_basis(A)#
Return the antipode applied to the basis element indexed by
A
.INPUT:
A
– a set partition
OUTPUT:
an element in the basis
self
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w.antipode_on_basis(SetPartition([[1],[2,3]])) -3*w{{1}, {2}, {3}} + w{{1, 2}, {3}} + w{{1, 3}, {2}} sage: F = w[[1,3],[5],[2,4]].coproduct() sage: F.apply_multilinear_morphism(lambda x,y: x.antipode()*y) 0
- coproduct_on_basis(A)#
Return the coproduct of a \(\mathbf{w}\) basis element.
The coproduct on the basis element \(\mathbf{w}_A\) is the sum over tensor product terms \(\mathbf{w}_B \otimes \mathbf{w}_C\) where \(B\) is the restriction of \(A\) to \(\{1,2,\ldots,k\}\) and \(C\) is the restriction of \(A\) to \(\{k+1, k+2, \ldots, n\}\).
INPUT:
A
– a set partition
OUTPUT:
The coproduct applied to the \(\mathbf{w}\) dual symmetric function in non-commuting variables indexed by
A
expressed in the \(\mathbf{w}\) basis.
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w[[1], [2,3]].coproduct() w{} # w{{1}, {2, 3}} + w{{1}} # w{{1, 2}} + w{{1}, {2}} # w{{1}} + w{{1}, {2, 3}} # w{} sage: w.coproduct_on_basis(SetPartition([])) w{} # w{}
- dual_basis()#
Return the dual basis to the \(\mathbf{w}\) basis.
The dual basis to the \(\mathbf{w}\) basis is the monomial basis of the symmetric functions in non-commuting variables.
OUTPUT:
the monomial basis of the symmetric functions in non-commuting variables
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w.dual_basis() Symmetric functions in non-commuting variables over the Rational Field in the monomial basis
- duality_pairing(x, y)#
Compute the pairing between an element of
self
and an element of the dual.INPUT:
x
– an element of the dual of symmetric functions in non-commuting variablesy
– an element of the symmetric functions in non-commuting variables
OUTPUT:
an element of the base ring of
self
EXAMPLES:
sage: DNCSym = SymmetricFunctionsNonCommutingVariablesDual(QQ) sage: w = DNCSym.w() sage: m = w.dual_basis() sage: matrix([[w(A).duality_pairing(m(B)) for A in SetPartitions(3)] for B in SetPartitions(3)]) [1 0 0 0 0] [0 1 0 0 0] [0 0 1 0 0] [0 0 0 1 0] [0 0 0 0 1] sage: (w[[1,2],[3]] + 3*w[[1,3],[2]]).duality_pairing(2*m[[1,3],[2]] + m[[1,2,3]] + 2*m[[1,2],[3]]) 8 sage: h = SymmetricFunctionsNonCommutingVariables(QQ).h() sage: matrix([[w(A).duality_pairing(h(B)) for A in SetPartitions(3)] for B in SetPartitions(3)]) [6 2 2 2 1] [2 2 1 1 1] [2 1 2 1 1] [2 1 1 2 1] [1 1 1 1 1] sage: (2*w[[1,3],[2]] + w[[1,2,3]] + 2*w[[1,2],[3]]).duality_pairing(h[[1,2],[3]] + 3*h[[1,3],[2]]) 32
- product_on_basis(A, B)#
The product on \(\mathbf{w}\) basis elements.
The product on the \(\mathbf{w}\) is the dual to the coproduct on the \(\mathbf{m}\) basis. On the basis \(\mathbf{w}\) it is defined as
\[\mathbf{w}_A \mathbf{w}_B = \sum_{S \subseteq [n]} \mathbf{w}_{A\uparrow_S \cup B\uparrow_{S^c}}\]where the sum is over all possible subsets \(S\) of \([n]\) such that \(|S| = |A|\) with a term indexed the union of \(A \uparrow_S\) and \(B \uparrow_{S^c}\). The notation \(A \uparrow_S\) represents the unique set partition of the set \(S\) such that the standardization is \(A\). This product is commutative.
INPUT:
A
,B
– set partitions
OUTPUT:
an element of the \(\mathbf{w}\) basis
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: A = SetPartition([[1], [2,3]]) sage: B = SetPartition([[1, 2, 3]]) sage: w.product_on_basis(A, B) w{{1}, {2, 3}, {4, 5, 6}} + w{{1}, {2, 3, 4}, {5, 6}} + w{{1}, {2, 3, 5}, {4, 6}} + w{{1}, {2, 3, 6}, {4, 5}} + w{{1}, {2, 4}, {3, 5, 6}} + w{{1}, {2, 4, 5}, {3, 6}} + w{{1}, {2, 4, 6}, {3, 5}} + w{{1}, {2, 5}, {3, 4, 6}} + w{{1}, {2, 5, 6}, {3, 4}} + w{{1}, {2, 6}, {3, 4, 5}} + w{{1, 2, 3}, {4}, {5, 6}} + w{{1, 2, 4}, {3}, {5, 6}} + w{{1, 2, 5}, {3}, {4, 6}} + w{{1, 2, 6}, {3}, {4, 5}} + w{{1, 3, 4}, {2}, {5, 6}} + w{{1, 3, 5}, {2}, {4, 6}} + w{{1, 3, 6}, {2}, {4, 5}} + w{{1, 4, 5}, {2}, {3, 6}} + w{{1, 4, 6}, {2}, {3, 5}} + w{{1, 5, 6}, {2}, {3, 4}} sage: B = SetPartition([[1], [2]]) sage: w.product_on_basis(A, B) 3*w{{1}, {2}, {3}, {4, 5}} + 2*w{{1}, {2}, {3, 4}, {5}} + 2*w{{1}, {2}, {3, 5}, {4}} + w{{1}, {2, 3}, {4}, {5}} + w{{1}, {2, 4}, {3}, {5}} + w{{1}, {2, 5}, {3}, {4}} sage: w.product_on_basis(A, SetPartition([])) w{{1}, {2, 3}}
- sum_of_partitions(la)#
Return the sum over all sets partitions whose shape is
la
, scaled by \(\prod_i m_i!\) where \(m_i\) is the multiplicity of \(i\) inla
.INPUT:
la
– an integer partition
OUTPUT:
an element of
self
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w.sum_of_partitions([2,1,1]) 2*w{{1}, {2}, {3, 4}} + 2*w{{1}, {2, 3}, {4}} + 2*w{{1}, {2, 4}, {3}} + 2*w{{1, 2}, {3}, {4}} + 2*w{{1, 3}, {2}, {4}} + 2*w{{1, 4}, {2}, {3}}
- to_symmetric_function()#
The preimage of \(\chi^*\) in the \(\mathbf{w}\) basis.
EXAMPLES:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w() sage: w.to_symmetric_function Generic morphism: From: Dual symmetric functions in non-commuting variables over the Rational Field in the w basis To: Symmetric Functions over Rational Field in the homogeneous basis