Skip to content

Conversation

tscrim
Copy link
Collaborator

@tscrim tscrim commented Apr 25, 2024

We provide an implementation of Garsia-Procesi modules, which are an important class of representations of the symmetric group that comes from the cohomology of the Springer fiber. This provides an implementation as a representation on a quotient ring. This also does the following as part of getting the code to work (and a few related changes):

  • Implement the meataxe algorithm over finite fields to compute the composition series.
  • Move the (Brauer) character and other methods from symmetric group representation to the general representation class.
  • Made the abstract representation class work more generically and streamlined the implementation.
  • Expose the Representation class as part of the semigroup (algebras) API.

📝 Checklist

  • The title is concise and informative.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation and checked the documentation preview.

⌛ Dependencies

Copy link

github-actions bot commented May 8, 2024

Documentation preview for this PR (built with commit 34418b5; changes) is ready! 🎉
This preview will update shortly after each push to this PR.

"""
G = self._semigroup
B = self.basis()
chi = [sum((g * B[k])[k] for k in B.keys())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

perhaps

Suggested change
chi = [sum((g * B[k])[k] for k in B.keys())
chi = [sum((g * b)[k] for k, b in B.items())

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I prefer the explicitness here, and I would like to keep it the way it is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok

@tscrim tscrim force-pushed the combinat/garsia_procesi_modules branch from d7fd435 to 361a36b Compare May 28, 2024 08:03
@tscrim
Copy link
Collaborator Author

tscrim commented May 28, 2024

I've made all the other changes.

@mkoeppe
Copy link
Contributor

mkoeppe commented Jun 4, 2024

Test failures. Looks like the rename parent_class -> submodule_class has not been done everywhere

@tscrim
Copy link
Collaborator Author

tscrim commented Jun 4, 2024

Test failures. Looks like the rename parent_class -> submodule_class has not been done everywhere

Indeed, I missed one. Fixed.

Copy link
Contributor

@mkoeppe mkoeppe left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 5, 2024
sagemathgh-37871: Construct the composition series of Garsia-Procesi modules
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

We provide an implementation of Garsia-Procesi modules, which are an
important class of representations of the symmetric group that comes
from the cohomology of the Springer fiber. This provides an
implementation as a representation on a quotient ring. This also does
the following as part of getting the code to work (and a few related
changes):

- Implement the meataxe algorithm over finite fields to compute the
composition series.
- Move the (Brauer) character and other methods from symmetric group
representation to the general representation class.
- Made the abstract representation class work more generically and
streamlined the implementation.
- Expose the `Representation` class as part of the semigroup (algebras)
API.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [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 and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
    
URL: sagemath#37871
Reported by: Travis Scrimshaw
Reviewer(s): Matthias Köppe, Travis Scrimshaw
@tscrim
Copy link
Collaborator Author

tscrim commented Jun 5, 2024

Thank you.

@vbraun vbraun merged commit 54b3e53 into sagemath:develop Jun 9, 2024
@tscrim tscrim deleted the combinat/garsia_procesi_modules branch June 9, 2024 23:17
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 16, 2024
sagemathgh-37830: Implement the Schur functors applied to semigroup representations
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

The Schur functor is an important part of the representation theory of
$GL_n$, but it can be defined generically for any representation of a
semigroup (well, really for any vector space, but the utility is for
representation theory). We provide an implementation, realizing the
natural representation structure. To help with examples, we also
implement the natural representation of any matrix (semi)group.

Along the way, we clean up some stuff with the sign representations.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [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 and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->

- sagemath#37871 - Uses the `Subrepresentation` class implemented here.
    
URL: sagemath#37830
Reported by: Travis Scrimshaw
Reviewer(s): Matthias Köppe
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 16, 2024
sagemathgh-37830: Implement the Schur functors applied to semigroup representations
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

The Schur functor is an important part of the representation theory of
$GL_n$, but it can be defined generically for any representation of a
semigroup (well, really for any vector space, but the utility is for
representation theory). We provide an implementation, realizing the
natural representation structure. To help with examples, we also
implement the natural representation of any matrix (semi)group.

Along the way, we clean up some stuff with the sign representations.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [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 and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->

- sagemath#37871 - Uses the `Subrepresentation` class implemented here.
    
URL: sagemath#37830
Reported by: Travis Scrimshaw
Reviewer(s): Matthias Köppe
vbraun pushed a commit to vbraun/sage that referenced this pull request Jun 17, 2024
sagemathgh-37830: Implement the Schur functors applied to semigroup representations
    
<!-- ^ Please provide a concise and informative title. -->
<!-- ^ Don't put issue numbers in the title, do this in the PR
description below. -->
<!-- ^ For example, instead of "Fixes sagemath#12345" use "Introduce new method
to calculate 1 + 2". -->
<!-- v Describe your changes below in detail. -->
<!-- v Why is this change required? What problem does it solve? -->
<!-- v If this PR resolves an open issue, please link to it here. For
example, "Fixes sagemath#12345". -->

The Schur functor is an important part of the representation theory of
$GL_n$, but it can be defined generically for any representation of a
semigroup (well, really for any vector space, but the utility is for
representation theory). We provide an implementation, realizing the
natural representation structure. To help with examples, we also
implement the natural representation of any matrix (semi)group.

Along the way, we clean up some stuff with the sign representations.

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->

- [x] The title is concise and informative.
- [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 and checked the documentation
preview.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->

- sagemath#37871 - Uses the `Subrepresentation` class implemented here.
    
URL: sagemath#37830
Reported by: Travis Scrimshaw
Reviewer(s): Matthias Köppe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants