# Permutation Groups

- [Introduction](introduction.md)

  - [Terminology](introduction.md#terminology)

  - [The Category of Permutation Groups](introduction.md#the-category-of-permutation-groups)

  - [The Construction of a Permutation Group](introduction.md#the-construction-of-a-permutation-group)

- [Creation of a Permutation Group](creation-symmetric.md)

  - [Construction of the Symmetric Group](creation-symmetric.md#construction-of-the-symmetric-group)

    - [`Sym(n): RngIntElt → GrpPerm`](creation-symmetric.md#function-sym-rngintelt)

    - [`SymmetricGroup(n): RngIntElt → GrpPerm`](creation-symmetric.md#function-symmetricgroup-rngintelt)

    - [`Sym(X): Set → GrpPerm`](creation-symmetric.md#function-sym-set)

    - [`SymmetricGroup(X): Set → GrpPerm`](creation-symmetric.md#function-symmetricgroup-set)

    - [`StandardGroup(G): GrpPerm → GrpPerm, Map`](creation-symmetric.md#function-standardgroup-grpperm)

    - [`Example: Sym`](creation-symmetric.md#example-ex-667d16)

  - [Construction of a Permutation](creation-symmetric.md#construction-of-a-permutation)

    - [`elt< G | L >: GrpPerm, List(Elt) → GrpPermElt`](creation-symmetric.md#constructor-constructor-elt-grpperm-list-elt-grppermelt)

    - [`G ! Q: GrpPerm, [ Elt ] → GrpPermElt`](creation-symmetric.md#operation-op-grpperm-elt)

    - [`G ! (...)(...)...(...): GrpPerm, Cycles → GrpPermElt`](creation-symmetric.md#operation-op-grpperm-cycles)

    - [`G ! \(...)(...)...(...): GrpPerm, LiteralCycles → GrpPermElt`](creation-symmetric.md#operation-op-grpperm-literalcycles)

    - [`G ! Q: GrpPerm, SeqEnum[SetIndx] → GrpPermElt`](creation-symmetric.md#operation-op-grpperm-seqenum-setindx)

    - [`ElementToSequence(g): GrpPermElt → [ Elt ]`](creation-symmetric.md#function-elementtosequence-grppermelt)

    - [`Eltseq(g): GrpPermElt → [ Elt ]`](creation-symmetric.md#function-eltseq-grppermelt)

    - [`Identity(G): Grp → GrpPermElt`](creation-symmetric.md#function-identity-grp)

    - [`Id(G): Grp → GrpPermElt`](creation-symmetric.md#function-id-grp)

    - [`G ! 1: Grp, RngIntElt → GrpPermElt`](creation-symmetric.md#operation-op-grp-rngintelt)

    - [`Example: Permutations`](creation-symmetric.md#example-ex-ffdb2d)

  - [Construction of a General Permutation Group](creation-symmetric.md#construction-of-a-general-permutation-group)

    - [`PermutationGroup< X | L >: Set, List → GrpPerm`](creation-symmetric.md#constructor-constructor-permutationgroup-set-list-grpperm)

    - [`PermutationGroup< n | L >: RngIntElt, List → GrpPerm`](creation-symmetric.md#constructor-constructor-permutationgroup-rngintelt-list-grpperm)

    - [`Example: Hessian`](creation-symmetric.md#example-ex-1e0f19)

- [Elementary Properties of a Group](operation.md)

  - [Accessing Group Information](operation.md#accessing-group-information)

    - [`G . i: GrpPerm, RngIntElt → GrpPermElt`](operation.md#operation-operation-grpperm-rngintelt-grppermelt)

    - [`Degree(G): GrpPermElt → RngIntElt`](operation.md#function-degree-grppermelt)

    - [`Generators(G): GrpPerm → { GrpPermElt }`](operation.md#function-generators-grpperm)

    - [`GeneratorsSequence(G): GrpPerm → [ GrpPermElt ]`](operation.md#function-grpperm-generatorssequence)

    - [`NumberOfGenerators(G): GrpPerm → RngIntElt`](operation.md#function-numberofgenerators-grpperm)

    - [`Ngens(G): GrpPerm → RngIntElt`](operation.md#function-ngens-grpperm)

    - [`FewGenerators(G): GrpPerm → [GrpPermElt]`](operation.md#function-fewgenerators-grpperm)

    - [`Generic(G): GrpPerm → GrpPerm`](operation.md#function-generic-grpperm)

    - [`Parent(g): GrpPermElt → GrpPerm`](operation.md#function-parent-grppermelt)

    - [`GSet(G): GrpPerm → GSet`](operation.md#function-gset-grpperm)

    - [`Example: Basic Access`](operation.md#example-ex-e70b28)

  - [Group Order](operation.md#group-order)

    - [`Order(G): GrpPerm → RngIntElt`](operation.md#function-order-grpperm)

    - [`# G: GrpPerm → RngIntElt`](operation.md#operation-operation-grpperm-rngintelt)

    - [`FactoredOrder(G): GrpPerm → [ <RngIntElt, RngIntElt> ]`](operation.md#function-factoredorder-grpperm)

  - [Abstract Properties of a Group](operation.md#abstract-properties-of-a-group)

    - [`IsAbelian(G): GrpPerm → BoolElt`](operation.md#function-isabelian-grpperm)

    - [`IsCyclic(G): GrpPerm → BoolElt`](operation.md#function-iscyclic-grpperm)

    - [`IsElementaryAbelian(G): GrpPerm → BoolElt`](operation.md#function-iselementaryabelian-grpperm)

    - [`IsSpecial(G): GrpPerm → BoolElt`](operation.md#function-isspecial-grpperm)

    - [`IsExtraSpecial(G): GrpPerm → BoolElt`](operation.md#function-isextraspecial-grpperm)

    - [`IsNilpotent(G): GrpPerm → BoolElt`](operation.md#function-isnilpotent-grpperm)

    - [`IsSoluble(G): GrpPerm → BoolElt`](operation.md#function-issoluble-grpperm)

    - [`IsSolvable(G): GrpPerm → BoolElt`](operation.md#function-issolvable-grpperm)

    - [`IsPerfect(G): GrpPerm → BoolElt`](operation.md#function-isperfect-grpperm)

    - [`IsSimple(G): GrpPerm → BoolElt`](operation.md#function-issimple-grpperm)

    - [`IsWreathProduct(G): GrpPerm → BoolElt, GrpPerm, GrpPerm, GrpPerm`](operation.md#function-iswreathproduct-grpperm)

    - [`Example: Basic Properties`](operation.md#example-ex-c8fc8b)

- [Homomorphisms](homomorphism.md)

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

  - [`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-kernel-map)

  - [`IsHomomorphism(G, H, Q): GrpPerm, GrpPerm, SeqEnum[GrpPermElt] → Bool, Map`](homomorphism.md#function-ishomomorphism-grpperm-grpperm-seqenum-grppermelt)

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

- [Building Permutation Groups](building-groups.md)

  - [Some Standard Permutation Groups](building-groups.md#some-standard-permutation-groups)

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

    - [`AlternatingGroup(GrpPerm, n): Cat, RngIntElt → GrpPerm`](building-groups.md#function-alternatinggroup-cat-rngintelt)

    - [`AlternatingGroup(n): RngIntElt → GrpPerm`](building-groups.md#function-alternatinggroup-rngintelt)

    - [`Alt(n): RngIntElt → GrpPerm`](building-groups.md#function-alt-rngintelt)

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

    - [`CyclicGroup(n): RngIntElt → GrpPerm`](building-groups.md#function-cyclicgroup-rngintelt)

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

    - [`DihedralGroup(n): RngIntElt → GrpPerm`](building-groups.md#function-dihedralgroup-rngintelt)

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

    - [`SymmetricGroup(GrpPerm, n): Cat, RngIntElt → GrpPerm`](building-groups.md#function-symmetricgroup-cat-rngintelt)

    - [`Sym(n): RngIntElt → GrpPerm`](building-groups.md#function-sym-rngintelt-2)

    - [`SymmetricGroup(n): RngIntElt → GrpPerm`](building-groups.md#function-symmetricgroup-rngintelt-2)

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

    - [`ExtraSpecialGroup(p, n : parameters): RngIntElt, RngIntElt → GrpPerm`](building-groups.md#function-extraspecialgroup-rngintelt-rngintelt)

    - [`YoungSubgroup(L): [RngIntElt] → GrpPerm`](building-groups.md#function-youngsubgroup-rngintelt)

    - [`Example: Standard Groups`](building-groups.md#example-ex-98baac)

  - [Direct Products and Wreath Products](building-groups.md#direct-products-and-wreath-products)

    - [`DirectProduct(G, H): GrpPerm, GrpPerm → GrpPerm, [ Hom(Grp) ], [ Hom(Grp) ]`](building-groups.md#function-directproduct-grpperm-grpperm)

    - [`DirectProduct(Q): [ GrpPerm ] → GrpPerm, [ Hom(Grp) ], [ Hom(Grp) ]`](building-groups.md#function-directproduct-grpperm)

    - [`PrimitiveWreathProduct(G, H): GrpPerm, GrpPerm → GrpPerm`](building-groups.md#function-permg-primitivewreathproduct)

    - [`PrimitiveWreathProduct(Q): [ GrpPerm ] → GrpPerm`](building-groups.md#function-primitivewreathproduct-grpperm)

    - [`WreathProduct(G, H): GrpPerm, GrpPerm → GrpPerm, SeqEnum[Map], Map, Map`](building-groups.md#function-wreathproduct-grpperm-grpperm)

    - [`WreathProduct(Q): [ GrpPerm ] → GrpPerm`](building-groups.md#function-wreathproduct-grpperm)

    - [`WreathProduct(B): GSet → GrpPerm, GrpPerm, GrpPerm`](building-groups.md#function-wreathproduct-gset)

    - [`WreathProduct(G, B): GrpPerm, GSet → GrpPerm, GrpPerm, GrpPerm`](building-groups.md#function-wreathproduct-grpperm-gset)

    - [`Example: Products`](building-groups.md#example-ex-4e2871)

- [Permutations](permutations.md)

  - [Coercion](permutations.md#coercion)

    - [`G ! g: GrpPerm, GrpPermElt → GrpPermElt`](permutations.md#operation-op-grpperm-grppermelt)

    - [`G !! H: GrpPerm, GrpPerm → GrpPerm`](permutations.md#operation-op-grpperm-grpperm)

  - [Arithmetic with Permutations](permutations.md#arithmetic-with-permutations)

    - [`g * h: GrpPermElt, GrpPermElt → GrpPermElt`](permutations.md#operation-op-times-grppermelt-grppermelt)

    - [`g ^ n: GrpPermElt, RngIntElt → GrpPermElt`](permutations.md#operation-op-pow-grppermelt-rngintelt)

    - [`g / h: GrpPermElt, GrpPermElt → GrpPermElt`](permutations.md#operation-op-div-grppermelt-grppermelt)

    - [`g ^ h: GrpPermElt, GrpPermElt → GrpPermElt`](permutations.md#operation-op-pow-grppermelt-grppermelt)

    - [`(g, h): GrpPermElt, GrpPermElt → GrpPermElt`](permutations.md#literal-literal-g-h-grppermelt-grppermelt-grppermelt)

    - [`(g₁, ..., gᵣ): GrpPermElt, ..., GrpPermElt → GrpPermElt`](permutations.md#literal-literal-g1-gr-grppermelt-grppermelt-grppermelt)

  - [Properties of Permutations](permutations.md#properties-of-permutations)

    - [`CycleStructure(g): GrpPermElt → [ <RngIntElt, RngIntElt> ]`](permutations.md#function-cyclestructure-grppermelt)

    - [`Degree(g): GrpPermElt → RngIntElt`](permutations.md#function-degree-grppermelt-2)

    - [`IsEven(g): GrpPermElt → BoolElt`](permutations.md#function-iseven-grppermelt)

    - [`Sign(g): GrpPermElt → RngIntElt`](permutations.md#function-sign-grppermelt)

    - [`Order(g): GrpPermElt → RngIntElt`](permutations.md#function-order-grppermelt)

  - [Predicates for Permutations](permutations.md#predicates-for-permutations)

    - [`g eq h: GrpPermElt, GrpPermElt → BoolElt`](permutations.md#operation-op-eq-grppermelt-grppermelt)

    - [`g ne h: GrpPermElt, GrpPermElt → BoolElt`](permutations.md#operation-op-ne-grppermelt-grppermelt)

    - [`IsId(g): GrpPermElt → BoolElt`](permutations.md#function-isid-grppermelt)

    - [`IsIdentity(g): GrpPermElt → BoolElt`](permutations.md#function-isidentity-grppermelt)

    - [`Example: Arithmetic`](permutations.md#example-ex-531aba)

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

    - [`G * H: GrpPerm, GrpPerm → { GrpPermElt }`](permutations.md#operation-op-times-grpperm-grpperm)

    - [`ElementSet(G, H): GrpPerm, GrpPerm → { GrpPermElt }`](permutations.md#function-elementset-grpperm-grpperm)

    - [`NumberingMap(G): GrpPerm → Map`](permutations.md#function-numberingmap-grpperm)

    - [`RandomProcess(G): GrpPerm → Process`](permutations.md#function-randomprocess-grpperm)

    - [`Random(G: parameters): GrpPerm → GrpPermElt`](permutations.md#function-random-grpperm)

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

    - [`Representative(G): GrpPerm → GrpPermElt`](permutations.md#function-representative-grpperm)

    - [`Rep(G): GrpPerm → GrpPermElt`](permutations.md#function-rep-grpperm)

    - [`Example: Set Operations`](permutations.md#example-ex-80e2ef)

    - [`Example: SetOperations 2`](permutations.md#example-ex-6247bb)

- [Conjugacy](conjugate.md)

  - [`Class(H, x): GrpPerm, GrpPermElt → { GrpPermElt }`](conjugate.md#function-class-grpperm-grppermelt)

  - [`Conjugates(H, x): GrpPerm, GrpPermElt → { GrpPermElt }`](conjugate.md#function-conjugates-grpperm-grppermelt)

  - [`ConjugacyClasses(G: parameters): GrpPerm → [ <RngIntElt, RngIntElt, GrpPermElt> ]`](conjugate.md#function-conjugacyclasses-grpperm)

  - [`Classes(G: parameters): GrpPerm → [ <RngIntElt, RngIntElt, GrpPermElt> ]`](conjugate.md#function-classes-grpperm)

  - [`ClassRepresentative(G, x): GrpPerm, GrpPermElt → GrpPermElt`](conjugate.md#function-classrepresentative-grpperm-grppermelt)

  - [`ClassRepresentative(G, i): GrpPerm, RngIntElt → GrpPermElt`](conjugate.md#function-classrepresentative-grpperm-rngintelt)

  - [`ClassCentraliser(G, i): GrpPerm, RngIntElt → GrpPerm`](conjugate.md#function-classcentraliser-grpperm-rngintelt)

  - [`ClassCentralizer(G, i): GrpPerm, RngIntElt → GrpPerm`](conjugate.md#function-classcentralizer-grpperm-rngintelt)

  - [`ClassMap(G: parameters): GrpPerm → Map`](conjugate.md#function-classmap-grpperm)

  - [`IsConjugate(G, g, h: parameters): GrpPerm, GrpPermElt, GrpPermElt → BoolElt, GrpPermElt`](conjugate.md#function-isconjugate-grpperm-grppermelt-grppermelt)

  - [`IsConjugate(G, H, K: parameters): GrpPerm, GrpPerm, GrpPerm → BoolElt, GrpPermElt`](conjugate.md#function-isconjugate-grpperm-grpperm-grpperm)

  - [`Exponent(G): GrpPerm → RngIntElt`](conjugate.md#function-exponent-grpperm)

  - [`NumberOfClasses(G): GrpPerm → RngIntElt`](conjugate.md#function-numberofclasses-grpperm)

  - [`Nclasses(G): GrpPerm → RngIntElt`](conjugate.md#function-nclasses-grpperm)

  - [`PowerMap(G): GrpPerm → Map`](conjugate.md#function-powermap-grpperm)

  - [`AssertAttribute(G, "Classes", Q): GrpPerm, MonStgElt, SeqEnum`](conjugate.md#function-assertattribute-grpperm-monstgelt-seqenum)

  - [`Example: Classes`](conjugate.md#example-ex-1e8f6a)

  - [`Example: Classes 2`](conjugate.md#example-ex-d654b2)

- [Subgroups](subgroup.md)

  - [Construction of a Subgroup](subgroup.md#construction-of-a-subgroup)

    - [`sub<G | L>: GrpPerm, List → GrpPerm`](subgroup.md#constructor-constructor-sub-grpperm-list-grpperm)

    - [`ncl<G | L>: GrpPerm, List → GrpPerm`](subgroup.md#constructor-constructor-ncl-grpperm-list-grpperm)

    - [`Example: Constructors`](subgroup.md#example-ex-dfcc0d)

    - [`Example: Constructors 2`](subgroup.md#example-ex-f29910)

    - [`Example: Constructors 3`](subgroup.md#example-ex-9bd7f8)

  - [Membership and Equality](subgroup.md#membership-and-equality)

    - [`g in G: GrpPermElt, GrpPerm → BoolElt`](subgroup.md#operation-op-in-grppermelt-grpperm)

    - [`g notin G: GrpPermElt, GrpPerm → BoolElt`](subgroup.md#operation-op-notin-grppermelt-grpperm)

    - [`S subset G: { GrpPermElt }, GrpPerm → BoolElt`](subgroup.md#operation-op-subset-grppermelt-grpperm)

    - [`S notsubset G: { GrpPermElt }, GrpPerm → BoolElt`](subgroup.md#operation-operation-notsubset-grppermelt-grpperm-boolelt)

    - [`H subset G: GrpPerm, GrpPerm → BoolElt`](subgroup.md#operation-op-subset-grpperm-grpperm)

    - [`IsSubgroup(H,G): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-issubgroup-grpperm-grpperm)

    - [`H notsubset G: GrpPerm, GrpPerm → BoolElt`](subgroup.md#operation-operation-notsubset-grpperm-grpperm-boolelt)

    - [`H eq G: GrpPerm, GrpPerm → BoolElt`](subgroup.md#operation-op-eq-grpperm-grpperm)

    - [`H ne G: GrpPerm, GrpPerm → BoolElt`](subgroup.md#operation-op-ne-grpperm-grpperm)

  - [Elementary Properties of a Subgroup](subgroup.md#elementary-properties-of-a-subgroup)

    - [`Index(G, H): GrpPerm, GrpPerm → RngIntElt`](subgroup.md#function-index-grpperm-grpperm)

    - [`FactoredIndex(G, H): GrpPerm, GrpPerm → [ <RngIntElt, RngIntElt> ]`](subgroup.md#function-factoredindex-grpperm-grpperm)

    - [`IsCentral(G, H): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-iscentral-grpperm-grpperm)

    - [`IsNormal(G, H): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-isnormal-grpperm-grpperm)

    - [`IsSelfNormalizing(G, H): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-isselfnormalizing-grpperm-grpperm)

    - [`IsSelfNormalising(G, H): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-isselfnormalising-grpperm-grpperm)

    - [`IsSubnormal(G, H): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-issubnormal-grpperm-grpperm)

  - [Standard Subgroups](subgroup.md#standard-subgroups)

    - [`H ^ g: GrpPerm, GrpPermElt → GrpPerm`](subgroup.md#operation-op-pow-grpperm-grppermelt)

    - [`Conjugate(H, g): GrpPerm, GrpPermElt → GrpPerm`](subgroup.md#function-conjugate-grpperm-grppermelt)

    - [`H meet K: GrpPerm, GrpPerm → GrpPerm`](subgroup.md#operation-op-meet-grpperm-grpperm)

    - [`IntersectionWithNormalSubgroup(G, N: parameters): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-intersectionwithnormalsubgroup-grpperm-grpperm)

    - [`CommutatorSubgroup(G, H, K): GrpPerm, GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-commutatorsubgroup-grpperm-grpperm-grpperm)

    - [`CommutatorSubgroup(H, K): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-commutatorsubgroup-grpperm-grpperm)

    - [`Centralizer(G, g: parameters): GrpPerm, GrpPermElt → GrpPerm`](subgroup.md#function-centralizer-grpperm-grppermelt)

    - [`Centraliser(G, g: parameters): GrpPerm, GrpPermElt → GrpPerm`](subgroup.md#function-centraliser-grpperm-grppermelt)

    - [`Centralizer(G, H): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-centralizer-grpperm-grpperm)

    - [`Centraliser(G, H): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-centraliser-grpperm-grpperm)

    - [`CentralizerOfNormalSubgroup(G, H): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-centralizerofnormalsubgroup-grpperm-grpperm)

    - [`SectionCentraliser(G, H, K): GrpPerm, GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-sectioncentraliser-grpperm-grpperm-grpperm)

    - [`SectionCentralizer(G, H, K): GrpPerm, GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-sectioncentralizer-grpperm-grpperm-grpperm)

    - [`Core(G, H): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-core-grpperm-grpperm)

    - [`H ^ G: GrpPerm, GrpPerm → GrpPerm`](subgroup.md#operation-op-pow-grpperm-grpperm)

    - [`NormalClosure(G, H): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-normalclosure-grpperm-grpperm)

    - [`Normalizer(G, H: parameters): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-normalizer-grpperm-grpperm)

    - [`Normaliser(G, H: parameters): GrpPerm, GrpPerm → GrpPerm`](subgroup.md#function-normaliser-grpperm-grpperm)

    - [`SymmetricNormalizer(G): GrpPerm → GrpPerm`](subgroup.md#function-symmetricnormalizer-grpperm)

    - [`SymmetricNormaliser(G): GrpPerm → GrpPerm`](subgroup.md#function-symmetricnormaliser-grpperm)

    - [`SylowSubgroup(G, p): GrpPerm, RngIntElt → GrpPerm`](subgroup.md#function-sylowsubgroup-grpperm-rngintelt)

    - [`Sylow(G, p): GrpPerm, RngIntElt → GrpPerm`](subgroup.md#function-sylow-grpperm-rngintelt)

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

  - [Maximal Subgroups](subgroup.md#maximal-subgroups)

    - [`IsMaximal(G, H: parameters): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-ismaximal-grpperm-grpperm)

    - [`IsProbablyMaximal(G, H: parameters): GrpPerm, GrpPerm → BoolElt`](subgroup.md#function-isprobablymaximal-grpperm-grpperm)

    - [`MaximalSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-maximalsubgroups-grpperm)

    - [`Example: Maximals`](subgroup.md#example-ex-aa3565)

    - [`MaximalSubgroups(G,N: parameters): GrpPerm, GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-maximalsubgroups-grpperm-grpperm)

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

    - [`SubgroupClasses(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-subgroupclasses-grpperm)

    - [`Subgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-subgroups-grpperm)

    - [`SubgroupsLift(G, A, B, Q: parameters): GrpPerm, GrpPerm, GrpPerm, SeqEnum → SeqEnum`](subgroup.md#function-subgroupslift-grpperm-grpperm-grpperm-seqenum)

    - [`LowIndexSubgroups(G, n: parameters): GrpPerm, RngIntElt → SeqEnum`](subgroup.md#function-lowindexsubgroups-grpperm-rngintelt)

    - [`LowIndexSubgroups(G, t: parameters): GrpPerm, Tup → SeqEnum`](subgroup.md#function-lowindexsubgroups-grpperm-tup)

    - [`LowIndexSubgroups(G, N, n: parameters): GrpPerm, RngIntElt → SeqEnum`](subgroup.md#function-lowindexsubgroups-grpperm-rngintelt-2)

    - [`LowIndexSubgroups(G, N, t: parameters): GrpPerm, Tup → SeqEnum`](subgroup.md#function-lowindexsubgroups-grpperm-tup-2)

    - [`Example: Subgroups`](subgroup.md#example-ex-24cf2d)

    - [`Example: Low Index Subs`](subgroup.md#example-ex-157d91)

    - [`Example: Subgroups 2`](subgroup.md#example-ex-672b95)

    - [`SubgroupLattice(G): GrpPerm → SubGrpLat`](subgroup.md#function-subgrouplattice-grpperm)

    - [`BurnsideMatrix(G): GrpPerm → AlgMatElt`](subgroup.md#function-burnsidematrix-grpperm)

    - [`DisplayBurnsideMatrix(G): GrpPerm`](subgroup.md#function-displayburnsidematrix-grpperm)

    - [`TableOfMarks(G): GrpPerm → AlgMatElt`](subgroup.md#function-tableofmarks-grpperm)

  - [Classes of Subgroups Satisfying a Condition](subgroup.md#classes-of-subgroups-satisfying-a-condition)

    - [`NormalSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-normalsubgroups-grpperm)

    - [`ElementaryAbelianSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-elementaryabeliansubgroups-grpperm)

    - [`CyclicSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-cyclicsubgroups-grpperm)

    - [`AbelianSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-abeliansubgroups-grpperm)

    - [`NilpotentSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-nilpotentsubgroups-grpperm)

    - [`SolvableSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-solvablesubgroups-grpperm)

    - [`PerfectSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-perfectsubgroups-grpperm)

    - [`NonsolvableSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-nonsolvablesubgroups-grpperm)

    - [`SimpleSubgroups(G: parameters): GrpPerm → [ rec< GrpPerm, RngIntElt, RngIntElt, GrpFP> ]`](subgroup.md#function-simplesubgroups-grpperm)

- [Quotient Groups](quotient.md)

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

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

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

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

  - [Abelian, Nilpotent and Soluble Quotients](quotient.md#abelian-nilpotent-and-soluble-quotients)

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

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

    - [`pQuotient(G, p, c): GrpPerm, RngIntElt, RngIntElt → GrpPC, Map, SeqEnum, BoolElt`](quotient.md#function-pquotient-grpperm-rngintelt-rngintelt)

    - [`NilpotentQuotient(G, c): GrpPerm, RngIntElt → GrpGPC, Map`](quotient.md#function-nilpotentquotient-grpperm-rngintelt)

    - [`SolvableQuotient(G): GrpPerm → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solvablequotient-grpperm)

    - [`SolubleQuotient(G): GrpPerm → GrpPC, Map, SeqEnum, MonStgElt`](quotient.md#function-solublequotient-grpperm)

    - [`Example: Special Quotient`](quotient.md#example-ex-d5d186)

- [Permutation Group Actions](actions.md)

  - [$G$-Sets](actions.md#g-sets)

  - [Creating a $G$-Set](actions.md#creating-a-g-set)

    - [`GSetFromIndexed(G, Y): GrpPerm, SetIndx → GSet`](actions.md#function-gsetfromindexed-grpperm-setindx)

    - [`GSet(G, X, Y): GrpPerm, GSet, SetEnum → GSet`](actions.md#function-gset-grpperm-gset-setenum)

    - [`GSet(G, Y): GrpPerm, Set → GSet`](actions.md#function-gset-grpperm-set)

    - [`GSet(G): GrpPerm → GSet`](actions.md#function-gset-grpperm-2)

    - [`GSet(G, Y, f): GrpPerm, Set, Map → GSet`](actions.md#function-gset-grpperm-set-map)

    - [`Action(Y): GSet → Map`](actions.md#function-action-gset)

    - [`Group(Y): GSet → GrpPerm`](actions.md#function-group-gset)

    - [`Labelling(G): GrpPerm → SetIndx`](actions.md#function-labelling-grpperm)

    - [`Degree(g, Y): GrpPermElt, GSet → RngIntElt`](actions.md#function-degree-grppermelt-gset)

    - [`Degree(g): GrpPermElt → RngIntElt`](actions.md#function-degree-grppermelt-3)

    - [`Degree(G, Y): GrpPerm, GSet → RngIntElt`](actions.md#function-degree-grpperm-gset)

    - [`Degree(G): GrpPerm → RngIntElt`](actions.md#function-degree-grpperm)

    - [`Support(g, Y): GrpPermElt, GSet → { Elt }`](actions.md#function-support-grppermelt-gset)

    - [`Support(g): GrpPermElt → { Elt }`](actions.md#function-support-grppermelt)

    - [`Support(G, Y): GrpPerm, GSet → { Elt }`](actions.md#function-support-grpperm-gset)

    - [`Support(G): GrpPerm → { Elt }`](actions.md#function-support-grpperm)

    - [`Example: G Sets`](actions.md#example-ex-5fb40e)

  - [Images, Orbits and Stabilizers](actions.md#images-orbits-and-stabilizers)

    - [`x ^ g: Elt, GrpPermElt → Elt`](actions.md#operation-op-pow-elt-grppermelt)

    - [`Image(g, Y, y): GrpPermElt, GSet, Elt → Elt`](actions.md#function-image-grppermelt-gset-elt)

    - [`Image(g, y): GrpPermElt, Elt → Elt`](actions.md#function-image-grppermelt-elt)

    - [`Fix(g, Y): GrpPermElt, GSet → { Elt }`](actions.md#function-fix-grppermelt-gset)

    - [`Fix(g): GrpPermElt → { Elt }`](actions.md#function-fix-grppermelt)

    - [`Fix(G, Y): GrpPerm, GSet → { Elt }`](actions.md#function-fix-grpperm-gset)

    - [`Fix(G): GrpPerm → { Elt }`](actions.md#function-fix-grpperm)

    - [`x ^ G: Elt, GrpPerm → GSet`](actions.md#operation-op-pow-elt-grpperm)

    - [`Cycle(e, x): GrpPermElt, Elt → SetIndx`](actions.md#function-cycle-grppermelt-elt)

    - [`CycleDecomposition(e): GrpPermElt → SeqEnum[SetIndx]`](actions.md#function-cycledecomposition-grppermelt)

    - [`Orbit(G, Y, y): GrpPerm, GSet, Elt → GSet`](actions.md#function-orbit-grpperm-gset-elt)

    - [`Orbit(G, y): GrpPerm, Elt → GSet`](actions.md#function-orbit-grpperm-elt)

    - [`Orbits(G, Y): GrpPerm, GSet → [ GSet ]`](actions.md#function-orbits-grpperm-gset)

    - [`Orbits(G): GrpPerm → [ GSet ]`](actions.md#function-orbits-grpperm)

    - [`OrbitRepresentatives(G): GrpPerm → SeqEnum`](actions.md#function-orbitrepresentatives-grpperm)

    - [`OrbitClosure(G, Y, S): GrpPerm, GSet, { Elt } → GSet`](actions.md#function-orbitclosure-grpperm-gset-elt)

    - [`OrbitClosure(G, S): GrpPerm, { Elt } → GSet`](actions.md#function-orbitclosure-grpperm-elt)

    - [`IsConjugate(G, Y, y, z): GrpPerm, GSet, Elt, Elt → BoolElt, GrpPermElt`](actions.md#function-isconjugate-grpperm-gset-elt-elt)

    - [`IsConjugate(G, y, z): GrpPerm, Elt, Elt → BoolElt, GrpPermElt`](actions.md#function-isconjugate-grpperm-elt-elt)

    - [`Stabilizer(G, Y, y): GrpPerm, GSet, Elt → GrpPerm`](actions.md#function-stabilizer-grpperm-gset-elt)

    - [`Stabiliser(G, Y, y): GrpPerm, GSet, Elt → GrpPerm`](actions.md#function-stabiliser-grpperm-gset-elt)

    - [`Stabilizer(G, y): GrpPerm, Elt → GrpPerm`](actions.md#function-stabilizer-grpperm-elt)

    - [`Stabiliser(G, y): GrpPerm, Elt → GrpPerm`](actions.md#function-stabiliser-grpperm-elt)

    - [`TwoClosure(G): GrpPerm → GrpPerm`](actions.md#function-twoclosure-grpperm)

    - [`IsPrimitive(G, Y): GrpPerm, GSet → BoolElt`](actions.md#function-isprimitive-grpperm-gset)

    - [`IsPrimitive(G): GrpPerm → BoolElt`](actions.md#function-isprimitive-grpperm)

    - [`IsTransitive(G, Y): GrpPerm, GSet → BoolElt`](actions.md#function-istransitive-grpperm-gset)

    - [`IsTransitive(G): GrpPerm → BoolElt`](actions.md#function-istransitive-grpperm)

    - [`IsTransitive(G, Y, k): GrpPerm, GSet, RngIntElt → BoolElt`](actions.md#function-istransitive-grpperm-gset-rngintelt)

    - [`IsTransitive(G, k): GrpPerm, RngIntElt → BoolElt`](actions.md#function-istransitive-grpperm-rngintelt)

    - [`IsSharplyTransitive(G, Y, k): GrpPerm, GSet, RngIntElt → BoolElt`](actions.md#function-issharplytransitive-grpperm-gset-rngintelt)

    - [`IsSharplyTransitive(G, k): GrpPerm, RngIntElt → BoolElt`](actions.md#function-issharplytransitive-grpperm-rngintelt)

    - [`Transitivity(G, Y): GrpPerm, GSet → RngIntElt`](actions.md#function-transitivity-grpperm-gset)

    - [`Transitivity(G): GrpPerm → RngIntElt`](actions.md#function-transitivity-grpperm)

    - [`Homogeneity(G): GrpPerm → RngIntElt`](actions.md#function-homogeneity-grpperm)

    - [`IsRegular(G, Y): GrpPerm, GSet → BoolElt`](actions.md#function-isregular-grpperm-gset)

    - [`IsRegular(G): GrpPerm → BoolElt`](actions.md#function-isregular-grpperm)

    - [`IsSemiregular(G, Y): GrpPerm, GSet → BoolElt`](actions.md#function-issemiregular-grpperm-gset)

    - [`IsSemiregular(G): GrpPerm → BoolElt`](actions.md#function-issemiregular-grpperm)

    - [`IsSemiregular(G, Y, S): GrpPerm, GSet, SetEnum → BoolElt`](actions.md#function-issemiregular-grpperm-gset-setenum)

    - [`IsSemiregular(G, S): GrpPerm, SetEnum → BoolElt`](actions.md#function-issemiregular-grpperm-setenum)

    - [`IsFrobenius(G): GrpPerm → BoolElt`](actions.md#function-isfrobenius-grpperm)

    - [`Example: Stabilizers`](actions.md#example-ex-ca8a24)

  - [Action on a $G$-Space](actions.md#action-on-a-g-space)

    - [`Action(G, Y): GrpPerm, GSet → Hom(Grp), GrpPerm, GrpPerm`](actions.md#function-action-grpperm-gset)

    - [`ActionImage(G, Y): GrpPerm, GSet → GrpPerm`](actions.md#function-actionimage-grpperm-gset)

    - [`ActionKernel(G, Y): GrpPerm, GSet → GrpPerm`](actions.md#function-actionkernel-grpperm-gset)

    - [`IsFaithful(G, Y): GrpPerm, GSet → BoolElt`](actions.md#function-isfaithful-grpperm-gset)

    - [`Example: Actions`](actions.md#example-ex-6c5cfe)

  - [Action on Orbits](actions.md#action-on-orbits)

    - [`OrbitAction(G, T): GrpPerm, GSet → Hom(Grp), GrpPerm, GrpPerm`](actions.md#function-orbitaction-grpperm-gset)

    - [`OrbitImage(G, T): GrpPerm, GSet → GrpPerm`](actions.md#function-orbitimage-grpperm-gset)

    - [`OrbitKernel(G, T): GrpPerm, GSet → GrpPerm`](actions.md#function-orbitkernel-grpperm-gset)

    - [`IsOrbit(G, S): GrpPerm, { Elt } → BoolElt`](actions.md#function-isorbit-grpperm-elt)

    - [`Example: Orbit Actions`](actions.md#example-ex-301205)

  - [Action on a G-invariant Partition](actions.md#action-on-a-g-invariant-partition)

    - [`IsBlock(G, S): GrpPerm, { Elt } → BoolElt`](actions.md#function-isblock-grpperm-elt)

    - [`IsPrimitive(G): GrpPerm → BoolElt`](actions.md#function-isprimitive-grpperm-2)

    - [`MaximalPartition(G): GrpPerm → GSet`](actions.md#function-maximalpartition-grpperm)

    - [`MinimalPartition(G: parameters): GrpPerm → GSet`](actions.md#function-minimalpartition-grpperm)

    - [`MinimalPartitions(G: parameters): GrpPerm → [ GSet ]`](actions.md#function-minimalpartitions-grpperm)

    - [`MinimalBlocks(G: parameters): GrpPerm → [ SetEnum ]`](actions.md#function-minimalblocks-grpperm)

    - [`AllPartitions(G): GrpPerm → SetEnum`](actions.md#function-allpartitions-grpperm)

    - [`BlocksAction(G, P): GrpPerm, Any → Hom(GrpPerm), GrpPerm, GrpPerm`](actions.md#function-blocksaction-grpperm-any)

    - [`BlocksAction(G, P): GrpPerm, GSet → Hom(GrpPerm), GrpPerm, GrpPerm`](actions.md#function-blocksaction-grpperm-gset)

    - [`BlocksAction(G, P): GrpPerm, SeqEnum → Hom(GrpPerm), GrpPerm, GrpPerm`](actions.md#function-blocksaction-grpperm-seqenum)

    - [`BlocksAction(G, P): GrpPerm, SetIndx → Hom(GrpPerm), GrpPerm, GrpPerm`](actions.md#function-blocksaction-grpperm-setindx)

    - [`BlocksAction(G, P): GrpPerm, SetEnum → Hom(GrpPerm), GrpPerm, GrpPerm`](actions.md#function-blocksaction-grpperm-setenum)

    - [`BlocksImage(G, P): GrpPerm, Any → GrpPerm`](actions.md#function-blocksimage-grpperm-any)

    - [`BlocksImage(G, P): GrpPerm, GSet → GrpPerm`](actions.md#function-blocksimage-grpperm-gset)

    - [`BlocksImage(G, P): GrpPerm, SetIndx → GrpPerm`](actions.md#function-blocksimage-grpperm-setindx)

    - [`BlocksImage(G, P): GrpPerm, SeqEnum → GrpPerm`](actions.md#function-blocksimage-grpperm-seqenum)

    - [`BlocksImage(G, P): GrpPerm, SetEnum → GrpPerm`](actions.md#function-blocksimage-grpperm-setenum)

    - [`BlocksKernel(G, P): GrpPerm, Any → GrpPerm`](actions.md#function-blockskernel-grpperm-any)

    - [`BlocksKernel(G, P): GrpPerm, GSet → GrpPerm`](actions.md#function-blockskernel-grpperm-gset)

    - [`BlocksKernel(G, P): GrpPerm, SetIndx → GrpPerm`](actions.md#function-blockskernel-grpperm-setindx)

    - [`BlocksKernel(G, P): GrpPerm, SeqEnum → GrpPerm`](actions.md#function-blockskernel-grpperm-seqenum)

    - [`BlocksKernel(G, P): GrpPerm, SetEnum → GrpPerm`](actions.md#function-blockskernel-grpperm-setenum)

    - [`Example: Blocks Actions`](actions.md#example-ex-da83a9)

    - [`Example: BlocksActions 2`](actions.md#example-ex-c3774e)

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

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

    - [`RegularRepresentation(G, H: parameters): Grp, Grp → Hom(Grp), GrpPerm, GrpPerm`](actions.md#function-regularrepresentation-grp-grp)

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

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

  - [Reduced Permutation Actions](actions.md#reduced-permutation-actions)

    - [`TransitiveQuotient(G): GrpPerm → GrpPerm, Hom, GrpPerm`](actions.md#function-transitivequotient-grpperm)

    - [`PrimitiveQuotient(G): GrpPerm → GrpPerm, Hom, GrpPerm`](actions.md#function-primitivequotient-grpperm)

    - [`DegreeReduction(G): GrpPerm → GrpPerm, Hom`](actions.md#function-degreereduction-grpperm)

  - [The Jellyfish Algorithm](actions.md#the-jellyfish-algorithm)

    - [`JellyfishConstruction(G: parameters): GrpPerm → BoolElt`](actions.md#function-jellyfishconstruction-grpperm)

    - [`JellyfishImage(G): GrpPerm → GrpPerm`](actions.md#function-jellyfishimage-grpperm)

    - [`JellyfishImage(G, x: parameters): GrpPerm, GrpPermElt → GrpPermElt`](actions.md#function-jellyfishimage-grpperm-grppermelt)

    - [`JellyfishImage(G, H: parameters): GrpPerm, GrpPerm → GrpPermElt`](actions.md#function-jellyfishimage-grpperm-grpperm)

    - [`JellyfishPreimage(G, x: parameters): GrpPerm, GrpPermElt → GrpPermElt`](actions.md#function-jellyfishpreimage-grpperm-grppermelt)

    - [`JellyfishPreimage(G, I: parameters): GrpPerm, GrpPerm → GrpPermElt`](actions.md#function-jellyfishpreimage-grpperm-grpperm)

- [Normal and Subnormal Subgroups](characteristic-subgroup-normal-structure.md)

  - [Characteristic Subgroups and Normal Series](characteristic-subgroup-normal-structure.md#characteristic-subgroups-and-normal-series)

    - [`DerivedSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-grpperm-derivedseries)

    - [`CompositionSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-compositionseries-grpperm)

    - [`CommutatorSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-commutatorsubgroup-grpperm)

    - [`DerivedSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-derivedsubgroup-grpperm)

    - [`DerivedGroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-derivedgroup-grpperm)

    - [`SolubleResidual(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-solubleresidual-grpperm)

    - [`SolvableResidual(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-solvableresidual-grpperm)

    - [`DerivedLength(G): GrpPerm → RngIntElt`](characteristic-subgroup-normal-structure.md#function-derivedlength-grpperm)

    - [`LowerCentralSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-lowercentralseries-grpperm)

    - [`NilpotencyClass(G): GrpPerm → RngIntElt`](characteristic-subgroup-normal-structure.md#function-nilpotencyclass-grpperm)

    - [`UpperCentralSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-uppercentralseries-grpperm)

    - [`Centre(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-centre-grpperm)

    - [`Center(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-center-grpperm)

    - [`Hypercentre(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-hypercentre-grpperm)

    - [`Hypercenter(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-hypercenter-grpperm)

    - [`pCore(G, p): GrpPerm, RngIntElt → GrpPerm`](characteristic-subgroup-normal-structure.md#function-pcore-grpperm-rngintelt)

    - [`pCoreQuotient(G, p): GrpPerm, RngIntElt → GrpPerm, Map, GrpPerm`](characteristic-subgroup-normal-structure.md#function-pcorequotient-grpperm-rngintelt)

    - [`FittingGroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-fittinggroup-grpperm)

    - [`FittingSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-fittingsubgroup-grpperm)

    - [`FrattiniSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-frattinisubgroup-grpperm)

    - [`JenningsSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-jenningsseries-grpperm)

    - [`pCentralSeries(G, p): GrpPerm, RngIntElt → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-pcentralseries-grpperm-rngintelt)

    - [`SubnormalSeries(G, H): GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-subnormalseries-grpperm-grpperm)

    - [`Example: Series`](characteristic-subgroup-normal-structure.md#example-ex-bfec16)

  - [Maximal and Minimal Normal Subgroups](characteristic-subgroup-normal-structure.md#maximal-and-minimal-normal-subgroups)

    - [`MaximalNormalSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-maximalnormalsubgroup-grpperm)

    - [`MinimalNormalSubgroups(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-minimalnormalsubgroups-grpperm)

  - [Lattice of Normal Subgroups](characteristic-subgroup-normal-structure.md#lattice-of-normal-subgroups)

    - [`NormalSubgroups(G): GrpPerm → [ Rec ]`](characteristic-subgroup-normal-structure.md#function-normalsubgroups-grpperm-2)

    - [`NormalLattice(G): GrpPerm → SubGrpLat`](characteristic-subgroup-normal-structure.md#function-normallattice-grpperm)

    - [`Example: Normal Subgroups`](characteristic-subgroup-normal-structure.md#example-ex-7f08ec)

  - [Composition and Chief Series](characteristic-subgroup-normal-structure.md#composition-and-chief-series)

    - [`ChiefFactors(G): GrpPerm → [ <RngIntElt, RngIntElt, RngIntElt, RngIntElt> ]`](characteristic-subgroup-normal-structure.md#function-chieffactors-grpperm)

    - [`ChiefSeries(G): GrpPerm → [ GrpPerm ], [ <RngIntElt, RngIntElt, RngIntElt, RngIntElt> ]`](characteristic-subgroup-normal-structure.md#function-chiefseries-grpperm)

    - [`CompositionFactors(G): GrpPerm → [ <RngIntElt, RngIntElt, RngIntElt> ]`](characteristic-subgroup-normal-structure.md#function-compositionfactors-grpperm)

    - [`Example: Comp Factors`](characteristic-subgroup-normal-structure.md#example-ex-ea023a)

    - [`PrimaryAbelianInvariants(G): GrpPerm → [ RngIntElt ]`](characteristic-subgroup-normal-structure.md#function-primaryabelianinvariants-grpperm)

    - [`AbelianInvariants(G): GrpPerm → [ RngIntElt ]`](characteristic-subgroup-normal-structure.md#function-abelianinvariants-grpperm)

    - [`PrimaryAbelianBasis(G): GrpPerm → [ GrpPermElt ], [ RngIntElt ]`](characteristic-subgroup-normal-structure.md#function-primaryabelianbasis-grpperm)

    - [`AbelianBasis(G): GrpPerm → [ GrpPermElt ], [ RngIntElt ]`](characteristic-subgroup-normal-structure.md#function-abelianbasis-grpperm)

  - [The Socle](characteristic-subgroup-normal-structure.md#the-socle)

    - [`Socle(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-socle-grpperm)

    - [`SocleFactor(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-soclefactor-grpperm)

    - [`SocleFactors(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-soclefactors-grpperm)

    - [`SocleSeries(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-socleseries-grpperm)

    - [`EARNS(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-earns-grpperm)

    - [`AffineGeneralLinearGroup(E): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-affinegenerallineargroup-grpperm)

    - [`AGL(E): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-agl-grpperm)

    - [`IsAffine(G): GrpPerm → BoolElt, GrpPerm`](characteristic-subgroup-normal-structure.md#function-isaffine-grpperm)

    - [`AffineAction(G): GrpPerm → Hom, GrpPerm, GrpPerm`](characteristic-subgroup-normal-structure.md#function-affineaction-grpperm)

    - [`AffineImage(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-affineimage-grpperm)

    - [`AffineKernel(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-affinekernel-grpperm)

    - [`SocleAction(G): GrpPerm → Hom, GrpPerm, GrpPerm`](characteristic-subgroup-normal-structure.md#function-socleaction-grpperm)

    - [`SocleImage(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-socleimage-grpperm)

    - [`SocleKernel(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-soclekernel-grpperm)

    - [`SocleQuotient(G): GrpPerm → GrpPerm, Hom, GrpPerm`](characteristic-subgroup-normal-structure.md#function-soclequotient-grpperm)

    - [`RefineSection(G, M, N): GrpPerm, GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-refinesection-grpperm-grpperm-grpperm)

    - [`Example: Primitive Structure`](characteristic-subgroup-normal-structure.md#example-ex-5535a8)

  - [The Soluble Radical and its Quotient](characteristic-subgroup-normal-structure.md#the-soluble-radical-and-its-quotient)

    - [`Radical(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-radical-grpperm)

    - [`SolubleRadical(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-solubleradical-grpperm)

    - [`SolvableRadical(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-solvableradical-grpperm)

    - [`RadicalQuotient(G): GrpPerm → GrpPerm, Hom(GrpPerm), GrpPerm`](characteristic-subgroup-normal-structure.md#function-radicalquotient-grpperm)

    - [`ElementaryAbelianSeries(G: parameters): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-elementaryabelianseries-grpperm)

    - [`ElementaryAbelianSeries(G, N: parameters): GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-elementaryabelianseries-grpperm-grpperm)

    - [`ElementaryAbelianSeriesCanonical(G): GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-elementaryabelianseriescanonical-grpperm)

    - [`Example: Radical`](characteristic-subgroup-normal-structure.md#example-ex-034f3d)

  - [Complements and Supplements](characteristic-subgroup-normal-structure.md#complements-and-supplements)

    - [`Complements(G, M): GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-complements-grpperm-grpperm)

    - [`Complements(G, M, N): GrpPerm, GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-complements-grpperm-grpperm-grpperm)

    - [`HasComplement(G, M): GrpPerm, GrpPerm → BoolElt, GrpPerm`](characteristic-subgroup-normal-structure.md#function-hascomplement-grpperm-grpperm)

    - [`Supplements(G, M): GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-supplements-grpperm-grpperm)

    - [`Supplements(G, M, N): GrpPerm, GrpPerm, GrpPerm → [ GrpPerm ]`](characteristic-subgroup-normal-structure.md#function-supplements-grpperm-grpperm-grpperm)

    - [`HasSupplement(G, M): GrpPerm, GrpPerm → BoolElt, GrpPerm`](characteristic-subgroup-normal-structure.md#function-hassupplement-grpperm-grpperm)

    - [`Example: Complements`](characteristic-subgroup-normal-structure.md#example-ex-f9be31)

  - [Abelian Normal Subgroups](characteristic-subgroup-normal-structure.md#abelian-normal-subgroups)

    - [`AbelianNormalSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-abeliannormalsubgroup-grpperm)

    - [`AbelianNormalQuotient(G, H): GrpPerm, GrpPerm → GrpPerm, Hom(GrpPerm), GrpPerm`](characteristic-subgroup-normal-structure.md#function-abeliannormalquotient-grpperm-grpperm)

    - [`SolubleNormalQuotient(G, H): GrpPerm → GrpPerm, Hom(GrpPerm), GrpPerm`](characteristic-subgroup-normal-structure.md#function-solublenormalquotient-grpperm)

    - [`ElementaryAbelianNormalSubgroup(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-elementaryabeliannormalsubgroup-grpperm)

    - [`pElementaryAbelianNormalSubgroup(G, p): GrpPerm, RngIntElt → GrpPerm`](characteristic-subgroup-normal-structure.md#function-pelementaryabeliannormalsubgroup-grpperm-rngintelt)

    - [`MEANS(G): GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-means-grpperm)

    - [`MEANS(G, N): GrpPerm, GrpPerm → GrpPerm`](characteristic-subgroup-normal-structure.md#function-means-grpperm-grpperm)

- [Cosets and Transversals](cosets-transversals.md)

  - [Cosets](cosets-transversals.md#cosets)

    - [`H * g: GrpPerm, GrpPermElt → Elt`](cosets-transversals.md#operation-op-times-grpperm-grppermelt)

    - [`DoubleCoset(G, H, g, K): GrpPerm, GrpPerm, GrpPermElt, GrpPerm → GrpPermDcosElt`](cosets-transversals.md#function-doublecoset-grpperm-grpperm-grppermelt-grpperm)

    - [`DoubleCosetRepresentatives(G, H, K): GrpPerm, GrpPerm, GrpPerm → SeqEnum, SeqEnum`](cosets-transversals.md#function-doublecosetrepresentatives-grpperm-grpperm-grpperm)

    - [`DoubleCosetCanonical(G, H, g, K: parameters): GrpPerm, GrpPerm, GrpPermElt, GrpPerm → SeqEnum, SeqEnum`](cosets-transversals.md#function-doublecosetcanonical-grpperm-grpperm-grppermelt-grpperm)

    - [`ProcessLadder(L, G, U): [GrpPerm], GrpPerm, GrpPerm → Rec`](cosets-transversals.md#function-processladder-grpperm-grpperm-grpperm)

    - [`GetRep(p, R): GrpPermElt, Rec → GrpPermElt`](cosets-transversals.md#function-getrep-grppermelt-rec)

    - [`DeleteData(R): Rec`](cosets-transversals.md#function-deletedata-rec)

    - [`YoungSubgroupLadder(L): [RngIntElt] → [GrpPerm]`](cosets-transversals.md#function-youngsubgroupladder-rngintelt)

    - [`StabilizerLadder(G, d): GrpPerm, RngMPolElt → [GrpPerm]`](cosets-transversals.md#function-stabilizerladder-grpperm-rngmpolelt)

    - [`x in C: GrpPermElt, Elt → BoolElt`](cosets-transversals.md#operation-op-in-grppermelt-elt)

    - [`x notin C: GrpPermElt, Elt → BoolElt`](cosets-transversals.md#operation-op-notin-grppermelt-elt)

    - [`C₁ eq C₂: Elt, Elt → BoolElt`](cosets-transversals.md#operation-op-eq-elt-elt)

    - [`C₁ ne C₂: Elt, Elt → BoolElt`](cosets-transversals.md#operation-op-ne-elt-elt)

    - [`# C: Elt → RngIntElt`](cosets-transversals.md#operation-operation-elt-rngintelt)

    - [`CosetTable(G, H): Grp, Grp → Map`](cosets-transversals.md#function-cosettable-grp-grp)

    - [`CosetTable(G, f): Grp, Map → Map`](cosets-transversals.md#function-cosettable-grp-map)

  - [Transversals](cosets-transversals.md#transversals)

    - [`Transversal(G, H): GrpPerm, GrpPerm → { @ GrpPermElt  @}, Map`](cosets-transversals.md#function-transversal-grpperm-grpperm)

    - [`RightTransversal(G, H): GrpPerm, GrpPerm → { @ GrpPermElt  @}, Map`](cosets-transversals.md#function-righttransversal-grpperm-grpperm)

    - [`TransversalProcess(G, H): GrpPerm, GrpPerm → GrpPermTransProc`](cosets-transversals.md#function-transversalprocess-grpperm-grpperm)

    - [`TransversalProcessRemaining(P): GrpPermTransProc → RngIntElt`](cosets-transversals.md#function-transversalprocessremaining-grppermtransproc)

    - [`TransversalProcessNext(P): GrpPermTransProc → GrpPermElt`](cosets-transversals.md#function-transversalprocessnext-grppermtransproc)

    - [`ShortCosets(p, H, G): GrpPermElt, GrpPerm, GrpPerm → [GrpPermElt]`](cosets-transversals.md#function-shortcosets-grppermelt-grpperm-grpperm)

- [Presentations](presentations.md)

  - [Generators and Relations](presentations.md#generators-and-relations)

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

    - [`FPGroup(G, N): GrpPerm, GrpPerm → GrpFP, Hom(Grp)`](presentations.md#function-fpgroup-grpperm-grpperm)

    - [`FPQuotient(G, N): GrpPerm, GrpPerm → GrpFP, Hom(Grp)`](presentations.md#function-fpquotient-grpperm-grpperm)

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

  - [Permutations as Words](presentations.md#permutations-as-words)

    - [`WordGroup(G): GrpPerm → GrpBB, Map`](presentations.md#function-wordgroup-grpperm)

    - [`InverseWordMap(G): GrpPerm → Map`](presentations.md#function-inversewordmap-grpperm)

    - [`ActingWord(G, x, y): GrpPerm, Elt, Elt → GrpFPElt`](presentations.md#function-actingword-grpperm-elt-elt)

    - [`WordInGenerators(G, g : parameters): GrpPerm, GrpPermElt → GrpFPElt`](presentations.md#function-wordingenerators-grpperm-grppermelt)

- [Automorphism Groups](automorphisms.md)

  - [`AutomorphismGroup(G: parameters): GrpPerm → GrpAuto`](automorphisms.md#function-automorphismgroup-grpperm)

  - [`IsIsomorphic(G, H: parameters): GrpPerm, GrpPerm → BoolElt, Hom(Grp)`](automorphisms.md#function-isisomorphic-grpperm-grpperm)

  - [`Example: Automorphisms`](automorphisms.md#example-ex-c36bda)

- [Cohomology](cohomology.md)

  - [`pMultiplicator(G, p): GrpPerm, RngIntElt → [ RngIntElt ]`](cohomology.md#function-pmultiplicator-grpperm-rngintelt)

  - [`pCover(G, F, p): GrpPerm, GrpFP, RngIntElt → GrpFP`](cohomology.md#function-pcover-grpperm-grpfp-rngintelt)

  - [`CohomologicalDimension(G, M, i): GrpPerm, ModRng, RngIntElt → RngIntElt`](cohomology.md#function-cohomologicaldimension-grpperm-modrng-rngintelt)

  - [`ExtensionProcess(G, M, F): GrpPerm, ModRng, GrpFP → Process`](cohomology.md#function-extensionprocess-grpperm-modrng-grpfp)

  - [`Extension(P, Q): Process → GrpFP`](cohomology.md#function-extension-process)

  - [`NextExtension(P): Process → GrpFP`](cohomology.md#function-nextextension-process)

  - [`SplitExtension(G, M, F): GrpPerm, ModRng, GrpFP → GrpFP`](cohomology.md#function-splitextension-grpperm-modrng-grpfp)

  - [`Example: Cohomology`](cohomology.md#example-ex-5181ae)

  - [`Example: Cohomology 2`](cohomology.md#example-ex-d836b8)

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

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

  - [`PermutationCharacter(G): GrpPerm → AlgChtrElt`](character-representation.md#function-permutationcharacter-grpperm)

  - [`PermutationCharacter(G, H): GrpPerm, GrpPerm → AlgChtrElt`](character-representation.md#function-permutationcharacter-grpperm-grpperm)

  - [`GModule(G, S): Grp, AlgMat → ModGrp`](character-representation.md#function-gmodule-grp-algmat)

  - [`GModule(G, A, B): Grp, Grp, Grp → ModGrp, Map`](character-representation.md#function-gmodule-grp-grp-grp)

  - [`PermutationModule(G, H, R): Grp, Grp, Rng → ModGrp`](character-representation.md#function-permutationmodule-grp-grp-rng)

  - [`PermutationModule(G, R): GrpPerm, Rng → ModGrp`](character-representation.md#function-permutationmodule-grpperm-rng)

  - [`Example: G Module`](character-representation.md#example-ex-7c0920)

- [Identification](identification.md)

  - [Identification as an Abstract Group](identification.md#identification-as-an-abstract-group)

    - [`NameSimple(G): GrpPerm → <RngIntElt, RngIntElt, RngIntElt>`](identification.md#function-namesimple-grpperm)

  - [Identification as a Permutation Group](identification.md#identification-as-a-permutation-group)

    - [`IsAlternating(G): GrpPerm → BoolElt`](identification.md#function-isalternating-grpperm)

    - [`IsSymmetric(G): GrpPerm → BoolElt`](identification.md#function-issymmetric-grpperm)

    - [`IsAltsym(G : parameters): GrpPerm → BoolElt`](identification.md#function-isaltsym-grpperm)

    - [`TwoTransitiveGroupIdentification(G): GrpPerm → Tup`](identification.md#function-twotransitivegroupidentification-grpperm)

    - [`IsEven(G): GrpPerm → BoolElt`](identification.md#function-iseven-grpperm)

    - [`RecogniseAlternatingOrSymmetric(G : parameters): Grp, RngIntElt → BoolElt, Map, Map, Map, Map, BoolElt`](identification.md#function-recognisealternatingorsymmetric-grp-rngintelt)

    - [`AlternatingOrSymmetricElementToWord(G, g): Grp, GrpElt → BoolElt, GrpSLPElt`](identification.md#function-alternatingorsymmetricelementtoword-grp-grpelt)

    - [`Example: Recognise Altsym2`](identification.md#example-ex-29961f)

    - [`RecogniseSymmetric(G, n: parameters): Grp, RngIntElt → BoolElt, Map, Map, Map, Map, BoolElt`](identification.md#function-recognisesymmetric-grp-rngintelt)

    - [`SymmetricElementToWord(G, g): Grp, GrpElt → BoolElt, GrpSLPElt`](identification.md#function-symmetricelementtoword-grp-grpelt)

    - [`RecogniseAlternating(G, n: parameters): Grp, RngIntElt → BoolElt, Map, Map, Map, Map, BoolElt`](identification.md#function-recognisealternating-grp-rngintelt)

    - [`AlternatingElementToWord(G, g): Grp, GrpElt → BoolElt, GrpSLPElt`](identification.md#function-alternatingelementtoword-grp-grpelt)

    - [`GuessAltsymDegree(G: parameters): Grp → BoolElt, MonStgElt, RngIntElt`](identification.md#function-guessaltsymdegree-grp)

    - [`Example: Recognise Altsym2`](identification.md#example-ex-51196d)

- [Base and Strong Generating Set](BSGS-base-strong-generator.md)

  - [Construction of a Base and Strong Generating Set](BSGS-base-strong-generator.md#construction-of-a-base-and-strong-generating-set)

    - [`BSGS(G): GrpPerm`](BSGS-base-strong-generator.md#function-bsgs-grpperm)

    - [`SimsSchreier(G: parameters): GrpPerm`](BSGS-base-strong-generator.md#function-simsschreier-grpperm)

    - [`RandomSchreier(G: parameters): GrpPerm`](BSGS-base-strong-generator.md#function-randomschreier-grpperm)

    - [`ToddCoxeterSchreier(G: parameters): GrpPerm`](BSGS-base-strong-generator.md#function-toddcoxeterschreier-grpperm)

    - [`SolubleSchreier(G: parameters): GrpPerm`](BSGS-base-strong-generator.md#function-solubleschreier-grpperm)

    - [`SolvableSchreier(G: parameters): GrpPerm`](BSGS-base-strong-generator.md#function-solvableschreier-grpperm)

    - [`Verify(G: parameters ): GrpPerm`](BSGS-base-strong-generator.md#function-verify-grpperm)

    - [`Example: BSGS`](BSGS-base-strong-generator.md#example-ex-12dc1e)

    - [`Example: BSFS 2`](BSGS-base-strong-generator.md#example-ex-6e86d0)

  - [Defining Values for Attributes](BSGS-base-strong-generator.md#defining-values-for-attributes)

    - [`AssertAttribute(G, "Order", n): GrpPerm, MonStgElt, RngIntElt`](BSGS-base-strong-generator.md#function-assertattribute-grpperm-monstgelt-rngintelt)

    - [`AssertAttribute(G, "Order", Q): GrpPerm, MonStgElt, [<RngIntElt, RngIntElt>]`](BSGS-base-strong-generator.md#function-assertattribute-grpperm-monstgelt-rngintelt-rngintelt)

    - [`AssertAttribute(G, "BSGS", S): GrpPerm, MonStgElt, GrpPermBSGS`](BSGS-base-strong-generator.md#function-assertattribute-grpperm-monstgelt-grppermbsgs)

    - [`Example: Random Schreier`](BSGS-base-strong-generator.md#example-ex-f89434)

  - [Accessing the Base and Strong Generating Set](BSGS-base-strong-generator.md#accessing-the-base-and-strong-generating-set)

    - [`Base(G): GrpPerm → [Elt]`](BSGS-base-strong-generator.md#function-base-grpperm)

    - [`BasePoint(G, i): GrpPerm, RngIntElt → Elt`](BSGS-base-strong-generator.md#function-basepoint-grpperm-rngintelt)

    - [`BasicOrbit(G, i): GrpPerm, RngIntElt → SetIndx`](BSGS-base-strong-generator.md#function-basicorbit-grpperm-rngintelt)

    - [`BasicOrbits(G): GrpPerm → [SetIndx]`](BSGS-base-strong-generator.md#function-basicorbits-grpperm)

    - [`BasicOrbitLength(G, i): GrpPerm, RngIntElt → RngIntElt`](BSGS-base-strong-generator.md#function-basicorbitlength-grpperm-rngintelt)

    - [`BasicOrbitLengths(G): GrpPerm → [RngIntElt]`](BSGS-base-strong-generator.md#function-basicorbitlengths-grpperm)

    - [`BasicStabilizer(G, i): GrpPerm, RngIntElt → GrpPerm`](BSGS-base-strong-generator.md#function-basicstabilizer-grpperm-rngintelt)

    - [`BasicStabiliser(G, i): GrpPerm, RngIntElt → GrpPerm`](BSGS-base-strong-generator.md#function-basicstabiliser-grpperm-rngintelt)

    - [`BasicStabilizerChain(G): GrpPerm → [GrpPerm]`](BSGS-base-strong-generator.md#function-basicstabilizerchain-grpperm)

    - [`BasicStabiliserChain(G): GrpPerm → [GrpPerm]`](BSGS-base-strong-generator.md#function-basicstabiliserchain-grpperm)

    - [`IsMemberBasicOrbit(G, i, a): GrpPerm, RngIntElt, Elt → BoolElt`](BSGS-base-strong-generator.md#function-ismemberbasicorbit-grpperm-rngintelt-elt)

    - [`NumberOfStrongGenerators(G): GrpPerm → RngIntElt`](BSGS-base-strong-generator.md#function-numberofstronggenerators-grpperm)

    - [`Nsgens(G): GrpPerm → RngIntElt`](BSGS-base-strong-generator.md#function-nsgens-grpperm)

    - [`NumberOfStrongGenerators(G, i): GrpPerm, RngIntElt → RngIntElt`](BSGS-base-strong-generator.md#function-numberofstronggenerators-grpperm-rngintelt)

    - [`Nsgens(G, i): GrpPerm, RngIntElt → RngIntElt`](BSGS-base-strong-generator.md#function-nsgens-grpperm-rngintelt)

    - [`SchreierVectors(G): GrpPerm → [ [RngIntElt] ]`](BSGS-base-strong-generator.md#function-schreiervectors-grpperm)

    - [`SchreierVector(G, i): GrpPerm, RngIntElt → [RngIntElt]`](BSGS-base-strong-generator.md#function-schreiervector-grpperm-rngintelt)

    - [`StrongGenerators(G): GrpPerm → SetIndx(GrpPermElt)`](BSGS-base-strong-generator.md#function-stronggenerators-grpperm)

    - [`StrongGenerators(G, i): GrpPerm, RngIntElt → SetIndx(GrpPermElt)`](BSGS-base-strong-generator.md#function-stronggenerators-grpperm-rngintelt)

  - [Working with a Base and Strong Generating Set](BSGS-base-strong-generator.md#working-with-a-base-and-strong-generating-set)

    - [`BaseImage(x): GrpPermElt → [Elt]`](BSGS-base-strong-generator.md#function-baseimage-grppermelt)

    - [`Permutation(G, Q): GrpPerm, [Elt] → GrpPermElt`](BSGS-base-strong-generator.md#function-permutation-grpperm-elt)

    - [`SVPermutation(G, i, a): GrpPerm, RngIntElt, Elt → GrpPermElt`](BSGS-base-strong-generator.md#function-svpermutation-grpperm-rngintelt-elt)

    - [`SVWord(G, i, a): GrpPerm, RngIntElt, Elt → GrpFPElt`](BSGS-base-strong-generator.md#function-svword-grpperm-rngintelt-elt)

    - [`Strip(H, x): GrpPerm, GrpPermElt → BoolElt, GrpPermElt, RngIntElt`](BSGS-base-strong-generator.md#function-strip-grpperm-grppermelt)

    - [`WordStrip(H, x): GrpPerm, GrpPermElt → BoolElt, GrpFPElt, RngIntElt`](BSGS-base-strong-generator.md#function-wordstrip-grpperm-grppermelt)

    - [`BaseImageWordStrip(H, x): GrpPerm, GrpPermElt → BoolElt, GrpFPElt, RngIntElt`](BSGS-base-strong-generator.md#function-baseimagewordstrip-grpperm-grppermelt)

    - [`WordInStrongGenerators(H, x): GrpPerm, GrpPermElt → GrpFPElt`](BSGS-base-strong-generator.md#function-wordinstronggenerators-grpperm-grppermelt)

  - [Modifying a Base and Strong Generating Set](BSGS-base-strong-generator.md#modifying-a-base-and-strong-generating-set)

    - [`ChangeBase(~G, Q): GrpPerm, [Elt]`](BSGS-base-strong-generator.md#function-changebase-grpperm-elt-ref)

    - [`AddNormalizingGenerator(~H, x): GrpPerm, GrpPermElt`](BSGS-base-strong-generator.md#function-addnormalizinggenerator-grpperm-grppermelt-ref)

    - [`ReduceGenerators(~G): GrpPerm`](BSGS-base-strong-generator.md#function-reducegenerators-grpperm-ref)

- [Permutation Representations of Linear Groups](linear-group.md)

  - [`AffineGeneralLinearGroup(arguments)`](linear-group.md#literal-literal-affinegenerallineargroup-affinegenerallineargroup-arguments)

  - [`AGL(arguments)`](linear-group.md#literal-literal-agl-agl-arguments)

  - [`AffineGeneralLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegenerallineargroup-rngintelt-rngintelt)

  - [`AffineGeneralLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegenerallineargroup-rngintelt-fldfin)

  - [`AffineGeneralLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegenerallineargroup-modtuprng)

  - [`AGL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agl-rngintelt-rngintelt)

  - [`AGL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agl-rngintelt-fldfin)

  - [`AGL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agl-modtuprng)

  - [`AffineSpecialLinearGroup(arguments)`](linear-group.md#literal-literal-affinespeciallineargroup-affinespeciallineargroup-arguments)

  - [`ASL(arguments)`](linear-group.md#literal-literal-asl-asl-arguments)

  - [`AffineSpecialLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinespeciallineargroup-rngintelt-rngintelt)

  - [`AffineSpecialLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinespeciallineargroup-rngintelt-fldfin)

  - [`AffineSpecialLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinespeciallineargroup-modtuprng)

  - [`ASL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asl-rngintelt-rngintelt)

  - [`ASL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asl-rngintelt-fldfin)

  - [`ASL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asl-modtuprng)

  - [`AffineGammaLinearGroup(arguments)`](linear-group.md#literal-literal-affinegammalineargroup-affinegammalineargroup-arguments)

  - [`AGammaL(arguments)`](linear-group.md#literal-literal-agammal-agammal-arguments)

  - [`AffineGammaLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegammalineargroup-rngintelt-rngintelt)

  - [`AffineGammaLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegammalineargroup-rngintelt-fldfin)

  - [`AffineGammaLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegammalineargroup-modtuprng)

  - [`AGammaL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agammal-rngintelt-rngintelt)

  - [`AGammaL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agammal-rngintelt-fldfin)

  - [`AGammaL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-agammal-modtuprng)

  - [`AffineSigmaLinearGroup(arguments)`](linear-group.md#literal-literal-affinesigmalineargroup-affinesigmalineargroup-arguments)

  - [`ASigmaL(arguments)`](linear-group.md#literal-literal-asigmal-asigmal-arguments)

  - [`AffineSigmaLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmalineargroup-rngintelt-rngintelt)

  - [`AffineSigmaLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmalineargroup-rngintelt-fldfin)

  - [`AffineSigmaLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmalineargroup-modtuprng)

  - [`ASigmaL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmal-rngintelt-rngintelt)

  - [`ASigmaL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmal-rngintelt-fldfin)

  - [`ASigmaL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmal-modtuprng)

  - [`AffineSymplecticGroup(arguments)`](linear-group.md#literal-literal-affinesymplecticgroup-affinesymplecticgroup-arguments)

  - [`ASp(arguments)`](linear-group.md#literal-literal-asp-asp-arguments)

  - [`AffineSymplecticGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesymplecticgroup-rngintelt-rngintelt)

  - [`AffineSymplecticGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesymplecticgroup-rngintelt-fldfin)

  - [`AffineSymplecticGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesymplecticgroup-modtuprng)

  - [`ASp(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asp-rngintelt-rngintelt)

  - [`ASp(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asp-rngintelt-fldfin)

  - [`ASp(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asp-modtuprng)

  - [`AffineSigmaSymplecticGroup(arguments)`](linear-group.md#literal-literal-affinesigmasymplecticgroup-affinesigmasymplecticgroup-arguments)

  - [`ASigmaSp(arguments)`](linear-group.md#literal-literal-asigmasp-asigmasp-arguments)

  - [`AffineSigmaSymplecticGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmasymplecticgroup-rngintelt-rngintelt)

  - [`AffineSigmaSymplecticGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmasymplecticgroup-rngintelt-fldfin)

  - [`AffineSigmaSymplecticGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinesigmasymplecticgroup-modtuprng)

  - [`ASigmaSp(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmasp-rngintelt-rngintelt)

  - [`ASigmaSp(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmasp-rngintelt-fldfin)

  - [`ASigmaSp(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-asigmasp-modtuprng)

  - [`ProjectiveGeneralLinearGroup(arguments)`](linear-group.md#literal-literal-projectivegenerallineargroup-projectivegenerallineargroup-arguments)

  - [`PGL(arguments)`](linear-group.md#literal-literal-pgl-pgl-arguments)

  - [`ProjectiveGeneralLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegenerallineargroup-rngintelt-rngintelt)

  - [`ProjectiveGeneralLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegenerallineargroup-rngintelt-fldfin)

  - [`ProjectiveGeneralLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegenerallineargroup-modtuprng)

  - [`PGL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgl-rngintelt-rngintelt)

  - [`PGL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgl-rngintelt-fldfin)

  - [`PGL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgl-modtuprng)

  - [`ProjectiveSpecialLinearGroup(arguments)`](linear-group.md#literal-literal-projectivespeciallineargroup-projectivespeciallineargroup-arguments)

  - [`PSL(arguments)`](linear-group.md#literal-literal-psl-psl-arguments)

  - [`ProjectiveSpecialLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespeciallineargroup-rngintelt-rngintelt)

  - [`ProjectiveSpecialLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespeciallineargroup-rngintelt-fldfin)

  - [`ProjectiveSpecialLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespeciallineargroup-modtuprng)

  - [`PSL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psl-rngintelt-rngintelt)

  - [`PSL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psl-rngintelt-fldfin)

  - [`PSL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psl-modtuprng)

  - [`ProjectiveGammaLinearGroup(arguments)`](linear-group.md#literal-literal-projectivegammalineargroup-projectivegammalineargroup-arguments)

  - [`PGammaL(arguments)`](linear-group.md#literal-literal-pgammal-pgammal-arguments)

  - [`ProjectiveGammaLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammalineargroup-rngintelt-rngintelt)

  - [`ProjectiveGammaLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammalineargroup-rngintelt-fldfin)

  - [`ProjectiveGammaLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammalineargroup-modtuprng)

  - [`PGammaL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammal-rngintelt-rngintelt)

  - [`PGammaL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammal-rngintelt-fldfin)

  - [`PGammaL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammal-modtuprng)

  - [`ProjectiveSigmaLinearGroup(arguments)`](linear-group.md#literal-literal-projectivesigmalineargroup-projectivesigmalineargroup-arguments)

  - [`PSigmaL(arguments)`](linear-group.md#literal-literal-psigmal-psigmal-arguments)

  - [`ProjectiveSigmaLinearGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmalineargroup-rngintelt-rngintelt)

  - [`ProjectiveSigmaLinearGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmalineargroup-rngintelt-fldfin)

  - [`ProjectiveSigmaLinearGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmalineargroup-modtuprng)

  - [`PSigmaL(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmal-rngintelt-rngintelt)

  - [`PSigmaL(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmal-rngintelt-fldfin)

  - [`PSigmaL(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmal-modtuprng)

  - [`ProjectiveGeneralUnitaryGroup(arguments)`](linear-group.md#literal-literal-projectivegeneralunitarygroup-projectivegeneralunitarygroup-arguments)

  - [`PGU(arguments)`](linear-group.md#literal-literal-pgu-pgu-arguments)

  - [`ProjectiveGeneralUnitaryGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralunitarygroup-rngintelt-rngintelt)

  - [`ProjectiveGeneralUnitaryGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralunitarygroup-rngintelt-fldfin)

  - [`ProjectiveGeneralUnitaryGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralunitarygroup-modtuprng)

  - [`PGU(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgu-rngintelt-rngintelt)

  - [`PGU(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgu-rngintelt-fldfin)

  - [`PGU(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgu-modtuprng)

  - [`ProjectiveSpecialUnitaryGroup(arguments)`](linear-group.md#literal-literal-projectivespecialunitarygroup-projectivespecialunitarygroup-arguments)

  - [`PSU(arguments)`](linear-group.md#literal-literal-psu-psu-arguments)

  - [`ProjectiveSpecialUnitaryGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialunitarygroup-rngintelt-rngintelt)

  - [`ProjectiveSpecialUnitaryGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialunitarygroup-rngintelt-fldfin)

  - [`ProjectiveSpecialUnitaryGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialunitarygroup-modtuprng)

  - [`PSU(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psu-rngintelt-rngintelt)

  - [`PSU(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psu-rngintelt-fldfin)

  - [`PSU(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psu-modtuprng)

  - [`ProjectiveGammaUnitaryGroup(arguments)`](linear-group.md#literal-literal-projectivegammaunitarygroup-projectivegammaunitarygroup-arguments)

  - [`PGammaU(arguments)`](linear-group.md#literal-literal-pgammau-pgammau-arguments)

  - [`ProjectiveGammaUnitaryGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammaunitarygroup-rngintelt-rngintelt)

  - [`ProjectiveGammaUnitaryGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammaunitarygroup-rngintelt-fldfin)

  - [`ProjectiveGammaUnitaryGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegammaunitarygroup-modtuprng)

  - [`PGammaU(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammau-rngintelt-rngintelt)

  - [`PGammaU(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammau-rngintelt-fldfin)

  - [`PGammaU(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgammau-modtuprng)

  - [`ProjectiveSigmaUnitaryGroup(arguments)`](linear-group.md#literal-literal-projectivesigmaunitarygroup-projectivesigmaunitarygroup-arguments)

  - [`PSigmaU(arguments)`](linear-group.md#literal-literal-psigmau-psigmau-arguments)

  - [`ProjectiveSigmaUnitaryGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmaunitarygroup-rngintelt-rngintelt)

  - [`ProjectiveSigmaUnitaryGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmaunitarygroup-rngintelt-fldfin)

  - [`ProjectiveSigmaUnitaryGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmaunitarygroup-modtuprng)

  - [`PSigmaU(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmau-rngintelt-rngintelt)

  - [`PSigmaU(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmau-rngintelt-fldfin)

  - [`PSigmaU(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmau-modtuprng)

  - [`ProjectiveSymplecticGroup(arguments)`](linear-group.md#literal-literal-projectivesymplecticgroup-projectivesymplecticgroup-arguments)

  - [`PSp(arguments)`](linear-group.md#literal-literal-psp-psp-arguments)

  - [`ProjectiveSymplecticGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesymplecticgroup-rngintelt-rngintelt)

  - [`ProjectiveSymplecticGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesymplecticgroup-rngintelt-fldfin)

  - [`ProjectiveSymplecticGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesymplecticgroup-modtuprng)

  - [`PSp(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psp-rngintelt-rngintelt)

  - [`PSp(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psp-rngintelt-fldfin)

  - [`PSp(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psp-modtuprng)

  - [`ProjectiveSigmaSymplecticGroup(arguments)`](linear-group.md#literal-literal-projectivesigmasymplecticgroup-projectivesigmasymplecticgroup-arguments)

  - [`PSigmaSp(arguments)`](linear-group.md#literal-literal-psigmasp-psigmasp-arguments)

  - [`ProjectiveSigmaSymplecticGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmasymplecticgroup-rngintelt-rngintelt)

  - [`ProjectiveSigmaSymplecticGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmasymplecticgroup-rngintelt-fldfin)

  - [`ProjectiveSigmaSymplecticGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesigmasymplecticgroup-modtuprng)

  - [`PSigmaSp(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmasp-rngintelt-rngintelt)

  - [`PSigmaSp(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmasp-rngintelt-fldfin)

  - [`PSigmaSp(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psigmasp-modtuprng)

  - [`ProjectiveGeneralOrthogonalGroup(arguments)`](linear-group.md#literal-literal-projectivegeneralorthogonalgroup-projectivegeneralorthogonalgroup-arguments)

  - [`PGO(arguments)`](linear-group.md#literal-literal-pgo-pgo-arguments)

  - [`ProjectiveGeneralOrthogonalGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroup-rngintelt-rngintelt)

  - [`ProjectiveGeneralOrthogonalGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroup-rngintelt-fldfin)

  - [`ProjectiveGeneralOrthogonalGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroup-modtuprng)

  - [`PGO(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgo-rngintelt-rngintelt)

  - [`PGO(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgo-rngintelt-fldfin)

  - [`PGO(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgo-modtuprng)

  - [`ProjectiveGeneralOrthogonalGroupPlus(arguments)`](linear-group.md#literal-literal-projectivegeneralorthogonalgroupplus-projectivegeneralorthogonalgroupplus-arguments)

  - [`PGOPlus(arguments)`](linear-group.md#literal-literal-pgoplus-pgoplus-arguments)

  - [`ProjectiveGeneralOrthogonalGroupPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupplus-rngintelt-rngintelt)

  - [`ProjectiveGeneralOrthogonalGroupPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupplus-rngintelt-fldfin)

  - [`ProjectiveGeneralOrthogonalGroupPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupplus-modtuprng)

  - [`PGOPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgoplus-rngintelt-rngintelt)

  - [`PGOPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgoplus-rngintelt-fldfin)

  - [`PGOPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgoplus-modtuprng)

  - [`ProjectiveGeneralOrthogonalGroupMinus(arguments)`](linear-group.md#literal-literal-projectivegeneralorthogonalgroupminus-projectivegeneralorthogonalgroupminus-arguments)

  - [`PGOMinus(arguments)`](linear-group.md#literal-literal-pgominus-pgominus-arguments)

  - [`ProjectiveGeneralOrthogonalGroupMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupminus-rngintelt-rngintelt)

  - [`ProjectiveGeneralOrthogonalGroupMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupminus-rngintelt-fldfin)

  - [`ProjectiveGeneralOrthogonalGroupMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivegeneralorthogonalgroupminus-modtuprng)

  - [`PGOMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgominus-rngintelt-rngintelt)

  - [`PGOMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgominus-rngintelt-fldfin)

  - [`PGOMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pgominus-modtuprng)

  - [`ProjectiveSpecialOrthogonalGroup(arguments)`](linear-group.md#literal-literal-projectivespecialorthogonalgroup-projectivespecialorthogonalgroup-arguments)

  - [`PSO(arguments)`](linear-group.md#literal-literal-pso-pso-arguments)

  - [`ProjectiveSpecialOrthogonalGroup(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroup-rngintelt-rngintelt)

  - [`ProjectiveSpecialOrthogonalGroup(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroup-rngintelt-fldfin)

  - [`ProjectiveSpecialOrthogonalGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroup-modtuprng)

  - [`PSO(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pso-rngintelt-rngintelt)

  - [`PSO(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pso-rngintelt-fldfin)

  - [`PSO(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pso-modtuprng)

  - [`ProjectiveSpecialOrthogonalGroupPlus(arguments)`](linear-group.md#literal-literal-projectivespecialorthogonalgroupplus-projectivespecialorthogonalgroupplus-arguments)

  - [`PSOPlus(arguments)`](linear-group.md#literal-literal-psoplus-psoplus-arguments)

  - [`ProjectiveSpecialOrthogonalGroupPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupplus-rngintelt-rngintelt)

  - [`ProjectiveSpecialOrthogonalGroupPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupplus-rngintelt-fldfin)

  - [`ProjectiveSpecialOrthogonalGroupPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupplus-modtuprng)

  - [`PSOPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psoplus-rngintelt-rngintelt)

  - [`PSOPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psoplus-rngintelt-fldfin)

  - [`PSOPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psoplus-modtuprng)

  - [`ProjectiveSpecialOrthogonalGroupMinus(arguments)`](linear-group.md#literal-literal-projectivespecialorthogonalgroupminus-projectivespecialorthogonalgroupminus-arguments)

  - [`PSOMinus(arguments)`](linear-group.md#literal-literal-psominus-psominus-arguments)

  - [`ProjectiveSpecialOrthogonalGroupMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupminus-rngintelt-rngintelt)

  - [`ProjectiveSpecialOrthogonalGroupMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupminus-rngintelt-fldfin)

  - [`ProjectiveSpecialOrthogonalGroupMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivespecialorthogonalgroupminus-modtuprng)

  - [`PSOMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psominus-rngintelt-rngintelt)

  - [`PSOMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psominus-rngintelt-fldfin)

  - [`PSOMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psominus-modtuprng)

  - [`ProjectiveOmega(arguments)`](linear-group.md#literal-literal-projectiveomega-projectiveomega-arguments)

  - [`POmega(arguments)`](linear-group.md#literal-literal-pomega-pomega-arguments)

  - [`ProjectiveOmega(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomega-rngintelt-rngintelt)

  - [`ProjectiveOmega(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomega-rngintelt-fldfin)

  - [`ProjectiveOmega(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomega-modtuprng)

  - [`POmega(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomega-rngintelt-rngintelt)

  - [`POmega(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomega-rngintelt-fldfin)

  - [`POmega(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomega-modtuprng)

  - [`ProjectiveOmegaPlus(arguments)`](linear-group.md#literal-literal-projectiveomegaplus-projectiveomegaplus-arguments)

  - [`POmegaPlus(arguments)`](linear-group.md#literal-literal-pomegaplus-pomegaplus-arguments)

  - [`ProjectiveOmegaPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaplus-rngintelt-rngintelt)

  - [`ProjectiveOmegaPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaplus-rngintelt-fldfin)

  - [`ProjectiveOmegaPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaplus-modtuprng)

  - [`POmegaPlus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaplus-rngintelt-rngintelt)

  - [`POmegaPlus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaplus-rngintelt-fldfin)

  - [`POmegaPlus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaplus-modtuprng)

  - [`ProjectiveOmegaMinus(arguments)`](linear-group.md#literal-literal-projectiveomegaminus-projectiveomegaminus-arguments)

  - [`POmegaMinus(arguments)`](linear-group.md#literal-literal-pomegaminus-pomegaminus-arguments)

  - [`ProjectiveOmegaMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaminus-rngintelt-rngintelt)

  - [`ProjectiveOmegaMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaminus-rngintelt-fldfin)

  - [`ProjectiveOmegaMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectiveomegaminus-modtuprng)

  - [`POmegaMinus(n, q): RngIntElt, RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaminus-rngintelt-rngintelt)

  - [`POmegaMinus(n, K): RngIntElt, FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaminus-rngintelt-fldfin)

  - [`POmegaMinus(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-pomegaminus-modtuprng)

  - [`ProjectiveSuzukiGroup(arguments)`](linear-group.md#literal-literal-projectivesuzukigroup-projectivesuzukigroup-arguments)

  - [`PSz(arguments)`](linear-group.md#literal-literal-psz-psz-arguments)

  - [`ProjectiveSuzukiGroup(q): RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesuzukigroup-rngintelt)

  - [`ProjectiveSuzukiGroup(K): FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesuzukigroup-fldfin)

  - [`ProjectiveSuzukiGroup(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-projectivesuzukigroup-modtuprng)

  - [`PSz(q): RngIntElt → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psz-rngintelt)

  - [`PSz(K): FldFin → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psz-fldfin)

  - [`PSz(V): ModTupRng → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-psz-modtuprng)

  - [`AffineGroup(M): GrpMat[FldFin] → GrpPerm, {@ ModTupFldElt  @}`](linear-group.md#function-affinegroup-grpmat-fldfin)

- [Permutation Group Databases](databases.md)

- [Ordering of Permutation Groups](canonical-gens.md)

  - [`CanonicalGenerators(G): GrpPerm → SeqEnum[GrpPermElt], GrpPermElt`](canonical-gens.md#function-canonicalgenerators-grpperm)

  - [`CanonicalInvariant(G): GrpPerm → SeqEnum[SeqEnum], Seqenum`](canonical-gens.md#function-canonicalinvariant-grpperm)

  - [`Example: Canonical Generators`](canonical-gens.md#example-ex-3ece73)

- [Ordered Partition Stacks](ordered-partn-stack.md)

  - [Construction of Ordered Partition Stacks](ordered-partn-stack.md#construction-of-ordered-partition-stacks)

    - [`OrderedPartitionStack(n): RngIntElt → StkPtnOrd`](ordered-partn-stack.md#function-orderedpartitionstack-rngintelt)

    - [`OrderedPartitionStackZero(n, h): RngIntElt, RngIntElt → StkPtnOrd`](ordered-partn-stack.md#function-orderedpartitionstackzero-rngintelt-rngintelt)

  - [Properties of Ordered Partition Stacks](ordered-partn-stack.md#properties-of-ordered-partition-stacks)

    - [`Degree(P): StkPtnOrd → RngIntElt`](ordered-partn-stack.md#function-degree-stkptnord)

    - [`Height(P): StkPtnOrd → RngIntElt`](ordered-partn-stack.md#function-height-stkptnord)

    - [`NumberOfCells(P, h): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-numberofcells-stkptnord-rngintelt)

    - [`NumberOfCells(P): StkPtnOrd → RngIntElt`](ordered-partn-stack.md#function-numberofcells-stkptnord)

    - [`CellNumber(P, h, x): StkPtnOrd, RngIntElt, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-cellnumber-stkptnord-rngintelt-rngintelt)

    - [`CellNumber(P, x): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-cellnumber-stkptnord-rngintelt)

    - [`CellSize(P, h, i): StkPtnOrd, RngIntElt, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-cellsize-stkptnord-rngintelt-rngintelt)

    - [`CellSize(P, i): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-cellsize-stkptnord-rngintelt)

    - [`Cell(P, h, i): StkPtnOrd, RngIntElt, RngIntElt → SeqEnum`](ordered-partn-stack.md#function-cell-stkptnord-rngintelt-rngintelt)

    - [`Cell(P, i): StkPtnOrd, RngIntElt → SeqEnum`](ordered-partn-stack.md#function-cell-stkptnord-rngintelt)

    - [`Random(P, i): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-random-stkptnord-rngintelt)

    - [`Representative(P, i): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-representative-stkptnord-rngintelt)

    - [`Rep(P, i): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-rep-stkptnord-rngintelt)

    - [`ParentCell(P, i): StkPtnOrd, RngIntElt → RngIntElt`](ordered-partn-stack.md#function-parentcell-stkptnord-rngintelt)

  - [Operations on Ordered Partition Stacks](ordered-partn-stack.md#operations-on-ordered-partition-stacks)

    - [`SplitCell(P, i, x): StkPtnOrd, RngIntElt, RngIntElt → BoolElt`](ordered-partn-stack.md#function-splitcell-stkptnord-rngintelt-rngintelt)

    - [`SplitCell(P, i, Q): StkPtnOrd, RngIntElt, SeqEnum[RngIntElt] → BoolElt`](ordered-partn-stack.md#function-splitcell-stkptnord-rngintelt-seqenum-rngintelt)

    - [`SplitAllByValues(P, V): StkPtnOrd, SeqEnum[RngIntElt] → BoolElt, RngIntElt`](ordered-partn-stack.md#function-splitallbyvalues-stkptnord-seqenum-rngintelt)

    - [`SplitCellsByValues(P, C, V): StkPtnOrd, SeqEnum[RngIntElt], SeqEnum[RngIntElt] → BoolElt, RngIntElt`](ordered-partn-stack.md#function-splitcellsbyvalues-stkptnord-seqenum-rngintelt-seqenum-rngintelt)

    - [`SplitCellsByValues(P, i, V): StkPtnOrd, RngIntElt, SeqEnum[RngIntElt] → BoolElt, RngIntElt`](ordered-partn-stack.md#function-splitcellsbyvalues-stkptnord-rngintelt-seqenum-rngintelt)

    - [`Pop(P): StkPtnOrd`](ordered-partn-stack.md#function-pop-stkptnord)

    - [`Pop(P, h): StkPtnOrd, RngIntElt`](ordered-partn-stack.md#function-pop-stkptnord-rngintelt)

    - [`Advance(X, L, P, h): StkPtnOrd, seqEnum[RngIntElt], StkPtnOrd, RngIntElt`](ordered-partn-stack.md#function-advance-stkptnord-seqenum-rngintelt-stkptnord-rngintelt)

    - [`Example: Ordered Partition Stack`](ordered-partn-stack.md#example-ex-23b5b0)
