Cellular Basis¶
Cellular algebras are a class of algebras introduced by Graham and Lehrer
[GrLe1996]. The CellularBasis class provides a general framework for
implementing cellular algebras and their cell modules and simple modules.
Let \(R\) be a commutative ring. A \(R\)-algebra \(A\) is a cellular algebra if it has a cell datum, which is a tuple \((\Lambda, i, M, C)\), where \(\Lambda\) is finite poset with order \(\ge\), if \(\mu \in \Lambda\) then \(T(\mu)\) is a finite set and
such that the following holds:
- The set \(\{c^\mu_{st}\mid \mu\in\Lambda, s,t\in T(\mu)\}\) is a basis of \(A\). 
- If \(a \in A\) and \(\mu\in\Lambda, s,t \in T(\mu)\) then: \[a c^\mu_{st} = \sum_{u\in T(\mu)} r_a(s,u) c^\mu_{ut} \pmod{A^{>\mu}},\]- where \(A^{>\mu}\) is spanned by \[`\{c^\nu_{ab} | \nu > \mu\text{ and } a,b \in T(\nu)\}`.\]- Moreover, the scalar \(r_a(s,u)\) depends only on \(a\), \(s\) and \(u\) and, in particular, is independent of \(t\). 
- The map \(\iota \colon A \longrightarrow A; c^\mu_{st} \mapsto c^\mu_{ts}\) is an algebra anti-isomorphism. 
A cellular basis for \(A\) is any basis of the form \(\{c^\mu_{st} \mid \mu \in \Lambda, s,t \in T(\mu) \}\).
Note that the scalars \(r_a(s,u) \in R\) depend only if \(a\), \(s\) and \(u\) and,
in particular, they do not depend on \(t\). It follows from the definition of
a cell datum that \(A^{>\mu}\) is a two-sided ideal of \(A\). More importantly,
if \(\mu \in \Lambda\) then the
CellModule \(C^\mu\) is the
free \(R\)-module with basis \(\{c^\mu_s \mid \mu \in \Lambda, s \in T(\mu)\}\)
and with \(A\)-action:
where the scalars \(r_a(s,u)\) are those appearing in the definition of the cell datum. It follows from the cellular basis axioms that \(C^\mu\) comes equipped with a bilinear form \(\langle\ ,\ \rangle\) that is determined by:
The radical of \(C^\mu\) is the \(A\)-submodule
\(\operatorname{rad} C^\mu = \{x \in C^\mu | \langle x,y \rangle = 0 \}\).
Hence, \(D^\mu = C^\mu / \operatorname{rad} C^\mu\) is also an \(A\)-module.
It is not difficult to show that \(\{ D^\mu \mid D^\mu \neq 0 \}\) is a
complete set of pairwise non-isomorphic \(A\)-modules. Hence, a cell datum for
\(A\) gives an explicit construction of the irreducible \(A\)-modules. The module
simple_module()
\(D^\mu\) is either zero or absolutely irreducible.
EXAMPLES:
We compute a cellular basis and do some basic computations:
sage: S = SymmetricGroupAlgebra(QQ, 3)
sage: C = S.cellular_basis()
sage: C
Cellular basis of Symmetric group algebra of order 3
 over Rational Field
>>> from sage.all import *
>>> S = SymmetricGroupAlgebra(QQ, Integer(3))
>>> C = S.cellular_basis()
>>> C
Cellular basis of Symmetric group algebra of order 3
 over Rational Field
See also
AUTHOR:
- Travis Scrimshaw (2015-11-5): Initial version 
REFERENCES:
- class sage.algebras.cellular_basis.CellularBasis(A, to_algebra=None, from_algebra=None, **kwargs)[source]¶
- Bases: - CombinatorialFreeModule- The cellular basis of a cellular algebra, in the sense of Graham and Lehrer [GrLe1996]. - INPUT: - A– the cellular algebra
 - EXAMPLES: - We compute a cellular basis and do some basic computations: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C Cellular basis of Symmetric group algebra of order 3 over Rational Field sage: len(C.basis()) 6 sage: len(S.basis()) 6 sage: a,b,c,d,e,f = C.basis() sage: f C([3], [[1, 2, 3]], [[1, 2, 3]]) sage: c C([2, 1], [[1, 3], [2]], [[1, 2], [3]]) sage: d C([2, 1], [[1, 2], [3]], [[1, 3], [2]]) sage: f * f C([3], [[1, 2, 3]], [[1, 2, 3]]) sage: f * c 0 sage: d * c C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) sage: c * d C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) sage: S(f) 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] sage: S(d) 1/4*[1, 3, 2] - 1/4*[2, 3, 1] + 1/4*[3, 1, 2] - 1/4*[3, 2, 1] sage: B = list(S.basis()) sage: B[2] [2, 1, 3] sage: C(B[2]) -C([1, 1, 1], [[1], [2], [3]], [[1], [2], [3]]) + C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) - C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) + C([3], [[1, 2, 3]], [[1, 2, 3]]) - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C Cellular basis of Symmetric group algebra of order 3 over Rational Field >>> len(C.basis()) 6 >>> len(S.basis()) 6 >>> a,b,c,d,e,f = C.basis() >>> f C([3], [[1, 2, 3]], [[1, 2, 3]]) >>> c C([2, 1], [[1, 3], [2]], [[1, 2], [3]]) >>> d C([2, 1], [[1, 2], [3]], [[1, 3], [2]]) >>> f * f C([3], [[1, 2, 3]], [[1, 2, 3]]) >>> f * c 0 >>> d * c C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) >>> c * d C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) >>> S(f) 1/6*[1, 2, 3] + 1/6*[1, 3, 2] + 1/6*[2, 1, 3] + 1/6*[2, 3, 1] + 1/6*[3, 1, 2] + 1/6*[3, 2, 1] >>> S(d) 1/4*[1, 3, 2] - 1/4*[2, 3, 1] + 1/4*[3, 1, 2] - 1/4*[3, 2, 1] >>> B = list(S.basis()) >>> B[Integer(2)] [2, 1, 3] >>> C(B[Integer(2)]) -C([1, 1, 1], [[1], [2], [3]], [[1], [2], [3]]) + C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) - C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) + C([3], [[1, 2, 3]], [[1, 2, 3]]) - cell_module_indices(la)[source]¶
- Return the indices of the cell module of - selfindexed by- la.- This is the finite set \(M(\lambda)\). - EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C.cell_module_indices([2,1]) Standard tableaux of shape [2, 1] - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C.cell_module_indices([Integer(2),Integer(1)]) Standard tableaux of shape [2, 1] 
 - cell_poset()[source]¶
- Return the cell poset of - self.- EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C.cell_poset() Finite poset containing 3 elements - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C.cell_poset() Finite poset containing 3 elements 
 - cellular_basis()[source]¶
- Return the cellular basis of - self, which is- self.- EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C.cellular_basis() is C True - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C.cellular_basis() is C True 
 - cellular_basis_of()[source]¶
- Return the defining algebra of - self.- EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C.cellular_basis_of() is S True - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C.cellular_basis_of() is S True 
 - one()[source]¶
- Return the element \(1\) in - self.- EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: C.one() C([1, 1, 1], [[1], [2], [3]], [[1], [2], [3]]) + C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) + C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) + C([3], [[1, 2, 3]], [[1, 2, 3]]) - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> C.one() C([1, 1, 1], [[1], [2], [3]], [[1], [2], [3]]) + C([2, 1], [[1, 2], [3]], [[1, 2], [3]]) + C([2, 1], [[1, 3], [2]], [[1, 3], [2]]) + C([3], [[1, 2, 3]], [[1, 2, 3]]) 
 - product_on_basis(x, y)[source]¶
- Return the product of basis indices by - xand- y.- EXAMPLES: - sage: S = SymmetricGroupAlgebra(QQ, 3) sage: C = S.cellular_basis() sage: la = Partition([2,1]) sage: s = StandardTableau([[1,2],[3]]) sage: t = StandardTableau([[1,3],[2]]) sage: C.product_on_basis((la, s, t), (la, s, t)) 0 - >>> from sage.all import * >>> S = SymmetricGroupAlgebra(QQ, Integer(3)) >>> C = S.cellular_basis() >>> la = Partition([Integer(2),Integer(1)]) >>> s = StandardTableau([[Integer(1),Integer(2)],[Integer(3)]]) >>> t = StandardTableau([[Integer(1),Integer(3)],[Integer(2)]]) >>> C.product_on_basis((la, s, t), (la, s, t)) 0