-
Notifications
You must be signed in to change notification settings - Fork 5
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
Incorrect SocleTypePrimitiveGroup for large degrees #40
Comments
We encountered several other issues about consistency of the data here, and PR #34 adds consistency checks to help with finding more of them. I think it would make sense for that to check the validity of more precomputed attributes, among them |
Also note that the
This might lead to some code breaking in case it relies on |
There are many more similar issues, e.g.
and
I added some code which checks the
However, fully recomputing |
It seems that at least all the alternating and symmetric group entries for degrees 2500-4096 are wrong. |
The data for these groups comes from Colva, and I think she set up the initial part of the database. However (we probably store more data than Magma, and so some had to be recomputed) the error might come in through a conversion routine. |
It would be good to resolve this, then make a new release of primgrp with all the corrections. @hulpke I wonder what's better: looking at your conversion routine to see if we can spot a bug explaining the discrepancies, then resolve it, and re-run the conversion? Or should we directly edit the data here. I also wondered if some of the name fixes we made need to be addressed in Magma as well. This made me use their online calculator on But then I noticed that group we have has size 518400 (which is indeed equal to 360^2*4), while Magma says it has size 1036800. So at least one of the two programs is wrong... Whether by another conversion error, or because we imported the data from an older Magma version which has since been fixed, or some other reason... This seems to be another argument for trying to re-run the conversion tool against the latest Magma, and check for differences? |
Perhaps @colva and @ChristopherRussell could have some suggestions? |
My involvement with the primitive groups library was mainly to fix bugs in degree <=255, but I don't recall doing the conversion for the larger degrees. |
As for the discrepancy in degree 100, this was not taken from Magma, but computed by Heiko Theissen, but the initial version of the library was not arrangement-stable (it computed subgroups in the socle factor) and thus we later decided to just put the groups in fixed order and at that time promised we would never rearrange. Magmas group 14 is our group 28, and our group 14 has been stable since at least GAP4.4 (which is as far as I can go back easily) and the name A6^2.4 is OK. I'm not sure about where (and when) the arrangement in Magma stems from. |
I did the conversion for groups of order 2500-4095 sometime around February-April 2016 with the help of @colva, as part of my Masters dissertation. I don't know exactly what version of Magma I was using, I have never owned Magma but used it by accessing a machine called Neumann (neumann.mcs.st-and.ac.uk) owned by the maths department in St Andrews. Having not thought about primitive groups in a long time, I don't comprehend these issues at a glance. In case it is useful, the code I used to do the conversion is in the Appendix of my dissertation along with a description in Section 7. The code was mostly Colva's, which she used for order <2500 with a few additions by me to handle (maybe unsuccessfully??) the new cases that can occur between orders 2500-4095. |
@hulpke my apologies, I misunderstood and thought you were involved (also because you did a lot of these conversions and wrote that converter tool). Thanks also for clarifying that the GAP and Magma numbers don't match. I guess it would be useful for someone to figure out the relevant permutations and offer them in primgrp but that's another issue @ChristopherRussell thank you, that helps a lot |
Hi all
I’ve been struggling to remember exactly the sequence of events here. Hannah Coutts made the groups as part of her PhD, but only got round to putting them into Magma. Chris then pulled them from Magma to GAP as part of his (excellent) masters project, and I suspect the socle types got added then, since Magma doesn’t store that data. The code Chris used for the socle types is on pp48-49 of his thesis.
PRIMITIVE_INDICES_MAGMA should convert between the two numberings for degree up to 999. I would guess the numbering should be the same for degree greater than 1000. In particular, PrimitiveGroup(100, 14) in GAP is not the same group as in Magma.
The names in Magma were mostly put in by Hannah and me, but only for degrees > 1000.
Best wishes
Colva
|
As @fingolfin already said, thanks @ChristopherRussell and @colva! That is tremendously helpful. Now that we have the code to regenerate the primitive group data for degrees >= 2500 we should be able to find the bug responsible for the incorrect socle type data. If you are OK with that @ChristopherRussell, we should IMO also add the conversion code from your thesis to the primgrp package. The obvious next question is: who is going to do that? :D Is there a canonical candidate for that, e.g. someone who is "responsible" for the primgrp package? |
@ChristopherRussell thank you for uploading your thesis, and the tex code -- it's muuuuch easier to extract your code from that than from the final PDF :-). @ssiccha well, the package meta data lists @hulpke and @alex-konovalov as maintainers, although I have no idea if they have any time for taking care of this. We could also add "The GAP Team" as a maintainer (as we did for multiple other packages), and then find a volunteer. Or I should volunteer one of my employees grin, although they are already having their plates full with other stuff |
I am happy for you to do this. |
For reference, the groups were added to the GAP repository in this PR: gap-system/gap#818. The data for degree 4095 is in file PRIMGRP[3970]:=
[[1,Factorial(3970)/2,1,"2",[ [ 3969, 1 ] ],3968,"Alt(3970)",["A",1,1],"Alt"],
[2,Factorial(3970),0,"2",[ [ 3969, 1 ] ],3970,"Sym(3970)",["A",2,1],"Sym"]];
PRIMGRP[3971]:=
[[1,Factorial(3971)/2,1,"2",[ [ 3970, 1 ] ],3969,"Alt(3971)",["A",1,1],"Alt"],
[2,Factorial(3971),0,"2",[ [ 3970, 1 ] ],3971,"Sym(3971)",["A",2,1],"Sym"]];
PRIMGRP[3972]:=
[[1,Factorial(3972)/2,1,"2",[ [ 3971, 1 ] ],3970,"Alt(3972)",["A",1,1],"Alt"],
[2,Factorial(3972),0,"2",[ [ 3971, 1 ] ],3972,"Sym(3972)",["A",2,1],"Sym"]];
... The relevant bit is the eighth entry in each case, which is SetSocleTypePrimitiveGroup(g,rec(series:=l[8][1],
parameter:=l[8][2],
width:=l[8][3])); We can probably fix them with a even a simple search and replace, but actually perhaps we can do even better, and replace all of these "A_n/S_n in natural rep" entries by something generic which primgrp only expands on the fly as needed... After all, we know all this data. Granted, this won't fix the other cases. |
The information in
SocleTypePrimitiveGroup
for primitive groups on large degrees are incorrect. This was reported via Mail by @aniemeyer. I've investigated a bit further.Which means that the socles of the fifth and sixth groups are alternating groups on 5 and 6 points respectively.
I've had a look at the data files
data/gps37.g
,data/gps38.g
,data/gps39.g
and the socle type information on the natural alternating and symmetric groups seems to be wrong in all of them. The first line ofdata/gps37.g
isAccording to
lib/primitiv.gi
the eighth entries are the socle type information. In both cases they say that the alternating groups act on 1 or 2 points in their natural action.Does someone know which functions were used to generate the database? Maybe @alex-konovalov, @hulpke or @aniemeyer ?
The text was updated successfully, but these errors were encountered: