Skip to content
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

Construction for invariant/equivariant submodules #34495

Closed
mkoeppe opened this issue Sep 5, 2022 · 30 comments
Closed

Construction for invariant/equivariant submodules #34495

mkoeppe opened this issue Sep 5, 2022 · 30 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Sep 5, 2022

We introduce a construction functor for invariant and equivariant submodules.

sage.modules.with_basis.invariant.FiniteDimensionalInvariantModule gets a construction method.

In follow-up ticket #34499, also the tensor modules with prescribed monoterm symmetries from #30229 will get a construction method. An illustration of this application, capturing symmetric and antisymmetric matrices, is included as an example. (See #32029, #30276.)

CC: @tscrim @trevorkarn @egourgoulhon @anneschilling

Component: linear algebra

Author: Matthias Koeppe

Branch/Commit: 7fe5763

Reviewer: Travis Scrimshaw

Issue created by migration from https://trac.sagemath.org/ticket/34495

@mkoeppe mkoeppe added this to the sage-9.8 milestone Sep 5, 2022
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 5, 2022

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Commit: 1ee5470

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

1ee5470FiniteDimensionalInvariantModule.construction: New

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

e7f2f05src/sage/categories/pushout.py: Add example

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Changed commit from 1ee5470 to e7f2f05

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 5, 2022

Author: Matthias Koeppe

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Changed commit from e7f2f05 to 9e09c2f

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

9e09c2fsrc/sage/categories/pushout.py: Remove unfinished example

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

86d9602src/sage/categories/pushout.py: Add missing doctests

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Changed commit from 9e09c2f to 86d9602

@mkoeppe

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Changed commit from 86d9602 to 8ddcaa1

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

8ddcaa1src/sage/categories/pushout.py: Add copyright according to 'git blame -w --date=format:%Y src/sage/categories/pushout.py | sort -k2'

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

bfd6eeesrc/sage/modules/with_basis/invariant.py: Update copyright

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 5, 2022

Changed commit from 8ddcaa1 to bfd6eee

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 6, 2022

Changed commit from bfd6eee to 7fe5763

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Sep 6, 2022

Branch pushed to git repo; I updated commit sha1. New commits:

7fe5763src/sage/algebras/orlik_{solomon,terao}.py: No construction for subclasses of FiniteDimensionalInvariantModule

@mkoeppe

This comment has been minimized.

@tscrim
Copy link
Collaborator

tscrim commented Sep 7, 2022

comment:13

Are we sure that the invariant module cannot get bigger when we extend scalars? I think the answer is no because the multiplicity of 1 as a root of the minimal polynomial of the matrix that encodes the group action. What I am worried about is a situation similar to what happens for a C4 action over R versus C with the 2 dimensional rotation representation. Do you agree with my reasoning (or have an alternative proof)?

If you are not expecting this to work with pushouts (at least, this is the only reason I know for having the constructor functors), what is your reasoning for adding the construction functor? It starts feeling like unnecessary weight for the class on its own.

Also, I am curious what your thoughts are about the OS/OT algebra invariants not having a construction functor. It seems to suggest that the invariant_module() hook has a deficiency.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:14

Yes, this is for pushouts.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:15

Replying to Travis Scrimshaw:

Are we sure that the invariant module cannot get bigger when we extend scalars?

Are you asking why the constructed pushout is a correct pushout? In the end, this will depend on the Action doing the right thing on the elements of the larger module. If it doesn't, then all bets are off.

@tscrim
Copy link
Collaborator

tscrim commented Sep 7, 2022

comment:16

Replying to Matthias Köppe:

Replying to Travis Scrimshaw:

Are we sure that the invariant module cannot get bigger when we extend scalars?

Are you asking why the constructed pushout is a correct pushout? In the end, this will depend on the Action doing the right thing on the elements of the larger module. If it doesn't, then all bets are off.

Ah, right, because it goes through the hook and doesn’t try to simply change the ring of the class. Perhaps then my question is an optimization one. Can we simply just change the base field (IIRC, it doesn’t work over general commutative rings, maybe not even ZZ, but I am not sure offhand) and not go through the (likely expensive) linear algebra computation? Although this creates some issues for subclasses with different construction signatures and forcing things to be overriden… I am wondering if we can find a good solution to that.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:17

There will be easy cases and hard cases.

In my immediate application (#34499), it does not matter because the invariant module is not actually computed using linear algebra.

@tscrim
Copy link
Collaborator

tscrim commented Sep 7, 2022

comment:18

True, and more specific cases (e.g., the FiniteDimensionalInvariantModule) could then implement their own version rather than going through the hook. The invariant_module() hook might need some more thought at some point about its signature since it was just considered in a more local context.

Only thing left is the failures in the (graded) free resolutions. I don’t think they are related, but I don’t know what would cause them to fail in general.

@tscrim
Copy link
Collaborator

tscrim commented Sep 7, 2022

Reviewer: Travis Scrimshaw

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:19

Replying to Travis Scrimshaw:

Only thing left is the failures in the (graded) free resolutions. I don’t think they are related, but I don’t know what would cause them to fail in general.

Maybe just someone's broken patchbot? I don't see these failures in the Build&Test run

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:20

I've run it again locally, with --long. Can't reproduce these failures in sage.homology.

@tscrim
Copy link
Collaborator

tscrim commented Sep 7, 2022

comment:21

Then it should be unrelated.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Sep 7, 2022

comment:22

Thanks for the review!

@vbraun
Copy link
Member

vbraun commented Sep 22, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants