Set-Theoretic Operations
Functions Relating to Group Order
- Order(G): GrpAb -> RngIntElt
- # G: GrpAb -> RngIntElt
The order of the group \(G\), returned as an ordinary integer. If \(G\) is an infinite group, the value zero is returned. Note that if \(G\) is a generic group then determining the order will require the structure of \(G\) to be determined.
- FactoredOrder(G): GrpAb -> [<RngIntElt, RngIntElt>]
The factored order of the group \(G\), returned as a sequence of prime-exponent pairs. If \(G\) is an infinite group, the empty sequence is returned. Note that if \(G\) is a generic group then determining the order will require the structure of \(G\) to be determined.
Membership and Equality
- g in G: GrpAbElt, GrpAb -> BoolElt
Given an element \(g\) and a group \(G\), return
trueif \(g\) is an element of \(G\),falseotherwise.
- g notin G: GrpAbElt, GrpAb -> BoolElt
Given an element \(g\) and a group \(G\), return
trueif \(g\) is not an element of \(G\),falseotherwise.
- S subset G: { GrpAbElt}, GrpAb -> BoolElt
Given a group \(G\) and a set \(S\) of elements belonging to a group \(H\), where \(G\) and \(H\) have some covering group, return
trueif \(S\) is a subset of \(G\),falseotherwise.
- S notsubset G: { GrpAbElt}, GrpAb -> BoolElt
Given a group \(G\) and a set \(S\) of elements belonging to a group \(H\), where \(G\) and \(H\) have some covering group, return
trueif \(S\) is not a subset of \(G\),falseotherwise.
- H subset G: GrpAb, GrpAb -> BoolElt
- IsSubgroup(H, G): GrpAb, GrpAb -> BoolElt
Given groups \(G\) and \(H\), subgroups of some common overgroup, return
trueif \(H\) is a subgroup of \(G\), andfalseotherwise.
- H notsubset G: GrpAb, GrpAb -> BoolElt
Given groups \(G\) and \(H\), subgroups of some common overgroup, return
trueif \(H\) is not a subgroup of \(G\), andfalseotherwise.
Set Operations
- NumberingMap(G): GrpAb -> Map
A bijective mapping from the finite group \(G\) onto the set of integers \(\{ 1 \ldots |G| \rbrace\). The actual mapping depends upon choice of standard generators for \(G\).
- RandomProcess(G): GrpAb -> Process
Slots : RngIntElt Default: 10 Scramble: RngIntElt Default: 100
Create a process to generate randomly chosen elements from the finite group \(G\). The process is based on the product-replacement algorithm of [CLGM+95], modified by the use of an accumulator. At all times, \(N\) elements are stored where \(N\) is the maximum of the specified value for
SlotsandNgens\((G) + 1\). Initially, these are just the generators of \(G\). As well, one extra group element is stored, the accumulator. Initially, this is the identity. Random elements are now produced by successive calls toRandom(P), where \(P\) is the process created by this function. Each such call chooses one of the elements in the slots and adds it into the accumulator. The element in that slot is replaced by the sum of it and another randomly chosen slot. The random value returned is the new accumulator value. SettingScramble := mcauses \(m\) such sum-replacement operations to be performed before the process is returned. Note that this algorithm cannot produce well-distributed random elements of an infinite group.
- Random(P): Process -> GrpAbElt
Given a random element process \(P\) created by the function
RandomProcess(G)for the finite abelian group \(G\), return the next random element of \(G\) defined by the process.