AUTHORS:
Bases: sage.structure.unique_representation.UniqueRepresentation, sage.structure.parent.Parent
The Hopf dual to the symmetric functions in non-commuting variables.
See Section 2.3 of [BZ05] for a study.
Return the realization of the
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
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
Bases: sage.combinat.ncsym.bases.NCSymBasis_abstract
The Hopf algebra of symmetric functions in non-commuting variables
in the
basis.
EXAMPLES:
sage: NCSymD = SymmetricFunctionsNonCommutingVariables(QQ).dual()
sage: w = NCSymD.w()
We have the embedding
of
into
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
:
sage: elt = 3*(w[[1],[2,3]] + w[[1,2],[3]] + w[[1,3],[2]])
sage: h(elt)
3*h[2, 1]
Bases: sage.combinat.free_module.CombinatorialFreeModuleElement
An element in the
basis.
Expand self written in the
basis in
commuting variables which satisfy the relation
for all
,
, and
.
The expansion of an element of the
basis is
given by equations (26) and (55) in [HNT06].
INPUT:
OUTPUT:
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
Determine if a
function, expressed in the
basis, is symmetric.
A function
in the
basis is a symmetric
function if it is in the image of
. That is to say we
have

where the second sum is over all set partitions
whose
shape
is equal to
and
is
the multiplicity of
in the partition
.
OUTPUT:
implies the coefficients of
and
are equal, False otherwiseEXAMPLES:
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
Take a function in the
basis, and return its
symmetric realization, when possible, expressed in the
homogeneous basis of symmetric functions.
OUTPUT:
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]
TESTS:
sage: w = SymmetricFunctionsNonCommutingVariables(QQ).dual().w()
sage: w(0).to_symmetric_function()
0
sage: w([]).to_symmetric_function()
h[]
sage: (2*w([])).to_symmetric_function()
2*h[]
Return the antipode applied to the basis element indexed by A.
INPUT:
OUTPUT:
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
Return the coproduct of a
basis element.
The coproduct on the basis element
is the sum over
tensor product terms
where
is the restriction of
to
and
is
the restriction of
to
.
INPUT:
OUTPUT:
dual symmetric function
in non-commuting variables indexed by A expressed in the
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{}
Return the dual basis to the
basis.
The dual basis to the
basis is the monomial basis
of the symmetric functions in non-commuting variables.
OUTPUT:
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
Compute the pairing between an element of self and an element of the dual.
INPUT:
OUTPUT:
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
The product on
basis elements.
The product on the
is the dual to the coproduct on the
basis. On the basis
it is defined as
![\mathbf{w}_A \mathbf{w}_B = \sum_{S \subseteq [n]}
\mathbf{w}_{A\uparrow_S \cup B\uparrow_{S^c}}](../../../_images/math/ec8150d61fbd2ed5a09d9a16a79342f37a892dec.png)
where the sum is over all possible subsets
of
such that
with a term indexed the union of
and
. The notation
represents the
unique set partition of the set
such that the standardization
is
. This product is commutative.
INPUT:
OUTPUT:
basisEXAMPLES:
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}}
Return the sum over all sets partitions whose shape is la,
scaled by
where
is the multiplicity
of
in la.
INPUT:
OUTPUT:
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}}
The preimage of
in the
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