Monte Carlo Algorithms for Subgroups#
- CentraliserOfInvolution(G, g : parameters): GrpMat, GrpMatElt -> GrpMat#
Central : BoolElt Default: false NumberRandom : RngIntElt Default: 100 CompletionCheck: UserProgram Default:
Given an involution \(g\) in \(G\), this function returns the centraliser \(C\) of \(g\) in \(G\) using an algorithm of John Bray [Bray, 2000]. Since it is Monte Carlo, it may return only a subgroup of the centraliser. If
Centralistrue, the projective centraliser of \(g\) will be constructed: its elements commute with \(g\) modulo the centre of \(G\).The optional argument
CompletionCheckis a function which can be used to determine when we have constructed the centraliser. It takes the following arguments: the parent group \(G\); the proposed centraliser \(C\); the involution \(g\). By default, the algorithm completes when 20 generators have been found for the centraliser or whenNumberRandomelements have been considered.
- CentraliserOfInvolution(G, g, w : parameters): GrpMat, GrpMatElt, GrpSLPElt -> GrpMat, []#
Randomiser : GrpRandProc Default: Central : BoolElt Default: false NumberRandom : RngIntElt Default: 100 CompletionCheck: UserProgram Default:
Given an involution \(g\) in a matrix group \(G\) together with a SLP \(w\) corresponding to \(g\), this function returns the centraliser \(C\) of \(g\) in \(G\) and SLPs for the generators of \(C\). The algorithm used is due to John Bray [Bray, 2000]. Since it is Monte Carlo, it may return a proper subgroup of the centraliser. If
Centralistrue, the projective centraliser of \(g\) is constructed: its elements commute with \(g\) modulo the centre of \(G\).The parameter
Randomiserspecifies the random process that is to be used to construct the centraliser. By defaultRandomiseris the value returned byRandomProcessWithWords (G). The SLP for \(g\) must lie in the word group of this process. The optional argumentCompletionCheckis a function which can be used to determine when we have constructed the centraliser. It takes four arguments: the parent group \(G\); the proposed centraliser \(C\); the involution \(g\); and the list of the SLPs for the generators of \(C\). By default, the algorithm completes when 20 generators have been found for the centraliser or whenNumberRandomelements have been considered.
- AreInvolutionsConjugate({G, x, wx, y,}{ wy : parameters}): GrpMat, GrpMatElt, GrpSLPElt, GrpMatElt, GrpSLPElt -> BoolElt, GrpMatElt, GrpSLPElt#
Randomiser: GrpRandProc Default: MaxTries : RngIntElt Default: 100
This Monte Carlo algorithm attempts to construct an element \(c\) of the group \(G\) which conjugates the involution \(x\) to the involution \(y\). The corresponding SLPs for \(x\) and \(y\) are \(wx\) and \(wy\) respectively. If such an element \(c\) is found, then three values are returned:
true, \(c\) and the SLP for \(c\). Otherwise, the boolean valuefalseis returned. At mostMaxTriesrandom elements are considered.The parameter
Randomiserspecifies the random process to be used. By defaultRandomiseris the value returned byRandomProcessWithWords (G). The SLPs for \(x\) and \(y\) must lie in the word group of this process and the SLP for \(c\) will also lie in this word group.
- NormalClosureMonteCarlo(G, H): GrpMat, GrpMat -> GrpMat#
- NormalClosureMonteCarlo(G, H : parameters): GrpPerm, GrpPerm -> GrpMat#
slpsH : [] Default: [] ErrorProb : FltRatElt Default: 9/10 SubgroupChainLength: RngIntElt Default: Degree(H)
This Monte Carlo algorithm constructs the normal closure \(N\) of \(H\) in \(G\). If SLPs of the generators of \(H\) in the generators of \(G\) are supplied via the parameter
slpsH, then the function also returns SLPs for the generators of \(N\). The parameterSubgroupChainLengthis used to specify an upper bound on the length of any subgroup chain in \(H\). The probability that \(N\) is a proper subgroup of the normal closure is bounded above byErrorProb, assuming thatSubgroupChainLengthis correctly set.
- DerivedGroupMonteCarlo(G : parameters): GrpMat -> GrpMat#
Randomiser : GrpRandProc Default: NumberGenerators: RngIntElt Default: 10 MaxGenerators : RngIntElt Default: 100
Given a matrix group \(G\) defined over a finite field, this intrinsic returns the derived group of \(G\), and a list of SLPs of its generators in the generators of \(G\). The SLPs are elements of the word group of the random process. The algorithm is Monte Carlo and may return a proper subgroup of the derived group. The parameter
Randomiserspecifies the random process to be used. By defaultRandomiseris the value returned byRandomProcessWithWords (G). At leastNumberGeneratorsand at mostMaxGeneratorswill be constructed for the derived group.
- IsProbablyPerfect(G : parameters): Grp -> BoolElt#
NumberRandom: RngIntElt Default: 100
This intrinsic attempts to prove that a matrix or permutation group \(G\) is perfect by establishing that its generators are in \(G'\). Since it is Monte-Carlo, there is a small probability of error. If the function returns
true, then \(G\) is perfect; if it returnsfalse, then \(G\) might still be perfect. Each call considersNumberRandomrandom elements.The algorithm is due to Leedham-Green and O’Brien [Leedham-Green and O'Brien, 2002] and it uses
NormalSubgroupRandomElement.
- Example: Is Probably Perfect (ex-00c3d9)#
We illustrate
IsProbablyPerfectwith a subgroup of \(GU(4, 9)\).> G := GU(4, 9); > N := sub<G | (G.1, G.2)>;
The generators of \(N\) have been chosen to be a normal generating set for the derived group of \(G\).
> IsProbablyPerfect(N); false > x := NormalSubgroupRandomElement(G, N); > x; [$.1^68 $.1^34 $.1^26 $.1^55] [$.1^23 $.1^78 $.1^16 $.1^72] [$.1^42 $.1^2 $.1^24 2] [$.1^11 $.1^66 $.1^13 $.1^29] > L := sub< G | N, x>; > IsProbablyPerfect(L); true
We now consider \(SO(7, 5)\) and \(\Omega(7, 5)\).
> G := SO(7, 5); > IsProbablyPerfect(G); false > G := Omega(7, 5); > IsProbablyPerfect(G); true