Dual Symmetric Functions in Non-Commuting Variables¶
AUTHORS:
- Travis Scrimshaw (08-04-2013): Initial version
-
class
sage.combinat.ncsym.dual.
SymmetricFunctionsNonCommutingVariablesDual
(R)¶ 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.
-
a_realization
()¶ 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
-
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:
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]
-
class
Element
(M, x)¶ Bases:
sage.combinat.free_module.CombinatorialFreeModuleElement
An element in the
basis.
-
expand
(n, letter='x')¶ Expand
self
written in thebasis 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:
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
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:
True
ifimplies the coefficients of
and
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
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]
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[]
- If
-
-
SymmetricFunctionsNonCommutingVariablesDual.w.
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
-
SymmetricFunctionsNonCommutingVariablesDual.w.
coproduct_on_basis
(A)¶ 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:
A
– a set partition
OUTPUT:
- The coproduct applied to the
dual symmetric function in non-commuting variables indexed by
A
expressed in thebasis.
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{}
-
SymmetricFunctionsNonCommutingVariablesDual.w.
dual_basis
()¶ 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:
- 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
-
SymmetricFunctionsNonCommutingVariablesDual.w.
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
-
SymmetricFunctionsNonCommutingVariablesDual.w.
product_on_basis
(A, B)¶ 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
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:
A
,B
– set partitions
OUTPUT:
- an element of the
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}}
-
SymmetricFunctionsNonCommutingVariablesDual.w.
sum_of_partitions
(la)¶ Return the sum over all sets partitions whose shape is
la
, scaled bywhere
is the multiplicity of
in
la
.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}}
-
SymmetricFunctionsNonCommutingVariablesDual.w.
to_symmetric_function
()¶ 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
-
class
-