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
be a lattice. The Möbius algebra was originally constructed by Solomon [Solomon67] and has a natural basis with multiplication given by . Moreover this has a basis given by orthogonal idempotents (so where is the Kronecker delta) related to the natural basis bywhere
is the Möbius function of .Note
We use the join
for our multiplication, whereas [Greene73] and [Etienne98] define the Möbius algebra using the meet . This is done for compatibility withQuantumMoebiusAlgebra
.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
and be basis elements of for some lattice . Multiplication is given by .- 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
and be basis elements of for some lattice . Multiplication is given by where 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 -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
be a lattice, and we define the quantum Möbius algebra as the algebra with basis with multiplication given bywhere
is the Möbius function of and is the corank function (i.e., a). At , 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
of for some lattice is defined bywhere
is the principal order filter of and is the characteristic polynomial of the (sub)poset .
- class E(M, prefix='E')[source]¶
Bases:
BasisAbstract
The natural basis of a quantum Möbius algebra.
Let
and be basis elements of for some lattice . Multiplication is given bywhere
is the Möbius function of and is the corank function (i.e., 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
of for some lattice is defined bywhere
is the Kazhdan-Lusztig polynomial of , 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 -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