6

I checked the odd numbers upto $10\ 000$ , whether they are group-perfect ($gnu(n)=n$ , where $gnu(n)$ is the number of groups of order $n$), and the only case I could not decide is

$$9261=3^3\times 7^3$$

What is $gnu(9261)=gnu(3^3\times 7^3)$ ?

I would already be content with a proof of $gnu(9261)<9261$, which is my conjecture because $gnu(3087)=46$ is small and $9261=3\times 3087$.

Peter
  • 86,576
  • http://math.stackexchange.com/a/1599437/8581 – Mikasa Jan 19 '16 at 14:21
  • @HagenvonEitzen That's not truet. Any finite group of order divisible by $p^k$ for $p$ prime has a subgroup of that order. In particular, a group of order $27$ has a subgroup of order $9$. – Derek Holt Jan 19 '16 at 19:51

3 Answers3

4

CORRECTION: There are $215$ groups of order 9261 (by the same methods as used for previous questions).

As was pointed out by @James the ConstrucctAllGroups may return lists that are not yet isomorphism tested.

In this case there is one list, and a hard isomorphism test distinguishes the two groups.

m:=Filtered(l,IsList);
IsomorphismGroups(m[1][1],m[1][2]); #returns fail
ahulpke
  • 20,399
3

I think the answer is $\operatorname{gnu}( 9261 ) = 215$. By itself, the grpconst package function ConstructAllGroups may produce a list in which not all groups have been distinguished up to isomorphism. Thus it is not sufficient to simply count the number of elements of the list it returns. One must also check whether there are any nested lists consisting of groups whose isomorphism has not been decided by the algorithm. The GrpConst package then provides the function DistinguishGroups that employs stronger methods to resolve any undecided isomorphisms remaining.

Here is a simplified version of the frontend that I use that employs these considerations.

CountGroups := function( n )
  local L, trouble, okay, c;

  L := ConstructAllGroups( n );
  okay := Filtered( L, x -> not IsList( x ) );
  trouble := Filtered( L, IsList );

  if Length( trouble ) > 0 then
    for c in trouble do
      c := DistinguishGroups( c, true );
      if ForAny( c, IsList ) then
        Error( "could not resolve some isomorphisms" );
      fi;
      Append( okay, c );
    od;
  fi;

  return Length( okay );
end;;

Using this, we obtain the claimed result.

gap> CountGroups( 9261 );
215

Having said all that, I confess I am far from an expert on GAP. If I have made a mistake, I should be happy to improve my understanding.

Olexandr Konovalov
  • 7,186
  • 2
  • 35
  • 73
James
  • 9,442
  • Looks correct to me - I think the answer is likely most likely right (I did not rerun it). Thanks for drawing attention to the documentation as well ;-) indeed, it says that it may return lists. – Olexandr Konovalov Jan 21 '16 at 18:51
  • It would be very disappointing if GAP might made an error with the ConstructOfAllGroups-command. I was sure the command is reliable. – Peter Jan 21 '16 at 20:28
  • @AlexanderKonovalov Thanks for your comment, and for improving my answer formatting. – James Jan 21 '16 at 20:30
  • 1
    @Peter Please note that my answer does not suggest any error in the ConstructAllGroups command, but rather with how it is used. – James Jan 21 '16 at 20:31
  • @James But almost every user would expect that the groups are checked rigorously for isomorphism. – Peter Jan 21 '16 at 20:34
  • 1
    @Peter I agree, but ... RTFM? :-) The first paragraph of documentation for this function fairly clearly describes its behaviour. I'm sure the package authors had their reasons for making this design choice. (See, for example, p. 9 of the manual.) – James Jan 21 '16 at 20:45
  • @Peter: perhaps one should re-check all your recent questions where ConstructAllGroups was used to calculate the answer in case it happened to return a list with sublist(s). I've already expressed some suggestions for a collaborative project to run a server with known $gnu(n)$ - see them in my comments at http://math.stackexchange.com/q/1601470/. That would be more efficient than MSE for such a project, but so far nobody wrote to me. – Olexandr Konovalov Jan 21 '16 at 21:17
  • I would help to create tables, but unfortunately, I am totally dependent on GAP. It seems too difficult to create a rigorous independent algorithm. – Peter Jan 21 '16 at 21:21
  • @Peter: One last time: I do not imply that you will write any new GAP code, though you are certainly very welcome to do so. But creating an issue for a particular $gnu(n)$ on GitHub will give full control when to close it (unlike here where upvotes of the answer remove the question from the list of unaswereds), will allow to link to other issues and commits in the GAP repository, and will be visible by more GAP developers. It would be perfectly fine to create an issue for a tricky order on GitHUb, while I doubt that asking new questions for particular values of $gnu(n)$ will run well here. – Olexandr Konovalov Jan 21 '16 at 23:03
  • P.S. @Peter (last comment used all 500 chars): also, there is help with testing and documenting things – Olexandr Konovalov Jan 21 '16 at 23:04
  • I've been running @James function and it works fine. Great job !!!! – Angel Blasco Jan 22 '16 at 20:05
1

@james was right, please do not take my answer as a correct answer. It seems that gnu(9261)=215