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 of self.

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 and y.

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 of self.

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 and y.

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()
idempotent[source]

alias of I

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
natural[source]

alias of E

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 ElementMethods[source]

Bases: object

class ParentMethods[source]

Bases: object

one()[source]

Return the element 1 of self.

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 and y.

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 of self.

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 and y.

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()
characteristic_basis[source]

alias of C

kazhdan_lusztig[source]

alias of KL

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
natural[source]

alias of E