The order of the group G as an integer. If the order is not currently known, it will be computed. Computing the order may fail for groups in the category FINITELY PRESENTED GROUPS; cf. Chapter INTRODUCTION TO FP-GROUPS.
The order of the finite group G returned as a factored integer. The factorization is returned in the form of a sequence Q which is defined as follows: If #G = p1e1 ... pnen, ei>0, then Q will be the integer sequence [ < p1, e1 >, ..., < pn, en > ]. If the orders of G is not known, it will be computed. Computing the order may fail for groups in the category FINITELY PRESENTED GROUPS; cf. Chapter INTRODUCTION TO FP-GROUPS.
The index of the subgroup H in the group G. The index is returned as an integer. Computing the index may fail for groups in the category FINITELY PRESENTED GROUPS; cf. Chapter INTRODUCTION TO FP-GROUPS.
The index of the subgroup H in the group G. The subgroup H must have finite index in G. The index is returned as a factored integer. The format is the same as for FactoredOrder. Computing the index may fail for groups in the category FINITELY PRESENTED GROUPS; cf. Chapter INTRODUCTION TO FP-GROUPS.
> Q<s,t,u>, h := Group< s, t, u | > t^2, u^17, s^2 = t^s = t, u^s = u^16, u^t = u >; > Order(Q); 68 > FactoredOrder(Q); [ <2, 2>, <17, 1> ] > S := sub< Q | t*s^2, u^4 >; > Index(Q, S); 4 > #S; 17
Given a group element g and a group G, return true if g is an element of G, false otherwise.
Given a group element g and a group G, return true if g is not an element of G, false otherwise.
Given a group G and a set S of group elements belonging to a group H, where G and H belong the same generic group, return true if S is a subset of G, false otherwise.
Given a group G and a set S of group elements belonging to a group H, where G and H belong the same generic group, return true if S is not a subset of G, false otherwise.
Given groups G and H belonging to the same generic group, return true if H is a subgroup of G, false otherwise.
Given groups G and H belonging to the same generic group, return true if H is not a subgroup of G, false otherwise.
Given groups G and H belonging to the same generic group, return true if G and H are the same group, false otherwise.
Given groups G and H belonging to the same generic group, return true if G and H are distinct groups, false otherwise.
Given a finite group G in the category GrpPerm, GrpMat, GrpPC or GrpAb, return a bijective mapping from the group G onto the set of integers { 1 ... |G| }. The actual mapping depends upon the particular representation of G.
An element chosen from the group G.
> G := DihedralGroup(6); > f := NumberingMap(G); > [ [ f(x*y) : y in G ] : x in G ]; [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], [ 2, 3, 4, 5, 6, 1, 12, 7, 8, 9, 10, 11 ], [ 3, 4, 5, 6, 1, 2, 11, 12, 7, 8, 9, 10 ], [ 4, 5, 6, 1, 2, 3, 10, 11, 12, 7, 8, 9 ], [ 5, 6, 1, 2, 3, 4, 9, 10, 11, 12, 7, 8 ], [ 6, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 7 ], [ 7, 8, 9, 10, 11, 12, 1, 2, 3, 4, 5, 6 ], [ 8, 9, 10, 11, 12, 7, 6, 1, 2, 3, 4, 5 ], [ 9, 10, 11, 12, 7, 8, 5, 6, 1, 2, 3, 4 ], [ 10, 11, 12, 7, 8, 9, 4, 5, 6, 1, 2, 3 ], [ 11, 12, 7, 8, 9, 10, 3, 4, 5, 6, 1, 2 ], [ 12, 7, 8, 9, 10, 11, 2, 3, 4, 5, 6, 1 ] ]
Short: BoolElt Default: false
A randomly chosen element for the group G. If a representation of the carrier set of G has already been created, then the element chosen will be genuinely random. If such a representation has not yet been created, then the random element is chosen by multiplying out a random word in the generators. Since it is not usually practical to choose words long enough to properly sample the elements of G, the element returned will usually be biased. The boolean-valued parameter Short is used in this situation to indicate that a short word will suffice. Thus, if Random is invoked with Short assigned the value true then the element is constructed using a short word.
> G := WreathProduct(Sym(4), CyclicGroup(6)); > G; Permutation group G acting on a set of cardinality 24 (1, 5, 9, 13, 17, 21)(2, 6, 10, 14, 18, 22) (3, 7, 11, 15, 19, 23) (4, 8, 12, 16, 20, 24) (1, 2, 3, 4) (1, 2) > Order(G); 1146617856 > Random(G); (1, 17, 12, 4, 18, 10, 3, 20, 9, 2, 19, 11)(5, 22, 13, 6, 21, 15) (7, 24, 16)(8, 23, 14) // We display the cycle structures of 10 random elements of G > R := [ CycleStructure(Random(G)) : i in [1..10] ]; > R; [ [ <6, 1>, <3, 6> ], [ <9, 1>, <6, 2>, <3, 1> ], [ <9, 2>, <3, 2> ], [ <12, 1>, <9, 1>, <3, 1> ], [ <18, 1>, <6, 1> ], [ <18, 1>, <6, 1> ], [ <12, 1>, <6, 2> ], [ <6, 3>, <2, 3> ], [ <6, 1>, <4, 3>, <2, 3> ], [ <6, 3>, <3, 2> ] ]
Slots: RngIntElt Default: 10
Scramble: RngIntElt Default: 50
WordGroup: GrpSLP Default:
Create a process to generate randomly chosen elements from the group G. The process uses a variant of the product-replacement method similar to the Rattle method of [LGM02]. The generating set stored in the process has N elements, where N is the maximum of the specified value for Slots and Ngens(G) + 1. Initially they are the generators of G repeated as necessary and the accumulator is the identity. Random elements are now produced by successive calls to Random(P), where P is the process created by this function. Each such call returns the current value of the accumulator, modifying the generating set as for product-replacement, and modifying the accumulator by multiplying by the new member of the generating set. Setting Scramble := m causes m such operations to be performed before the process is returned.The functions with words and values create a process that returns extra group elements for each call. A process created with words returns, as second return value for each call to Random(P), the GrpSLPElt describing the random element returned as a straight-line program in the group generators. The parameter WordGroup may be used to specify a particular group for the words to be elements of.
A process created with values takes as input a sequence of group elements Q giving the values assigned to each generator of G. The second value returned is the result of computing in parallel with these values as with the generators of G. In particular, if the elements of Q are homomorphic images of the generators of G, then the second return value from Random(P) will be the image of the first under this homomorphism.
A process created with words and values does all of the above, with the three return values of Random(P) being a random element of G, the straight-line program and the value.
The use of this function on a finitely-presented group G is not recommended. Since there is no reduction of words, the random elements generated may be extremely long.
Given a random element process P created by the function RandomProcess(G) for the finite group G, construct a random element of G by forming a random product over the expanded generating set constructed when the process was created. For large permutation or matrix groups for which a BSGS is not known, this function should be used in preference to Random(G).If the process was created with words or values then there will be second and third return values as described under RandomProcess above.
Given a random element process P created by the function RandomProcess(G) for the finite group G, return G.
Initialise a product-replacement prospector for the given group. This is an extension of the product-replacement algorithm that searches for an element x∈G such that some predicate is true for this element. The prospector aims to find elements x so that the corresponding straight-line program for x is short. Statistical tests and various heuristics are used to achieve this.Generally, output from product-replacement with short straight-line programs is not very random. Prospector aims to run product-replacement until the output looks random, then start a search for the element wanted. At all times, if the output starts to look non-random, or word lengths grow too far without finding an element, the prospector may return to a previous state of product replacement and try again, searching in a different direction. The statistical tests are used to make concrete the notion of "looks random". For permutation groups the test used is based on number of cycles of the element. For matrix groups the test statistic is the number of factors of the characteristic polynomial.
Run an initialised prospector for group G to find x∈G such that f(x) is true. The first return value gives the success or failure of the search. If this value is true, then the second and third return values are x and a straight-line program giving x in terms of the group generators. The parameter texttt{MaxTries} may be set to limit the number of random selections made by the prospector when attempting to find x.
> SetSeed(1); > S := Sym(300); > repeat G := sub<S|Random(S),Random(S)>; > until IsSymmetric(G); > P := RandomProcessWithWords(G); > repeat x,w := Random(P); > until CycleStructure(x) eq [<300,1>]; > #w; 936Note that the group S, known to be a symmetric group, has an efficient uniform random element generator available as above. The word length was somewhat longer than the expected value. Now we set up a prospector and use it to search for an element of the same cycle structure. The defining word for the new element should be shorter than the expected 600.
> InitialiseProspector(G); true > test := func<x|CycleStructure(x) eq [<300,1>]>; > repeat a,x,w := Prospector(G, test); until a; > #w; 206 > Evaluate(w, [G.1,G.2]) eq x; true
The (right) coset table for G over subgroup H relative to its defining generators.
The coset table for G corresponding to the permutation representation f of G, where f is a homomorphism of G onto a transitive permutation group.
Given a group G and a subgroup H of G, this function returns
- (a)
- An indexed set of elements T of G forming a right transversal for G over H;
- (b)
- The corresponding transversal mapping φ: G -> T. If T = [t1, ..., tr] and g ∈G, φ is defined by φ(g) = ti, where g∈Hti.
Given a subgroup H of the group G, construct the permutation representation of G given by the action of G on the set of (right) cosets of H in G. The function returns:Note that G may be any type of group. If G is a finitely presented group, then K may be returned undefined.
- (a)
- The natural homomorphism f: G -> L;
- (b)
- The induced group L;
- (c)
- The kernel K of the action (a subgroup of G).
Given a subgroup H of the group G, construct the image L of G given by the action of G on the set of (right) cosets of H in G.
Given a subgroup H of the group G, construct the kernel of the action of G on the set of (right) cosets of H in G.