Regular Permutation Groups Library
The Hopf-Galois structures on a Galois extension \(L/K\) with \(G=Gal(L/K)\) are in 1-1 correspondence with the regular subgroups \(N\leq B=Perm(G)\) which are normalized by the left regular representation \(\lambda(G)\leq B=Perm(G)\).
Regularity implies that \(|G|=|N|\) but other than that, \(G\) and \(N\) need not be isomorphic.
As such, one can tabulate \(R(G,[M])\) which are the set of all such regular \(N\) where \(N\cong M\) as \(G\) and \([M]\) range over all the possible isomorphism classes of groups of a given order \(n\).
As regularity can be defined for subgroups of \(S_n\), just as for \(Perm(G)\), we can pick a representative set of regular subgroups \(\{G_i\}\) embedded in \(S_n\) and for these, compute \(R(G_i,[G_j])\) over all possible pairs of isomorphism classes of groups of order \(n\).
We have computed a number of collections of \(R(G_i,[G_j])\) in GAP, using the 'reflection principle' relating \(R(G_i,[G_j]\) and the sets \(S(G_j,[G_i])\) where the latter are the regular subgroups of \(Hol(G_j)=Norm_{S_n}(G_j)\) which are isomorphic to \(G_i\).
How to use these libraries.
After loading a particular library in GAP, for example
Read("R6.g");
One must also Read the 'MakeLib.g' file
Read("MakeLib.g");
(for each Rn.g that one loads) to actually compute \(R(G_i,[G_j])\) as the Rn.g file contains the elements in \(B=S_n\) which conjugate each \(G_i\) to the given \(N\in R(G_j,[G_i]\).
What this yields are the following objects
- G[n] - the set of all regular \(G_i\) one from each isomorphism class of groups of order \(n\)
- HolG[n] - the normalizer (holomorph) of each \(G_i\)
- NHolG[n] - the normalizer (multiple holomorph) of the normalizer of each \(G_i\)
- R[n] - the set \(R(G_i,[G_j]\) where each R[n][i][j] is a list containing \(R(G_i,[G_j])\) which could be empty of course for a given i,j.
- HolR[n] - the normalizer of each \(N\in R(G_i,[G_j])\)
- NHolR[n] - the normalizer of the normalizer of each \(N\in R(G_i,[G_j])\)
- T[n] - the left transversal of HolR[n] in NHolR[n] (computed for each \(N\in R(G_i,[G_j])\)
- (Note, as each \(R(G_i,[G_j]\) contains \(G_i\) this includes each \(T(G_i)\)
- S[n] - the set \(S(G_j,[G_i]\) where each S[n][j][i] is a list containing \(S(G_j,[G_i])\) which could be empty of course for a given i,j.
- AutR[n] - the automorphism group of each \(N\in R(G_i,[G_j])\)
Downloads
MakeLib.g
Note, some of these are rather large.