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

group orbits don't have full GAP functionality #29151

Open
kcrisman opened this issue Feb 4, 2020 · 3 comments
Open

group orbits don't have full GAP functionality #29151

kcrisman opened this issue Feb 4, 2020 · 3 comments

Comments

@kcrisman
Copy link
Member

kcrisman commented Feb 4, 2020

In the code for sage/groups/perm_gps/permgroup.py, we have the following in the orbit cached method.

        actions = {
            "OnPoints"           : [],
            "OnSets"             : [Set],
            "OnPairs"            : [tuple],
            "OnTuples"           : [tuple],
            "OnSetsSets"         : [Set, Set],
            "OnSetsDisjointSets" : [Set, Set],
            "OnSetsTuples"       : [Set, tuple],
            "OnTuplesSets"       : [tuple, Set],
            "OnTuplesTuples"     : [tuple, tuple],
            }

and

        def input_for_gap(x, depth, container):
            if depth == len(container):
                try:
                    return self._domain_to_gap[x]
                except KeyError:
                    raise ValueError('{0} is not part of the domain'.format(x))
            x = [input_for_gap(xx, depth+1, container) for xx in x]
            if container[depth] is Set:
                x.sort()
            return x

This is supposed to recursively turn things into GAP-friendly objects. However, at least for the following example it fails (badly):

grp = PermutationGroup([ '(1,2,3,4,5)', '(1,2,4,3)' ])
els = list(grp)
grp.orbit(tuple(els[:4]), action = "OnSets")

However, it works very nicely in GAP itself. So we need to be able to mimic that - probably for a lot of these we are allowed to have sets with more than one element.

See this Stackoverflow question where there is more detail.

Component: group theory

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

@kcrisman kcrisman added this to the sage-9.1 milestone Feb 4, 2020
@kcrisman
Copy link
Member Author

kcrisman commented Feb 5, 2020

comment:1

See also this answer where the original user found a Sage-native way to do it, though presumably implementing correctly would be better.

@mkoeppe
Copy link
Member

mkoeppe commented Apr 14, 2020

comment:2

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.1, sage-9.2 Apr 14, 2020
@mkoeppe mkoeppe modified the milestones: sage-9.2, sage-9.3 Aug 29, 2020
@mkoeppe
Copy link
Member

mkoeppe commented Feb 13, 2021

comment:4

Setting new milestone based on a cursory review of ticket status, priority, and last modification date.

@mkoeppe mkoeppe modified the milestones: sage-9.3, sage-9.4 Feb 13, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.4, sage-9.5 Jul 19, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.5, sage-9.6 Dec 18, 2021
@mkoeppe mkoeppe modified the milestones: sage-9.6, sage-9.7 Apr 2, 2022
@mkoeppe mkoeppe modified the milestones: sage-9.7, sage-9.8 Aug 31, 2022
@mkoeppe mkoeppe removed this from the sage-9.8 milestone Jan 29, 2023
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

2 participants