# Finite Soluble Groups

- [Introduction](introduction.md)

  - [Power-Conjugate Presentations](introduction.md#power-conjugate-presentations)

- [Creation of a Group](definition.md)

  - [Construction Functions](definition.md#construction-functions)

    - [`CyclicGroup(GrpPC, n): Cat, RngIntElt → GrpPC`](definition.md#function-cyclicgroup-cat-rngintelt)

    - [`AbelianGroup(GrpPC, Q): Cat, [RngIntElt] → GrpPC`](definition.md#function-abeliangroup-cat-rngintelt)

    - [`DihedralGroup(GrpPC, n): Cat, RngIntElt → GrpPC`](definition.md#function-dihedralgroup-cat-rngintelt)

    - [`ExtraSpecialGroup(GrpPC, p, n : parameters): Cat, RngIntElt, RngIntElt → GrpPC`](definition.md#function-extraspecialgroup-cat-rngintelt-rngintelt)

    - [`Example: Standard`](definition.md#example-ex-a851f0)

  - [Definition by Presentation](definition.md#definition-by-presentation)

    - [`PolycyclicGroup< x₁, ..., xₙ | R : parameters >: List(Identifiers), List(GrpFPRel) → GrpPC, Map`](definition.md#constructor-constructor-polycyclicgroup-list-identifiers-list-grpfprel-grppc-map)

    - [`quo< GrpPC : F | R : parameters >: GrpFP, List(GrpFPRel) → GrpPC, Map`](definition.md#constructor-constructor-quo-grpfp-list-grpfprel-grppc-map)

    - [`Example: Polycyclic Group`](definition.md#example-ex-a8ae01)

  - [Possibly Inconsistent Presentations](definition.md#possibly-inconsistent-presentations)

    - [`IsConsistent(G): GrpPC → BoolElt`](definition.md#function-isconsistent-grppc)

    - [`Example: Is Consistent`](definition.md#example-ex-a62513)

- [Basic Group Properties](group-properties.md)

  - [Infrastructure](group-properties.md#infrastructure)

    - [`G . i: GrpPC, RngIntElt → GrpPCElt`](group-properties.md#operation-operation-grppc-rngintelt-grppcelt)

    - [`Generators(G): GrpPC → SetEnum`](group-properties.md#function-generators-grppc)

    - [`NumberOfGenerators(G): GrpPC → RngIntElt`](group-properties.md#function-numberofgenerators-grppc)

    - [`Ngens(G): GrpPC → RngIntElt`](group-properties.md#function-ngens-grppc)

    - [`PCGenerators(G): GrpPC → SetIndx`](group-properties.md#function-pcgenerators-grppc)

    - [`NumberOfPCGenerators(G): GrpPC → RngIntElt`](group-properties.md#function-numberofpcgenerators-grppc)

    - [`NPCGenerators(G): GrpPC → RngIntElt`](group-properties.md#function-npcgenerators-grppc)

    - [`NPCgens(G): GrpPC → RngIntElt`](group-properties.md#function-npcgens-grppc)

    - [`PCPrimes(G): GrpPC → [RngIntElt]`](group-properties.md#function-pcprimes-grppc)

  - [Numerical Invariants](group-properties.md#numerical-invariants)

    - [`Order(G): GrpPC → RngIntElt`](group-properties.md#function-order-grppc)

    - [`# G: GrpPC → RngIntElt`](group-properties.md#operation-operation-grppc-rngintelt)

    - [`FactoredOrder(G): GrpPC → [<RngIntElt, RngIntElt>]`](group-properties.md#function-factoredorder-grppc)

    - [`Exponent(G): GrpPC → RngIntElt`](group-properties.md#function-exponent-grppc)

  - [Predicates](group-properties.md#predicates)

    - [`IsAbelian(G): GrpPC → BoolElt`](group-properties.md#function-isabelian-grppc)

    - [`IsCyclic(G): GrpPC → BoolElt`](group-properties.md#function-iscyclic-grppc)

    - [`IsElementaryAbelian(G): GrpPC → BoolElt`](group-properties.md#function-iselementaryabelian-grppc)

    - [`IsNilpotent(G): GrpPC → BoolElt`](group-properties.md#function-isnilpotent-grppc)

    - [`IsPerfect(G): GrpPC → BoolElt`](group-properties.md#function-isperfect-grppc)

    - [`IsSimple(G): GrpPC → BoolElt`](group-properties.md#function-issimple-grppc)

    - [`IsSoluble(G): GrpPC → BoolElt`](group-properties.md#function-issoluble-grppc)

    - [`IsSolvable(G): GrpPC → BoolElt`](group-properties.md#function-issolvable-grppc)

    - [`IsTrivial(G): GrpPC → BoolElt`](group-properties.md#function-istrivial-grppc)

    - [`IsSpecial(G): GrpPC → BoolElt`](group-properties.md#function-isspecial-grppc)

    - [`IsExtraSpecial(G): GrpPC → BoolElt`](group-properties.md#function-isextraspecial-grppc)

    - [`Example: Group Props`](group-properties.md#example-ex-e86fe2)

- [Homomorphisms](homomorphisms.md)

  - [`hom< G -> H | L >: GrpPC, GrpPC, List → Map`](homomorphisms.md#constructor-constructor-hom-grppc-grppc-list-map)

  - [`IsHomomorphism(G, H, L): GrpPC, GrpPC, SeqEnum → BoolElt, Map`](homomorphisms.md#function-ishomomorphism-grppc-grppc-seqenum)

  - [`IsHomomorphism(G, H, L): GrpPC, GrpPC, SetEnum[Tup] → BoolElt, Map`](homomorphisms.md#function-ishomomorphism-grppc-grppc-setenum-tup)

  - [`IdentityHomomorphism(G): GrpPC → Map`](homomorphisms.md#function-identityhomomorphism-grppc)

  - [`Kernel(f): Map → GrpPC`](homomorphisms.md#function-kernel-map)

  - [`Homomorphisms(G, H): GrpPC, GrpPC → SeqEnum`](homomorphisms.md#function-homomorphisms-grppc-grppc)

  - [`Example: Pc Hom`](homomorphisms.md#example-ex-d63f2e)

- [New Groups from Existing](extension.md)

  - [`DirectProduct(G, H): GrpPC, GrpPC → GrpPC, [Map], [Map]`](extension.md#function-directproduct-grppc-grppc)

  - [`DirectProduct(Q): [GrpPC] → GrpPC, [ Map ], [ Map ]`](extension.md#function-directproduct-grppc)

  - [`Extension(G, H, f): GrpPC, GrpPC, [Map] → GrpPC`](extension.md#function-extension-grppc-grppc-map)

  - [`Extension(M, H): ModGrp, GrpPC → GrpPC`](extension.md#function-extension-modgrp-grppc)

  - [`Extension(G, H, f, t): GrpPC, GrpPC, [Map], [GrpPCElt] → GrpPC`](extension.md#function-extension-grppc-grppc-map-grppcelt)

  - [`Extension(G, H, f, t): GrpPC, GrpPC, [Map], {Tup} → GrpPC`](extension.md#function-extension-grppc-grppc-map-tup)

  - [`Extension(M, H, t): ModGrp, GrpPC, [ModGrpElt] → GrpPC`](extension.md#function-extension-modgrp-grppc-modgrpelt)

  - [`IsExtension(G, H, f): GrpPC, GrpPC, [Map] → BoolElt, GrpPC`](extension.md#function-isextension-grppc-grppc-map)

  - [`IsExtension(M, H): ModGrp, GrpPC → BoolElt, GrpPC`](extension.md#function-isextension-modgrp-grppc)

  - [`IsExtension(G, H, f, t): GrpPC, GrpPC, [Map], [GrpPCElt] → BoolElt, GrpPC`](extension.md#function-isextension-grppc-grppc-map-grppcelt)

  - [`IsExtension(G, H, f, t): GrpPC, GrpPC, [Map], {Tup} → BoolElt, GrpPC`](extension.md#function-isextension-grppc-grppc-map-tup)

  - [`IsExtension(M, H, t): ModGrp, GrpPC, [ModGrpElt] → BoolElt, GrpPC`](extension.md#function-isextension-modgrp-grppc-modgrpelt)

  - [`WreathProduct(G, H): GrpPC, GrpPC → GrpPC`](extension.md#function-wreathproduct-grppc-grppc)

  - [`WreathProduct(G, H, f): GrpPC, GrpPC, Map → GrpPC`](extension.md#function-wreathproduct-grppc-grppc-map)

  - [`WreathProduct(G, H, f): GrpPC, GrpPC, [GrpPermElt] → GrpPC`](extension.md#function-wreathproduct-grppc-grppc-grppermelt)

  - [`Example: extension`](extension.md#example-ex-73458c)

  - [`Example: Cossey Hawkes`](extension.md#example-ex-9a45eb)

- [Elements](elements.md)

  - [Definition of Elements](elements.md#definition-of-elements)

    - [`G ! Q: GrpPC, [RngIntElt] → GrpPCElt`](elements.md#operation-op-grppc-rngintelt)

    - [`ElementToSequence(x): GrpPCElt → [RngIntElt]`](elements.md#function-elementtosequence-grppcelt)

    - [`Eltseq(x): GrpPCElt → [RngIntElt]`](elements.md#function-eltseq-grppcelt)

    - [`Identity(G): GrpPC → GrpPCElt`](elements.md#function-identity-grppc)

    - [`Id(G): GrpPC → GrpPCElt`](elements.md#function-id-grppc)

    - [`G ! 1: GrpPC, RngIntElt → GrpPCElt`](elements.md#operation-op-grppc-rngintelt-2)

    - [`Example: Elt Definition`](elements.md#example-ex-027472)

  - [Arithmetic Operations on Elements](elements.md#arithmetic-operations-on-elements)

    - [`g * h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-op-times-grppcelt-grppcelt)

    - [`g *:= h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-operation-grppcelt-grppcelt-grppcelt)

    - [`g ^ n: GrpPCElt, RngIntElt → GrpPCElt`](elements.md#operation-op-pow-grppcelt-rngintelt)

    - [`g ^:= n: GrpPCElt, RngIntElt → GrpPCElt`](elements.md#operation-operation-grppcelt-rngintelt-grppcelt)

    - [`g / h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-op-div-grppcelt-grppcelt)

    - [`g /:= h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-operation-grppcelt-grppcelt-grppcelt-2)

    - [`g ^ h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-op-pow-grppcelt-grppcelt)

    - [`g ^:= h: GrpPCElt, GrpPCElt → GrpPCElt`](elements.md#operation-operation-grppcelt-grppcelt-grppcelt-3)

    - [`(g₁, ..., gₙ): List(GrpPCElt) → GrpPCElt`](elements.md#literal-literal-g1-gn-list-grppcelt-grppcelt)

  - [Properties of Elements](elements.md#properties-of-elements)

    - [`Order(x): GrpPCElt → RngIntElt`](elements.md#function-order-grppcelt)

    - [`Parent(x): GrpPCElt → GrpPC`](elements.md#function-parent-grppcelt)

  - [Predicates for Elements](elements.md#predicates-for-elements)

    - [`g eq h: GrpPCElt, GrpPCElt → BoolElt`](elements.md#operation-op-eq-grppcelt-grppcelt)

    - [`g ne h: GrpPCElt, GrpPCElt → BoolElt`](elements.md#operation-op-ne-grppcelt-grppcelt)

    - [`IsIdentity(g): GrpPCElt → BoolElt`](elements.md#function-isidentity-grppcelt)

    - [`IsId(g): GrpPCElt → BoolElt`](elements.md#function-isid-grppcelt)

    - [`IsConjugate(G, g, h): GrpPC, GrpPCElt, GrpPCElt → BoolElt, GrpPCElt`](elements.md#function-isconjugate-grppc-grppcelt-grppcelt)

    - [`Example: Elt Predicates`](elements.md#example-ex-7b7701)

  - [Set Operations](elements.md#set-operations)

    - [`NumberingMap(G): GrpPC → Map`](elements.md#function-numberingmap-grppc)

    - [`Random(G): GrpPC → GrpPCElt`](elements.md#function-random-grppc)

    - [`RandomProcess(G): GrpPC → Process`](elements.md#function-randomprocess-grppc)

    - [`Random(P): Process → GrpPCElt`](elements.md#function-random-process)

    - [`Representative(G): GrpPC → GrpPCElt`](elements.md#function-representative-grppc)

    - [`Rep(G): GrpPC → GrpPCElt`](elements.md#function-rep-grppc)

    - [`Example: Set Ops`](elements.md#example-ex-0f7a7b)

    - [`Example: Set`](elements.md#example-ex-91703e)

- [Conjugacy](elt-conjugacy.md)

  - [`Class(H, g): GrpPC, GrpPCElt → { GrpPCElt}`](elt-conjugacy.md#function-class-grppc-grppcelt)

  - [`Conjugates(H, g): GrpPC, GrpPCElt → { GrpPCElt}`](elt-conjugacy.md#function-conjugates-grppc-grppcelt)

  - [`g ^ H: GrpPCElt, GrpPC → { GrpPCElt}`](elt-conjugacy.md#operation-op-pow-grppcelt-grppc)

  - [`ConjugacyClasses(G): GrpPC → [ <RngIntElt, RngIntElt, GrpPCElt> ]`](elt-conjugacy.md#function-conjugacyclasses-grppc)

  - [`Classes(G): GrpPC → [ <RngIntElt, RngIntElt, GrpPCElt> ]`](elt-conjugacy.md#function-classes-grppc)

  - [`ClassMap(G): GrpPC → Map`](elt-conjugacy.md#function-classmap-grppc)

  - [`ClassRepresentative(G, x): GrpPC, GrpPCElt → GrpPCElt`](elt-conjugacy.md#function-classrepresentative-grppc-grppcelt)

  - [`ClassRepresentative(G, i): GrpPC, RngIntElt → GrpPCElt`](elt-conjugacy.md#function-classrepresentative-grppc-rngintelt)

  - [`ClassCentraliser(G, i): GrpPC, RngIntElt → GrpPCElt`](elt-conjugacy.md#function-classcentraliser-grppc-rngintelt)

  - [`ClassCentralizer(G, i): GrpPC, RngIntElt → GrpPCElt`](elt-conjugacy.md#function-classcentralizer-grppc-rngintelt)

  - [`IsConjugate(G, g, h): GrpPC, GrpPCElt, GrpPCElt → BoolElt, GrpPCElt`](elt-conjugacy.md#function-isconjugate-grppc-grppcelt-grppcelt-2)

  - [`NumberOfClasses(G): GrpPC → RngIntElt`](elt-conjugacy.md#function-numberofclasses-grppc)

  - [`Nclasses(G): GrpPC → RngIntElt`](elt-conjugacy.md#function-nclasses-grppc)

  - [`PowerMap(G): GrpPC → Map`](elt-conjugacy.md#function-powermap-grppc)

  - [`Example: Class Map`](elt-conjugacy.md#example-ex-bdfb19)

- [Subgroups](subgroups.md)

  - [Definition of Subgroups by Generators](subgroups.md#definition-of-subgroups-by-generators)

    - [`sub<G | L>: GrpPC, List → GrpPC, Map`](subgroups.md#constructor-constructor-sub-grppc-list-grppc-map)

    - [`ncl<G | L>: GrpPC, List → GrpPC, Map`](subgroups.md#constructor-constructor-ncl-grppc-list-grppc-map)

    - [`Example: Sub Creation`](subgroups.md#example-ex-9f724a)

  - [Membership and Coercion](subgroups.md#membership-and-coercion)

    - [`g in G: GrpPCElt, GrpPC → BoolElt`](subgroups.md#operation-op-in-grppcelt-grppc)

    - [`g notin G: GrpPCElt, GrpPC → BoolElt`](subgroups.md#operation-op-notin-grppcelt-grppc)

    - [`G ! g: GrpPC, GrpPCElt → GrpPCElt`](subgroups.md#operation-op-grppc-grppcelt)

    - [`H ! g: GrpPC, GrpPCElt → GrpPCElt`](subgroups.md#operation-op-grppc-grppcelt-2)

    - [`K ! g: GrpPC, GrpPCElt → GrpPCElt`](subgroups.md#operation-op-grppc-grppcelt-3)

    - [`Example: coercion`](subgroups.md#example-ex-ac7047)

  - [Inclusion and Equality](subgroups.md#inclusion-and-equality)

    - [`S subset G: { GrpPCElt}, GrpPC → BoolElt`](subgroups.md#operation-op-subset-grppcelt-grppc)

    - [`S notsubset G: { GrpPCElt}, GrpPC → BoolElt`](subgroups.md#operation-operation-notsubset-grppcelt-grppc-boolelt)

    - [`H subset G: GrpPC, GrpPC → BoolElt`](subgroups.md#operation-op-subset-grppc-grppc)

    - [`IsSubgroup(H,G): GrpPC, GrpPC → BoolElt`](subgroups.md#function-issubgroup-grppc-grppc)

    - [`H notsubset G: GrpPC, GrpPC → BoolElt`](subgroups.md#operation-operation-notsubset-grppc-grppc-boolelt)

    - [`G eq H: GrpPC, GrpPC → BoolElt`](subgroups.md#operation-op-eq-grppc-grppc)

    - [`G ne H: GrpPC, GrpPC → BoolElt`](subgroups.md#operation-op-ne-grppc-grppc)

    - [`InclusionMap(G, H): GrpPC, GrpPC → Map`](subgroups.md#function-inclusionmap-grppc-grppc)

  - [Standard Subgroup Constructions](subgroups.md#standard-subgroup-constructions)

    - [`H ^ g: GrpPC, GrpPCElt → GrpPC`](subgroups.md#operation-op-pow-grppc-grppcelt)

    - [`Conjugate(H, g): GrpPC, GrpPCElt → GrpPC`](subgroups.md#function-conjugate-grppc-grppcelt)

    - [`H meet K: GrpPC, GrpPC → GrpPC`](subgroups.md#operation-op-meet-grppc-grppc)

    - [`H meet:= K: GrpPC, GrpPC → GrpPC`](subgroups.md#operation-operation-meet-grppc-grppc-grppc)

    - [`CommutatorSubgroup(G, H, K): GrpPC, GrpPC, GrpPC → GrpPC`](subgroups.md#function-commutatorsubgroup-grppc-grppc-grppc)

    - [`CommutatorSubgroup(H, K): GrpPC, GrpPC → GrpPC`](subgroups.md#function-commutatorsubgroup-grppc-grppc)

    - [`Centralizer(G, g): GrpPC, GrpPCElt → GrpPC`](subgroups.md#function-centralizer-grppc-grppcelt)

    - [`Centraliser(G, g): GrpPC, GrpPCElt → GrpPC`](subgroups.md#function-centraliser-grppc-grppcelt)

    - [`Centralizer(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-centralizer-grppc-grppc)

    - [`Centraliser(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-centraliser-grppc-grppc)

    - [`Core(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-core-grppc-grppc)

    - [`H ^ G: GrpPC, GrpPC → GrpPC`](subgroups.md#operation-op-pow-grppc-grppc)

    - [`NormalClosure(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-normalclosure-grppc-grppc)

    - [`Normalizer(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-normalizer-grppc-grppc)

    - [`Normaliser(G, H): GrpPC, GrpPC → GrpPC`](subgroups.md#function-normaliser-grppc-grppc)

    - [`Example: Subgroup Constructions`](subgroups.md#example-ex-38016c)

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

    - [`Index(G, H): GrpPC, GrpPC → RngIntElt`](subgroups.md#function-index-grppc-grppc)

    - [`FactoredIndex(G, H): GrpPC, GrpPC → [<RngIntElt, RngIntElt>]`](subgroups.md#function-factoredindex-grppc-grppc)

  - [Predicates for Subgroups](subgroups.md#predicates-for-subgroups)

    - [`IsCentral(G, H): GrpPC, GrpPC → BoolElt`](subgroups.md#function-iscentral-grppc-grppc)

    - [`IsConjugate(G, H, K): GrpPC, GrpPC, GrpPC → BoolElt, GrpPCElt`](subgroups.md#function-isconjugate-grppc-grppc-grppc)

    - [`IsMaximal(G, H): GrpPC, GrpPC → BoolElt`](subgroups.md#function-ismaximal-grppc-grppc)

    - [`IsNormal(G, H): GrpPC, GrpPC → BoolElt`](subgroups.md#function-isnormal-grppc-grppc)

    - [`IsSelfNormalizing(G, H): GrpPC, GrpPC → BoolElt`](subgroups.md#function-isselfnormalizing-grppc-grppc)

    - [`IsSubnormal(G, H): GrpPC, GrpPC → BoolElt`](subgroups.md#function-issubnormal-grppc-grppc)

    - [`Example: Sub Predicates`](subgroups.md#example-ex-340cb9)

  - [Hall $\pi$-Subgroups and Sylow Systems](subgroups.md#hall-pi-subgroups-and-sylow-systems)

    - [`ComplementBasis(G): GrpPC → [GrpPC]`](subgroups.md#function-complementbasis-grppc)

    - [`HallSubgroup(G, S): GrpPC, { RngIntElt} → GrpPC`](subgroups.md#function-hallsubgroup-grppc-rngintelt)

    - [`HallSubgroup(G, S): GrpPC, RngIntElt → GrpPC`](subgroups.md#function-hallsubgroup-grppc-rngintelt-2)

    - [`pCore(G, S): GrpPC, { RngIntElt} → GrpPC`](subgroups.md#function-pcore-grppc-rngintelt)

    - [`pCore(G, S): GrpPC, RngIntElt → GrpPC`](subgroups.md#function-pcore-grppc-rngintelt-2)

    - [`SylowBasis(G): GrpPC → [GrpPC]`](subgroups.md#function-sylowbasis-grppc)

    - [`SylowSubgroup(G, p): GrpPC, RngIntElt → GrpPC`](subgroups.md#function-sylowsubgroup-grppc-rngintelt)

    - [`Sylow(G, p): GrpPC, RngIntElt → GrpPC`](subgroups.md#function-sylow-grppc-rngintelt)

    - [`SystemNormalizer(G): GrpPC → GrpPC`](subgroups.md#function-systemnormalizer-grppc)

    - [`SystemNormaliser(G): GrpPC → GrpPC`](subgroups.md#function-systemnormaliser-grppc)

    - [`Example: Hall`](subgroups.md#example-ex-475f0f)

  - [Conjugacy Classes of Subgroups](subgroups.md#conjugacy-classes-of-subgroups)

    - [`SubgroupClasses(G): GrpPC → SeqEnum`](subgroups.md#function-subgroupclasses-grppc)

    - [`Subgroups(G): GrpPC → SeqEnum`](subgroups.md#function-subgroups-grppc)

    - [`AbelianSubgroups(G): GrpPC → SeqEnum`](subgroups.md#function-abeliansubgroups-grppc)

    - [`CyclicSubgroups(G): GrpPC → SeqEnum`](subgroups.md#function-cyclicsubgroups-grppc)

    - [`ElementaryAbelianSubgroups(G): GrpPC → SeqEnum`](subgroups.md#function-elementaryabeliansubgroups-grppc)

    - [`NilpotentSubgroups(G): GrpPC → SeqEnum`](subgroups.md#function-nilpotentsubgroups-grppc)

    - [`LowIndexSubgroups(G, n): GrpPC, RngIntElt → []`](subgroups.md#function-lowindexsubgroups-grppc-rngintelt)

    - [`MaximalSubgroups(G): GrpPC → [GrpPC]`](subgroups.md#function-maximalsubgroups-grppc)

    - [`SubgroupLattice(G): GrpPC → SubGrpLat`](subgroups.md#function-subgrouplattice-grppc)

    - [`BurnsideMatrix(G): GrpPC → AlgMatElt`](subgroups.md#function-burnsidematrix-grppc)

    - [`TableOfMarks(G): GrpPC → AlgMatElt`](subgroups.md#function-tableofmarks-grppc)

    - [`DisplayBurnsideMatrix(G): GrpPC`](subgroups.md#function-displayburnsidematrix-grppc)

    - [`Example: Subgroup Classes`](subgroups.md#example-ex-cf7628)

- [Quotient Groups](quotient.md)

  - [Construction of Quotient Groups](quotient.md#construction-of-quotient-groups)

    - [`quo<G | L>: GrpPC, List → GrpPC, Map`](quotient.md#constructor-constructor-quo-grppc-list-grppc-map)

    - [`G / N: GrpPC, GrpPC → GrpPC`](quotient.md#operation-op-div-grppc-grppc)

    - [`Example: Pc Quotient`](quotient.md#example-ex-934992)

  - [Abelian and $p$-Quotients](quotient.md#abelian-and-p-quotients)

    - [`AbelianQuotient(G): GrpPC → GrpAb, Map`](quotient.md#function-abelianquotient-grppc)

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

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

    - [`ElementaryAbelianQuotient(G, p): GrpPC, RngIntElt → GrpAb, Map`](quotient.md#function-elementaryabelianquotient-grppc-rngintelt)

    - [`pQuotient(G, p, c : parameters ): GrpPC, RngIntElt, RngIntElt → GrpPC, Map`](quotient.md#function-pquotient-grppc-rngintelt-rngintelt)

- [Normal Subgroups and Subgroup Series](normal-series.md)

  - [Characteristic Subgroups](normal-series.md#characteristic-subgroups)

    - [`Centre(G): GrpPC → GrpPC`](normal-series.md#function-centre-grppc)

    - [`Center(G): GrpPC → GrpPC`](normal-series.md#function-center-grppc)

    - [`CommutatorSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-commutatorsubgroup-grppc)

    - [`DerivedSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-derivedsubgroup-grppc)

    - [`DerivedGroup(G): GrpPC → GrpPC`](normal-series.md#function-derivedgroup-grppc)

    - [`FittingSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-fittingsubgroup-grppc)

    - [`FittingGroup(G): GrpPC → GrpPC`](normal-series.md#function-fittinggroup-grppc)

    - [`FrattiniSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-frattinisubgroup-grppc)

    - [`PrefrattiniSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-prefrattinisubgroup-grppc)

    - [`FrattiniQuotientRank(G): GrpPC → GrpPC`](normal-series.md#function-frattiniquotientrank-grppc)

    - [`Hypercentre(G): GrpPC → GrpPC`](normal-series.md#function-hypercentre-grppc)

    - [`Hypercenter(G): GrpPC → GrpPC`](normal-series.md#function-hypercenter-grppc)

    - [`MinimalNormalSubgroups(G): GrpPC → [GrpPC]`](normal-series.md#function-minimalnormalsubgroups-grppc)

    - [`pCore(G, S): GrpPC, { RngIntElt} → GrpPC`](normal-series.md#function-pcore-grppc-rngintelt-3)

    - [`pCore(G, S): GrpPC, RngIntElt → GrpPC`](normal-series.md#function-pcore-grppc-rngintelt-4)

    - [`Socle(G): GrpPC → GrpPC`](normal-series.md#function-socle-grppc)

  - [Subgroup Series](normal-series.md#subgroup-series)

    - [`PrimaryAbelianBasis(G): GrpPC → [ GrpPCElt ], [ RngIntElt ]`](normal-series.md#function-primaryabelianbasis-grppc)

    - [`AbelianBasis(G): GrpPC → [ GrpPCElt ], [ RngIntElt ]`](normal-series.md#function-abelianbasis-grppc)

    - [`PrimaryAbelianInvariants(G): GrpPC → [RngIntElt]`](normal-series.md#function-primaryabelianinvariants-grppc)

    - [`AbelianInvariants(G): GrpPC → [RngIntElt]`](normal-series.md#function-abelianinvariants-grppc)

    - [`ChiefSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-chiefseries-grppc)

    - [`CompositionSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-compositionseries-grppc)

    - [`CompositionFactors(G): GrpPC → SeqEnum`](normal-series.md#function-compositionfactors-grppc)

    - [`CompositionSeries(G, i): GrpPC, RngIntElt → [GrpPC]`](normal-series.md#function-compositionseries-grppc-rngintelt)

    - [`DerivedSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-derivedseries-grppc)

    - [`DerivedLength(G): GrpPC → RngIntElt`](normal-series.md#function-derivedlength-grppc)

    - [`ElementaryAbelianSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-elementaryabelianseries-grppc)

    - [`ElementaryAbelianSeriesCanonical(G): GrpPC → [GrpPC]`](normal-series.md#function-elementaryabelianseriescanonical-grppc)

    - [`LowerCentralSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-lowercentralseries-grppc)

    - [`NilpotencyClass(G): GrpPC → RngIntElt`](normal-series.md#function-nilpotencyclass-grppc)

    - [`pCentralSeries(G, p): GrpPC, RngIntElt → [GrpPC]`](normal-series.md#function-pcentralseries-grppc-rngintelt)

    - [`SubnormalSeries(G, H): GrpPC, GrpPC → [GrpPC]`](normal-series.md#function-subnormalseries-grppc-grppc)

    - [`UpperCentralSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-uppercentralseries-grppc)

    - [`Example: EAS`](normal-series.md#example-ex-54e655)

  - [Series for $p$-groups](normal-series.md#series-for-p-groups)

    - [`Agemo(G, i): GrpPC, RngIntElt → GrpPC`](normal-series.md#function-agemo-grppc-rngintelt)

    - [`Omega(G, i): GrpPC, RngIntElt → GrpPC`](normal-series.md#function-omega-grppc-rngintelt)

    - [`JenningsSeries(G): GrpPC → [GrpPC]`](normal-series.md#function-jenningsseries-grppc)

    - [`pClass(G): GrpPC → RngIntElt`](normal-series.md#function-pclass-grppc)

    - [`pRanks(G): GrpPC → [ RngIntElt ]`](normal-series.md#function-pranks-grppc)

  - [Normal Subgroups and Complements](normal-series.md#normal-subgroups-and-complements)

    - [`NormalSubgroups(G): GrpPC → SeqEnum`](normal-series.md#function-normalsubgroups-grppc)

    - [`NormalLattice(G): GrpPC → SubGrpLat`](normal-series.md#function-normallattice-grppc)

    - [`MinimalNormalSubgroup(G): GrpPC → GrpPC`](normal-series.md#function-minimalnormalsubgroup-grppc)

    - [`MinimalNormalSubgroup(G, N): GrpPC → GrpPC`](normal-series.md#function-minimalnormalsubgroup-grppc-2)

    - [`Complements(G, N): GrpPC, GrpPC → SeqEnum`](normal-series.md#function-complements-grppc-grppc)

    - [`NormalComplements(G, N): GrpPC, GrpPC → SeqEnum`](normal-series.md#function-normalcomplements-grppc-grppc)

    - [`NormalComplements(G, H, N): GrpPC, GrpPC, GrpPC → SeqEnum`](normal-series.md#function-normalcomplements-grppc-grppc-grppc)

    - [`Example: Normal Complements`](normal-series.md#example-ex-12efb9)

- [Cosets](cosets.md)

  - [Coset Tables and Transversals](cosets.md#coset-tables-and-transversals)

    - [`Transversal(G, H): GrpPC, GrpPC → { @ GrpPCElt  @}, Map`](cosets.md#function-transversal-grppc-grppc)

    - [`RightTransversal(G, H): GrpPC, GrpPC → { @ GrpPCElt  @}, Map`](cosets.md#function-righttransversal-grppc-grppc)

    - [`CosetTable(G, H): GrpPC, GrpPC → Map`](cosets.md#function-cosettable-grppc-grppc)

    - [`Transversal(G, H, K): GrpPC, GrpPC, GrpPC → { @ GrpPCElt  @}, Map`](cosets.md#function-transversal-grppc-grppc-grppc)

    - [`ShortCosets(p, H, G): GrpPCElt, GrpPC, GrpPC → [GrpPCElt]`](cosets.md#function-shortcosets-grppcelt-grppc-grppc)

  - [Action on a Coset Space](cosets.md#action-on-a-coset-space)

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

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

    - [`CosetKernel(G, H): Grp, Grp → Grp`](cosets.md#function-cosetkernel-grp-grp)

- [Automorphism Group](automorphism-group.md)

  - [General Soluble Group](automorphism-group.md#general-soluble-group)

    - [Lifting Algorithm](automorphism-group.md#lifting-algorithm)

      - [`AutomorphismGroup(G): GrpPC → GrpAuto`](automorphism-group.md#function-automorphismgroup-grppc)

      - [`HasAttribute(A, "GenWeights"): GrpAuto, MonStgElt → BoolElt, [ RngIntElt ]`](automorphism-group.md#function-hasattribute-grpauto-monstgelt)

      - [`HasAttribute({A, }{"WeightSubgroupOrders"}): GrpAuto, MonStgElt → BoolElt, [ RngIntElt ]`](automorphism-group.md#function-hasattribute-grpauto-monstgelt-2)

      - [`Example: Automorphism Group`](automorphism-group.md#example-ex-29a2d6)

    - [Lifting from the Automorphism Group of a Sylow $p$-subgroup](automorphism-group.md#lifting-from-the-automorphism-group-of-a-sylow-p-subgroup)

      - [`AutomorphismGroupSolubleGroup(G: parameters): GrpPC → GrpAuto`](automorphism-group.md#function-automorphismgroupsolublegroup-grppc)

      - [`IsIsomorphicSolubleGroup(G, H: parameters): GrpPC, GrpPC → BoolElt, Map`](automorphism-group.md#function-isisomorphicsolublegroup-grppc-grppc)

      - [`Example: Automorphism Group Soluble Group`](automorphism-group.md#example-ex-249c9b)

  - [$p$-group](automorphism-group.md#p-group)

    - [`AutomorphismGroup(G: parameters): GrpPC → GrpAuto`](automorphism-group.md#function-automorphismgroup-grppc-2)

    - [`Example: p Automorphism Group`](automorphism-group.md#example-ex-f1bbe5)

    - [`OrderAutomorphismGroupAbelianPGroup(A): SeqEnum → RngIntElt`](automorphism-group.md#function-orderautomorphismgroupabelianpgroup-seqenum)

    - [`Example: subgroupsabelianpgroups`](automorphism-group.md#example-ex-c99f0c)

  - [Isomorphism and Standard Presentations](automorphism-group.md#isomorphism-and-standard-presentations)

    - [`StandardPresentation(G): GrpPC → GrpPC, Map`](automorphism-group.md#function-standardpresentation-grppc)

    - [`StandardPresentation(G: parameters): GrpPC → GrpAuto`](automorphism-group.md#function-standardpresentation-grppc-2)

    - [`IsIdenticalPresentation(G, H): GrpPC, GrpPC → BoolElt`](automorphism-group.md#function-isidenticalpresentation-grppc-grppc)

    - [`IsIsomorphic(G, H): GrpPC, GrpPC → BoolElt, Map, GrpPC`](automorphism-group.md#function-isisomorphic-grppc-grppc)

    - [`Example: Standard Presentation`](automorphism-group.md#example-ex-75ee54)

- [Generating $p$-groups](p-groups.md)

  - [`GeneratepGroups(p, d, c : parameters): RngIntElt, RngIntElt, RngIntElt → [GrpPC], RngIntElt`](p-groups.md#function-generatepgroups-rngintelt-rngintelt-rngintelt)

  - [`Descendants(G : parameters): GrpPC → [GrpPC], RngIntElt`](p-groups.md#function-descendants-grppc)

  - [`Descendants(G, c : parameters): GrpPC, RngIntElt → [GrpPC], RngIntElt`](p-groups.md#function-descendants-grppc-rngintelt)

  - [`Example: Generating P Groups`](p-groups.md#example-ex-3d4202)

  - [`Example: Generatep Groups`](p-groups.md#example-ex-e130f7)

  - [`Example: Is Good`](p-groups.md#example-ex-4efc58)

  - [`ClassTwo(p, d : parameters): RngIntElt, RngIntElt → SeqEnum`](p-groups.md#function-classtwo-rngintelt-rngintelt)

  - [`ClassTwo(p, d, Step : parameters): RngIntElt, RngIntElt, SeqEnum → SeqEnum`](p-groups.md#function-classtwo-rngintelt-rngintelt-seqenum)

  - [`ClassTwo(p, d, s : parameters): RngIntElt, RngIntElt, RngIntElt → RngIntElt`](p-groups.md#function-classtwo-rngintelt-rngintelt-rngintelt)

  - [`Example: Class Two`](p-groups.md#example-ex-6ce143)

- [Representation Theory](character-representation.md)

  - [`CharacterDegrees(G): GrpPC → [ Tup ]`](character-representation.md#function-characterdegrees-grppc)

  - [`CharacterDegrees(G, z, p): GrpPC, GrpPCElt, RngIntElt → [ Tup ]`](character-representation.md#function-characterdegrees-grppc-grppcelt-rngintelt)

  - [`CharacterDegrees(G): GrpFin → [ Tup ]`](character-representation.md#function-characterdegrees-grpfin)

  - [`CharacterDegreesPGroup(G): GrpFin → [ RngIntElt ]`](character-representation.md#function-characterdegreespgroup-grpfin)

  - [`CharacterTable(G: parameters): GrpPC → TabChtr`](character-representation.md#function-charactertable-grppc)

  - [`CharacterTableConlon(G): GrpPC → [ AlgChtrElt ]`](character-representation.md#function-charactertableconlon-grppc)

  - [`GModule(G, M): GrpPC, AlgMat → ModAlg`](character-representation.md#function-gmodule-grppc-algmat)

  - [`GModule(G, A): GrpPC, GrpPC → ModAlg, Map`](character-representation.md#function-gmodule-grppc-grppc)

  - [`GModule(G, A, B): GrpPC, GrpPC, GrpPC → ModAlg, Map`](character-representation.md#function-gmodule-grppc-grppc-grppc)

  - [`AbsolutelyIrreducibleRepresentationsSchur(G, k: parameters): GrpPC, Rng → List[Map]`](character-representation.md#function-absolutelyirreduciblerepresentationsschur-grppc-rng)

  - [`AbsolutelyIrreducibleModulesSchur(G, k: parameters): GrpPC, Rng → List[GModule]`](character-representation.md#function-absolutelyirreduciblemodulesschur-grppc-rng)

  - [`AbsolutelyIrreducibleRepresentationsSchur(G, k, i: parameters): GrpPC, Rng, RngIntElt → List[Map]`](character-representation.md#function-absolutelyirreduciblerepresentationsschur-grppc-rng-rngintelt)

  - [`AbsolutelyIrreducibleModulesSchur(G, k, i: parameters): GrpPC, Rng, RngIntElt → List[GModule]`](character-representation.md#function-absolutelyirreduciblemodulesschur-grppc-rng-rngintelt)

  - [`AbsolutelyIrreducibleRepresentationsSchur(G, k, L: parameters): GrpPC, Rng, List[Map] → List[Map]`](character-representation.md#function-absolutelyirreduciblerepresentationsschur-grppc-rng-list-map)

  - [`AbsolutelyIrreducibleModulesSchur(G, k, L: parameters): GrpPC, Rng, List[GModule] → List[GModule]`](character-representation.md#function-absolutelyirreduciblemodulesschur-grppc-rng-list-gmodule)

  - [`AbsolutelyIrreducibleRepresentationsSchur(G, k, L, i: parameters): GrpPC, Rng, List[Map], RngIntElt → List[Map]`](character-representation.md#function-absolutelyirreduciblerepresentationsschur-grppc-rng-list-map-rngintelt)

  - [`AbsolutelyIrreducibleModulesSchur(G, k, L, i: parameters): GrpPC, Rng, RngIntElt → List[GModule]`](character-representation.md#function-absolutelyirreduciblemodulesschur-grppc-rng-rngintelt-2)

  - [`IrreducibleRepresentationsSchur(G, k: parameters): GrpPC, Rng → List[Map]`](character-representation.md#function-irreduciblerepresentationsschur-grppc-rng)

  - [`IrreducibleModulesSchur(G, k: parameters): GrpPC, Rng → List[GModule]`](character-representation.md#function-irreduciblemodulesschur-grppc-rng)

  - [`IrreducibleRepresentationsSchur(G, k, i: parameters): GrpPC, Rng, RngIntElt → List[Map]`](character-representation.md#function-irreduciblerepresentationsschur-grppc-rng-rngintelt)

  - [`IrreducibleModulesSchur(G, k, i: parameters): GrpPC, Rng, RngIntElt → List[GModule]`](character-representation.md#function-irreduciblemodulesschur-grppc-rng-rngintelt)

  - [`IrreducibleRepresentationsSchur(G, k, L: parameters): GrpPC, Rng, List[Map] → List[Map]`](character-representation.md#function-irreduciblerepresentationsschur-grppc-rng-list-map)

  - [`IrreducibleModulesSchur(G, k, L: parameters): GrpPC, Rng, List[GModule] → List[GModule]`](character-representation.md#function-irreduciblemodulesschur-grppc-rng-list-gmodule)

  - [`IrreducibleRepresentationsSchur(G, k, L, i: parameters): GrpPC, Rng, List[Map], RngIntElt → List[Map]`](character-representation.md#function-irreduciblerepresentationsschur-grppc-rng-list-map-rngintelt)

  - [`IrreducibleModulesSchur(G, k, L, i: parameters): GrpPC, Rng, List[GModule], RngIntElt → List[GModule]`](character-representation.md#function-irreduciblemodulesschur-grppc-rng-list-gmodule-rngintelt)

  - [`Example: Reps`](character-representation.md#example-ex-ca921e)

- [Central Extensions](central-extensions.md)

  - [`ExtGenerators(G, U): GrpPC, GrpPC → [<AlgMatElt, RngIntElt>]`](central-extensions.md#function-extgenerators-grppc-grppc)

  - [`HomGenerators(G, U): GrpPC, GrpPC → [<AlgMatElt, RngIntElt>]`](central-extensions.md#function-homgenerators-grppc-grppc)

  - [`ElementSequence(G): GrpPC → SeqEnum`](central-extensions.md#function-elementsequence-grppc)

  - [`RepresentativeCocycles(G, U, Ext, Hom): GrpPC, GrpPC, [AlgMatElt], [AlgMatElt] → [AlgMatElt]`](central-extensions.md#function-representativecocycles-grppc-grppc-algmatelt-algmatelt)

  - [`CentralExtension(G, U, A): GrpPC, GrpPC, AlgMatElt → GrpPC`](central-extensions.md#function-centralextension-grppc-grppc-algmatelt)

  - [`CentralExtensions(G, U, Q): GrpPC, GrpPC, [AlgMatElt] → [GrpPC]`](central-extensions.md#function-centralextensions-grppc-grppc-algmatelt)

  - [`CentralExtensionProcess(G, U): GrpPC, GrpPC → Proc`](central-extensions.md#function-centralextensionprocess-grppc-grppc)

  - [`NextExtension(~P): Rec → GrpPC`](central-extensions.md#function-nextextension-rec-ref)

  - [`IsEmpty(P): Rec → BoolElt`](central-extensions.md#function-isempty-rec)

  - [`Example: Central Extension`](central-extensions.md#example-ex-b4d774)

- [Transfer Between Group Categories](transfer-functions.md)

  - [Transfer to GrpPC](transfer-functions.md#transfer-to-grppc)

    - [`PCGroup(G): GrpPerm → GrpPC, Map`](transfer-functions.md#function-pcgroup-grpperm)

    - [`PCGroup(G): GrpMat → GrpPC, Map`](transfer-functions.md#function-pcgroup-grpmat)

    - [`PCGroup(G): GrpFP → GrpPC`](transfer-functions.md#function-pcgroup-grpfp)

    - [`pQuotient(F, p, c : parameters ): GrpFP, RngIntElt, RngIntElt → GrpPC, Map`](transfer-functions.md#function-pquotient-grpfp-rngintelt-rngintelt)

    - [`SolubleQuotient(G): Grp → GrpPC, Map`](transfer-functions.md#function-solublequotient-grp)

    - [`SolvableQuotient(G): Grp → GrpPC, Map`](transfer-functions.md#function-solvablequotient-grp)

    - [`Example: pcgroup`](transfer-functions.md#example-ex-84bae2)

  - [Transfer from GrpPC](transfer-functions.md#transfer-from-grppc)

    - [`AbelianGroup(G): GrpPC → GrpAb, Map`](transfer-functions.md#function-abeliangroup-grppc)

    - [`FPGroup(G): GrpPC → GrpFP, Map`](transfer-functions.md#function-fpgroup-grppc)

    - [`GPCGroup(G): GrpPC → GrpGPC, Map`](transfer-functions.md#function-gpcgroup-grppc)

    - [`Example: Pc To Perm`](transfer-functions.md#example-ex-b68da2)

- [More About Presentations](more-presentations.md)

  - [Conditioned Presentations](more-presentations.md#conditioned-presentations)

    - [Structure Operations](more-presentations.md#structure-operations)

      - [`ConditionedGroup(G): GrpPC → GrpPC`](more-presentations.md#function-conditionedgroup-grppc)

      - [`IsConditioned(G): GrpPC → BoolElt`](more-presentations.md#function-isconditioned-grppc)

    - [Element Operations](more-presentations.md#element-operations)

      - [`LeadingTerm(x): GrpPCElt → GrpPCElt`](more-presentations.md#function-leadingterm-grppcelt)

      - [`LeadingGenerator(x): GrpPCElt → GrpPCElt`](more-presentations.md#function-leadinggenerator-grppcelt)

      - [`LeadingExponent(x): GrpPCElt → RngIntElt`](more-presentations.md#function-leadingexponent-grppcelt)

      - [`Depth(x): GrpPCElt → RngIntElt`](more-presentations.md#function-depth-grppcelt)

      - [`PCClass(x): GrpPCElt → RngIntElt`](more-presentations.md#function-pcclass-grppcelt)

      - [`WeightClass(x): GrpPCElt → RngIntElt`](more-presentations.md#function-weightclass-grppcelt)

  - [Special Presentations](more-presentations.md#special-presentations)

    - [`SpecialPresentation(G): GrpPC → GrpPC`](more-presentations.md#function-specialpresentation-grppc)

    - [`SpecialWeights(G): GrpPC → [ <RngIntElt, RngIntElt, RngIntElt> ]`](more-presentations.md#function-specialweights-grppc)

    - [`NilpotentLength(G): GrpPC → RngIntElt`](more-presentations.md#function-nilpotentlength-grppc)

    - [`NilpotentBoundary(G,i): GrpPC, RngIntElt → RngIntElt`](more-presentations.md#function-nilpotentboundary-grppc-rngintelt)

    - [`MinorLength(G,i): GrpPC, RngIntElt → RngIntElt`](more-presentations.md#function-minorlength-grppc-rngintelt)

    - [`MinorBoundary(G,i,j): GrpPC, RngIntElt, RngIntElt → RngIntElt`](more-presentations.md#function-minorboundary-grppc-rngintelt-rngintelt)

    - [`LayerLength(G,i,j): GrpPC, RngIntElt, RngIntElt → RngIntElt`](more-presentations.md#function-layerlength-grppc-rngintelt-rngintelt)

    - [`LayerBoundary(G,i,j,k): GrpPC, RngIntElt, RngIntElt, RngIntElt → RngIntElt`](more-presentations.md#function-layerboundary-grppc-rngintelt-rngintelt-rngintelt)

    - [`Example: Special Presentation`](more-presentations.md#example-ex-4806c3)

  - [CompactPresentation](more-presentations.md#compactpresentation)

    - [`CompactPresentation(G): GrpPC → [RngIntElt]`](more-presentations.md#function-compactpresentation-grppc)

    - [`PCGroup(Q : parameters ): [RngIntElt] → GrpPC`](more-presentations.md#function-pcgroup-rngintelt)

    - [`Example: Compact Presentation`](more-presentations.md#example-ex-73c5b4)

- [Optimizing Magma Code](optimization.md)

  - [PowerGroup](optimization.md#powergroup)

    - [`Example: Power Group Two`](optimization.md#example-ex-952208)

- [$p$-Groups of Tame Genus](tame.md)

  - [Verbose Printing](tame.md#verbose-printing)

    - [`Example: Verbose Printing`](tame.md#example-ex-e49bb4)

  - [Constructors](tame.md#constructors)

    - [`TGRandomGroup(q, n, g : parameters): RngIntElt, RngIntElt, RngIntElt → GrpPC`](tame.md#function-tgrandomgroup-rngintelt-rngintelt-rngintelt)

    - [`Example: Random Genus Groups`](tame.md#example-ex-7e07d7)

    - [`RandomGenus2Group(q, d : parameters): RngIntElt, [RngIntElt] → GrpPC`](tame.md#function-randomgenus2group-rngintelt-rngintelt)

    - [`Example: Prescribed Blocks`](tame.md#example-ex-3b8b51)

    - [`RandomGenus1Group(q, d, r : parameters): RngIntElt, RngIntElt, RngIntElt → GrpPC`](tame.md#function-randomgenus1group-rngintelt-rngintelt-rngintelt)

    - [`Example: Heisenbergs`](tame.md#example-ex-3634bf)

    - [`Genus2Group(f): RngUPolElt → GrpPC`](tame.md#function-genus2group-rngupolelt)

    - [`Genus2Group(f): RngMPolElt → GrpPC`](tame.md#function-genus2group-rngmpolelt)

    - [`Example: Pfaffians`](tame.md#example-ex-ff5bc5)

  - [Direct Indecomposability](tame.md#direct-indecomposability)

    - [`IsIndecomposable(G): GrpPC → BoolElt`](tame.md#function-isindecomposable-grppc)

    - [`IsIndecomposable(t): TenSpcElt → BoolElt`](tame.md#function-isindecomposable-tenspcelt)

    - [`Example: Decomposable Groups`](tame.md#example-ex-3b99f7)

    - [`Example: Direct Not Central`](tame.md#example-ex-f8f20b)

  - [Genus](tame.md#genus)

    - [`Genus(G): GrpPC → RngIntElt`](tame.md#function-genus-grppc)

    - [`Genus(t): TenSpcElt → RngIntElt`](tame.md#function-genus-tenspcelt)

    - [`Example: Genus`](tame.md#example-ex-40dc90)

    - [`IsTameGenusGroup(G): Group → BoolElt`](tame.md#function-istamegenusgroup-group)

    - [`IsTameGenusTensor(t): TenSpcElt → BoolElt`](tame.md#function-istamegenustensor-tenspcelt)

    - [`Example: Non Example`](tame.md#example-ex-da6133)

    - [`Example: All The Small Groups`](tame.md#example-ex-063b44)

  - [Isomorphism](tame.md#isomorphism)

    - [`TGIsIsomorphic(G, H : parameters): GrpPC, GrpPC → BoolElt`](tame.md#function-tgisisomorphic-grppc-grppc)

    - [`Example: Isomorphism Testing`](tame.md#example-ex-13bda5)

    - [`TGIsPseudoIsometric(s, t : parameters): TenSpcElt, TenSpcElt → BoolElt, Hmtp`](tame.md#function-tgispseudoisometric-tenspcelt-tenspcelt)

    - [`Example: Pseudo Isometries`](tame.md#example-ex-e03ee8)

  - [Automorphism Groups](tame.md#automorphism-groups)

    - [`TGAutomorphismGroup(G : parameters): GrpPC → GrpAuto`](tame.md#function-tgautomorphismgroup-grppc)

    - [`Example: Flat Indecomposable`](tame.md#example-ex-36d32b)

    - [`TGPseudoIsometryGroup(t : parameters): TenSpcElt → GrpMat`](tame.md#function-tgpseudoisometrygroup-tenspcelt)

    - [`Example: Extensions`](tame.md#example-ex-35a1af)

  - [Canonical Labelling](tame.md#canonical-labelling)

    - [`TGSignature(G): GrpPC → List`](tame.md#function-tgsignature-grppc)

    - [`TGSignature(t): TenSpcElt → List`](tame.md#function-tgsignature-tenspcelt)

    - [`Example: Many Blocks`](tame.md#example-ex-bbc04e)

    - [`Example: More Small Groups`](tame.md#example-ex-15bce1)
