Finitely Presented Groups
- Introduction
- Construction of an FP-Group
- Introduction
- Quotient Group Constructor
- The FP-Group Constructor
- Accessing the Defining Generators and Relations
- Operations on Words
Eliminate(u, x, v): GrpFPElt, GrpFPElt, GrpFPElt → GrpFPElt
Eliminate(U, x, v): { GrpFPElt }, GrpFPElt, GrpFPElt → { GrpFPElt }
Match(u, v, f): GrpFPElt, GrpFPElt, RngIntElt → BoolElt, RngIntElt
RotateWord(u, n): GrpFPElt, RngIntElt → GrpFPElt
Substitute(u, f, n, v): GrpFPElt, RngIntElt, RngIntElt, GrpFPElt → GrpFPElt
Subword(u, f, n): GrpFPElt, RngIntElt, RngIntElt → GrpFPElt
Example: Word Ops
- Operations on Presentations
AddGenerator(G): GrpFP → GrpFP
AddGenerator(G, w): GrpFP, GrpFPElt → GrpFP
AddRelation(G, r): GrpFP, RelElt → GrpFP
AddRelation(G, g): GrpFP, GrpFPElt → GrpFP
AddRelation(G, r, i): GrpFP, RelElt, RngIntElt → GrpFP
AddRelation(G, g, i): GrpFP, GrpFPElt, RngIntElt → GrpFP
DeleteGenerator(G, x): GrpFP, GrpFPElt → GrpFP
DeleteRelation(G, r): GrpFP, RelElt → GrpFP
DeleteRelation(G, g): GrpFP, GrpFPElt → GrpFP
DeleteRelation(G, i): GrpFP, RngIntElt → GrpFP
ReplaceRelation(G, s, r): GrpFP, RelElt, RelElt → GrpFP
ReplaceRelation(G, h, r): GrpFP, GrpFPElt, RelElt → GrpFP
ReplaceRelation(G, s, g): GrpFP, RelElt, GrpFPElt → GrpFP
ReplaceRelation(G, h, g): GrpFP, GrpFPElt, GrpFPElt → GrpFP
ReplaceRelation(G, i, r): GrpFP, RngIntElt, RelElt → GrpFP
ReplaceRelation(G, i, g): GrpFP, RngIntElt, GrpFPElt → GrpFP
Example: Replace
- Simplification
- Standard Constructions
- Familiar Groups as FP-Groups
- Construction of Extensions
- Conversion to FP-Groups
FPGroup(G): GrpPerm → GrpFP, Hom(Grp)
FPGroup(G): GrpMat → GrpFP, Hom(Grp)
Example: FP Group1
FPGroupStrong(G): GrpPerm → GrpFP, Hom(Grp)
FPGroupStrong(G): GrpMat → GrpFP, Hom(Grp)
FPGroupStrong(G, N): GrpPerm, GrpPerm → GrpFP, Hom(Grp)
Example: FP Group2
FPGroup(G): GrpPC → GrpFP, Hom(Grp)
FPGroup(G): GrpGPC → GrpFP, Hom(Grp)
FPGroup(G): GrpAb → GrpFP, Hom(Grp)
Example: FP Group2
CoxeterFPGroup(W): GrpFPCox → GrpFP, Map
CoxeterFPGroup(W): GrpPermCox → GrpFP, Map
Example: FP Coxeter Groups
- Properties of an FP-Group
- Subgroups
- Specification of a Subgroup
- The Todd-Coxeter Algorithm
ToddCoxeter(G, H: parameters): GrpFP, GrpFP → RngIntElt, Map, RngIntElt, RngIntElt
Index(G, H: parameters): GrpFP, GrpFP → RngIntElt
FactoredIndex(G, H: parameters): GrpFP, GrpFP → [ <RngIntElt, RngIntElt> ]
Example: Index1
Example: HN
Example: Family
- Interactive Coset Enumeration
- Implicit Invocation of the Todd-Coxeter Algorithm
- Coset Spaces and Tables
- Coset Tables
- Coset Spaces: Induced Homomorphism
- Coset Spaces: Construction
- Coset Spaces: Elementary Operations
- Accessing Information
# V: GrpFPCos → RngIntElt
Action(V): GrpFPCos → Map
<i, w> @ T: GrpFPCosElt, GrpFPElt, Map → GrpFPElt
T(i, w): Map, GrpFPCosElt, GrpFPElt → GrpFPElt
ExplicitCoset(V, i): GrpFPCos, RngIntElt → GrpFPCosElt
IndexedCoset(V, w): GrpFPCos, GrpFPElt → GrpFPCosElt
IndexedCoset(V, C): GrpFPCos, GrpFPCosElt → GrpFPCosElt
Group(V): GrpFPCos → GrpFP
Subgroup(V): GrpFPCos → GrpFP
IsComplete(V): GrpFPCos → BoolElt
ExcludedConjugates(V): GrpFPCos → { GrpFPElt }
ExcludedConjugates(T): Map → { GrpFPElt }
Transversal(G, H): GrpFP, GrpFP → { @ GrpFPElt @}, Map
RightTransversal(G, H): GrpFP, GrpFP → { @ GrpFPElt @}, Map
Example: Coset Table2
Example: Coset Space
Example: Der Sub
Example: Excluded Conjugates
- Double Coset Spaces: Construction
DoubleCoset(G, H, g, K ): GrpFP, GrpFP, GrpFPElt, GrpFP → GrpFPDcosElt
DoubleCosets(G, H, K): GrpFP, GrpFP, GrpFP → { GrpFPDcosElt }
Example: Double Cosets
- Coset Spaces: Selection of Cosets
- Constructing a Presentation for a Subgroup
- Subgroups of Finite Index
- Low Index Subgroups
LowIndexSubgroups(G, R : parameters): GrpFP, RngIntElt → [ GrpFP ]
LowIndexSubgroups(G, R : parameters): GrpFP, RngIntElt → [ { GrpFPElt } ]
LowIndexSubgroups(G, R: parameters): GrpFP, <RngIntElt, RngIntElt> → [ GrpFP ]
LowIndexSubgroups(G, R: parameters): GrpFP, <RngIntElt, RngIntElt> → [ { GrpFPElt } ]
Example: Lix1
Example: Lix2
LowIndexProcess(G, R : parameters): GrpFP, RngIntElt → Process(Lix)
LowIndexProcess(G, R: parameters): GrpFP, < RngIntElt, RngIntElt > → Process(Lix)
NextSubgroup(~P): GrpFPLixProc
NextSubgroup(~P, ~G): GrpFPLixProc, GrpFP
ExtractGroup(P): GrpFPLixProc → GrpFP
ExtractGenerators(P): GrpFPLixProc → { GrpFPElt }
IsEmpty(P): GrpFPLixProc → BoolElt
IsValid(P): GrpFPLixProc → BoolElt
Example: Lix3
Example: Lix4
Example: Lix5
LowIndexNormalSubgroups(G, n: parameters): GrpFP, RngIntElt → [ Rec ]
- Operations for Subgroups of Finite Index
H ^ u: GrpFP, GrpFPElt → GrpFP
Conjugate(H, u): GrpFP, GrpFPElt → GrpFP
H meet K: GrpFP, GrpFP → GrpFP
Core(G, H): GrpFP, GrpFP → GrpFP
GeneratingWords(G, H): GrpFP, GrpFP → { GrpFPElt }
MaximalOvergroup(G, H): GrpFP, GrpFP → GrpFP
MinimalOvergroup(G, H): GrpFP, GrpFP → GrpFP
H ^ G: GrpFP, GrpFP → GrpFP
NormalClosure(G, H): GrpFP, GrpFP → GrpFP
Normaliser(G, H): GrpFP, GrpFP → GrpFP
Normalizer(G, H): GrpFP, GrpFP → GrpFP
SchreierGenerators(G, H : parameters): GrpFP, GrpFP → { GrpFPElt }
SchreierSystem(G, H): GrpFP, GrpFP → { @ GrpFPElt @}, Map
Transversal(G, H): GrpFP, GrpFP → { @ GrpFPElt @}, Map
Transversal(G, H, K): GrpFP, GrpFP, GrpFP → { @ GrpFPElt @}, Map
Example: Subgroup Constructions
Example: Schreier Generators
- Properties of Subgroups
u in H: GrpFPElt, GrpFP → BoolElt
u notin H: GrpFPElt, GrpFP → BoolElt
H eq K: GrpFP, GrpFP → BoolElt
H ne K: GrpFP, GrpFP → BoolElt
H subset K: GrpFP, GrpFP → BoolElt
IsSubgroup(H,K): GrpFP, GrpFP → BoolElt
H notsubset K: GrpFP, GrpFP → BoolElt
IsConjugate(G, H, K): GrpFP, GrpFP, GrpFP → BoolElt, GrpFPElt
IsNormal(G, H): GrpFP, GrpFP → BoolElt
IsMaximal(G, H): GrpFP, GrpFP → BoolElt
IsSelfNormalizing(G, H): GrpFP, GrpFP → BoolElt
Example: Subgroup Ops
Example: Build Subgroups
- Finite FP-Groups
- Homomorphisms
- General Remarks
- Construction of Homomorphisms
- Accessing Homomorphisms
- Constructing Homomorphisms onto Finite Groups
Homomorphisms(F, G, A : parameters): GrpFP, GrpPerm, GrpPerm → [ HomGrp ]
Homomorphisms(F, G : parameters): GrpFP, GrpPerm → [ HomGrp ]
Example: Homomorphisms1
Homomorphisms(F, G, A : parameters): GrpFP, GrpPC, GrpPC → [ HomGrp ]
Homomorphisms(F, G : parameters): GrpFP, GrpPC → [ HomGrp ]
HomomorphismsProcess(F, G, A : parameters): GrpFP, GrpPerm, GrpPerm → GrpFPHomsProc
HomomorphismsProcess(F, G : parameters): GrpFP, GrpPerm → GrpFPHomsProc
NextElement(~P): GrpFPHomsProc
IsEmpty(P): GrpFPHomsProc → BoolElt
IsValid(P): GrpFPHomsProc → BoolElt
DefinesHomomorphism(P): GrpFPHomsProc → BoolElt
Homomorphism(P): GrpFPHomsProc → HomGrp
# P: GrpFPHomsProc → RngIntElt
Example: Homomorphisms2
Example: Homomorphisms2 2
- Searching for Isomorphisms
- Quotient Group Methods
- Abelian Quotient
AbelianQuotient(G): GrpFP → GrpAb, Map
ElementaryAbelianQuotient(G, p): GrpFP, RngIntElt → GrpAb, Map
AbelianQuotientInvariants(G): GrpFP → [ RngIntElt ]
AQInvariants(G): GrpFP → [ RngIntElt ]
AbelianQuotientInvariants(H): GrpFP → [ RngIntElt ]
AQInvariants(H): GrpFP → [ RngIntElt ]
AbelianQuotientInvariants(G, T): GrpFP, Map → [ RngIntElt ]
AQInvariants(G, T): GrpFP, Map → [ RngIntElt ]
AbelianQuotientInvariants(G, n): GrpFP, RngIntElt → [ RngIntElt ]
AQInvariants(G, n): GrpFP, RngIntElt → [ RngIntElt ]
AbelianQuotientInvariants(H, n): GrpFP, RngIntElt → [ RngIntElt ]
AQInvariants(H, n): GrpFP, RngIntElt → [ RngIntElt ]
AbelianQuotientInvariants(G, T, n): GrpFP, Map, RngIntElt → [ RngIntElt ]
AQInvariants(G, T, n): GrpFP, Map, RngIntElt → [ RngIntElt ]
HasComputableAbelianQuotient(G): GrpFP → BoolElt, GrpAb, Map
HasInfiniteComputableAbelianQuotient(G): GrpFP → BoolElt, GrpAb, Map
IsPerfect(G): GrpFP → BoolElt
TorsionFreeRank(G): GrpFP → RngIntElt
Example: F27
Example: Modular Abelian Quotient
HasFiniteAbelianQuotient(G): GrpFP → [ RngIntElt ]
HasFiniteAQ(G): GrpFP → [ RngIntElt ]
AQPrimes(G): GrpFP → [ RngIntElt ]
- \(p\)-Quotient
- \(p\)-Quotient Process
pQuotientProcess(F, p, c: parameters): GrpFP, RngIntElt, RngIntElt → Process
NextClass(~P : parameters): GrpPCpQuotientProc
NextClass(~P, k : parameters): GrpPCpQuotientProc, RngIntElt
- Using \(p\)-Quotient Interactively
StartNewClass(~P: parameters): GrpPCpQuotientProc
Tails(~P: parameters): GrpPCpQuotientProc
Tails(~P, k: parameters): GrpPCpQuotientProc, RngIntElt
Consistency(~P: parameters): GrpPCpQuotientProc
Consistency(~P, k: parameters): GrpPCpQuotientProc
CollectRelations(~P): GrpPCpQuotientProc
ExponentLaw(~P : parameters): GrpPCpQuotientProc
ExponentLaw(~P, Start, Fin: parameters): GrpPCpQuotientProc, RngIntElt, RngIntElt
EliminateRedundancy(~P): GrpPCpQuotientProc
Display(P): GrpPCpQuotientProc
Display(P, DisplayLevel): GrpPCpQuotientProc, RngIntElt
RevertClass(~P): GrpPCpQuotientProc
pCoveringGroup(~P): GrpPCpQuotientProc
pCoveringGroup(G): GrpPC → GrpPC
GeneratorStructure(P): GrpPCpQuotientProc
GeneratorStructure(P, Start, Fin): GrpPCpQuotientProc, RngIntElt, RngIntElt
Jacobi(~P, c, b, a, ~r): GrpPCpQuotientProc, RngIntElt, RngIntElt, RngIntElt → RngIntElt ->
Jacobi(~P, c, b, a): GrpPCpQuotientProc, RngIntElt, RngIntElt, RngIntElt → RngIntElt ->
Collect(P, Q): GrpPCpQuotientProc, [ <RngIntElt, RngIntElt> ] → [ RngIntElt ] ->
EcheloniseWord(~P, ~r): GrpPCpQuotientProc → RngIntElt
EcheloniseWord(~P): GrpPCpQuotientProc → RngIntElt
SetDisplayLevel(~P, Level): GrpPCpQuotientProc, RngIntElt
ExtractGroup(P): GrpPCpQuotientProc → GrpPC
Order(P): GrpPCpQuotientProc → RngIntElt
FactoredOrder(P): GrpPCpQuotientProc → [ <RngIntElt, RngIntElt> ]
NumberOfPCGenerators(P): GrpPCpQuotientProc → RngIntElt
pClass(P): GrpPCpQuotientProc → RngIntElt
NuclearRank(G): GrpPC → RngIntElt
NuclearRank(P): GrpPCpQuotientProc → RngIntElt
pMultiplicatorRank(G): GrpPC → RngIntElt
pMultiplicatorRank(P): GrpPCpQuotientProc → RngIntElt
Example: p Quotient5
Example: p Quotient6
Example: p Quotient7
Example: p Quotient8
- Nilpotent Quotient
- Soluble Quotient
SolvableQuotient(G : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolubleQuotient(G : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
Example: Soluble Quotient1
SolvableQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolubleQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolvableQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt
SolubleQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt
Example: Soluble Quotient2
- Soluble Quotient Advanced
- Introduction
- Construction
- Calculating the Relevant Primes
- The Intrinsics
SolubleQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolvableQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolubleQuotient(F : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolvableQuotient(F : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt
SolubleQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt
SolvableQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt
- Simple Group Quotients
SimpleQuotients({F, deg1, deg2, }{ord1, ord2: parameters}): GrpFP, RngIntElt, RngIntElt, RngIntElt, RngIntElt → List
SimpleQuotients(F, ord1, ord2: parameters): GrpFP, RngIntElt, RngIntElt → List
SimpleQuotients(F, ord2: parameters): GrpFP, RngIntElt → List
SimpleQuotientProcess({F, deg1, deg2, }{ord1, ord2: parameters}): GrpFP, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Rec
NextSimpleQuotient(~P): Rec
IsEmptySimpleQuotientProcess(P): Rec → BoolElt
SimpleEpimorphisms(P): Rec → SeqEnum, Tup
Example: Simple Quotients
- The \({\rm L}_2\)-Quotient Algorithm
- Infinite L2 Quotients
- The \({\rm L}_3{\rm U}_3\)-Quotient Algorithm
- \(KG\)-Modules
GModulePrimes(G, A): GrpFP, GrpFP → SetMulti
GModulePrimes(G, A, B): GrpFP, GrpFP, GrpFP → SetMulti
GModule(G, A, p): GrpFP, GrpFP, RngIntElt → ModGrp, Map
GModule(G, A, B, p): GrpFP, GrpFP, GrpFP, RngIntElt → ModGrp, Map
GModule(G, A, B): GrpFP, GrpFP, GrpFP → ModGrp, Map
Pullback(f, N): Map, ModGrp → GrpFP
Example: Representation Theory
Example: gmoduleprimes
- Some Developed Examples