# normal form for some finite groups, extending the small groups library

I am in need of a normal (that is, canonical) form for (some) finite groups, computable with - for example - gap or sage or any other freely available package. The goal is to make finite groups available in FindStat.

More precisely: I need an algorithm that takes as input a permutation group and either produces the special symbol "fail", or, if it doesn't, produces a string which distinguishes the group.

For small groups I am currently using the small groups library. However, would also like to recognise larger symmetric and alternating groups, and direct products of these.

It does not need to be particularly fast.

I am thinking of something along the lines of gap's StructureDescription, except that it should fail whenever it does not produce a canonical form.

I have no experience with groups, so I am grateful for all hints, the more explicit, the better.

There is a corresponding question for a canonical form of permutation groups up to conjugacy.

• For orders less than 500, I like people.maths.bris.ac.uk/~matyd/GroupNames/index.html . But that is not what you are asking for. – Chris Wuthrich Dec 14 '17 at 9:27
• I think all of the necessary functionality for doing what you want is present in GAP, so it would be a question of somebody putting everything to write a package or function to do what you want. Oddly enough, the most difficult problem might be to write down very precise specifications of exactly what you would like this function to do. – Derek Holt Dec 14 '17 at 9:51
• @DerekHolt: it would suffice for me if StructureDescription would stop at the point where the result becomes ambiguous, but I do not know where this is precisely. Would the following be a canonical form when it succeeds? 2. If G is abelian, then decompose it into cyclic factors in "elementary divisors style". 3. Recognize alternating groups, symmetric groups, dihedral groups, quasidihedral groups, quaternion groups, PSL's, SL's, GL's and simple groups not listed so far as basic building blocks. 4. Decompose G into a direct product of irreducible factors. – Martin Rubey Dec 14 '17 at 10:27
• Computing "canonical forms" of groups is a hard problem, I feel you are vastly underestimating the difficult of what you are doing. Note that ๐๐๐๐๐๐๐๐๐๐ณ๐๐๐๐๐๐๐๐๐๐ already is ambiguous for groups of order 16... – Max Horn Dec 15 '17 at 9:52
• Of course there are special cases, like the families of simple groups, and abelian groups, for which "unique names" exist for arbitrary sizes, but beyond that, "naming" groups is fiendishly difficult, and at the same time in many cases not all that useful (though of course sometimes it can be, but then again, you should be careful in specifying what you want to achieve) – Max Horn Dec 15 '17 at 9:56