-
-
Notifications
You must be signed in to change notification settings - Fork 532
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
The Burnside ring of a group #37991
base: develop
Are you sure you want to change the base?
The Burnside ring of a group #37991
Conversation
Documentation preview for this PR (built with commit dccdfbf; changes) is ready! 🎉 |
@trevorkarn, I'm adding you here because of your request at #35475 (comment) The current branch is a prototype, not yet ready for review. |
Thanks so much @mantepse! Just let me know when it is ready for review. |
You are down to 250 lines with more functionality! You can now use
to run most (perhaps even all) checks locally. I think it would be good to have one test checking that the cache is populated only as necessary. Since
|
One other test:
|
I just realised that you can remove def __contains__(self, H):
return H.is_subgroup(self._G) |
Here are the next steps (in this order), as I see them:
I'm not completely sure, but I think that I am hesitant to call
should not create any conjugacy classes of subgroups - this would take forever. |
How is that working under the hood? |
Not sure what exactly you mean here.
|
Ah, I see, that makes sense. |
I propose we implement the conjugacy class renaming like |
Maybe, I don't know. I think we can delay thinking about this until we start to play with species. |
I meant to say, in the |
I can't find an element class inheriting from |
I think we should actually use |
Sorry, I just realized we need neither, because the 'element_constructor' of the parent can make sure it always returns the same object. |
What other work needs to be done here? |
I'm slightly short of time this week, as announced, I'm sorry for that! Could you double check whether the classes The reason I'm asking is as follows: being directly indecomposable is an intrinsic property of a permutation group - it does not depend on an ambient symmetric group. In particular:
This approach should also generalize to variants of species which are not part of this project. |
You're right...we can do better. (that is a brilliant observation...how do I make such observations myself...)
We can get rid of Then, we do need |
Thank you - maybe do math for 25 years or so?
No! That's a misunderstanding!
No, (strictly speaking) you cannot add and multiply species of different arity. (In principle, one could regard any species as a species of larger arity, but I'm not sure we want to do that). Composition takes a species
Yes!
Hm, |
Maintaining a cache here doesn't sound useful: we can only interpret it as a species and have some naming functionality and caching if we also have the set partition of its domain (how else can we distinguish the singleton species |
I probably misled you with the name: I would not have used Only the class For example, For a further example, suppose now that we look at univariate species, then |
Slightly puzzled as to which time of the day you happen to work :-) |
I created a class Still several bugs, need to fix. Update: All done for now, I hope. |
|
@trevorkarn You can review this PR. |
I think we should not rush to move this into sagemath, I would rather wait until the design of #38446 is fixed. |
Thanks @Newtech66 I'll take a look! |
I'm having trouble viewing the documentation. Did you add the file as described in https://doc.sagemath.org/html/en/developer/sage_manuals.html#section-add-file? |
src/sage/rings/burnside.py
Outdated
|
||
EXAMPLES:: | ||
|
||
sage: G = SymmetricGroup(6) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It might be good to have some examples where G
is not a SymmetricGroup
just as a test
@@ -0,0 +1,526 @@ | |||
from sage.misc.cachefunc import cached_method |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It could be nice to have a little more documentation for the whole file (as opposed to documentation for each class or method only)
Oops, added it now. |
Thanks! It looks like there is still a "missing title". (Check out https://doc-pr-37991--sagemath.netlify.app/html/en/reference/rings/sage/rings/burnside.) I am also wondering if there is a better place to put this. Of course I think Burnside rings are important, but probably they are not as important as (say) general quotient rings. Maybe it would be better to put it inside the Could you also add some tests for cases where the base ring is not |
Burnside rings belong to group theory (or indeed rings). It's more of a coincidence that they have applications in combinatorics |
Resolves #35475.
We implement the Burnside ring for a group$G$ . We provide a few ways to construct elements, either directly as a formal sum of orbit types $[G/H]$ (where $H$ is a subgroup of $G$ ), or by providing a group action $\alpha: G \times X \rightarrow X$ on some set $X$ . Finally, we implement addition and multiplication of ring elements.
Depends on #38371.
📝 Checklist
@mantepse