Möbius Algebras¶
- class sage.combinat.posets.moebius_algebra.BasisAbstract(R, basis_keys=None, element_class=None, category=None, prefix=None, names=None, **kwds)[source]¶
Bases:
CombinatorialFreeModule
,BindableClass
Abstract base class for a basis.
- class sage.combinat.posets.moebius_algebra.MoebiusAlgebra(R, L)[source]¶
Bases:
Parent
,UniqueRepresentation
The Möbius algebra of a lattice.
Let \(L\) be a lattice. The Möbius algebra \(M_L\) was originally constructed by Solomon [Solomon67] and has a natural basis \(\{ E_x \mid x \in L \}\) with multiplication given by \(E_x \cdot E_y = E_{x \vee y}\). Moreover this has a basis given by orthogonal idempotents \(\{ I_x \mid x \in L \}\) (so \(I_x I_y = \delta_{xy} I_x\) where \(\delta\) is the Kronecker delta) related to the natural basis by
\[I_x = \sum_{x \leq y} \mu_L(x, y) E_y,\]where \(\mu_L\) is the Möbius function of \(L\).
Note
We use the join \(\vee\) for our multiplication, whereas [Greene73] and [Etienne98] define the Möbius algebra using the meet \(\wedge\). This is done for compatibility with
QuantumMoebiusAlgebra
.REFERENCES:
[Solomon67]Louis Solomon. The Burnside Algebra of a Finite Group. Journal of Combinatorial Theory, 2, 1967. doi:10.1016/S0021-9800(67)80064-4.
[Greene73]Curtis Greene. On the Möbius algebra of a partially ordered set. Advances in Mathematics, 10, 1973. doi:10.1016/0001-8708(73)90106-0.
[Etienne98]Gwihen Etienne. On the Möbius algebra of geometric lattices. European Journal of Combinatorics, 19, 1998. doi:10.1006/eujc.1998.0227.
- class E(M, prefix='E')[source]¶
Bases:
BasisAbstract
The natural basis of a Möbius algebra.
Let \(E_x\) and \(E_y\) be basis elements of \(M_L\) for some lattice \(L\). Multiplication is given by \(E_x E_y = E_{x \vee y}\).
- one()[source]¶
Return the element
1
ofself
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: E = L.moebius_algebra(QQ).E() sage: E.one() E[0]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> E = L.moebius_algebra(QQ).E() >>> E.one() E[0]
L = posets.BooleanLattice(4) E = L.moebius_algebra(QQ).E() E.one()
- product_on_basis(x, y)[source]¶
Return the product of basis elements indexed by
x
andy
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: E = L.moebius_algebra(QQ).E() sage: E.product_on_basis(5, 14) E[15] sage: E.product_on_basis(2, 8) E[10]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> E = L.moebius_algebra(QQ).E() >>> E.product_on_basis(Integer(5), Integer(14)) E[15] >>> E.product_on_basis(Integer(2), Integer(8)) E[10]
L = posets.BooleanLattice(4) E = L.moebius_algebra(QQ).E() E.product_on_basis(5, 14) E.product_on_basis(2, 8)
- class I(M, prefix='I')[source]¶
Bases:
BasisAbstract
The (orthogonal) idempotent basis of a Möbius algebra.
Let \(I_x\) and \(I_y\) be basis elements of \(M_L\) for some lattice \(L\). Multiplication is given by \(I_x I_y = \delta_{xy} I_x\) where \(\delta_{xy}\) is the Kronecker delta.
- one()[source]¶
Return the element
1
ofself
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: I = L.moebius_algebra(QQ).I() sage: I.one() I[0] + I[1] + I[2] + I[3] + I[4] + I[5] + I[6] + I[7] + I[8] + I[9] + I[10] + I[11] + I[12] + I[13] + I[14] + I[15]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> I = L.moebius_algebra(QQ).I() >>> I.one() I[0] + I[1] + I[2] + I[3] + I[4] + I[5] + I[6] + I[7] + I[8] + I[9] + I[10] + I[11] + I[12] + I[13] + I[14] + I[15]
L = posets.BooleanLattice(4) I = L.moebius_algebra(QQ).I() I.one()
- product_on_basis(x, y)[source]¶
Return the product of basis elements indexed by
x
andy
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: I = L.moebius_algebra(QQ).I() sage: I.product_on_basis(5, 14) 0 sage: I.product_on_basis(2, 2) I[2]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> I = L.moebius_algebra(QQ).I() >>> I.product_on_basis(Integer(5), Integer(14)) 0 >>> I.product_on_basis(Integer(2), Integer(2)) I[2]
L = posets.BooleanLattice(4) I = L.moebius_algebra(QQ).I() I.product_on_basis(5, 14) I.product_on_basis(2, 2)
- a_realization()[source]¶
Return a particular realization of
self
(the \(B\)-basis).EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: M = L.moebius_algebra(QQ) sage: M.a_realization() Moebius algebra of Finite lattice containing 16 elements over Rational Field in the natural basis
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> M = L.moebius_algebra(QQ) >>> M.a_realization() Moebius algebra of Finite lattice containing 16 elements over Rational Field in the natural basis
L = posets.BooleanLattice(4) M = L.moebius_algebra(QQ) M.a_realization()
- lattice()[source]¶
Return the defining lattice of
self
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: M = L.moebius_algebra(QQ) sage: M.lattice() Finite lattice containing 16 elements sage: M.lattice() == L True
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> M = L.moebius_algebra(QQ) >>> M.lattice() Finite lattice containing 16 elements >>> M.lattice() == L True
L = posets.BooleanLattice(4) M = L.moebius_algebra(QQ) M.lattice() M.lattice() == L
- class sage.combinat.posets.moebius_algebra.MoebiusAlgebraBases(parent_with_realization)[source]¶
Bases:
Category_realization_of_parent
The category of bases of a Möbius algebra.
INPUT:
base
– a Möbius algebra
- class ParentMethods[source]¶
Bases:
object
- one()[source]¶
Return the element
1
ofself
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: C = L.quantum_moebius_algebra().C() sage: all(C.one() * b == b for b in C.basis()) True
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> C = L.quantum_moebius_algebra().C() >>> all(C.one() * b == b for b in C.basis()) True
L = posets.BooleanLattice(4) C = L.quantum_moebius_algebra().C() all(C.one() * b == b for b in C.basis())
- product_on_basis(x, y)[source]¶
Return the product of basis elements indexed by
x
andy
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: C = L.quantum_moebius_algebra().C() sage: C.product_on_basis(5, 14) q^3*C[15] sage: C.product_on_basis(2, 8) q^4*C[10]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> C = L.quantum_moebius_algebra().C() >>> C.product_on_basis(Integer(5), Integer(14)) q^3*C[15] >>> C.product_on_basis(Integer(2), Integer(8)) q^4*C[10]
L = posets.BooleanLattice(4) C = L.quantum_moebius_algebra().C() C.product_on_basis(5, 14) C.product_on_basis(2, 8)
- super_categories()[source]¶
The super categories of
self
.EXAMPLES:
sage: from sage.combinat.posets.moebius_algebra import MoebiusAlgebraBases sage: M = posets.BooleanLattice(4).moebius_algebra(QQ) sage: bases = MoebiusAlgebraBases(M) sage: bases.super_categories() [Category of finite dimensional commutative algebras with basis over Rational Field, Category of realizations of Moebius algebra of Finite lattice containing 16 elements over Rational Field]
>>> from sage.all import * >>> from sage.combinat.posets.moebius_algebra import MoebiusAlgebraBases >>> M = posets.BooleanLattice(Integer(4)).moebius_algebra(QQ) >>> bases = MoebiusAlgebraBases(M) >>> bases.super_categories() [Category of finite dimensional commutative algebras with basis over Rational Field, Category of realizations of Moebius algebra of Finite lattice containing 16 elements over Rational Field]
from sage.combinat.posets.moebius_algebra import MoebiusAlgebraBases M = posets.BooleanLattice(4).moebius_algebra(QQ) bases = MoebiusAlgebraBases(M) bases.super_categories()
- class sage.combinat.posets.moebius_algebra.QuantumMoebiusAlgebra(L, q=None)[source]¶
Bases:
Parent
,UniqueRepresentation
The quantum Möbius algebra of a lattice.
Let \(L\) be a lattice, and we define the quantum Möbius algebra \(M_L(q)\) as the algebra with basis \(\{ E_x \mid x \in L \}\) with multiplication given by
\[E_x E_y = \sum_{z \geq a \geq x \vee y} \mu_L(a, z) q^{\operatorname{crk} a} E_z,\]where \(\mu_L\) is the Möbius function of \(L\) and \(\operatorname{crk}\) is the corank function (i.e., \(\operatorname{crk} a = \operatorname{rank} L - \operatorname{rank}\) a). At \(q = 1\), this reduces to the multiplication formula originally given by Solomon.
- class C(M, prefix='C')[source]¶
Bases:
BasisAbstract
The characteristic basis of a quantum Möbius algebra.
The characteristic basis \(\{ C_x \mid x \in L \}\) of \(M_L\) for some lattice \(L\) is defined by
\[C_x = \sum_{a \geq x} P(F^x; q) E_a,\]where \(F^x = \{ y \in L \mid y \geq x \}\) is the principal order filter of \(x\) and \(P(F^x; q)\) is the characteristic polynomial of the (sub)poset \(F^x\).
- class E(M, prefix='E')[source]¶
Bases:
BasisAbstract
The natural basis of a quantum Möbius algebra.
Let \(E_x\) and \(E_y\) be basis elements of \(M_L\) for some lattice \(L\). Multiplication is given by
\[E_x E_y = \sum_{z \geq a \geq x \vee y} \mu_L(a, z) q^{\operatorname{crk} a} E_z,\]where \(\mu_L\) is the Möbius function of \(L\) and \(\operatorname{crk}\) is the corank function (i.e., \(\operatorname{crk} a = \operatorname{rank} L - \operatorname{rank}\) a).
- one()[source]¶
Return the element
1
ofself
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: E = L.quantum_moebius_algebra().E() sage: all(E.one() * b == b for b in E.basis()) True
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> E = L.quantum_moebius_algebra().E() >>> all(E.one() * b == b for b in E.basis()) True
L = posets.BooleanLattice(4) E = L.quantum_moebius_algebra().E() all(E.one() * b == b for b in E.basis())
- product_on_basis(x, y)[source]¶
Return the product of basis elements indexed by
x
andy
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: E = L.quantum_moebius_algebra().E() sage: E.product_on_basis(5, 14) E[15] sage: E.product_on_basis(2, 8) q^2*E[10] + (q-q^2)*E[11] + (q-q^2)*E[14] + (1-2*q+q^2)*E[15]
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> E = L.quantum_moebius_algebra().E() >>> E.product_on_basis(Integer(5), Integer(14)) E[15] >>> E.product_on_basis(Integer(2), Integer(8)) q^2*E[10] + (q-q^2)*E[11] + (q-q^2)*E[14] + (1-2*q+q^2)*E[15]
L = posets.BooleanLattice(4) E = L.quantum_moebius_algebra().E() E.product_on_basis(5, 14) E.product_on_basis(2, 8)
- class KL(M, prefix='KL')[source]¶
Bases:
BasisAbstract
The Kazhdan-Lusztig basis of a quantum Möbius algebra.
The Kazhdan-Lusztig basis \(\{ B_x \mid x \in L \}\) of \(M_L\) for some lattice \(L\) is defined by
\[B_x = \sum_{y \geq x} P_{x,y}(q) E_a,\]where \(P_{x,y}(q)\) is the Kazhdan-Lusztig polynomial of \(L\), following the definition given in [EPW14].
EXAMPLES:
We construct some examples of Proposition 4.5 of [EPW14]:
sage: M = posets.BooleanLattice(4).quantum_moebius_algebra() sage: KL = M.KL() sage: KL[4] * KL[5] (q^2+q^3)*KL[5] + (q+2*q^2+q^3)*KL[7] + (q+2*q^2+q^3)*KL[13] + (1+3*q+3*q^2+q^3)*KL[15] sage: KL[4] * KL[15] (1+3*q+3*q^2+q^3)*KL[15] sage: KL[4] * KL[10] (q+3*q^2+3*q^3+q^4)*KL[14] + (1+4*q+6*q^2+4*q^3+q^4)*KL[15]
>>> from sage.all import * >>> M = posets.BooleanLattice(Integer(4)).quantum_moebius_algebra() >>> KL = M.KL() >>> KL[Integer(4)] * KL[Integer(5)] (q^2+q^3)*KL[5] + (q+2*q^2+q^3)*KL[7] + (q+2*q^2+q^3)*KL[13] + (1+3*q+3*q^2+q^3)*KL[15] >>> KL[Integer(4)] * KL[Integer(15)] (1+3*q+3*q^2+q^3)*KL[15] >>> KL[Integer(4)] * KL[Integer(10)] (q+3*q^2+3*q^3+q^4)*KL[14] + (1+4*q+6*q^2+4*q^3+q^4)*KL[15]
M = posets.BooleanLattice(4).quantum_moebius_algebra() KL = M.KL() KL[4] * KL[5] KL[4] * KL[15] KL[4] * KL[10]
- a_realization()[source]¶
Return a particular realization of
self
(the \(B\)-basis).EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: M = L.quantum_moebius_algebra() sage: M.a_realization() Quantum Moebius algebra of Finite lattice containing 16 elements with q=q over Univariate Laurent Polynomial Ring in q over Integer Ring in the natural basis
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> M = L.quantum_moebius_algebra() >>> M.a_realization() Quantum Moebius algebra of Finite lattice containing 16 elements with q=q over Univariate Laurent Polynomial Ring in q over Integer Ring in the natural basis
L = posets.BooleanLattice(4) M = L.quantum_moebius_algebra() M.a_realization()
- lattice()[source]¶
Return the defining lattice of
self
.EXAMPLES:
sage: L = posets.BooleanLattice(4) sage: M = L.quantum_moebius_algebra() sage: M.lattice() Finite lattice containing 16 elements sage: M.lattice() == L True
>>> from sage.all import * >>> L = posets.BooleanLattice(Integer(4)) >>> M = L.quantum_moebius_algebra() >>> M.lattice() Finite lattice containing 16 elements >>> M.lattice() == L True
L = posets.BooleanLattice(4) M = L.quantum_moebius_algebra() M.lattice() M.lattice() == L