Skip to content

Commit

Permalink
Trac #17560: Implement (quantum) Mobius algebras
Browse files Browse the repository at this point in the history
Based on ''The Kazhdan-Lusztig polynomial of a matroid'' by Ben Elias,
Nicholas Proudfoot, and Max Wakefield by recently posted to the arXiv
(1412.7408), this implements their results for general graded lattices.
In particular, this implements the Mobius algebra, and it's
q-deformation (which I've coined as the quantum Mobius algebra). This
also implements KL polynomials for general graded posets.

In particular, you can use #14786 and recover the KL polynomials.
However the code in its current state is quite slow (most of the time is
spent constructing the digraphs for the posets), but faster
implementations can be done on followup tickets.

URL: http://trac.sagemath.org/17560
Reported by: tscrim
Ticket author(s): Travis Scrimshaw
Reviewer(s): Kevin Dilks
  • Loading branch information
Release Manager authored and vbraun committed Oct 18, 2015
2 parents 8ebbe9a + 461c314 commit a73dbeb
Show file tree
Hide file tree
Showing 6 changed files with 903 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/doc/en/reference/combinat/module_list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ Comprehensive Module list
sage/combinat/posets/incidence_algebras
sage/combinat/posets/lattices
sage/combinat/posets/linear_extensions
sage/combinat/posets/moebius_algebra
sage/combinat/posets/poset_examples
sage/combinat/posets/posets
sage/combinat/q_analogues
Expand Down
2 changes: 2 additions & 0 deletions src/sage/algebras/catalog.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
- :class:`algebras.Incidence <sage.combinat.posets.incidence_algebras.IncidenceAlgebra>`
- :class:`algebras.IwahoriHecke
<sage.algebras.iwahori_hecke_algebra.IwahoriHeckeAlgebra>`
- :class:`algebras.Mobius <sage.combinat.posets.mobius_algebra.MobiusAlgebra>`
- :class:`algebras.Jordan
<sage.algebras.jordan_algebra.JordanAlgebra>`
- :class:`algebras.NilCoxeter
Expand Down Expand Up @@ -56,6 +57,7 @@
lazy_import('sage.algebras.schur_algebra', 'SchurAlgebra', 'Schur')
lazy_import('sage.algebras.commutative_dga', 'GradedCommutativeAlgebra', 'GradedCommutative')
lazy_import('sage.combinat.posets.incidence_algebras', 'IncidenceAlgebra', 'Incidence')
lazy_import('sage.combinat.posets.mobius_algebra', 'MobiusAlgebra', 'Mobius')
lazy_import('sage.combinat.free_prelie_algebra', 'FreePreLieAlgebra', 'FreePreLie')
del lazy_import # We remove the object from here so it doesn't appear under tab completion

2 changes: 2 additions & 0 deletions src/sage/combinat/posets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@
- :ref:`sage.combinat.posets.cartesian_product`
- :ref:`sage.combinat.posets.moebius_algebra`
- :ref:`sage.combinat.tamari_lattices`
- :ref:`sage.combinat.interval_posets`
- :ref:`sage.combinat.shard_order`
Expand Down
32 changes: 32 additions & 0 deletions src/sage/combinat/posets/lattices.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
#
# http://www.gnu.org/licenses/
#*****************************************************************************

from sage.categories.finite_lattice_posets import FiniteLatticePosets
from sage.combinat.posets.posets import Poset, FinitePoset
from sage.combinat.posets.elements import (LatticePosetElement,
Expand Down Expand Up @@ -1147,6 +1148,37 @@ def frattini_sublattice(self):
return LatticePoset(self.subposet([self[x] for x in
self._hasse_diagram.frattini_sublattice()]))

def moebius_algebra(self, R):
"""
Return the Mobius algebra of ``self`` over ``R``.
EXAMPLES::
sage: L = posets.BooleanLattice(4)
sage: L.moebius_algebra(QQ)
Moebius algebra of Finite lattice containing 16 elements over Rational Field
"""
from sage.combinat.posets.moebius_algebra import MoebiusAlgebra
return MoebiusAlgebra(R, self)

def quantum_moebius_algebra(self, q=None):
"""
Return the quantum Mobius algebra of ``self`` with parameter ``q``.
INPUT:
- ``q`` -- (optional) the deformation parameter `q`
EXAMPLES::
sage: L = posets.BooleanLattice(4)
sage: L.quantum_moebius_algebra()
Quantum Moebius algebra of Finite lattice containing 16 elements
with q=q over Univariate Laurent Polynomial Ring in q over Integer Ring
"""
from sage.combinat.posets.moebius_algebra import QuantumMoebiusAlgebra
return QuantumMoebiusAlgebra(self, q)

############################################################################

FiniteMeetSemilattice._dual_class = FiniteJoinSemilattice
Expand Down
Loading

0 comments on commit a73dbeb

Please sign in to comment.