gap icon indicating copy to clipboard operation
gap copied to clipboard

Minimal Permutation Degree for Simple and Semi-Simple Groups

Open pranav-joshi-iitgn opened this issue 1 year ago • 10 comments

Added the function MinimalFaithfulPermutationDegreeOfSimpleGroup which computes the minimal degree directly, using table 4 of this paper : https://www.ams.org/journals/tran/2015-367-11/S0002-9947-2015-06293-X/S0002-9947-2015-06293-X.pdf

table4

Also added test MinimalFaithfulPermutationDegreeOfSimpleGroup.tst to cross verify using DoMinimalFaithfulPermutationDegree and the list SIMPLEGPSNONL2.

Added the function MinimalFaithfulPermutationDegreeOfSemiSimpleGroup based on this research paper : https://dl.acm.org/doi/10.1145/3618260.3649641 Also added the test MinimalFaithfulPermutationDegreeOfSemiSimpleGroup.tst .

pranav-joshi-iitgn avatar May 29 '24 19:05 pranav-joshi-iitgn

Could someone please review this ?

pranav-joshi-iitgn avatar Jun 02 '24 06:06 pranav-joshi-iitgn

What is the motivation for this? You add a new internal (=undocumented) function that is not used by anything. Is there a bigger plan here, somehow?

fingolfin avatar Jun 02 '24 12:06 fingolfin

@fingolfin Isn't it useful to have a function which computes the smallest degree of a faithful permutation representation of a finite (simple) group? I mean, of course the function should be documented then.

Stefan-Kohl avatar Jun 02 '24 13:06 Stefan-Kohl

@fingolfin , I am working on a similar function for semi simple groups, which will be using this function. I'm quite new to GAP and open source in general and that's why I didn't think of documenting it. Thanks for pointing it out. I have added it now.

pranav-joshi-iitgn avatar Jun 02 '24 14:06 pranav-joshi-iitgn

Should this new method always be used for calculating the MinimalFaithfulPermutationDegree of a simple group?

In that case, in GAP we usually use InstallMethod, to add specialised versions of functions.

For example, I think in this case you want:

InstallMethod( MinimalFaithfulPermutationDegree, "for simple groups", [ IsSimpleGroup ], ... your function)

In order to make testing easier, it is reasonable to still give a different name to your function (for example, we already have DoMinimalFaithfulPermutationDegree).

In this particular (unusual) case, you should probably look at grplatt.gi:3637, where you will see the existing overload, which has a special ValueOption piece of code to deal with an old removed feature -- that could should probably be copied. This does make testing a little harder,

ChrisJefferson avatar Jun 03 '24 02:06 ChrisJefferson

Should I document MinimalFaithfulPermutationDegreeOfSimpleGroupWithIsomorphismType or let it be, considering it isn't very user friendly. I am mainly using it for testing, since computing IsomorphismTypeInfoFiniteSimpleGroup takes some time.

pranav-joshi-iitgn avatar Jun 04 '24 13:06 pranav-joshi-iitgn

This should be integrated with the existing functiinality of SufficientlySmallDegreeSimpleGroupOrder (grp/simple.gi), which already provides much of this information up to order 2^55

Doesn't that function return a heuristic though? I want to compute exact value. I can certainly use this to update my tests, but how should I "integrate" my function in this ? Should I simply move my code to simple.gi ?

pranav-joshi-iitgn avatar Jun 13 '24 07:06 pranav-joshi-iitgn

For starters, perhaps SufficientlySmallDegreeSimpleGroupOrder could be changed to call your new function? (I am writing this without having even looked at the code of this function, so it might not be feasible at all)

fingolfin avatar Jun 13 '24 12:06 fingolfin

This should be integrated with the existing functiinality of SufficientlySmallDegreeSimpleGroupOrder (grp/simple.gi), which already provides much of this information up to order 2^55

Doesn't that function return a heuristic though? I want to compute exact value. I can certainly use this to update my tests, but how should I "integrate" my function in this ?

The function uses a heuristic, only because we did not have proper data. If we do, the proper data should be used.

hulpke avatar Jun 14 '24 03:06 hulpke

This should be integrated with the existing functiinality of SufficientlySmallDegreeSimpleGroupOrder (grp/simple.gi), which already provides much of this information up to order 2^55

Doesn't that function return a heuristic though? I want to compute exact value. I can certainly use this to update my tests, but how should I "integrate" my function in this ?

The function uses a heuristic, only because we did not have proper data. If we do, the proper data should be used.

I still don't understand what I should change ? Both the functions are very different from each other. One gives the permutation degree of a specific group, while one gives an upper bound on the degree for groups of a particular order.

pranav-joshi-iitgn avatar Jun 15 '24 17:06 pranav-joshi-iitgn