Skip to content

Commit 8c8b16a

Browse files
author
Release Manager
committed
gh-36790: Combinat/sga murphy basis <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> <!-- Describe your changes here in detail --> We implement the Murphy basis of the symmetric group algebra (as defined by Dipper-James-Mathas) and make this the default cellular basis over positive characteristic since it is (significantly) faster to compute the change of basis necessary. <!-- Why is this change required? What problem does it solve? --> <!-- If this PR resolves an open issue, please link to it here. For example "Fixes #12345". --> <!-- If your change requires a documentation PR, please link it appropriately. --> ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> <!-- Feel free to remove irrelevant items. --> - [x] The title is concise, informative, and self-explanatory. - [x] The description explains in detail what this PR is about. - [x] I have linked a relevant issue or discussion. - [x] I have created tests covering the changes. - [x] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open PRs that this PR logically depends on - #12345: short description why this is a dependency - #34567: ... --> - #36718 Uses the KL basis implementation <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> URL: #36790 Reported by: Travis Scrimshaw Reviewer(s): Frédéric Chapoton
2 parents a46575d + e1f1a46 commit 8c8b16a

File tree

3 files changed

+340
-40
lines changed

3 files changed

+340
-40
lines changed

src/doc/en/reference/references/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4520,6 +4520,10 @@ REFERENCES:
45204520
.. [Mat2002] Jiří Matousek, "Lectures on Discrete Geometry", Springer,
45214521
2002
45224522
4523+
.. [Mathas2004] Andrew Mathas.
4524+
*Matrix units and generic degrees for the Ariki-Koike algebras*.
4525+
J. Algebra. **281** (2004) pp. 695-730.
4526+
45234527
.. [Mas1995] Mason, Geoffrey. *The quantum double of a finite group and its role
45244528
in conformal field theory*. Groups '93 Galway/St. Andrews, Vol. 2,
45254529
405-417, London Math. Soc. Lecture Note Ser., 212, Cambridge, 1995.

src/sage/algebras/cellular_basis.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ class CellularBasis(CombinatorialFreeModule):
164164
- C([2, 1], [[1, 3], [2]], [[1, 3], [2]])
165165
+ C([3], [[1, 2, 3]], [[1, 2, 3]])
166166
"""
167-
def __init__(self, A):
167+
def __init__(self, A, to_algebra=None, from_algebra=None, **kwargs):
168168
r"""
169169
Initialize ``self``.
170170
@@ -181,21 +181,26 @@ def __init__(self, A):
181181

182182
# TODO: Use instead A.category().Realizations() so
183183
# operations are defined by coercion?
184+
prefix = kwargs.pop('prefix', 'C')
184185
cat = Algebras(A.category().base_ring()).FiniteDimensional().WithBasis().Cellular()
185186
CombinatorialFreeModule.__init__(self, A.base_ring(), I,
186-
prefix='C', bracket=False,
187-
category=cat)
187+
prefix=prefix, bracket=False,
188+
category=cat, **kwargs)
188189

189190
# Register coercions
190-
if A._to_cellular_element is not NotImplemented:
191-
to_cellular = A.module_morphism(A._to_cellular_element, codomain=self,
191+
if from_algebra is None:
192+
from_algebra = A._to_cellular_element
193+
if to_algebra is None:
194+
to_algebra = A._from_cellular_index
195+
if from_algebra is not NotImplemented:
196+
to_cellular = A.module_morphism(from_algebra, codomain=self,
192197
category=cat)
193-
if A._from_cellular_index is NotImplemented:
198+
if to_algebra is NotImplemented:
194199
from_cellular = ~to_cellular
195200
else:
196-
from_cellular = self.module_morphism(A._from_cellular_index, codomain=A,
201+
from_cellular = self.module_morphism(to_algebra, codomain=A,
197202
category=cat)
198-
if A._to_cellular_element is NotImplemented:
203+
if from_algebra is NotImplemented:
199204
to_cellular = ~from_cellular
200205
to_cellular.register_as_coercion()
201206
from_cellular.register_as_coercion()

0 commit comments

Comments
 (0)