-
-
Notifications
You must be signed in to change notification settings - Fork 692
Implement Specht modules for diagrams #35036
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
7511a41
0c7d779
8c4d5f9
ca29365
256bf4d
a231593
ff7bc98
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
- Loading branch information
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5484,25 +5484,51 @@ def coloring(i): | |
| return self.dual_equivalence_graph(directed, coloring) | ||
|
|
||
| def specht_module(self, BR=None): | ||
| """ | ||
| Return the Specht module corresponding to ``self``. | ||
| r""" | ||
| Return the Specht module corresponding to ``self``. | ||
|
|
||
| EXAMPLES:: | ||
|
|
||
| sage: SM = Partition([2,2,1]).specht_module(QQ) | ||
| sage: SM | ||
| Free module generated by {0, 1, 2, 3, 4} over Rational Field | ||
| sage: s = SymmetricFunctions(QQ).s() | ||
| sage: s(SM.frobenius_image()) | ||
| s[2, 2, 1] | ||
| """ | ||
| from sage.combinat.specht_module import SpechtModule | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. maybe factor out a function
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't really see the benefit. To me, it adds more indirection and complexity to save on just doing one import at each point of the code instead of two (as the second import is still done). To me, it is equivalent to having class Bar:
def __init__(self, x):
self._x = x
def foo(x):
from above import Bar
return Bar(x)which I would want to just call |
||
| from sage.combinat.symmetric_group_algebra import SymmetricGroupAlgebra | ||
| if BR is None: | ||
| from sage.rings.rational_field import QQ | ||
| BR = QQ | ||
| R = SymmetricGroupAlgebra(BR, sum(self)) | ||
| return SpechtModule(R, self.cells()) | ||
| return SpechtModule(R, self) | ||
|
|
||
| def specht_module_dimension(self): | ||
| """ | ||
| def specht_module_dimension(self, BR=None): | ||
| r""" | ||
| Return the dimension of the Specht module corresponding to ``self``. | ||
|
|
||
| This is equal to the number of standard tableaux of shape ``self`` when | ||
| over a field of characteristic `0`. | ||
|
|
||
| INPUT: | ||
|
|
||
| - ``BR`` -- (default: `\QQ`) the base ring | ||
|
|
||
| EXAMPLES:: | ||
|
|
||
| This is equal to the number of standard tableaux of shape ``self``. | ||
| sage: Partition([2,2,1]).specht_module_dimension() | ||
| 5 | ||
| sage: Partition([2,2,1]).specht_module_dimension(GF(2)) | ||
| 5 | ||
| """ | ||
| from sage.combinat.tableau import StandardTableaux | ||
| return StandardTableaux(self).cardinality() | ||
| from sage.categories.fields import Fields | ||
| if BR is None or (BR in Fields() and BR.characteristic() == 0): | ||
| from sage.combinat.tableau import StandardTableaux | ||
| return StandardTableaux(self).cardinality() | ||
| from sage.combinat.specht_module import specht_module_rank | ||
| return specht_module_rank(self, BR) | ||
|
|
||
|
|
||
| ############## | ||
| # Partitions # | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.