# Finitely Presented Groups

- [Introduction](introduction.md)

  - [Overview of Facilities](introduction.md#overview-of-facilities)

- [Construction of an FP-Group](fp-group-construction.md)

  - [Introduction](fp-group-construction.md#introduction)

  - [Quotient Group Constructor](fp-group-construction.md#quotient-group-constructor)

    - [`quo< F | R >: GrpFP, List → GrpFP, Hom(Grp)`](fp-group-construction.md#constructor-grpfp-quo)

    - [`G / H: GrpFP, GrpFP → GrpFP`](fp-group-construction.md#operation-op-div-grpfp-grpfp)

    - [`Example: Symmetric1`](fp-group-construction.md#example-ex-94ed98)

    - [`Example: Symmetric2`](fp-group-construction.md#example-ex-803aa2)

    - [`Example: Modular`](fp-group-construction.md#example-ex-8457bf)

  - [The FP-Group Constructor](fp-group-construction.md#the-fp-group-constructor)

    - [`FPGroup< X | R >: List(Var), List(GrpFPRel) → GrpFP, Hom(Grp)`](fp-group-construction.md#constructor-grpfp-1-confpgroup)

    - [`Example: Tetrahedral`](fp-group-construction.md#example-ex-388271)

    - [`Example: Three Invols`](fp-group-construction.md#example-ex-cb4daf)

    - [`Example: Coxeter`](fp-group-construction.md#example-ex-4c068c)

  - [Accessing the Defining Generators and Relations](fp-group-construction.md#accessing-the-defining-generators-and-relations)

    - [`G . i: GrpFP, RngIntElt → GrpFPElt`](fp-group-construction.md#operation-operation-grpfp-rngintelt-grpfpelt)

    - [`Generators(G): GrpFP → { GrpFPElt }`](fp-group-construction.md#function-generators-grpfp)

    - [`NumberOfGenerators(G): GrpFP → RngIntElt`](fp-group-construction.md#function-numberofgenerators-grpfp)

    - [`Ngens(G): GrpFP → RngIntElt`](fp-group-construction.md#function-ngens-grpfp)

    - [`PresentationLength(G): GrpFP → RngIntElt`](fp-group-construction.md#function-presentationlength-grpfp)

    - [`Relations(G): GrpFP → [ GrpFPRel ]`](fp-group-construction.md#function-relations-grpfp)

  - [Operations on Words](fp-group-construction.md#operations-on-words)

    - [`Eliminate(u, x, v): GrpFPElt, GrpFPElt, GrpFPElt → GrpFPElt`](fp-group-construction.md#function-eliminate-grpfpelt-grpfpelt-grpfpelt)

    - [`Eliminate(U, x, v): { GrpFPElt }, GrpFPElt, GrpFPElt → { GrpFPElt }`](fp-group-construction.md#function-eliminate-grpfpelt-grpfpelt-grpfpelt-2)

    - [`Match(u, v, f): GrpFPElt, GrpFPElt, RngIntElt → BoolElt, RngIntElt`](fp-group-construction.md#function-match-grpfpelt-grpfpelt-rngintelt)

    - [`RotateWord(u, n): GrpFPElt, RngIntElt → GrpFPElt`](fp-group-construction.md#function-rotateword-grpfpelt-rngintelt)

    - [`Substitute(u, f, n, v): GrpFPElt, RngIntElt, RngIntElt, GrpFPElt → GrpFPElt`](fp-group-construction.md#function-substitute-grpfpelt-rngintelt-rngintelt-grpfpelt)

    - [`Subword(u, f, n): GrpFPElt, RngIntElt, RngIntElt → GrpFPElt`](fp-group-construction.md#function-subword-grpfpelt-rngintelt-rngintelt)

    - [`Example: Word Ops`](fp-group-construction.md#example-ex-1c9bc2)

  - [Operations on Presentations](fp-group-construction.md#operations-on-presentations)

    - [`AddGenerator(G): GrpFP → GrpFP`](fp-group-construction.md#function-addgenerator-grpfp)

    - [`AddGenerator(G, w): GrpFP, GrpFPElt → GrpFP`](fp-group-construction.md#function-addgenerator-grpfp-grpfpelt)

    - [`AddRelation(G, r): GrpFP, RelElt → GrpFP`](fp-group-construction.md#function-addrelation-grpfp-relelt)

    - [`AddRelation(G, g): GrpFP, GrpFPElt → GrpFP`](fp-group-construction.md#function-addrelation-grpfp-grpfpelt)

    - [`AddRelation(G, r, i): GrpFP, RelElt, RngIntElt → GrpFP`](fp-group-construction.md#function-addrelation-grpfp-relelt-rngintelt)

    - [`AddRelation(G, g, i): GrpFP, GrpFPElt, RngIntElt → GrpFP`](fp-group-construction.md#function-addrelation-grpfp-grpfpelt-rngintelt)

    - [`DeleteGenerator(G, x): GrpFP, GrpFPElt → GrpFP`](fp-group-construction.md#function-deletegenerator-grpfp-grpfpelt)

    - [`DeleteRelation(G, r): GrpFP, RelElt → GrpFP`](fp-group-construction.md#function-deleterelation-grpfp-relelt)

    - [`DeleteRelation(G, g): GrpFP, GrpFPElt → GrpFP`](fp-group-construction.md#function-deleterelation-grpfp-grpfpelt)

    - [`DeleteRelation(G, i): GrpFP, RngIntElt → GrpFP`](fp-group-construction.md#function-deleterelation-grpfp-rngintelt)

    - [`ReplaceRelation(G, s, r): GrpFP, RelElt, RelElt → GrpFP`](fp-group-construction.md#function-replacerelation-grpfp-relelt-relelt)

    - [`ReplaceRelation(G, h, r): GrpFP, GrpFPElt, RelElt → GrpFP`](fp-group-construction.md#function-replacerelation-grpfp-grpfpelt-relelt)

    - [`ReplaceRelation(G, s, g): GrpFP, RelElt, GrpFPElt → GrpFP`](fp-group-construction.md#function-replacerelation-grpfp-relelt-grpfpelt)

    - [`ReplaceRelation(G, h, g): GrpFP, GrpFPElt, GrpFPElt → GrpFP`](fp-group-construction.md#function-replacerelation-grpfp-grpfpelt-grpfpelt)

    - [`ReplaceRelation(G, i, r): GrpFP, RngIntElt, RelElt → GrpFP`](fp-group-construction.md#function-grpfp-replacerelation)

    - [`ReplaceRelation(G, i, g): GrpFP, RngIntElt, GrpFPElt → GrpFP`](fp-group-construction.md#function-replacerelation-grpfp-rngintelt-grpfpelt)

    - [`Example: Replace`](fp-group-construction.md#example-ex-c80efd)

- [Simplification](simplification.md)

  - [Automatic Simplification](simplification.md#automatic-simplification)

    - [`ReduceGenerators(G): GrpFP → GrpFP, Map`](simplification.md#function-grpfp-1-reducegenerators)

    - [`Simplify(G: parameters): GrpFP → GrpFP, Map`](simplification.md#function-grpfp-1-simplify)

    - [`Example: Simplify1`](simplification.md#example-ex-6d0638)

    - [`SimplifyLength(G: parameters): GrpFP → GrpFP, Map`](simplification.md#function-grpfp-1-simplifylength)

  - [Interactive Simplification](simplification.md#interactive-simplification)

    - [`TietzeProcess(G: parameters): GrpFP → Process(Tietze)`](simplification.md#function-tietzeprocess-grpfp)

    - [`ShowOptions(~P : parameters): GrpFPTietzeProc`](simplification.md#function-showoptions-grpfptietzeproc-ref)

    - [`SetOptions(~P : parameters): GrpFPTietzeProc`](simplification.md#function-setoptions-grpfptietzeproc-ref)

    - [`Simplify(~P : parameters): GrpFPTietzeProc`](simplification.md#function-simplify-grpfptietzeproc-ref)

    - [`SimplifyPresentation(~P : parameters): GrpFPTietzeProc`](simplification.md#function-simplifypresentation-grpfptietzeproc-ref)

    - [`SimplifyLength(~P : parameters): GrpFPTietzeProc`](simplification.md#function-simplifylength-grpfptietzeproc-ref)

    - [`Eliminate(~P: parameters): GrpFPTietzeProc`](simplification.md#function-eliminate-grpfptietzeproc-ref)

    - [`EliminateGenerators(~P: parameters): GrpFPTietzeProc`](simplification.md#function-eliminategenerators-grpfptietzeproc-ref)

    - [`Search(~P: parameters): GrpFPTietzeProc`](simplification.md#function-search-grpfptietzeproc-ref)

    - [`SearchEqual(~P: parameters): GrpFPTietzeProc`](simplification.md#function-searchequal-grpfptietzeproc-ref)

    - [`Group(P): GrpFPTietzeProc → GrpFP, Map`](simplification.md#function-grpfp-1-tietze-group)

    - [`NumberOfGenerators(P): GrpFPTietzeProc → RngIntElt`](simplification.md#function-numberofgenerators-grpfptietzeproc)

    - [`Ngens(P): GrpFPTietzeProc → RngIntElt`](simplification.md#function-ngens-grpfptietzeproc)

    - [`NumberOfRelations(P): GrpFPTietzeProc → RngIntElt`](simplification.md#function-numberofrelations-grpfptietzeproc)

    - [`Nrels(P): GrpFPTietzeProc → RngIntElt`](simplification.md#function-nrels-grpfptietzeproc)

    - [`PresentationLength(P): GrpFPTietzeProc → RngIntElt`](simplification.md#function-presentationlength-grpfptietzeproc)

    - [`Example: F276`](simplification.md#example-ex-1eeac7)

    - [`Example: Reduce Generating Set`](simplification.md#example-ex-df6881)

- [Standard Constructions](standard.md)

  - [Familiar Groups as FP-Groups](standard.md#familiar-groups-as-fp-groups)

    - [`AbelianFPGroup([n₁,...,nᵣ]): [ RngIntElt ] → GrpFP`](standard.md#function-abelianfpgroup-rngintelt)

    - [`AlternatingFPGroup(n): RngIntElt → GrpFP`](standard.md#function-alternatingfpgroup-rngintelt)

    - [`Alt(GrpFP, n): Cat, RngIntElt → GrpFP`](standard.md#function-alt-cat-rngintelt)

    - [`BraidFPGroup(n): RngIntElt → GrpFP`](standard.md#function-braidfpgroup-rngintelt)

    - [`CoxeterFPGroup(t): MonStgElt → GrpFP`](standard.md#function-coxeterfpgroup-monstgelt)

    - [`CyclicFPGroup(n): RngIntElt → GrpFP`](standard.md#function-cyclicfpgroup-rngintelt)

    - [`DihedralFPGroup(n): RngIntElt → GrpFP`](standard.md#function-dihedralfpgroup-rngintelt)

    - [`ExtraSpecialFPGroup(p, n : parameters): RngIntElt, RngIntElt → GrpFP`](standard.md#function-extraspecialfpgroup-rngintelt-rngintelt)

    - [`SymmetricFPGroup(n): RngIntElt → GrpFP`](standard.md#function-symmetricfpgroup-rngintelt)

    - [`Sym(GrpFP, n): Cat, RngIntElt → GrpFP`](standard.md#function-sym-cat-rngintelt)

    - [`Example: Standard Groups`](standard.md#example-ex-936a87)

  - [Construction of Extensions](standard.md#construction-of-extensions)

    - [`Darstellungsgruppe(G): GrpFP → GrpFP`](standard.md#function-darstellungsgruppe-grpfp)

    - [`DirectProduct(G, H): GrpFP, GrpFP → GrpFP`](standard.md#function-directproduct-grpfp-grpfp)

    - [`DirectProduct(Q): [ GrpFP ] → GrpFP`](standard.md#function-directproduct-grpfp)

    - [`FreeProduct(G, H): GrpFP, GrpFP → GrpFP`](standard.md#function-freeproduct-grpfp-grpfp)

    - [`FreeProduct(Q): [ GrpFP ] → GrpFP`](standard.md#function-freeproduct-grpfp)

    - [`Example: Control Extn`](standard.md#example-ex-dc16bb)

    - [`Example: Direct Product`](standard.md#example-ex-bdaee4)

  - [Conversion to FP-Groups](standard.md#conversion-to-fp-groups)

    - [`FPGroup(G): GrpPerm → GrpFP, Hom(Grp)`](standard.md#function-grpfp-1-fpgroup)

    - [`FPGroup(G): GrpMat → GrpFP, Hom(Grp)`](standard.md#function-fpgroup-grpmat)

    - [`Example: FP Group1`](standard.md#example-ex-185d54)

    - [`FPGroupStrong(G): GrpPerm → GrpFP, Hom(Grp)`](standard.md#function-grpfp-1-fpgroupstrong)

    - [`FPGroupStrong(G): GrpMat → GrpFP, Hom(Grp)`](standard.md#function-fpgroupstrong-grpmat)

    - [`FPGroupStrong(G, N): GrpPerm, GrpPerm → GrpFP, Hom(Grp)`](standard.md#function-fpgroupstrong-grpperm-grpperm)

    - [`Example: FP Group2`](standard.md#example-ex-f1a62b)

    - [`FPGroup(G): GrpPC → GrpFP, Hom(Grp)`](standard.md#function-fpgroup-grppc)

    - [`FPGroup(G): GrpGPC → GrpFP, Hom(Grp)`](standard.md#function-fpgroup-grpgpc)

    - [`FPGroup(G): GrpAb → GrpFP, Hom(Grp)`](standard.md#function-fpgroup-grpab)

    - [`Example: FP Group2`](standard.md#example-ex-a91a69)

    - [`CoxeterFPGroup(W): GrpFPCox → GrpFP, Map`](standard.md#function-grpfp-1-coxeterfpgroup-conv)

    - [`CoxeterFPGroup(W): GrpPermCox → GrpFP, Map`](standard.md#function-grpfp-1-coxeterfpgroup-conv-2)

    - [`Example: FP Coxeter Groups`](standard.md#example-ex-1b08d9)

- [Properties of an FP-Group](fp-group-properties.md)

  - [Cardinality](fp-group-properties.md#cardinality)

    - [`Order(G: parameters): GrpFP → RngIntElt`](fp-group-properties.md#function-grpfp-1-order)

    - [`FactoredOrder(G: parameters): GrpFP → [ <RngIntElt, RngIntElt> ]`](fp-group-properties.md#function-grpfp-1-factoredorder)

    - [`Example: Order11`](fp-group-properties.md#example-ex-134948)

    - [`IsInfiniteFPGroup(G : parameters): GrpFP → BoolElt`](fp-group-properties.md#function-isinfinitefpgroup-grpfp)

    - [`Example: Prove Inf1`](fp-group-properties.md#example-ex-fea44f)

    - [`HasPositiveH1Dimension(G, phi : parameters): GrpFP, HomGrp → BoolElt`](fp-group-properties.md#function-haspositiveh1dimension-grpfp-homgrp)

  - [Small Cancellation Conditions](fp-group-properties.md#small-cancellation-conditions)

    - [`SmallCancellationConditions(G): GrpFP → RngIntElt, RnIntElt, FldRatElt)`](fp-group-properties.md#function-smallcancellationconditions-grpfp)

    - [`Example: Small Cancel`](fp-group-properties.md#example-ex-2f799a)

  - [Largeness](fp-group-properties.md#largeness)

    - [`IsLarge(G, L, U:parameters): GrpFP, RngIntElt, RngIntElt → BoolElt, GrpFP`](fp-group-properties.md#function-grpfp-1-islarge)

- [Subgroups](subgroup-general.md)

  - [Specification of a Subgroup](subgroup-general.md#specification-of-a-subgroup)

    - [`sub< G | L >: GrpFP, List → GrpFP`](subgroup-general.md#constructor-grpfp-1-sub)

    - [`sub< G | f >: GrpFP, Hom(Grp) → GrpFP`](subgroup-general.md#constructor-constructor-sub-grpfp-hom-grp-grpfp)

    - [`ncl< G | L >: GrpFP, List → GrpFP`](subgroup-general.md#constructor-grpfp-1-ncl)

    - [`ncl<G | f>: GrpFP, Hom(Grp) → GrpFP`](subgroup-general.md#constructor-constructor-ncl-grpfp-hom-grp-grpfp)

    - [`CommutatorSubgroup(G): GrpFP → GrpFP`](subgroup-general.md#function-commutatorsubgroup-grpfp)

    - [`DerivedSubgroup(G): GrpFP → GrpFP`](subgroup-general.md#function-derivedsubgroup-grpfp)

    - [`DerivedGroup(G): GrpFP → GrpFP`](subgroup-general.md#function-derivedgroup-grpfp)

    - [`Example: Subgroups1`](subgroup-general.md#example-ex-6af151)

    - [`Example: Subgroups2`](subgroup-general.md#example-ex-4fd961)

  - [The Todd-Coxeter Algorithm](subgroup-general.md#the-todd-coxeter-algorithm)

    - [`ToddCoxeter(G, H: parameters): GrpFP, GrpFP → RngIntElt, Map, RngIntElt, RngIntElt`](subgroup-general.md#function-grpfp-1-toddcoxeter)

    - [`Index(G, H: parameters): GrpFP, GrpFP → RngIntElt`](subgroup-general.md#function-grpfp-1-index)

    - [`FactoredIndex(G, H: parameters): GrpFP, GrpFP → [ <RngIntElt, RngIntElt> ]`](subgroup-general.md#function-factoredindex-grpfp-grpfp)

    - [`Example: Index1`](subgroup-general.md#example-ex-0e7ed5)

    - [`Example: HN`](subgroup-general.md#example-ex-c75263)

    - [`Example: Family`](subgroup-general.md#example-ex-4e7bab)

  - [Interactive Coset Enumeration](subgroup-general.md#interactive-coset-enumeration)

    - [Introduction](subgroup-general.md#introduction)

    - [Constructing and Modifying a Coset Enumeration Process](subgroup-general.md#constructing-and-modifying-a-coset-enumeration-process)

      - [`CosetEnumerationProcess(G, H: parameters): GrpFP, GrpFP → GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-cosetenumerationprocess)

      - [`AddRelator(~P, w): GrpFPCosetEnumProc, GrpFPElt`](subgroup-general.md#function-grpfp-addrelator)

      - [`AddSubgroupGenerator(~P, w): GrpFPCosetEnumProc, GrpFPElt`](subgroup-general.md#function-grpfp-addsubgroupgenerator)

      - [`SetProcessParameters(~P: parameters): GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-setprocessparameters)

    - [Starting and Restarting an Enumeration](subgroup-general.md#starting-and-restarting-an-enumeration)

      - [`StartEnumeration(~P: parameters): GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-startenumeration)

      - [`RedoEnumeration(~P: parameters): GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-redoenumeration)

      - [`CanRedoEnumeration(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-grpfp-canredoenumeration)

      - [`ContinueEnumeration(~P: parameters): GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-continueenumeration)

      - [`CanContinueEnumeration(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-grpfp-cancontinueenumeration)

      - [`ResumeEnumeration(~P: parameters): GrpFPCosetEnumProc`](subgroup-general.md#function-grpfp-resumeenumeration)

    - [Accessing Information](subgroup-general.md#accessing-information)

      - [`CosetsSatisfying(P : parameters): GrpFPCosetEnumProc → { GrpFPElt }`](subgroup-general.md#function-grpfp-cosetssatisfying)

      - [`CosetSatisfying(P : parameters): GrpFPCosetEnumProc → { GrpFPElt }`](subgroup-general.md#function-grpfp-cosetsatisfying)

      - [`CosetTable(P): GrpFPCosetEnumProc → Map`](subgroup-general.md#function-grpfp-cosettable)

      - [`HasValidCosetTable(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-grpfp-hasvalidcosettable)

      - [`HasClosedCosetTable(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-grpfp-hasclosedcosettable)

      - [`HasCompleteCosetTable(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-hascompletecosettable-grpfpcosetenumproc)

      - [`ExcludedConjugate(P): GrpFPCosetEnumProc → GrpFPElt`](subgroup-general.md#function-excludedconjugate-grpfpcosetenumproc)

      - [`ExcludedConjugates(P): GrpFPCosetEnumProc → { GrpFPElt }`](subgroup-general.md#function-excludedconjugates-grpfpcosetenumproc)

      - [`ExistsCosetSatisfying(P : parameters): GrpFPCosetEnumProc → BoolElt, GrpFPElt`](subgroup-general.md#function-existscosetsatisfying-grpfpcosetenumproc)

      - [`ExistsExcludedConjugate(P): GrpFPCosetEnumProc → BoolElt, GrpFPElt`](subgroup-general.md#function-existsexcludedconjugate-grpfpcosetenumproc)

      - [`ExistsNormalisingCoset(P): GrpFPCosetEnumProc → BoolElt, GrpFPElt`](subgroup-general.md#function-existsnormalisingcoset-grpfpcosetenumproc)

      - [`ExistsNormalizingCoset(P): GrpFPCosetEnumProc → BoolElt, GrpFPElt`](subgroup-general.md#function-existsnormalizingcoset-grpfpcosetenumproc)

      - [`Group(P): GrpFPCosetEnumProc → GrpFP`](subgroup-general.md#function-group-grpfpcosetenumproc)

      - [`Index(P): GrpFPCosetEnumProc → RngIntElt`](subgroup-general.md#function-grpfp-index)

      - [`HasValidIndex(P): GrpFPCosetEnumProc → BoolElt`](subgroup-general.md#function-grpfp-hasvalidindex)

      - [`MaximalNumberOfCosets(P): GrpFPCosetEnumProc → RngIntElt`](subgroup-general.md#function-maximalnumberofcosets-grpfpcosetenumproc)

      - [`Subgroup(P): GrpFPCosetEnumProc → GrpFP`](subgroup-general.md#function-subgroup-grpfpcosetenumproc)

      - [`TotalNumberOfCosets(P): GrpFPCosetEnumProc → RngIntElt`](subgroup-general.md#function-totalnumberofcosets-grpfpcosetenumproc)

      - [`Example: ACE Proc1`](subgroup-general.md#example-ex-bfc054)

      - [`Example: ACE Proc2`](subgroup-general.md#example-ex-e1cc15)

      - [`Example: ACE Proc3`](subgroup-general.md#example-ex-ef1fe7)

      - [`Example: ACE Proc4`](subgroup-general.md#example-ex-0f03e7)

  - [Implicit Invocation of the Todd-Coxeter Algorithm](subgroup-general.md#implicit-invocation-of-the-todd-coxeter-algorithm)

    - [`SetGlobalTCParameters(: parameters)`](subgroup-general.md#function-grpfp-setglobaltcparameters)

    - [`UnsetGlobalTCParameters()`](subgroup-general.md#function-unsetglobaltcparameters)

    - [`Example: Implicit Coset Enumeration`](subgroup-general.md#example-ex-de08eb)

- [Coset Spaces and Tables](coset-space-table.md)

  - [Coset Tables](coset-space-table.md#coset-tables)

    - [`CosetTable(G, H: parameters): GrpFP, GrpFP → Map`](coset-space-table.md#function-cosettable-grpfp-grpfp)

    - [`CosetTableToRepresentation(G, T): GrpFP, Map → Map, GrpPerm, Grp`](coset-space-table.md#function-grpfp-1-cosettabletorepresentation)

    - [`CosetTableToPermutationGroup(G, T): GrpFP, Map → GrpPerm`](coset-space-table.md#function-cosettabletopermutationgroup-grpfp-map)

    - [`Example: Coset Table1`](coset-space-table.md#example-ex-ae13a4)

  - [Coset Spaces: Induced Homomorphism](coset-space-table.md#coset-spaces-induced-homomorphism)

    - [`CosetAction(G, H): Grp, Grp → Hom(Grp), GrpPerm, Grp`](coset-space-table.md#function-cosetaction-grp-grp)

    - [`CosetAction(V): GrpFPCos → Hom(Grp), GrpPerm`](coset-space-table.md#function-cosetaction-grpfpcos)

    - [`CosetImage(G, H): Grp, Grp → GrpPerm`](coset-space-table.md#function-cosetimage-grp-grp)

    - [`CosetImage(V): GrpFPCos → GrpPerm`](coset-space-table.md#function-cosetimage-grpfpcos)

    - [`CosetKernel(G, H): GrpFP, GrpFP → GrpFP`](coset-space-table.md#function-grpfp-1-cosetkernel)

    - [`CosetKernel(V): GrpFPCos → GrpFP`](coset-space-table.md#function-cosetkernel-grpfpcos)

    - [`Example: Co1`](coset-space-table.md#example-ex-a27ede)

    - [`Example: G23`](coset-space-table.md#example-ex-6d4ee4)

  - [Coset Spaces: Construction](coset-space-table.md#coset-spaces-construction)

    - [`CosetSpace(G, H: parameters): GrpFP, GrpFP → GrpFPCos`](coset-space-table.md#function-cosetspace-grpfp-grpfp)

    - [`RightCosetSpace(G, H: parameters): GrpFP, GrpFP → GrpFPCos`](coset-space-table.md#function-rightcosetspace-grpfp-grpfp)

    - [`LeftCosetSpace(G, H: parameters): GrpFP, GrpFP → GrpFPCos`](coset-space-table.md#function-leftcosetspace-grpfp-grpfp)

  - [Coset Spaces: Elementary Operations](coset-space-table.md#coset-spaces-elementary-operations)

    - [`H * g: GrpFP, GrpFPElt → GrpFPCosElt`](coset-space-table.md#operation-op-times-grpfp-grpfpelt)

    - [`C * g: GrpFPCosElt, GrpFPElt → GrpFPCosElt`](coset-space-table.md#operation-op-times-grpfpcoselt-grpfpelt)

    - [`C * D: GrpFPCosElt, GrpFPCosElt → GrpFPCosElt`](coset-space-table.md#operation-op-times-grpfpcoselt-grpfpcoselt)

    - [`g in C: GrpFPElt, GrpFPCosElt → BoolElt`](coset-space-table.md#operation-op-in-grpfpelt-grpfpcoselt)

    - [`g notin C: GrpFPElt, GrpFPCosElt → BoolElt`](coset-space-table.md#operation-op-notin-grpfpelt-grpfpcoselt)

    - [`C1 eq C2: GrpFPCosElt, GrpFPCosElt → BoolElt`](coset-space-table.md#operation-op-eq-grpfpcoselt-grpfpcoselt)

    - [`C1 ne C2: GrpFPCosElt, GrpFPCosElt → BoolElt`](coset-space-table.md#operation-op-ne-grpfpcoselt-grpfpcoselt)

  - [Accessing Information](coset-space-table.md#accessing-information)

    - [`# V: GrpFPCos → RngIntElt`](coset-space-table.md#operation-operation-grpfpcos-rngintelt)

    - [`Action(V): GrpFPCos → Map`](coset-space-table.md#function-action-grpfpcos)

    - [`<i, w> @ T: GrpFPCosElt, GrpFPElt, Map → GrpFPElt`](coset-space-table.md#literal-literal-i-w-t-grpfpcoselt-grpfpelt-map-grpfpelt)

    - [`T(i, w): Map, GrpFPCosElt, GrpFPElt → GrpFPElt`](coset-space-table.md#literal-t-map-grpfpcoselt-grpfpelt)

    - [`ExplicitCoset(V, i): GrpFPCos, RngIntElt → GrpFPCosElt`](coset-space-table.md#function-explicitcoset-grpfpcos-rngintelt)

    - [`IndexedCoset(V, w): GrpFPCos, GrpFPElt → GrpFPCosElt`](coset-space-table.md#function-indexedcoset-grpfpcos-grpfpelt)

    - [`IndexedCoset(V, C): GrpFPCos, GrpFPCosElt → GrpFPCosElt`](coset-space-table.md#function-indexedcoset-grpfpcos-grpfpcoselt)

    - [`Group(V): GrpFPCos → GrpFP`](coset-space-table.md#function-group-grpfpcos)

    - [`Subgroup(V): GrpFPCos → GrpFP`](coset-space-table.md#function-subgroup-grpfpcos)

    - [`IsComplete(V): GrpFPCos → BoolElt`](coset-space-table.md#function-iscomplete-grpfpcos)

    - [`ExcludedConjugates(V): GrpFPCos → { GrpFPElt }`](coset-space-table.md#function-excludedconjugates-grpfpcos)

    - [`ExcludedConjugates(T): Map → { GrpFPElt }`](coset-space-table.md#function-excludedconjugates-map)

    - [`Transversal(G, H): GrpFP, GrpFP → { @ GrpFPElt  @}, Map`](coset-space-table.md#function-transversal-grpfp-grpfp)

    - [`RightTransversal(G, H): GrpFP, GrpFP → { @ GrpFPElt  @}, Map`](coset-space-table.md#function-grpfp-1-righttransversal)

    - [`Example: Coset Table2`](coset-space-table.md#example-ex-e36cb8)

    - [`Example: Coset Space`](coset-space-table.md#example-ex-886b74)

    - [`Example: Der Sub`](coset-space-table.md#example-ex-13317b)

    - [`Example: Excluded Conjugates`](coset-space-table.md#example-ex-8d212e)

  - [Double Coset Spaces: Construction](coset-space-table.md#double-coset-spaces-construction)

    - [`DoubleCoset(G, H, g, K ): GrpFP, GrpFP, GrpFPElt, GrpFP → GrpFPDcosElt`](coset-space-table.md#function-doublecoset-grpfp-grpfp-grpfpelt-grpfp)

    - [`DoubleCosets(G, H, K): GrpFP, GrpFP, GrpFP → { GrpFPDcosElt }`](coset-space-table.md#function-grpfp-1-doublecosets)

    - [`Example: Double Cosets`](coset-space-table.md#example-ex-b7c1be)

  - [Coset Spaces: Selection of Cosets](coset-space-table.md#coset-spaces-selection-of-cosets)

    - [`CosetsSatisfying(T, S: parameters): Map, { GrpFPElt } → { GrpFPCosElt }`](coset-space-table.md#function-grpfp-1-cosetssatisfying)

    - [`CosetSatisfying(T, S: parameters): Map, { GrpFPElt } → { GrpFPCosElt }`](coset-space-table.md#function-grpfp-1-cosetsatisfying)

    - [`CosetsSatisfying(V, S: parameters): GrpFPCos, { GrpFPElt } → { GrpFPCosElt }`](coset-space-table.md#function-cosetssatisfying-grpfpcos-grpfpelt)

    - [`CosetSatisfying(V, S: parameters): GrpFPCos, { GrpFPElt } → { GrpFPCosElt }`](coset-space-table.md#function-cosetsatisfying-grpfpcos-grpfpelt)

    - [`Example: Coset Satisfying`](coset-space-table.md#example-ex-c086e8)

  - [Constructing a Presentation for a Subgroup](coset-space-table.md#constructing-a-presentation-for-a-subgroup)

    - [`Rewrite(G, H : parameters): GrpFP, GrpFP → GrpFP, Map`](coset-space-table.md#function-grpfp-1-rewrite)

    - [`Rewrite(G, ~H : parameters): GrpFP, GrpFP`](coset-space-table.md#function-grpfp-1-rewrite-var)

    - [`Example: Rewrite`](coset-space-table.md#example-ex-e234d8)

    - [`Example: Rewrite2`](coset-space-table.md#example-ex-490fe5)

- [Subgroups of Finite Index](subgroup-fin-index.md)

  - [Low Index Subgroups](subgroup-fin-index.md#low-index-subgroups)

    - [`LowIndexSubgroups(G, R : parameters): GrpFP, RngIntElt → [ GrpFP ]`](subgroup-fin-index.md#function-grpfp-1-lowindexsubgroups)

    - [`LowIndexSubgroups(G, R : parameters): GrpFP, RngIntElt → [ { GrpFPElt } ]`](subgroup-fin-index.md#function-lowindexsubgroups-grpfp-rngintelt)

    - [`LowIndexSubgroups(G, R: parameters): GrpFP, <RngIntElt, RngIntElt> → [ GrpFP ]`](subgroup-fin-index.md#function-lowindexsubgroups-grpfp-rngintelt-rngintelt)

    - [`LowIndexSubgroups(G, R: parameters): GrpFP, <RngIntElt, RngIntElt> → [ { GrpFPElt } ]`](subgroup-fin-index.md#function-lowindexsubgroups-grpfp-rngintelt-rngintelt-2)

    - [`Example: Lix1`](subgroup-fin-index.md#example-ex-2e2f0b)

    - [`Example: Lix2`](subgroup-fin-index.md#example-ex-18108c)

    - [`LowIndexProcess(G, R : parameters): GrpFP, RngIntElt → Process(Lix)`](subgroup-fin-index.md#function-grpfp-1-lowindexprocess)

    - [`LowIndexProcess(G, R: parameters): GrpFP, < RngIntElt, RngIntElt > → Process(Lix)`](subgroup-fin-index.md#function-lowindexprocess-grpfp-rngintelt-rngintelt)

    - [`NextSubgroup(~P): GrpFPLixProc`](subgroup-fin-index.md#function-grpfp-1-nextsubgroup)

    - [`NextSubgroup(~P, ~G): GrpFPLixProc, GrpFP`](subgroup-fin-index.md#function-nextsubgroup-grpfplixproc-grpfp-ref)

    - [`ExtractGroup(P): GrpFPLixProc → GrpFP`](subgroup-fin-index.md#function-extractgroup-grpfplixproc)

    - [`ExtractGenerators(P): GrpFPLixProc → { GrpFPElt }`](subgroup-fin-index.md#function-extractgenerators-grpfplixproc)

    - [`IsEmpty(P): GrpFPLixProc → BoolElt`](subgroup-fin-index.md#function-isempty-grpfplixproc)

    - [`IsValid(P): GrpFPLixProc → BoolElt`](subgroup-fin-index.md#function-grpfp-1-isvalid-lix)

    - [`Example: Lix3`](subgroup-fin-index.md#example-ex-fd99df)

    - [`Example: Lix4`](subgroup-fin-index.md#example-ex-55eb8b)

    - [`Example: Lix5`](subgroup-fin-index.md#example-ex-dd899e)

    - [`LowIndexNormalSubgroups(G, n: parameters): GrpFP, RngIntElt → [ Rec ]`](subgroup-fin-index.md#function-lowindexnormalsubgroups-grpfp-rngintelt)

  - [Operations for Subgroups of Finite Index](subgroup-fin-index.md#operations-for-subgroups-of-finite-index)

    - [`H ^ u: GrpFP, GrpFPElt → GrpFP`](subgroup-fin-index.md#operation-op-pow-grpfp-grpfpelt)

    - [`Conjugate(H, u): GrpFP, GrpFPElt → GrpFP`](subgroup-fin-index.md#function-conjugate-grpfp-grpfpelt)

    - [`H meet K: GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#operation-grpfp-1-meet)

    - [`Core(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-grpfp-1-core)

    - [`GeneratingWords(G, H): GrpFP, GrpFP → { GrpFPElt }`](subgroup-fin-index.md#function-grpfp-1-generatingwords)

    - [`MaximalOvergroup(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-grpfp-1-maximalovergroup)

    - [`MinimalOvergroup(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-grpfp-1-minimalovergroup)

    - [`H ^ G: GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#operation-op-pow-grpfp-grpfp)

    - [`NormalClosure(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-grpfp-1-normalclosure)

    - [`Normaliser(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-grpfp-1-normaliser)

    - [`Normalizer(G, H): GrpFP, GrpFP → GrpFP`](subgroup-fin-index.md#function-normalizer-grpfp-grpfp)

    - [`SchreierGenerators(G, H : parameters): GrpFP, GrpFP → { GrpFPElt }`](subgroup-fin-index.md#function-grpfp-1-schreiergenerators)

    - [`SchreierSystem(G, H): GrpFP, GrpFP → { @ GrpFPElt  @}, Map`](subgroup-fin-index.md#function-grpfp-1-schreiersystem)

    - [`Transversal(G, H): GrpFP, GrpFP → { @ GrpFPElt  @}, Map`](subgroup-fin-index.md#function-grpfp-1-transversal)

    - [`Transversal(G, H, K): GrpFP, GrpFP, GrpFP → { @ GrpFPElt  @}, Map`](subgroup-fin-index.md#function-grpfp-1-transversal-3)

    - [`Example: Subgroup Constructions`](subgroup-fin-index.md#example-ex-793825)

    - [`Example: Schreier Generators`](subgroup-fin-index.md#example-ex-f2320c)

  - [Properties of Subgroups](subgroup-fin-index.md#properties-of-subgroups)

    - [`u in H: GrpFPElt, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-in)

    - [`u notin H: GrpFPElt, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-notin)

    - [`H eq K: GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-eq)

    - [`H ne K: GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-ne)

    - [`H subset K: GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-subset)

    - [`IsSubgroup(H,K): GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#function-issubgroup-grpfp-grpfp)

    - [`H notsubset K: GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#operation-grpfp-1-notsubset)

    - [`IsConjugate(G, H, K): GrpFP, GrpFP, GrpFP → BoolElt, GrpFPElt`](subgroup-fin-index.md#function-grpfp-1-isconjugate)

    - [`IsNormal(G, H): GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#function-grpfp-1-isnormal)

    - [`IsMaximal(G, H): GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#function-grpfp-1-ismaximal)

    - [`IsSelfNormalizing(G, H): GrpFP, GrpFP → BoolElt`](subgroup-fin-index.md#function-grpfp-1-isselfnormalizing)

    - [`Example: Subgroup Ops`](subgroup-fin-index.md#example-ex-afcd46)

    - [`Example: Build Subgroups`](subgroup-fin-index.md#example-ex-bf7b3f)

- [Finite FP-Groups](finite-fp-groups.md)

  - [Concrete Representations](finite-fp-groups.md#concrete-representations)

    - [`PermutationGroup(G): GrpFP → GrpPerm, GrpHom`](finite-fp-groups.md#function-permutationgroup-grpfp)

    - [`PCGroup(G): GrpFP → GrpPC, GrpHom`](finite-fp-groups.md#function-pcgroup-grpfp)

  - [The Cayley Graph](finite-fp-groups.md#the-cayley-graph)

    - [`CayleyGraph(G): GrpFP → GrphVertSet, GrphEdgeSeto`](finite-fp-groups.md#function-cayleygraph-grpfp)

    - [`SchreierGraph(G, H): Grp, Grp → Grph, GrphVertSet, GrphEdgeSet`](finite-fp-groups.md#function-schreiergraph-grp-grp)

    - [`Example: Cayley Graph`](finite-fp-groups.md#example-ex-6ec7fa)

- [Homomorphisms](homomorphism.md)

  - [General Remarks](homomorphism.md#general-remarks)

  - [Construction of Homomorphisms](homomorphism.md#construction-of-homomorphisms)

    - [`hom< P -> G | S >: Struct, Struct → Map`](homomorphism.md#constructor-constructor-hom-struct-struct-map)

    - [`IsSatisfied(U, E): { RelElt }, [ GrpElt ] → BoolElt`](homomorphism.md#function-issatisfied-relelt-grpelt)

    - [`IsSatisfied(U, E): { GrpFPElt }, [ GrpElt ] → BoolElt`](homomorphism.md#function-issatisfied-grpfpelt-grpelt)

    - [`IsSatisfied(U, E): [ RelElt ], [ GrpElt ] → BoolElt`](homomorphism.md#function-issatisfied-relelt-grpelt-2)

    - [`IsSatisfied(U, E): [ GrpFPElt ], [ GrpElt ] → BoolElt`](homomorphism.md#function-grpfp-1-issatisfied)

  - [Accessing Homomorphisms](homomorphism.md#accessing-homomorphisms)

    - [`w @ f: GrpFPElt, Map → GrpElt`](homomorphism.md#literal-literal-w-f-grpfpelt-map-grpelt)

    - [`f(w): Map, GrpFPElt → GrpElt`](homomorphism.md#literal-f-map-grpfpelt)

    - [`H @ f: GrpFP, Map → Grp`](homomorphism.md#literal-literal-h-f-grpfp-map-grp)

    - [`f(H): Map, GrpFP → Grp`](homomorphism.md#literal-f-map-grpfp)

    - [`g @@ f: GrpElt, Map → GrpFPElt`](homomorphism.md#literal-literal-g-f-grpelt-map-grpfpelt)

    - [`H @@ f: Grp, Map → GrpFP`](homomorphism.md#literal-literal-h-f-grp-map-grpfp)

    - [`Domain(f): Map → Grp`](homomorphism.md#function-domain-map)

    - [`Codomain(f): Map → Grp`](homomorphism.md#function-codomain-map)

    - [`Image(f): Map → Grp`](homomorphism.md#function-image-map)

    - [`Kernel(f): Map → Grp`](homomorphism.md#function-grpfp-1-kernel)

    - [`Example: Homomorphism`](homomorphism.md#example-ex-63663e)

  - [Constructing Homomorphisms onto Finite Groups](homomorphism.md#constructing-homomorphisms-onto-finite-groups)

    - [`Homomorphisms(F, G, A : parameters): GrpFP, GrpPerm, GrpPerm → [ HomGrp ]`](homomorphism.md#function-grpfp-1-homomorphisms)

    - [`Homomorphisms(F, G : parameters): GrpFP, GrpPerm → [ HomGrp ]`](homomorphism.md#function-homomorphisms-grpfp-grpperm)

    - [`Example: Homomorphisms1`](homomorphism.md#example-ex-731266)

    - [`Homomorphisms(F, G, A : parameters): GrpFP, GrpPC, GrpPC → [ HomGrp ]`](homomorphism.md#function-homomorphisms-grpfp-grppc-grppc)

    - [`Homomorphisms(F, G : parameters): GrpFP, GrpPC → [ HomGrp ]`](homomorphism.md#function-homomorphisms-grpfp-grppc)

    - [`HomomorphismsProcess(F, G, A : parameters): GrpFP, GrpPerm, GrpPerm → GrpFPHomsProc`](homomorphism.md#function-grpfp-1-homomorphismsprocess)

    - [`HomomorphismsProcess(F, G : parameters): GrpFP, GrpPerm → GrpFPHomsProc`](homomorphism.md#function-homomorphismsprocess-grpfp-grpperm)

    - [`NextElement(~P): GrpFPHomsProc`](homomorphism.md#function-grpfp-1-nextelement)

    - [`IsEmpty(P): GrpFPHomsProc → BoolElt`](homomorphism.md#function-grpfp-1-isempty-hom)

    - [`IsValid(P): GrpFPHomsProc → BoolElt`](homomorphism.md#function-grpfp-1-isvalid-hom)

    - [`DefinesHomomorphism(P): GrpFPHomsProc → BoolElt`](homomorphism.md#function-grpfp-1-defineshomomorphism)

    - [`Homomorphism(P): GrpFPHomsProc → HomGrp`](homomorphism.md#function-grpfp-1-homomorphism)

    - [`# P: GrpFPHomsProc → RngIntElt`](homomorphism.md#operation-operation-grpfphomsproc-rngintelt)

    - [`Example: Homomorphisms2`](homomorphism.md#example-ex-9b82f6)

    - [`Example: Homomorphisms2 2`](homomorphism.md#example-ex-3b7c60)

  - [Searching for Isomorphisms](homomorphism.md#searching-for-isomorphisms)

    - [`SearchForIsomorphism(F, G, m : parameters): GrpFP, GrpFP, RngIntElt → BoolElt, HomGrp, HomGrp`](homomorphism.md#function-grpfp-1-searchforisomorphism)

    - [`Example: Search For Iso1`](homomorphism.md#example-ex-d9442c)

    - [`Example: Search For Iso2`](homomorphism.md#example-ex-4192a7)

- [Quotient Group Methods](quotient.md)

  - [Abelian Quotient](quotient.md#abelian-quotient)

    - [`AbelianQuotient(G): GrpFP → GrpAb, Map`](quotient.md#function-grpfp-1-abelianquotient)

    - [`ElementaryAbelianQuotient(G, p): GrpFP, RngIntElt → GrpAb, Map`](quotient.md#function-grpfp-1-elementaryabelianquotient)

    - [`AbelianQuotientInvariants(G): GrpFP → [ RngIntElt ]`](quotient.md#function-grpfp-1-abelianquotientinvariants)

    - [`AQInvariants(G): GrpFP → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp)

    - [`AbelianQuotientInvariants(H): GrpFP → [ RngIntElt ]`](quotient.md#function-grpfp-1-abelianquotientinvariants-sub)

    - [`AQInvariants(H): GrpFP → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp-2)

    - [`AbelianQuotientInvariants(G, T): GrpFP, Map → [ RngIntElt ]`](quotient.md#function-abelianquotientinvariants-grpfp-map)

    - [`AQInvariants(G, T): GrpFP, Map → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp-map)

    - [`AbelianQuotientInvariants(G, n): GrpFP, RngIntElt → [ RngIntElt ]`](quotient.md#function-grpfp-1-abelianquotientinvariants-mod)

    - [`AQInvariants(G, n): GrpFP, RngIntElt → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp-rngintelt)

    - [`AbelianQuotientInvariants(H, n): GrpFP, RngIntElt → [ RngIntElt ]`](quotient.md#function-abelianquotientinvariants-grpfp-rngintelt)

    - [`AQInvariants(H, n): GrpFP, RngIntElt → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp-rngintelt-2)

    - [`AbelianQuotientInvariants(G, T, n): GrpFP, Map, RngIntElt → [ RngIntElt ]`](quotient.md#function-abelianquotientinvariants-grpfp-map-rngintelt)

    - [`AQInvariants(G, T, n): GrpFP, Map, RngIntElt → [ RngIntElt ]`](quotient.md#function-aqinvariants-grpfp-map-rngintelt)

    - [`HasComputableAbelianQuotient(G): GrpFP → BoolElt, GrpAb, Map`](quotient.md#function-grpfp-1-hascomputableabelianquotient)

    - [`HasInfiniteComputableAbelianQuotient(G): GrpFP → BoolElt, GrpAb, Map`](quotient.md#function-hasinfinitecomputableabelianquotient-grpfp)

    - [`IsPerfect(G): GrpFP → BoolElt`](quotient.md#function-isperfect-grpfp)

    - [`TorsionFreeRank(G): GrpFP → RngIntElt`](quotient.md#function-torsionfreerank-grpfp)

    - [`Example: F27`](quotient.md#example-ex-5b646e)

    - [`Example: Modular Abelian Quotient`](quotient.md#example-ex-818c7a)

    - [`HasFiniteAbelianQuotient(G): GrpFP → [ RngIntElt ]`](quotient.md#function-hasfiniteabelianquotient-grpfp)

    - [`HasFiniteAQ(G): GrpFP → [ RngIntElt ]`](quotient.md#function-hasfiniteaq-grpfp)

    - [`AQPrimes(G): GrpFP → [ RngIntElt ]`](quotient.md#function-aqprimes-grpfp)

  - [$p$-Quotient](quotient.md#p-quotient)

    - [`pQuotient(F, p, c: parameters): GrpFP, RngIntElt, RngIntElt → GrpPC, Map, SeqEnum, BoolElt`](quotient.md#function-grpfp-1-pquotient)

    - [`Example: p Quotient1`](quotient.md#example-ex-e7285c)

    - [`Example: p Quotient2`](quotient.md#example-ex-090d87)

    - [`Example: p Quotient3`](quotient.md#example-ex-bccae5)

    - [`Example: p Quotient4`](quotient.md#example-ex-a5910e)

    - [`HaspQuotientDefinitions(G): GrpPC → BoolElt`](quotient.md#function-haspquotientdefinitions)

    - [`pQuotientDefinitions(G): GrpPC → SeqEnum`](quotient.md#function-pquotientdefinitions-grppc)

  - [$p$-Quotient Process](quotient.md#p-quotient-process)

    - [`pQuotientProcess(F, p, c: parameters): GrpFP, RngIntElt, RngIntElt → Process`](quotient.md#function-grpfp-pquotientprocess)

    - [`NextClass(~P : parameters): GrpPCpQuotientProc`](quotient.md#function-grpfp-nextclass)

    - [`NextClass(~P, k : parameters): GrpPCpQuotientProc, RngIntElt`](quotient.md#function-nextclass-grppcpquotientproc-rngintelt-ref)

    - [Using $p$-Quotient Interactively](quotient.md#using-p-quotient-interactively)

      - [`StartNewClass(~P: parameters): GrpPCpQuotientProc`](quotient.md#function-startnewclass-grppcpquotientproc-ref)

      - [`Tails(~P: parameters): GrpPCpQuotientProc`](quotient.md#function-tails-grppcpquotientproc-ref)

      - [`Tails(~P, k: parameters): GrpPCpQuotientProc, RngIntElt`](quotient.md#function-tails-grppcpquotientproc-rngintelt-ref)

      - [`Consistency(~P: parameters): GrpPCpQuotientProc`](quotient.md#function-consistency-grppcpquotientproc-ref)

      - [`Consistency(~P, k: parameters): GrpPCpQuotientProc`](quotient.md#function-consistency-grppcpquotientproc-ref-2)

      - [`CollectRelations(~P): GrpPCpQuotientProc`](quotient.md#function-collectrelations-grppcpquotientproc-ref)

      - [`ExponentLaw(~P : parameters): GrpPCpQuotientProc`](quotient.md#function-exponentlaw-grppcpquotientproc-ref)

      - [`ExponentLaw(~P, Start, Fin: parameters): GrpPCpQuotientProc, RngIntElt, RngIntElt`](quotient.md#function-exponentlaw-grppcpquotientproc-rngintelt-rngintelt-ref)

      - [`EliminateRedundancy(~P): GrpPCpQuotientProc`](quotient.md#function-eliminateredundancy-grppcpquotientproc-ref)

      - [`Display(P): GrpPCpQuotientProc`](quotient.md#function-display-grppcpquotientproc)

      - [`Display(P, DisplayLevel): GrpPCpQuotientProc, RngIntElt`](quotient.md#function-display-grppcpquotientproc-rngintelt)

      - [`RevertClass(~P): GrpPCpQuotientProc`](quotient.md#function-revertclass-grppcpquotientproc-ref)

      - [`pCoveringGroup(~P): GrpPCpQuotientProc`](quotient.md#function-pcoveringgroup-grppcpquotientproc-ref)

      - [`pCoveringGroup(G): GrpPC → GrpPC`](quotient.md#function-pcoveringgroup-grppc)

      - [`GeneratorStructure(P): GrpPCpQuotientProc`](quotient.md#function-generatorstructure-grppcpquotientproc)

      - [`GeneratorStructure(P, Start, Fin): GrpPCpQuotientProc, RngIntElt, RngIntElt`](quotient.md#function-generatorstructure-grppcpquotientproc-rngintelt-rngintelt)

      - [`Jacobi(~P, c, b, a, ~r): GrpPCpQuotientProc, RngIntElt, RngIntElt, RngIntElt → RngIntElt ->`](quotient.md#function-jacobi-grppcpquotientproc-rngintelt-rngintelt-rngintelt-ref)

      - [`Jacobi(~P, c, b, a): GrpPCpQuotientProc, RngIntElt, RngIntElt, RngIntElt → RngIntElt ->`](quotient.md#function-jacobi-grppcpquotientproc-rngintelt-rngintelt-rngintelt-ref-2)

      - [`Collect(P, Q): GrpPCpQuotientProc, [ <RngIntElt, RngIntElt> ] → [ RngIntElt ] ->`](quotient.md#function-collect-grppcpquotientproc-rngintelt-rngintelt)

      - [`EcheloniseWord(~P, ~r): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-echeloniseword-grppcpquotientproc-ref)

      - [`EcheloniseWord(~P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-echeloniseword-grppcpquotientproc-ref-2)

      - [`SetDisplayLevel(~P, Level): GrpPCpQuotientProc, RngIntElt`](quotient.md#function-setdisplaylevel-grppcpquotientproc-rngintelt-ref)

      - [`ExtractGroup(P): GrpPCpQuotientProc → GrpPC`](quotient.md#function-extractgroup-grppcpquotientproc)

      - [`Order(P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-order-grppcpquotientproc)

      - [`FactoredOrder(P): GrpPCpQuotientProc → [ <RngIntElt, RngIntElt> ]`](quotient.md#function-factoredorder-grppcpquotientproc)

      - [`NumberOfPCGenerators(P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-numberofpcgenerators-grppcpquotientproc)

      - [`pClass(P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-pclass-grppcpquotientproc)

      - [`NuclearRank(G): GrpPC → RngIntElt`](quotient.md#function-nuclearrank-grppc)

      - [`NuclearRank(P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-nuclearrank-grppcpquotientproc)

      - [`pMultiplicatorRank(G): GrpPC → RngIntElt`](quotient.md#function-pmultiplicatorrank-grppc)

      - [`pMultiplicatorRank(P): GrpPCpQuotientProc → RngIntElt`](quotient.md#function-pmultiplicatorrank-grppcpquotientproc)

      - [`Example: p Quotient5`](quotient.md#example-ex-ea9994)

      - [`Example: p Quotient6`](quotient.md#example-ex-0cb2c6)

      - [`Example: p Quotient7`](quotient.md#example-ex-371e40)

      - [`Example: p Quotient8`](quotient.md#example-ex-0ff68f)

  - [Nilpotent Quotient](quotient.md#nilpotent-quotient)

    - [`NilpotentQuotient(G, c: parameters): GrpFP, RngIntElt → GrpGPC, Map`](quotient.md#function-grpfp-1-nilpotentquotient)

    - [`Example: Nilpotent Quotient0`](quotient.md#example-ex-7067cc)

    - [`Example: Nilpotent Quotient1`](quotient.md#example-ex-8a4940)

    - [`Example: Nilpotent Quotient2`](quotient.md#example-ex-b77879)

    - [`SetVerbose("NilpotentQuotient", n): MonStgElt, RngIntElt`](quotient.md#function-setverbose-monstgelt-rngintelt)

    - [`Example: Nilpotent Quotient3`](quotient.md#example-ex-85800d)

  - [Soluble Quotient](quotient.md#soluble-quotient)

    - [`SolvableQuotient(G : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-rngintelt)

    - [`SolubleQuotient(G : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-rngintelt)

    - [`Example: Soluble Quotient1`](quotient.md#example-ex-a7ae66)

    - [`SolvableQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-rngintelt-2)

    - [`SolubleQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-rngintelt-2)

    - [`SolvableQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-set)

    - [`SolubleQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-set)

    - [`Example: Soluble Quotient2`](quotient.md#example-ex-130896)

  - [Soluble Quotient Advanced](quotient.md#soluble-quotient-advanced)

    - [Introduction](quotient.md#introduction)

    - [Construction](quotient.md#construction)

    - [Calculating the Relevant Primes](quotient.md#calculating-the-relevant-primes)

    - [The Intrinsics](quotient.md#the-intrinsics)

      - [`SolubleQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-rngintelt-3)

      - [`SolvableQuotient(F, n : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-rngintelt-3)

      - [`SolubleQuotient(F : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-rngintelt-4)

      - [`SolvableQuotient(F : parameters): GrpFP, RngIntElt → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-rngintelt-4)

      - [`SolubleQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpfp-set-2)

      - [`SolvableQuotient(F, P : parameters): GrpFP, Set → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpfp-set-2)

  - [Simple Group Quotients](quotient.md#simple-group-quotients)

    - [`SimpleQuotients({F, deg1, deg2, }{ord1, ord2: parameters}): GrpFP, RngIntElt, RngIntElt, RngIntElt, RngIntElt → List`](quotient.md#function-grpfp-1-simplequotients)

    - [`SimpleQuotients(F, ord1, ord2: parameters): GrpFP, RngIntElt, RngIntElt → List`](quotient.md#function-simplequotients-grpfp-rngintelt-rngintelt)

    - [`SimpleQuotients(F, ord2: parameters): GrpFP, RngIntElt → List`](quotient.md#function-simplequotients-grpfp-rngintelt)

    - [`SimpleQuotientProcess({F, deg1, deg2, }{ord1, ord2: parameters}): GrpFP, RngIntElt, RngIntElt, RngIntElt, RngIntElt → Rec`](quotient.md#function-grpfp-1-simplequotientprocess)

    - [`NextSimpleQuotient(~P): Rec`](quotient.md#function-grpfp-1-nextsimplequotient)

    - [`IsEmptySimpleQuotientProcess(P): Rec → BoolElt`](quotient.md#function-grpfp-1-isemptysimplequotientprocess)

    - [`SimpleEpimorphisms(P): Rec → SeqEnum, Tup`](quotient.md#function-grpfp-1-simpleepimorphisms)

    - [`Example: Simple Quotients`](quotient.md#example-ex-b2e434)

  - [The ${\rm L}_2$-Quotient Algorithm](quotient.md#the-rm-l-2-quotient-algorithm)

    - [Basic Usage](quotient.md#basic-usage)

      - [`L2Quotients(G): GrpFP → [ L2Quotient ]`](quotient.md#function-l2quotients-grpfp)

      - [`Example: L2Quotient`](quotient.md#example-ex-656deb)

      - [`GetMatrices(Q): L2Quotient → GrpMat, SeqEnum`](quotient.md#function-getmatrices-l2quotient)

      - [`Example: L2Quotient Get Matrices`](quotient.md#example-ex-d6f5a7)

      - [`Example: Modular Finite`](quotient.md#example-ex-0ea7a6)

      - [`Example: Coxeter Finite`](quotient.md#example-ex-3ecfb1)

    - [Intermediate Usage](quotient.md#intermediate-usage)

      - [`L2Quotients(M): AlgMatElt → [ L2Quotient ]`](quotient.md#function-l2quotients-algmatelt)

      - [`Example: L2Quotient Coxeter`](quotient.md#example-ex-cc44da)

      - [`L2Quotients(G): GrpFP → [ L2Quotient ]`](quotient.md#function-l2quotients-grpfp-2)

      - [`Example: L2Quotientexact Orders`](quotient.md#example-ex-39db62)

    - [Advanced Usage](quotient.md#advanced-usage)

      - [`L2Quotients(G): GrpFP → [ L2Quotient ]`](quotient.md#function-l2quotients-grpfp-3)

    - [Handling Infinite ${\rm L}_2$-quotients](quotient.md#handling-infinite-rm-l-2-quotients)

      - [`SpecifyCharacteristic(Q, n): L2Quotient, RngIntElt → [ L2Quotient ]`](quotient.md#function-specifycharacteristic-l2quotient-rngintelt)

      - [`Example: L2Quotient Specify Characteristic`](quotient.md#example-ex-dd2847)

      - [`AddGroupRelations(Q, R): L2Quotient, [ GrpFPElt ] → [ L2Quotient ]`](quotient.md#function-addgrouprelations-l2quotient-grpfpelt)

      - [`Example: L2Quotient Add Group Relations`](quotient.md#example-ex-6e7481)

      - [`Example: L2Quotient Specify Add Group Relations2`](quotient.md#example-ex-d05ba8)

      - [`AddRingRelations(Q, R): L2Quotient, [ RngMPolElt ] → [ L2Quotient ]`](quotient.md#function-addringrelations-l2quotient-rngmpolelt)

      - [`Example: L2Quotient Specify Add Ring Relations`](quotient.md#example-ex-6b7dfd)

  - [Infinite L2 Quotients](quotient.md#infinite-l2-quotients)

    - [`HasInfinitePSL2Quotient(G): : GrpFP → BoolElt, SeqEnum`](quotient.md#function-hasinfinitepsl2quotient-grpfp)

    - [`Example: Fp Gps:inf Psl2 Quot`](quotient.md#example-ex-5b2c63)

  - [The ${\rm L}_3{\rm U}_3$-Quotient Algorithm](quotient.md#the-rm-l-3-rm-u-3-quotient-algorithm)

    - [`L3Quotients(G: parameters): GrpFP → [ L3Quotient ]`](quotient.md#function-l3quotients-grpfp)

    - [`SpecifyCharacteristic(Q, p): L2Quotient, RngIntElt → [ L2Quotient ]`](quotient.md#function-specifycharacteristic-l2quotient-rngintelt-2)

    - [`SpecifyCharacteristic(Q, p): L3Quotient, RngIntElt → [ L3Quotient ]`](quotient.md#function-specifycharacteristic-l3quotient-rngintelt)

    - [`AddGroupRelations(Q, r): L2Quotient, [ GrpFPElt ] → [ L2Quotient ]`](quotient.md#function-addgrouprelations-l2quotient-grpfpelt-2)

    - [`AddGroupRelations(Q, r): L3Quotient, [ GrpFPElt ] → [ L3Quotient ]`](quotient.md#function-addgrouprelations-l3quotient-grpfpelt)

    - [`GetMatrices(Q): L2Quotient → GrpMat`](quotient.md#function-getmatrices-l2quotient-2)

    - [`GetMatrices(Q): L3Quotient → GrpMat`](quotient.md#function-getmatrices-l3quotient)

    - [`Example: L3Quotient`](quotient.md#example-ex-0214ac)

    - [`Example: L3infinite`](quotient.md#example-ex-ba1556)

- [$KG$-Modules](kg-modules.md)

  - [`GModulePrimes(G, A): GrpFP, GrpFP → SetMulti`](kg-modules.md#function-grpfp-1-gmoduleprimes)

  - [`GModulePrimes(G, A, B): GrpFP, GrpFP, GrpFP → SetMulti`](kg-modules.md#function-grpfp-1-gmoduleprimes-3)

  - [`GModule(G, A, p): GrpFP, GrpFP, RngIntElt → ModGrp, Map`](kg-modules.md#function-grpfp-1-gmodule)

  - [`GModule(G, A, B, p): GrpFP, GrpFP, GrpFP, RngIntElt → ModGrp, Map`](kg-modules.md#function-grpfp-1-gmodule-3)

  - [`GModule(G, A, B): GrpFP, GrpFP, GrpFP → ModGrp, Map`](kg-modules.md#function-gmodule-grpfp-grpfp-grpfp)

  - [`Pullback(f, N): Map, ModGrp → GrpFP`](kg-modules.md#function-grpfp-1-pullback)

  - [`Example: Representation Theory`](kg-modules.md#example-ex-00eade)

  - [`Example: gmoduleprimes`](kg-modules.md#example-ex-c74200)

- [Some Developed Examples](developed-examples.md)

  - [`Example: F29`](developed-examples.md#example-ex-c85753)

  - [`Example: L372`](developed-examples.md#example-ex-82d19f)
