Skip to content

RecogniseAn recognises symmetric group as alternating group #381

@TWiedemann

Description

@TWiedemann

This is ok:

gap> G := AlternatingGroup(9);
Alt( [ 1 .. 9 ] )
gap> RECOG.RecogniseAn(MovedPoints(G), G, 1/2000);
rec( conjperm := (1,7,8,2,4,9)(3,6,5), degree := 9, gens := [ (5,9,8), (1,7,4,5,2,6,3) ], stamp := "An" )

This is surprising:

gap> G := SymmetricGroup(9);
Sym( [ 1 .. 9 ] )
gap> RECOG.RecogniseAn(MovedPoints(G), G, 1/2000);
rec( conjperm := (1,7,6,9,2,4,8,3), degree := 9, gens := [ (3,9,8), (1,4,6,8,2,5,7) ], stamp := "An" )

However, this is reasonable in the broader scope: In order to decide whether RecogniseAn or RecogniseSn should be used, the function RecogniseGiant first checks whether all generators of its input group have sign 1. Hence RecogniseGiant will never call RecogniseAn with a full symmetric group. Thus the "error" above arises only if one directly calls the internal function RecogniseAn.

Suggested solution:

  • Either document properly what RecogniseAn does and doesn't do,
  • or get rid of RecogniseSn and RecogniseAn altogether and move their code directly into RecogniseGiant. I think I prefer this approach over having a RecogniseAn function which does not, in fact, recognise An.

The underlying reason for this behaviour is that NiceGeneratorsAnOdd and NiceGeneratorsAnEven only search for the nice generators of A_n in its input group, but do not check whether they actually generate the input group. I think this is reasonable, but again, it should be clarified in the documentation (which I will do in an upcoming PR).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions