Skip to content

Add better code for finding SL(2,q) inside SL(4,q) #490

Description

@fingolfin

We need this for the constructive SL(d,q) recognition.

We currently do this:

  if not (q in [2,3,4,5,9]) then
     return RECOG.SLn_godownfromd(h,q,4,d);
  else
     return RECOG.SLn_exceptionalgodown(h,q,d);
  fi;

Instead we should implement what is described in Daniel's thesis in section 5.1.3 resp. 5.1.4. A start of that is in RECOG.OneEvenSL4 in PR #371, but it is incomplete. Looking at the code, I note that it also defines a new function RECOG.InvolutionCentraliser -- which actually overwrites an existing (but unused RECOG.InvolutionCentraliser).

But I also wonder if we even need this: the algorithm uses random elements of the involution centralizer. And to compute the that centralizer, we generate... random elements of it, via a helper RECOG.ChFromg. So perhaps we can just directly use the output RECOG.ChFromg, which would avoid some overhead.

But perhaps instead use the existing function RECOG.CentralisingElementOfInvolution defined elsewhere?

Metadata

Metadata

Assignees

No one assigned

    Labels

    sl_nissue related to sl_n detection (may be resolved by new SL_n code)

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions