and beyond!¶
This module contains all functionalities that are not already organized into the other files. New functionalities written to the library often appear here, and eventually get organized into separate files.
AUTHORS:
- Matthew Lancellotti (2018): Initial version
REFERENCES:
[Fun] | (1, 2, 3, 4, 5) Raising operators and the Littlewood-Richardson polynomials. Fun, Alex. |
[LN] | (1, 2) Finite sum Cauchy identity for dual Grothendieck polynomials. |
-
class
all.
CatalanFunction
(roots, index, base_ring=None, prefix=None)[source]¶ A catalan function \(H(\Psi; \gamma)\) as discussed in [cat] section 4.
By definition,
\[H(\Psi; \gamma) := \prod_{ij \in \Psi} (1 - R_{ij})^{-1} s_\gamma = \prod_{ij \in \Delta^+ \smallsetminus \Psi} (1 - R_{ij}) H_\gamma\]where \(s_\gamma\) is a schur function and \(H_\gamma\) is a Hall-Littlewood Q’ function.
The parameters for initializing a catalan function are exactly the same as in
CatalanFunctions.init_from_indexed_root_ideal()
.EXAMPLES:
sage: CatalanFunction([(0,2), (1,2)], [6, 6, 5]) H([(0, 2), (1, 2)]; [6, 6, 5])
See also
There are more ways to initialize a catalan function, and the methods for doing so are found in
CatalanFunctions
.-
eval
(t=None)[source]¶ Return the catalan function in terms of the Hall-Littlewood Q’ basis.
EXAMPLES:
sage: delta_plus = partition_to_root_ideal([2, 1], n=3) sage: cf = CatalanFunction(delta_plus, [3, 1, 1]) sage: cf.eval() HLQp[3, 1, 1] sage: s = SymmetricFunctions(QQ['t']).schur() sage: cf = CatalanFunction([], [4, 1]) sage: cf.eval() HLQp[4, 1] - t*HLQp[5] sage: s(cf.eval()) s[4, 1]
This function can also specialize \(t\) to an arbitrary integer:
sage: cf.eval(t=1) HLQp[4, 1] - HLQp[5] sage: cf.eval(t=-1) HLQp[4, 1] + HLQp[5] sage: s(cf.eval(t=-1)) s[4, 1]
See also
-
expand
(*args, **kwargs)[source]¶ Expand the catalan function as a symmetric polynomial in
n
variables.INPUT:
n
– a nonnegative integeralphabet
– (default:'x'
) a variable for the expansion
OUTPUT:
A monomial expansion of
self
in the \(n\) variables labelledx0
,x1
, …,x{n-1}
(or justx
if \(n = 1\)), wherex
isalphabet
.EXAMPLES:
sage: cf = CatalanFunction([], [4, 1]) sage: cf.expand(1) 0 sage: cf.expand(2) x0^4*x1 + x0^3*x1^2 + x0^2*x1^3 + x0*x1^4 sage: cf.expand(2, alphabet='y') y0^4*y1 + y0^3*y1^2 + y0^2*y1^3 + y0*y1^4
See also
-
-
class
all.
CatalanFunctions
[source]¶ The family of catalan functions, as discussed in [cat] section 4.
Use this class as a factory to initialize a
CatalanFunction
object with any valid identifying data. See theinit_from...
methods below for all possible ways to create a catalan function.-
init_from_indexed_root_ideal
(roots, index, base_ring=None, prefix=None)[source]¶ INPUTS:
roots
– iterable of roots \(\Phi\) (typically a root ideal)index
– composition \(\gamma\) that indexes the root ideal and appears in \(s_\gamma\) and \(H_\gamma\) below
OPTIONAL INPUTS:
base_ring
– (defaultQQ['t']
) the ring over which to build the \(h_\gamma(x; \alpha)\)‘s
OUTPUTS:
The catalan function
\[H(\Phi; \gamma) := \prod_{ij \in \Phi} (1 - R_{ij})^{-1} s_\gamma = \prod_{ij \in \Delta^+ \smallsetminus \Phi} (1 - R_{ij}) H_\gamma\]where \(s_\gamma\) is a schur function and \(H_\gamma\) is a Hall-Littlewood Q’ function.
EXAMPLES:
sage: CatalanFunctions().init_from_indexed_root_ideal([(0,2), (1,2)], [6, 6, 5]) H([(0, 2), (1, 2)]; [6, 6, 5])
-
init_from_k_schur
(func, base_ring=None, prefix=None)[source]¶ Given a \(k\)-schur function
func
\(= s^k_\lambda(x;t)\), initialize the catalan function \(H(\Delta^k(\lambda); \lambda)\).Mathematically, these two functions are equal. The usefulness of this method is that you input a
sage.combinat.sf.new_kschur.kSchur_with_category
object and you obtain aCatalanFunction
object.EXAMPLES:
sage: base_ring = QQ['t'] sage: Sym = SymmetricFunctions(base_ring) sage: t = base_ring.gen() sage: ks = Sym.kBoundedSubspace(4, t).kschur() sage: func = ks[2, 1, 1] sage: CatalanFunction(func, base_ring=base_ring) H([]; [2, 1, 1])
-
init_from_k_shape
(p, k, base_ring=None, prefix=None, algorithm='removable roots')[source]¶ Given
k
and a \(k\)-shapep
, return the catalan function \(H(\Phi^+(p); rs(p))\).EXAMPLES:
sage: CFS = CatalanFunctions() sage: CFS.init_from_k_shape([4, 3, 2, 1], 1) H([]; [4, 3, 2, 1])
-
init_from_row_and_column_lengths
(row_lengths, column_lengths, base_ring=None, prefix=None, algorithm='removable roots')[source]¶ Determine the skew partition \(D\) with row-shape
row_lengths
and column-shapecolumn_lengths
, and return the catalan function \(H(\Phi^+(D); \text{row_lengths})\).EXAMPLES:
sage: CFS = CatalanFunctions() sage: CFS.init_from_row_and_column_lengths([1, 1, 1], [2, 1]) H([(0, 1), (0, 2)]; [1, 1, 1])
See also
-
init_from_skew_partition
(sp, base_ring=None, prefix=None, algorithm='removable roots')[source]¶ Given a skew partition
sp
, return the catalan function \(H(\Phi^+(sp); rs(sp))\).Given a linked
SkewPartition
sp
, return theCatalanFunction
\(H(\Phi^+(sp); rs(sp))\).EXAMPLES:
sage: CFS = CatalanFunctions() sage: sp = SkewPartition([[2, 1, 1], [1]]) sage: CFS.init_from_skew_partition(sp) H([(0, 1), (0, 2)]; [1, 1, 1])
See also
-
init_parabolic_from_composition_and_index
(composition, index, base_ring=None, prefix=None)[source]¶ Given a composition \(\eta\) of positive integers and an index \(\gamma\), return the parabolic catalan function \(H(\Delta(\eta), \gamma)\), where
\[\Delta(\eta) := \{ \alpha \in \Delta^+_{|\eta|} \:\text{above the block diagonal with block sizes}\: \eta_1, \ldots, \eta_r\}\]as in [cat] just below Conjecture 3.3.
EXAMPLES:
sage: CatalanFunctions().init_parabolic_from_composition_and_index([1, 3, 2], [1, 2, 3, 4, 5, 6]) H([(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (1, 4), (1, 5), (2, 4), (2, 5), (3, 4), (3, 5)]; [1, 2, 3, 4, 5, 6])
-
-
class
all.
DoubleHomogeneous
(index1, index2, prefix='h')[source]¶ INPUTS:
mu1
– compositionmu2
– compositionn
– number of \(x\) variablesEXAMPLES:
Create the double homogeneous \(h^{(4)}_{\mu, \beta}\):
sage: DoubleHomogeneous(mu, beta, 4)
Create the double homogeneous shifted building block \(h_{r, s}\) in 4 variables:
sage: r = 5 sage: s = 2 sage: DoubleHomogeneous([r], [s], 4)
Create the double homogeneous symmetric building block \(h_p(x \,||\, a)\) in 4 variables:
sage: p = 3 sage: DoubleHomogeneous([p], [0], 4)
-
all.
DoubleRing
= InfiniteDimensionalFreeAlgebra_with_category with generators indexed by Integer Ring, over Integer Ring¶ DoubleRing
is the ring \(\Lambda(a)\) found in [Fun] section 3.EXAMPLES:
sage: DoubleRing InfiniteDimensionalFreeAlgebra_with_category with generators indexed by Integer Ring, over Integer Ring
See also
-
class
all.
HallLittlewoodVertexOperator
(composition, base_ring=Univariate Polynomial Ring in t over Rational Field, t=None)[source]¶ The Hall-Littlewood vertex operator.
Garsia’s version of Jing’s Hall-Littlewood vertex operators. These are defined in equations 4.2 and 4.3 of [cat] and appear visually as a bold capital H.
INPUTS:
base_ring
– (defaultQQ['t']
) the base ring to build theSymmetricFunctions
upon.
EXAMPLES:
sage: H = HallLittlewoodVertexOperator sage: one = SymmetricFunctions(QQ['t']).hall_littlewood().Qp().one() sage: H([4, 1, 3])(one) == H(4)(H(1)(H(3)(one))) True
See also
sage.combinat.sf.new_kschur.KBoundedSubspaceBases.ElementMethods.hl_creation_operator()
-
class
all.
InfiniteDimensionalFreeAlgebra
(base_ring=Integer Ring, prefix='x', basis_indices=None, index_set=Non negative integer semiring)[source]¶ By default, the algebra generated by
x[0], x[1], x[2], ...
over the integers.To change the index set of the generators, use
index_set=
(defaultNN
). To overhaul the set of generators entirely (not recommended), usebasis_indices=
.To change the ring that the algebra works over, use
base_ring=
(defaultZZ
).To change the prefix of the generators, use
prefix=
(default'x'
).See also
sage.algebras.free_algebra, https://doc.sagemath.org/html/en/reference/monoids/sage/monoids/free_abelian_monoid.html, sage.monoids.free_monoid, sage.monoids.free_abelian_monoid
-
class
all.
PieriOperatorAlgebra
(base_ring=Univariate Polynomial Ring in t over Rational Field, prefix='u')[source]¶ The Pieri operator \(u_i\).
EXAMPLES:
sage: u = PieriOperatorAlgebra()
Act on catalan function:
sage: cf = CatalanFunction([(0,2), (1,2)], [6, 6, 6]) sage: u.i(2)(cf) CatalanFunction([(0,2), (1,2)], [6, 6, 5])
Act on k-schur function:
sage: base_ring = QQ['t'] sage: Sym = SymmetricFunctions(base_ring) sage: t = base_ring.gen() sage: ks = Sym.kBoundedSubspace(4, t).kschur() sage: u.i(2)(ks[2, 2, 1]) ks4[2, 2, 1] + t^2*ks4[3, 2] + t^3*ks4[4, 1]
See also
-
i
(i)[source]¶ Return the Pieri operator \(u_i\).
Shorthand element constructor that allows you to create Pieri operators using the familiar \(u_i\) notation, with the exception that indices here are 0-based, not 1-based.
EXAMPLES:
Create the Pieri operator which lowers part 2 (indices are 0-based):
sage: u.i(2) u((0, 0, -1))
See also
ShiftingOperatorAlgebra._element_constructor_()
,ShiftingOperatorAlgebra.__getitem__()
-
-
class
all.
RaisingOperatorAlgebra
(base_ring=Univariate Polynomial Ring in t over Rational Field, prefix='R')[source]¶ An algebra of raising operators.
This class subclasses
ShiftingOperatorAlgebra
and inherits the large majority of its functionality from there.We follow the following convention!:
R[(1, 0, -1)] is the raising operator that raises the first part by 1 and lowers the third part by 1.
For a definition of raising operators, see [cat] Definition 2.1, but be wary that the notation is different there. See
ij()
for a way to create operators using the notation in the paper.If you do NOT want any restrictions on the allowed sequences, use
ShiftingOperatorAlgebra
instead ofRaisingOperatorAlgebra
.OPTIONAL ARGUMENTS:
base_ring
– (defaultQQ['t']
) the ring you will use on the raising operators.prefix
– (default"R"
) the label for the raising operators.
EXAMPLES:
sage: R = RaisingOperatorAlgebra() sage: s = SymmetricFunctions(QQ['t']).s() sage: h = SymmetricFunctions(QQ['t']).h() sage: R[(1, -1)] R(1, -1) sage: R[(1, -1)](s[5, 4]) s[6, 3] sage: R[(1, -1)](h[5, 4]) h[6, 3] sage: (1 - R[(1,-1)]) * (1 - R[(0,1,-1)]) R() - R(0, 1, -1) - R(1, -1) + R(1, 0, -1) sage: ((1 - R[(1,-1)]) * (1 - R[(0,1,-1)]))(s[2, 2, 1]) (-3*t-2)*s[] + s[2, 2, 1] - s[3, 1, 1] + s[3, 2]
See also
-
ij
(i, j)[source]¶ Return the raising operator \(R_{ij}\) as notated in [cat] Definition 2.1.
Shorthand element constructor that allows you to create raising operators using the familiar \(R_{ij}\) notation found in [cat] Definition 2.1, with the exception that indices here are 0-based, not 1-based.
EXAMPLES:
Create the raising operator which raises part 0 and lowers part 2 (indices are 0-based):
sage: R.ij(0, 2) R((1, 0, -1))
See also
ShiftingOperatorAlgebra._element_constructor_()
,ShiftingOperatorAlgebra.__getitem__()
-
class
all.
RaisingSequenceSpace
(base=Integer Ring)[source]¶ A helper for
RaisingOperatorAlgebra
.Helps
RaisingOperatorAlgebra
know which indices are valid and which indices are not for the basis.EXAMPLES:
sage: RS = RaisingSequenceSpace() sage: (1, -1) in RS True sage: (1, 0, -1) in RS True sage: (1, -1, 0, 9) in RS False sage: [1, -1] in RS False
-
class
all.
ShiftingOperatorAlgebra
(base_ring=Univariate Polynomial Ring in t over Rational Field, prefix='S', basis_indices=<all.ShiftingSequenceSpace instance>)[source]¶ An algebra of shifting operators.
We follow the following convention:
S[(1, 0, -1, 2)] is the shifting operator that raises the first part by 1, lowers the third part by 1, and raises the fourth part by 2.
OPTIONAL ARGUMENTS:
base_ring
– (defaultQQ['t']
) the ring you will use on the raising operators.prefix
– (default"R"
) the label for the raising operators.
EXAMPLES:
sage: S = ShiftingOperatorAlgebra() sage: s = SymmetricFunctions(QQ['t']).s() sage: h = SymmetricFunctions(QQ['t']).h() sage: S[(1, -1, 2)] S(1, -1, 2) sage: S[(1, -1, 2)](s[5, 4]) s[6, 3, 2] sage: S[(1, -1, 2)](h[5, 4]) h[6, 3, 2] sage: (1 - S[(1,-1)]) * (1 - S[(4,)]) S() - S(1, -1) - S(4,) + S(5, -1) sage: ((1 - S[(1,-1)]) * (1 - S[(4,)]))(s[2, 2, 1]) s[2, 2, 1] - s[3, 1, 1] - s[6, 2, 1] + s[7, 1, 1]
See also
-
class
Element
[source]¶ An element of a :class`ShiftingOperatorAlgebra`.
-
index
()[source]¶ Return the index of
self
.This method is only for basis elements.
EXAMPLES:
sage: S = ShiftingOperatorAlgebra() sage: S[2, 1].index() (2, 1) sage: (S[2, 1] + S[1, 1]).index() Traceback (most recent call last): ... ValueError: This is only defined for basis elements. For other elements, use indices() instead.
-
-
class
ShiftingOperatorAlgebra.
Element
[source] An element of a :class`ShiftingOperatorAlgebra`.
-
index
()[source] Return the index of
self
.This method is only for basis elements.
EXAMPLES:
sage: S = ShiftingOperatorAlgebra() sage: S[2, 1].index() (2, 1) sage: (S[2, 1] + S[1, 1]).index() Traceback (most recent call last): ... ValueError: This is only defined for basis elements. For other elements, use indices() instead.
-
indices
()[source] Return the support of
self
.EXAMPLES:
sage: S = ShiftingOperatorAlgebra() sage: (S[2, 1] + S[1, 1]).indices() [(1, 1), (2, 1)]
-
-
class
all.
ShiftingSequenceSpace
(base=Integer Ring)[source]¶ A helper for
ShiftingOperatorAlgebra.
Helps
ShiftingOperatorAlgebra
know which indices are valid and which indices are not for the basis.EXAMPLES:
sage: S = ShiftingSequenceSpace() sage: (1, -1) in S True sage: (1, -1, 0, 9) in S True sage: [1, -1] in S False sage: (0.5, 1) in S False
-
check
(seq)[source]¶ Verify that
seq
is a valid shifting sequence.If it is not, raise an error.
EXAMPLES:
sage: S = ShiftingSequenceSpace() sage: S.check((1, -1)) sage: S.check((1, -1, 0, 9)) sage: S.check([1, -1]) Traceback (most recent call last): ... ValueError: Expected valid index (a tuple of Integer Ring), but instead received [1, -1]. sage: S.check((0.5, 1)) Traceback (most recent call last): ... ValueError: Expected valid index (a tuple of Integer Ring), but instead received [1, -1].
-
-
all.
compositional_hall_littlewood_Qp
(gamma, base_ring=Univariate Polynomial Ring in t over Rational Field, t=None)[source]¶ Given gamma, returns the compositional Hall-Littlewood polynomial \(H_{\gamma}(\mathbf{x}; t)\) in the Q’ basis, as defined in [cat] section 4.4.
If the composition gamma is a partition, this is just the Hall-Littlewood Q’ polynomial.
EXAMPLES:
sage: hl = SymmetricFunctions(QQ['t']).hall_littlewood().Qp() sage: compositional_hall_littlewood_Qp([3, 3, 2]) == hl[3, 3, 2] True
See also
sage.combinat.sf.hall_littlewood.HallLittlewood.Qp()
-
all.
double_catalan_function
(roots, index, n)[source]¶ Given some
roots
(typically aRootIdeal
), anindex
, and the something something of the double homemgeneous functionn
, return the corresponding double catalan function.
-
all.
double_homogeneous_building_block
(p, n)[source]¶ The double complete homogeneous symmetric polynomial “building block” \(h_p(x || a)\).
Defined as
\[h_p(x_1, \ldots, x_n \,||\, a) \,= \sum_{n \geq i_1 \geq \ldots \geq i_p \geq 1} (x_{i_1} - a_{i_1})(x_{i_2} - a_{i_2 - 1}) \cdots (x_{i_p} - a_{i_p - p + 1})\]in [Fun] section 3 between equation (6) and (7). Note that our indices are 0-based.
-
all.
double_homogeneous_building_block_shifted
(r, s, n)[source]¶ Given \(r\) and \(s\), returns \(h_{r, s} = \tau^s h_r(x \,||\, a)\), as defined in [Fun] before eq (8).
-
all.
double_schur
(index, n)[source]¶ Given a composition
index
\(= \lambda\) and the number of variables \(n\), return the double Schur function defined by\[s_\lambda(x_1, \ldots, x_n \,||\, a) = \text{det}\left(h^{(n)}_{\lambda_i + i - j, j - 1}\right)\]or equivalently, defined by
\[s_\lambda(x_1, \ldots, x_n \,||\, a) = \prod_{ij \in \Delta^+(l)} (1 - R_{ij}) h^{(n)}_{\lambda, (0, \ldots, l-1)}\]where \(l\) is the length of \(\lambda\), in [Fun] p.9 equation (9).
-
all.
dual_grothendieck_function
(composition, base_ring=Rational Field)[source]¶ Given a composition \(composition = \lambda\), return the dual Grothendieck function defined by \(g_\lambda(x) = \text{det}(h_{\lambda_i + j - i}(x, i - 1))\) in [LN] p.88 equation (4).
Equivalently, the dual Grothendieck function is \(g_\lambda(x) = \prod_{ij \in \Delta^+} (1 - R_{ij}) h_\lambda(x; (0, 1, \ldots, n-1))\).
EXAMPLES:
sage: h = SymmetricFunctions(QQ).h() sage: dual_grothendieck_function([2, 1]) h[1]*h[2] + h[2] - h[3]
See also
-
all.
dual_k_catalan_function
(roots, index, index2, base_ring=Rational Field)[source]¶ INPUTS:
roots
– iterable of roots \(\Phi\) (typically aRootIdeal
)index
– composition \(\gamma\) that indexes \(h_\gamma(x; \alpha)\)index2
– composition \(\alpha\) used in \(h_\gamma(x; \alpha)\)
OPTIONAL INPUTS:
base_ring
– (defaultQQ
) the ring over which to build the \(h_\gamma(x; \alpha)\)‘s
OUTPUTS:
The ‘dual k’ catalan function
\[\prod_{ij \in \Delta^+ \smallsetminus \Phi} (1 - R_{ij}) h_\gamma(x; \alpha).\]
-
all.
dual_k_theoretic_homogeneous
(k, r, base_ring=Rational Field)[source]¶ The dual K-theoretic h, often denoted Kh, is defined for any integer \(k\) by the formula \(h_k(x, r) = \sum_{i=0}^{k} \binom{r + i - 1}{i} h_{k - i}(x)\) in [LN] p.88 top-right.
If
k
andr
are compositions, then it is recursively defined as \(h_k(x, r) := \prod_j h_{k_j}(x, r_j)\).EXAMPLES:
sage: dual_k_theoretic_homogeneous(0, 0) 1 sage: dual_k_theoretic_homogeneous(1, 2, base_ring=QQ['t']) h[1] + 2 sage: dual_k_theoretic_homogeneous([2, 1], [1, 1]) h[1]**2 + h[1]*h[2] + 2*h[1] + h[2] + 1
See also
-
all.
get_k_irreducible_partition_lists
(k)[source]¶ Return the list of
k
-irreducible partitions.The \(k\)-irreducible partitions are output at lists, not Partition objects.
There are \(k!\) such partitions, and computation time starts to get slow around \(k = 10\).
EXAMPLES:
sage: get_k_irreducible_partition_lists(0) [[]] sage: get_k_irreducible_partition_lists(1) [[]] sage: get_k_irreducible_partition_lists(2) [[], [1]] sage: get_k_irreducible_partition_lists(3) [[], [1], [1, 1], [2], [2, 1], [2, 1, 1]]
See also
-
all.
get_k_irreducible_partitions
(k)[source]¶ Return the list of
k
-irreducible partitions.The output is a list of
Partition
objects.There are \(k!\) such partitions, and computation time starts to get slow around \(k = 10\).
EXAMPLES:
sage: get_k_irreducible_partitions(0) [[]] sage: get_k_irreducible_partitions(1) [[]] sage: get_k_irreducible_partitions(2) [[], [1]] sage: get_k_irreducible_partitions(3) [[], [1], [1, 1], [2], [2, 1], [2, 1, 1]]
See also
-
all.
get_k_rectangles
(k)[source]¶ Return the list of
k
-rectangles.A __``k``-rectangle__ is a partition whose Ferrer’s diagram is a rectangle whose largest hook-length is \(k\).
EXAMPLES:
sage: get_k_rectangles(0) [] sage: get_k_rectangles(1) [[1]] sage: get_k_rectangles(2) [[2], [1, 1]] sage: get_k_rectangles(3) [[3], [2, 2], [1, 1, 1]]
-
all.
k_plus_one_core_to_k_schur_function
(p, k, base_ring=Univariate Polynomial Ring in t over Rational Field)[source]¶ Given a \(k+1\)-core
p
, the natural numberk
itself, and optionally abase_ring
, return the corresponding \(k\)-schur function.
-
all.
qt_raising_roots_operator
(roots, base_ring=Multivariate Polynomial Ring in t, q over Rational Field, t=None, q=None)[source]¶ Return the operator \(\prod_{ij \in \Phi} (1 - tR_{ij}) \prod_{ij \in roots} (1 - qR_{ij})\).
The q-t analogue of
raising_roots_operator()
, defined by\[\prod_{ij \in \Phi} (1 - tR_{ij}) \prod_{ij \in \Phi} (1 - qR_{ij}).\]EXAMPLES:
Consider the root ideal [(0, 1)] in the 2 x 2 grid. This root ideal gives the “qt” raising roots operator \((1 - t R_{01})(1 - q R_{01})\) which equals \(1 + (-t-q) R_{01} + t q R_{01}^2\):
sage: K = QQ['t', 'q'] sage: (t, q) = K.gens() sage: R = RaisingOperatorAlgebra(base_ring=K) sage: (1 - t*R.ij(0, 1)) * (1 - q*R.ij(0, 1)) R() + (-t-q)*R(1, -1) + t*q*R(2, -2) sage: qt_raising_roots_operator([(0, 1)], base_ring=K, t=t, q=q) R() + (-t-q)*R(1, -1) + t*q*R(2, -2)
Since
QQ['t', 'q']
happens to be the default base ring, and its generators aret
andq
, we did not actually need to pass in the base ring, \(t\), nor \(q\) in the above example:sage: qt_raising_roots_operator([(0, 1)]) R() + (-t-q)*R(1, -1) + t*q*R(2, -2)
See also
-
all.
raising_roots_operator
(roots, base_ring=Univariate Polynomial Ring in t over Rational Field, t=1)[source]¶ Return the operator \(\prod_{(i,j) \in roots} (1 - tR_{ij})\).
Given a list of roots \(roots = \Phi\) (often a root ideal), and optionally a variable \(t\), return the operator
\[\prod_{(i,j) \in \Phi} (1 - tR_{ij}).\]If you input an integer for roots (e.g.
roots = 3
), it will use the biggest possible root ideal in the \(n\) x \(n\) grid (the ‘\(n\)-th staircase root ideal’).EXAMPLES:
Consider the root ideal [(0, 1)] in the 2 x 2 grid. This root ideal gives the raising roots operator \(1 - R_{01}\):
sage: R = RaisingOperatorAlgebra() sage: 1 - R.ij(0, 1) R() - R(1, -1) sage: raising_roots_operator([(0, 1)]) R() - R(1, -1) sage: raising_roots_operator(2) R() - R(1, -1)
We can pass in \(t\) in addition to get the raising roots operator \(1 - t R_{01}\). We can also choose a base ring to work over:
sage: K = FractionField(ZZ['t']) sage: t = K.gen() sage: R = RaisingOperatorAlgebra(base_ring=K) sage: 1 - t * R.ij(0, 1) R() - t*R(1, -1) sage: raising_roots_operator([(0, 1)], base_ring=K, t=t) R() - t*R(1, -1) sage: raising_roots_operator(2, base_ring=K, t=t) R() - t*R(1, -1)
See also
-
all.
shift
(element)[source]¶ The function \(\tau\) which acts on any element of \(\Lambda(a)\) (
DoubleRing
) by sending each element \(a_i\) to \(a_{i+1}\) for all \(i\). It can be found in [Fun] p.8 between equations (6) and (7).
-
all.
size_to_num_linked_partition_self_pairs
(size)[source]¶ Given a natural number
size
, count how many partitions \(l\) of sizesize
have the property that \((l, l)\) has a corresponding skew-linked-diagram.Note: A ‘skew-linked-diagram’ is a
SkewPartition
that is linked.EXAMPLES:
sage: size_to_num_linked_partition_self_pairs(0) 1 sage: size_to_num_linked_partition_self_pairs(1) 1 sage: size_to_num_linked_partition_self_pairs(2) 1 sage: size_to_num_linked_partition_self_pairs(3) 2
See also
SkewPartition.is_linked()
-
all.
straighten
(basis, gamma)[source]¶ Perform Schur function straightening by the Schur straightening rule.
See [cat], Prop. 4.1. Also known as the slinky rule.
\[\begin{split}s_{\gamma}(\mathbf{x}) = \begin{cases} \text{sgn}(\gamma+\rho) s_{\text{sort}(\gamma+\rho) -\rho}(\mathbf{x}) & \text{if } \gamma + \rho \text{ has distinct nonnegative parts,} \\ 0 & \text{otherwise,} \end{cases}\end{split}\]where \(\rho=(\ell-1,\ell-2,\dots,0)\), \(\text{sort}(\beta)\) denotes the weakly decreasing sequence obtained by sorting \(\beta\), and \(\text{sgn}(\beta)\) denotes the sign of the (shortest possible) sorting permutation.
EXAMPLES:
We know s[2, 1, 3] := -s[2, 2, 2]:
sage: s = SymmetricFunctions(QQ).s() sage: straighten(s, [2, 1, 3]) -s[2, 2, 2]
-
all.
substitute
(f, t=None, q=None)[source]¶ Given a symmetric function
f
, plug the inputtedt
andq
values into it and return the resulting function.See also
SymmetricFunctionAlgebra_schur_with_category.element_class.plethysm()
,ungraded()