# Matrix Groups over General Rings

- [Introduction](introduction.md)

  - [Introduction to Matrix Groups](introduction.md#introduction-to-matrix-groups)

  - [The Support](introduction.md#the-support)

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

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

- [Creation of a Matrix Group](creation-general-linear-group.md)

  - [Construction of the General Linear Group](creation-general-linear-group.md#construction-of-the-general-linear-group)

    - [`GeneralLinearGroup(n, R): RngIntElt, Rng → GrpMat`](creation-general-linear-group.md#function-generallineargroup-rngintelt-rng)

    - [`GL(n, R): RngIntElt, Rng → GrpMat`](creation-general-linear-group.md#function-gl-rngintelt-rng)

    - [`Example: Create`](creation-general-linear-group.md#example-ex-59ac81)

  - [Construction of a Matrix Group Element](creation-general-linear-group.md#construction-of-a-matrix-group-element)

    - [`elt< G | L >: GrpMat, List(RngElt) → GrpMatElt`](creation-general-linear-group.md#constructor-constructor-elt-grpmat-list-rngelt-grpmatelt)

    - [`G ! Q: GrpMat, [ RngElt ] → GrpMatElt`](creation-general-linear-group.md#operation-op-grpmat-rngelt)

    - [`ElementToSequence(g): GrpMatElt → [ RngElt ]`](creation-general-linear-group.md#function-elementtosequence-grpmatelt)

    - [`Eltseq(g): GrpMatElt → [ RngElt ]`](creation-general-linear-group.md#function-eltseq-grpmatelt)

    - [`Identity(G): GrpMat → GrpMatElt`](creation-general-linear-group.md#function-identity-grpmat)

    - [`Id(G): GrpMat → GrpMatElt`](creation-general-linear-group.md#function-id-grpmat)

    - [`G ! 1: GrpMat, RngIntElt → GrpMatElt`](creation-general-linear-group.md#operation-op-grpmat-rngintelt)

    - [`Example: Matrices`](creation-general-linear-group.md#example-ex-da01c4)

  - [Construction of a General Matrix Group](creation-general-linear-group.md#construction-of-a-general-matrix-group)

    - [`MatrixGroup< n, R | L >: RngIntElt, Rng, List → GrpMat`](creation-general-linear-group.md#constructor-constructor-matrixgroup-rngintelt-rng-list-grpmat)

    - [`Example: Constructor`](creation-general-linear-group.md#example-ex-383e20)

    - [`Example: GL Sylow`](creation-general-linear-group.md#example-ex-0a504f)

  - [Changing Rings](creation-general-linear-group.md#changing-rings)

    - [`ChangeRing(G, S): GrpMat, Rng → GrpMat, Map`](creation-general-linear-group.md#function-changering-grpmat-rng)

    - [`ChangeRing(G, S, f): GrpMat, Rng, Map → GrpMat, Map`](creation-general-linear-group.md#function-changering-grpmat-rng-map)

    - [`RestrictField(G, S): GrpMat, FldFin → GrpMat, Map`](creation-general-linear-group.md#function-restrictfield-grpmat-fldfin)

    - [`ExtendField(G, L): GrpMat, FldFin → GrpMat, Map`](creation-general-linear-group.md#function-extendfield-grpmat-fldfin)

  - [Coercion between Matrix Structures](creation-general-linear-group.md#coercion-between-matrix-structures)

    - [`R ! g: AlgMat, GrpMatElt → RngMatElt`](creation-general-linear-group.md#operation-op-algmat-grpmatelt)

    - [`G ! r: GrpMat, AlgMatElt → GrpMatElt`](creation-general-linear-group.md#operation-op-grpmat-algmatelt)

    - [`M ! g: ModMatRng, GrpMatElt → ModMatRngElt`](creation-general-linear-group.md#operation-op-modmatrng-grpmatelt)

    - [`G ! m: GrpMat, ModMatRngElt → GrpMatElt`](creation-general-linear-group.md#operation-op-grpmat-modmatrngelt)

    - [`ProjectionLocalization(g, pi): GrpMatElt, Map → GrpMatElt`](creation-general-linear-group.md#function-projectionlocalization-grpmatelt-map)

  - [Accessing Associated Structures](creation-general-linear-group.md#accessing-associated-structures)

    - [`G . i: GrpMat, RngIntElt → GrpMatElt`](creation-general-linear-group.md#operation-operation-grpmat-rngintelt-grpmatelt)

    - [`Degree(G): GrpMat → RngIntElt`](creation-general-linear-group.md#function-degree-grpmat)

    - [`Generators(G): GrpMat → { GrpMatElt }`](creation-general-linear-group.md#function-generators-grpmat)

    - [`NumberOfGenerators(G): GrpMat → RngIntElt`](creation-general-linear-group.md#function-numberofgenerators-grpmat)

    - [`Ngens(G): GrpMat → RngIntElt`](creation-general-linear-group.md#function-ngens-grpmat)

    - [`CoefficientRing(G): GrpMat → Rng`](creation-general-linear-group.md#function-coefficientring-grpmat)

    - [`BaseRing(G): GrpMat → Rng`](creation-general-linear-group.md#function-basering-grpmat)

    - [`RSpace(G): GrpMat → ModTupRng`](creation-general-linear-group.md#function-rspace-grpmat)

    - [`VectorSpace(G): GrpMat → ModTupFld`](creation-general-linear-group.md#function-vectorspace-grpmat)

    - [`GModule(G): GrpMat → ModGrp`](creation-general-linear-group.md#function-gmodule-grpmat)

    - [`Generic(G): GrpMat → GrpMat`](creation-general-linear-group.md#function-generic-grpmat)

    - [`Parent(G): GrpMatElt → GrpMat`](creation-general-linear-group.md#function-parent-grpmatelt)

- [Homomorphisms](homomorphism.md)

  - [`hom<G -> H | L>: GrpMat, Grp, List → Map`](homomorphism.md#constructor-constructor-hom-grpmat-grp-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): GrpMat, GrpMat, SeqEnum[GrpMatElt] → Bool, Map`](homomorphism.md#function-ishomomorphism-grpmat-grpmat-seqenum-grpmatelt)

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

  - [`PermutationRepresentation(G): GrpMat → Map, GrpPerm, GrpMat`](homomorphism.md#function-permutationrepresentation-grpmat)

  - [`Example: Perm Rep`](homomorphism.md#example-ex-2bcb12)

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

    - [`DirectProduct(G, H): GrpMat, GrpMat → GrpMat`](homomorphism.md#function-directproduct-grpmat-grpmat)

    - [`DirectProduct(Q): [ GrpMat ] → GrpMat`](homomorphism.md#function-directproduct-grpmat)

    - [`SemiLinearGroup(G, S): GrpMat, FldFin → GrpMat`](homomorphism.md#function-semilineargroup-grpmat-fldfin)

    - [`TensorWreathProduct(G, H): GrpMat, GrpPerm → GrpMat`](homomorphism.md#function-tensorwreathproduct-grpmat-grpperm)

    - [`WreathProduct(G, H): GrpMat, GrpPerm → GrpMat`](homomorphism.md#function-wreathproduct-grpmat-grpperm)

    - [`Example: Constructions`](homomorphism.md#example-ex-112242)

- [Operations on Matrices](operation-element.md)

  - [Arithmetic with Matrices](operation-element.md#arithmetic-with-matrices)

    - [`g * h: GrpMatElt, GrpMatElt → GrpMatElt`](operation-element.md#operation-op-times-grpmatelt-grpmatelt)

    - [`g ^ n: GrpMatElt, RngIntElt → GrpMatElt`](operation-element.md#operation-op-pow-grpmatelt-rngintelt)

    - [`g / h: GrpMatElt, GrpMatElt → GrpMatElt`](operation-element.md#operation-op-div-grpmatelt-grpmatelt)

    - [`g ^ h: GrpMatElt, GrpMatElt → GrpMatElt`](operation-element.md#operation-op-pow-grpmatelt-grpmatelt)

    - [`(g, h): GrpMatElt, GrpMatElt → GrpMatElt`](operation-element.md#literal-literal-g-h-grpmatelt-grpmatelt-grpmatelt)

    - [`(g₁, ..., gᵣ): GrpMatElt, ..., GrpMatElt → GrpMatElt`](operation-element.md#literal-literal-g1-gr-grpmatelt-grpmatelt-grpmatelt)

    - [`Example: Arithmetic`](operation-element.md#example-ex-383e92)

  - [Predicates for Matrices](operation-element.md#predicates-for-matrices)

    - [`g eq h: GrpMatElt, GrpMatElt → BoolElt`](operation-element.md#operation-op-eq-grpmatelt-grpmatelt)

    - [`g ne h: GrpMatElt, GrpMatElt → BoolElt`](operation-element.md#operation-op-ne-grpmatelt-grpmatelt)

    - [`IsIdentity(g): GrpMatElt → BoolElt`](operation-element.md#function-isidentity-grpmatelt)

    - [`IsId(g): GrpMatElt → BoolElt`](operation-element.md#function-isid-grpmatelt)

    - [`IsScalar(g): GrpMatElt → BoolElt`](operation-element.md#function-isscalar-grpmatelt)

  - [Matrix Invariants](operation-element.md#matrix-invariants)

    - [`Degree(g): GrpMatElt → RngIntElt`](operation-element.md#function-degree-grpmatelt)

    - [`HasFiniteOrder(g): GrpMatElt → BoolElt, RngIntElt`](operation-element.md#function-hasfiniteorder)

    - [`Order(g): GrpMatElt → RngIntElt, BoolElt`](operation-element.md#function-order-grpmatelt)

    - [`FactoredOrder(g): GrpMatElt → [ <RngIntElt, RngIntElt> ], BoolElt`](operation-element.md#function-factoredorder-grpmatelt)

    - [`ProjectiveOrder(g): GrpMatElt → RngIntElt, RngElt`](operation-element.md#function-projectiveorder-grpmatelt)

    - [`FactoredProjectiveOrder(A): AlgMatElt → [ <RngIntElt, RngIntElt> ], RngElt`](operation-element.md#function-factoredprojectiveorder-algmatelt)

    - [`CentralOrder(g : parameters): GrpMatElt → RngIntElt, BoolElt`](operation-element.md#function-centralorder-grpmatelt)

    - [`CentralOrder(g): GrpPermElt → RngIntElt`](operation-element.md#function-centralorder-grppermelt)

    - [`Determinant(g): GrpMatElt → RngElt`](operation-element.md#function-determinant-grpmatelt)

    - [`Trace(g): GrpMatElt → RngElt`](operation-element.md#function-trace-grpmatelt)

    - [`CharacteristicPolynomial(g: parameters): GrpMatElt → RngPolElt`](operation-element.md#function-characteristicpolynomial-grpmatelt)

    - [`MinimalPolynomial(g): GrpMatElt → RngPolElt`](operation-element.md#function-minimalpolynomial-grpmatelt)

    - [`Example: Invariants`](operation-element.md#example-ex-cc263c)

- [Global Properties](global-properties.md)

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

    - [`IsFinite(G): GrpMat → Bool, RngIntElt`](global-properties.md#function-isfinite-grpmat)

    - [`Order(G): GrpMat → RngIntElt`](global-properties.md#function-order-grpmat)

    - [`# G: GrpMat → RngIntElt`](global-properties.md#operation-operation-grpmat-rngintelt)

    - [`FactoredOrder(G): GrpMat → [ <RngIntElt, RngIntElt> ]`](global-properties.md#function-factoredorder-grpmat)

    - [`Exponent(G): GrpMat → RngIntElt`](global-properties.md#function-exponent-grpmat)

    - [`Example: Order`](global-properties.md#example-ex-731a24)

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

    - [`g in G: GrpMatElt, GrpMat → BoolElt`](global-properties.md#operation-op-in-grpmatelt-grpmat)

    - [`g notin G: GrpMatElt, GrpMat → BoolElt`](global-properties.md#operation-op-notin-grpmatelt-grpmat)

    - [`S subset G: { GrpMatElt }, GrpMat → BoolElt`](global-properties.md#operation-op-subset-grpmatelt-grpmat)

    - [`H subset G: GrpMat, GrpMat → BoolElt`](global-properties.md#operation-op-subset-grpmat-grpmat)

    - [`IsSubgroup(H,G): GrpMat, GrpMat → BoolElt`](global-properties.md#function-issubgroup-grpmat-grpmat)

    - [`S notsubset G: { GrpMatElt }, GrpMat → BoolElt`](global-properties.md#operation-operation-notsubset-grpmatelt-grpmat-boolelt)

    - [`H notsubset G: GrpMat, GrpMat → BoolElt`](global-properties.md#operation-operation-notsubset-grpmat-grpmat-boolelt)

    - [`H eq G: GrpMat, GrpMat → BoolElt`](global-properties.md#operation-op-eq-grpmat-grpmat)

    - [`H ne G: GrpMat, GrpMat → BoolElt`](global-properties.md#operation-op-ne-grpmat-grpmat)

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

    - [`NumberingMap(G): GrpMat → Map`](global-properties.md#function-numberingmap-grpmat)

    - [`RandomProcess(G): GrpMat → Process`](global-properties.md#function-randomprocess-grpmat)

    - [`Random(G: parameters): GrpMat → GrpMatElt`](global-properties.md#function-random-grpmat)

    - [`Random(P): Process → GrpMatElt`](global-properties.md#function-random-process)

    - [`Example: Random`](global-properties.md#example-ex-b51498)

- [Abstract Group Predicates](abstract-group.md)

  - [`IsAbelian(G): GrpMat → BoolElt`](abstract-group.md#function-isabelian-grpmat)

  - [`IsCyclic(G): GrpMat → BoolElt`](abstract-group.md#function-iscyclic-grpmat)

  - [`IsElementaryAbelian(G): GrpMat → BoolElt`](abstract-group.md#function-iselementaryabelian-grpmat)

  - [`IsNilpotent(G): GrpMat → BoolElt`](abstract-group.md#function-isnilpotent-grpmat)

  - [`IsSoluble(G): GrpMat → BoolElt`](abstract-group.md#function-issoluble-grpmat)

  - [`IsSolvable(G): GrpMat → BoolElt`](abstract-group.md#function-issolvable-grpmat)

  - [`IsPerfect(G): GrpMat → BoolElt`](abstract-group.md#function-isperfect-grpmat)

  - [`IsSimple(G): GrpMat → BoolElt`](abstract-group.md#function-issimple-grpmat)

  - [`Example: Order`](abstract-group.md#example-ex-3d20f4)

- [Conjugacy](conjugate.md)

  - [`Class(H, x): GrpMat, GrpMatElt → { GrpMatElt }`](conjugate.md#function-class-grpmat-grpmatelt)

  - [`Conjugates(H, x): GrpMat, GrpMatElt → { GrpMatElt }`](conjugate.md#function-conjugates-grpmat-grpmatelt)

  - [`ClassMap(G): GrpMat → Map`](conjugate.md#function-classmap-grpmat)

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

  - [`Classes(G: parameters): GrpMat → [ < RngIntElt, RngIntElt, GrpMatElt > ]`](conjugate.md#function-classes-grpmat)

  - [`ClassRepresentative(G, x): GrpMat, GrpMatElt → GrpMatElt`](conjugate.md#function-classrepresentative-grpmat-grpmatelt)

  - [`ClassRepresentative(G, i): GrpMat, RngIntElt → GrpMatElt`](conjugate.md#function-classrepresentative-grpmat-rngintelt)

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

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

  - [`ClassRepresentativeFromInvariants(G, p, h, t): GrpMat, SeqEnum, SeqEnum, FldFinElt → GrpMatElt`](conjugate.md#function-classrepresentativefrominvariants-grpmat-seqenum-seqenum-fldfinelt)

  - [`IsConjugate(G, g, h): GrpMat, GrpMatElt, GrpMatElt → BoolElt, GrpMatElt | Unass`](conjugate.md#function-isconjugate-grpmat-grpmatelt-grpmatelt)

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

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

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

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

  - [`Example: Rational Matrix Group Database`](conjugate.md#example-ex-f393ee)

  - [Conjugacy in Classical Groups](conjugate.md#conjugacy-in-classical-groups)

    - [`DualPolynomial(f): RngUPolElt → RngUPolElt`](conjugate.md#function-dualpolynomial-rngupolelt)

    - [`StarIrreduciblePolynomials(F,d): FldFin, RngIntElt → SeqEnum`](conjugate.md#function-starirreduciblepolynomials-fldfin-rngintelt)

    - [`PhiDual(f,phi): RngUPolElt → RngUPolElt`](conjugate.md#function-phidual-rngupolelt)

    - [`PhiIrreduciblePolynomials(F,d): FldFin, RngIntElt → SeqEnum[Tup]`](conjugate.md#function-phiirreduciblepolynomials-fldfin-rngintelt)

    - [`ExtendedSymplecticGroup(n,q,m): RngIntElt, RngIntElt, RngIntElt → GrpMat`](conjugate.md#function-extendedsymplecticgroup-rngintelt-rngintelt-rngintelt)

    - [`ExtendedSp(n,q,m): RngIntElt, RngIntElt, RngIntElt → GrpMat`](conjugate.md#function-extendedsp-rngintelt-rngintelt-rngintelt)

    - [`IndexOfSp(G): GrpMat → RngIntElt`](conjugate.md#function-indexofsp-grpmat)

    - [`TildeDualPolynomial(f): RngUPolElt → RngUPolElt`](conjugate.md#function-tildedualpolynomial-rngupolelt)

    - [`TildeIrreduciblePolynomials(q,d): RngIntElt, RngIntElt → SeqEnum`](conjugate.md#function-tildeirreduciblepolynomials-rngintelt-rngintelt)

    - [`ExtendedSpecialUnitaryGroup(n,q,m): RngIntElt, RngIntElt, RngIntElt → GrpMat`](conjugate.md#function-extendedspecialunitarygroup-rngintelt-rngintelt-rngintelt)

    - [`ExtendedSU(n,q,m): RngIntElt, RngIntElt, RngIntElt → GrpMat`](conjugate.md#function-extendedsu-rngintelt-rngintelt-rngintelt)

    - [`IndexOfSU(G): GrpMat → RngIntElt`](conjugate.md#function-indexofsu-grpmat)

    - [`ClassicalConjugacyClasses(G): GrpMat → SeqEnum, SetIndx`](conjugate.md#function-classicalconjugacyclasses-grpmat)

    - [`ClassicalClasses(G): GrpMat → SeqEnum, SetIndx`](conjugate.md#function-classicalclasses-grpmat)

    - [`ClassicalConjugacyClasses(type,d,q): MonStgElt, RngIntElt, RngIntElt → SeqEnum, SetIndx`](conjugate.md#function-classicalconjugacyclasses-monstgelt-rngintelt-rngintelt)

    - [`ClassicalClasses(type,d,q): MonStgElt, RngIntElt, RngIntElt → SeqEnum, SetIndx`](conjugate.md#function-classicalclasses-monstgelt-rngintelt-rngintelt)

    - [`ClassicalCentralizer(G,g): GrpMat, GrpMatElt → GrpMat`](conjugate.md#function-classicalcentralizer-grpmat-grpmatelt)

    - [`ClassicalCentraliserOrder(G,g): GrpMat, GrpMatElt → RngIntEltFact`](conjugate.md#function-classicalcentraliserorder-grpmat-grpmatelt)

    - [`ClassicalClassSize(G,g): GrpMat, GrpMatElt → RngIntElt`](conjugate.md#function-classicalclasssize-grpmat-grpmatelt)

    - [`ClassicalIsConjugate(G,g,h): GrpMat, GrpMatElt, GrpMatElt → BoolElt, GrpMatElt`](conjugate.md#function-classicalisconjugate-grpmat-grpmatelt-grpmatelt)

    - [`Example: Class Calculations I`](conjugate.md#example-ex-99ff8c)

    - [`ClassicalClassMap(G): GrpMat → Map`](conjugate.md#function-classicalclassmap-grpmat)

    - [`ClassicalClassMap(G,C,L): GrpMat, SeqEnum, SetIndx → Map`](conjugate.md#function-classicalclassmap-grpmat-seqenum-setindx)

    - [`ClassesForFixedSemisimple(G,x): GrpMat, GrpMatElt → SeqEnum, SetIndx`](conjugate.md#function-classesforfixedsemisimple-grpmat-grpmatelt)

    - [`IsometryGroupClassLabel(type, g): MonStgElt, GrpMatElt → SetMulti`](conjugate.md#function-isometrygroupclasslabel-monstgelt-grpmatelt)

    - [`Example: Class Calculations`](conjugate.md#example-ex-af187c)

    - [`Example: Class Calculations III`](conjugate.md#example-ex-745ee8)

    - [`Example: Invlayer`](conjugate.md#example-ex-fd370f)

    - [`UnipotentClasses(type,d,q): MonStgElt, RngIntElt, RngIntElt → SeqEnum, SeqEnum`](conjugate.md#function-unipotentclasses-monstgelt-rngintelt-rngintelt)

    - [`UnipotentClasses(type,d,F): MonStgElt, RngIntElt, FldFin → SeqEnum, SeqEnum`](conjugate.md#function-unipotentclasses-monstgelt-rngintelt-fldfin)

    - [`SemisimpleClasses(type,d,q): MonStgElt, RngIntElt, RngIntElt → SeqEnum`](conjugate.md#function-semisimpleclasses-monstgelt-rngintelt-rngintelt)

    - [`SemisimpleClasses(type,d,F): MonStgElt, RngIntElt, FldFin → SeqEnum`](conjugate.md#function-semisimpleclasses-monstgelt-rngintelt-fldfin)

    - [`IsometryGroupNumberOfClasses(type, n): MonStgElt, RngIntElt → RngUPolElt`](conjugate.md#function-isometrygroupnumberofclasses-monstgelt-rngintelt)

    - [`Example: Class Calculations IV`](conjugate.md#example-ex-c14a80)

    - [`ProjectiveClassicalClasses(type,d,q): MonStgElt, RngIntElt, RngIntElt → SeqEnum, GrpPerm, HomGrp, SeqEnum`](conjugate.md#function-projectiveclassicalclasses-monstgelt-rngintelt-rngintelt)

    - [`ProjectiveClassicalCentraliser(G, g): GrpMat, GrpMatElt → GrpMat`](conjugate.md#function-projectiveclassicalcentraliser-grpmat-grpmatelt)

    - [`ProjectiveClassicalIsConjugate(G, g, h): GrpMat, GrpMatElt, GrpMatElt → BoolElt, GrpMatElt`](conjugate.md#function-projectiveclassicalisconjugate-grpmat-grpmatelt-grpmatelt)

    - [`Example: Projective Classes`](conjugate.md#example-ex-fbd04d)

    - [`Example: Proj With Matrices`](conjugate.md#example-ex-b45e6a)

    - [`SpinConjugacyClasses(G): GrpMat → SeqEnum, SeqEnum`](conjugate.md#function-spinconjugacyclasses-grpmat)

    - [`SpinClasses(G): GrpMat → SeqEnum, SeqEnum`](conjugate.md#function-spinclasses-grpmat)

    - [`SpinCentralizer(G,g): GrpMat, GrpMatElt → GrpMat`](conjugate.md#function-spincentralizer-grpmat-grpmatelt)

    - [`SpinIsConjugate(G,g,h): GrpMat, GrpMatElt, GrpMatElt → BoolElt, GrpMatElt`](conjugate.md#function-spinisconjugate-grpmat-grpmatelt-grpmatelt)

    - [`SpinClassMap(G): GrpMat → Map`](conjugate.md#function-spinclassmap-grpmat)

- [Subgroups](subgroups.md)

  - [Construction of Subgroups](subgroups.md#construction-of-subgroups)

    - [`sub<G | L>: GrpMat, List → GrpMat`](subgroups.md#constructor-constructor-sub-grpmat-list-grpmat)

    - [`ncl<G | L>: GrpMat, List → GrpMat`](subgroups.md#constructor-constructor-ncl-grpmat-list-grpmat)

    - [`Example: Subgroups`](subgroups.md#example-ex-494271)

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

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

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

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

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

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

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

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

    - [`H ^ g: GrpMat, GrpMatElt → GrpMat`](subgroups.md#operation-op-pow-grpmat-grpmatelt)

    - [`Conjugate(H, g): GrpMat, GrpMatElt → GrpMat`](subgroups.md#function-conjugate-grpmat-grpmatelt)

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

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

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

    - [`Centraliser(G, g): GrpMat, GrpMatElt → GrpMat`](subgroups.md#function-centraliser-grpmat-grpmatelt)

    - [`Centralizer(G, g): GrpMat, GrpMatElt → GrpMat`](subgroups.md#function-centralizer-grpmat-grpmatelt)

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

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

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

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

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

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

    - [`GLNormalizer(H : parameter): GrpMat → GrpMat`](subgroups.md#function-glnormalizer-grpmat)

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

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

    - [`pCore(G, p): GrpMat, RngIntElt → GrpMat`](subgroups.md#function-pcore-grpmat-rngintelt)

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

    - [`LowIndexSubgroups(G,n: parameters): GrpMat, RngIntElt → SeqEnum`](subgroups.md#function-lowindexsubgroups-grpmat-rngintelt)

    - [`LowIndexSubgroups(G,t: parameters): GrpMat, Tup → SeqEnum`](subgroups.md#function-lowindexsubgroups-grpmat-tup)

    - [`LowIndexSubgroups(G, N, n: parameters): GrpMat, RngIntElt → SeqEnum`](subgroups.md#function-lowindexsubgroups-grpmat-rngintelt-2)

    - [`LowIndexSubgroups(G, N, t: parameters): GrpMat, Tup → SeqEnum`](subgroups.md#function-lowindexsubgroups-grpmat-tup-2)

    - [`LowIndexSubgroupsCT(G, R : parameters): GrpMat, RngIntElt → [ GrpMat ]`](subgroups.md#function-lowindexsubgroupsct-grpmat-rngintelt)

    - [`LowIndexSubgroupsCT(G, R: parameters): GrpMat, <RngIntElt, RngIntElt> → [ GrpMat ]`](subgroups.md#function-lowindexsubgroupsct-grpmat-rngintelt-rngintelt)

    - [`Example: Low Index Matrix Group`](subgroups.md#example-ex-39331d)

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

    - [`SubgroupClasses(G: parameters): GrpMat → [ rec< GrpMat, RngIntElt, RngIntElt, GrpFP> ]`](subgroups.md#function-subgroupclasses-grpmat)

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

    - [`MaximalSubgroups(G: parameters): GrpMat → [ rec< GrpMat, RngIntElt, RngIntElt, GrpFP> ]`](subgroups.md#function-maximalsubgroups-grpmat)

    - [`MaximalSubgroups(G,N: parameters): GrpMat, GrpMat → [ rec< GrpMat, RngIntElt, RngIntElt, GrpFP> ]`](subgroups.md#function-maximalsubgroups-grpmat-grpmat)

    - [`SubgroupsLift(G, A, B, Q: parameters): GrpMat, GrpMat, GrpMat, SeqEnum → SeqEnum`](subgroups.md#function-subgroupslift-grpmat-grpmat-grpmat-seqenum)

    - [`IsConjugate(G, H, K): GrpMat, GrpMat, GrpMat → BoolElt, GrpMatElt | Unass`](subgroups.md#function-isconjugate-grpmat-grpmat-grpmat)

    - [`IsGLConjugate(H, K): GrpMat, GrpMat → BoolElt, GrpMatElt | Unass`](subgroups.md#function-isglconjugate-grpmat-grpmat)

- [Quotient Groups](quotient.md)

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

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

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

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

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

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

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

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

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

    - [`SolvableQuotient(G): GrpMat → GrpPC, Map`](quotient.md#function-solvablequotient-grpmat)

    - [`SolubleQuotient(G): GrpMat → GrpPC, Map`](quotient.md#function-solublequotient-grpmat)

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

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

- [Matrix Group Actions](actions.md)

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

    - [`u * g: ModTupRngElt, GrpMatElt → ModTupRngElt`](actions.md#operation-op-times-modtuprngelt-grpmatelt)

    - [`y ^ g: Elt, GrpMatElt → Elt`](actions.md#operation-op-pow-elt-grpmatelt)

    - [`y ^ G: Elt, GrpMat → SetEnum`](actions.md#operation-op-pow-elt-grpmat)

    - [`Orbit(G, y): GrpMat, Elt → SetEnum`](actions.md#function-orbit-grpmat-elt)

    - [`OrbitBounded(G, y, b): GrpMat, Elt, RngIntElt → BoolElt, SetEnum`](actions.md#function-orbitbounded-grpmat-elt-rngintelt)

    - [`Orbits(G): GrpMat → [ SetIndx ]`](actions.md#function-orbits-grpmat)

    - [`LineOrbits(G): GrpMat → [ SetIndx ]`](actions.md#function-lineorbits-grpmat)

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

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

    - [`Example: Orbits`](actions.md#example-ex-3be539)

  - [Orbit and Stabilizer Functions for Large Groups](actions.md#orbit-and-stabilizer-functions-for-large-groups)

    - [`OrbitsOfSpaces(G, k): GrpMat, RngIntElt → SeqEnum`](actions.md#function-orbitsofspaces-grpmat-rngintelt)

    - [`NumberOfFixedSpaces(x, s): GrpMatElt, RngIntElt → RngIntElt`](actions.md#function-numberoffixedspaces-grpmatelt-rngintelt)

    - [`NumberOfFixedSpaces(x, s): AlgMatElt, RngIntElt → RngIntElt`](actions.md#function-numberoffixedspaces-algmatelt-rngintelt)

    - [`Example: Orbits Of Spaces`](actions.md#example-ex-dc691e)

    - [`EstimateOrbit(G, v: parameters): GrpMat, ModTupFldElt → RngIntElt, RngIntElt, RngIntElt`](actions.md#function-estimateorbit-grpmat-modtupfldelt)

    - [`EstimateOrbit(G, U: parameters): GrpMat, ModTupFld → RngIntElt, RngIntElt, RngIntElt`](actions.md#function-estimateorbit-grpmat-modtupfld)

    - [`ApproximateStabiliser(G, A, U: parameters): GrpMat, GrpMat, ModTupFld → GrpMat, GrpMat, RngIntElt, RngIntElt, RngIntElt`](actions.md#function-approximatestabiliser-grpmat-grpmat-modtupfld)

    - [`Example: Orbits Of Spaces`](actions.md#example-ex-32857e)

    - [`StabiliserOfSpaces(Q): SeqEnum → GrpMat, SeqEnum`](actions.md#function-stabiliserofspaces-seqenum)

    - [`Example: Stabiliser Of Spaces`](actions.md#example-ex-3c31f0)

    - [`IsUnipotent(G): GrpMat → BoolElt`](actions.md#function-isunipotent-grpmat)

    - [`UnipotentStabiliser(G, U: parameters): GrpMat, ModTupFld → GrpMat, ModTupFld, GrpMatElt, GrpSLPElt`](actions.md#function-unipotentstabiliser-grpmat-modtupfld)

    - [`Example: Unipotent Stabiliser`](actions.md#example-ex-78b096)

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

    - [`OrbitAction(G, T): GrpMat, Elt → Hom(Grp), GrpPerm, GrpMat`](actions.md#function-orbitaction-grpmat-elt)

    - [`OrbitActionBounded(G, T, b): GrpMat, Elt, RngIntElt → BoolElt, Hom(Grp), GrpPerm, GrpMat`](actions.md#function-orbitactionbounded-grpmat-elt-rngintelt)

    - [`OrbitImage(G, T): GrpMat, Set → GrpPerm, SetIndx`](actions.md#function-orbitimage-grpmat-set)

    - [`OrbitImageBounded(G, T, b): GrpMat, Set, RngIntElt → BoolElt, GrpPerm, SetIndx`](actions.md#function-orbitimagebounded-grpmat-set-rngintelt)

    - [`OrbitKernel(G, T): GrpMat, Set → GrpMat`](actions.md#function-orbitkernel-grpmat-set)

    - [`OrbitKernelBounded(G, T, b): GrpMat, Set, RngIntElt → BoolElt, GrpMat`](actions.md#function-orbitkernelbounded-grpmat-set-rngintelt)

    - [`Example: Actions`](actions.md#example-ex-2b1162)

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

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

    - [`CosetImage(G, H): GrpMat, GrpMat → GrpPerm`](actions.md#function-cosetimage-grpmat-grpmat)

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

    - [`Example: Coset Action`](actions.md#example-ex-71335a)

  - [Action on the Natural $G$-Module](actions.md#action-on-the-natural-g-module)

    - [`GModule(G): GrpMat → ModGrp`](actions.md#function-gmodule-grpmat-2)

    - [`IsIrreducible(G): GrpMat → BoolElt, ModGrp`](actions.md#function-isirreducible-grpmat)

    - [`SubmoduleAction(G, S): GrpMat → Map, GrpMat`](actions.md#function-submoduleaction-grpmat)

    - [`SubmoduleImage(G, S): GrpMat → GrpMat`](actions.md#function-submoduleimage-grpmat)

    - [`QuotientModuleAction(G, S): GrpMat → Map, GrpMat`](actions.md#function-quotientmoduleaction-grpmat)

    - [`QuotientModuleImage(G, S): GrpMat → GrpMat`](actions.md#function-quotientmoduleimage-grpmat)

    - [`IsAbsolutelyIrreducible(G): GrpMat → BoolElt`](actions.md#function-isabsolutelyirreducible-grpmat)

    - [`AbsoluteRepresentation(G): GrpMat → GrpMat, Map`](actions.md#function-absoluterepresentation-grpmat)

    - [`MinimalField(G): GrpMat → FldFin`](actions.md#function-minimalfield-grpmat)

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

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

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

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

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

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

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

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

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

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

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

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

    - [`H ^ G: GrpMat → GrpMat`](characteristic-subgroup-normal-structure.md#operation-op-pow-grpmat)

    - [`NormalClosure(G, H): GrpMat → GrpMat`](characteristic-subgroup-normal-structure.md#function-normalclosure-grpmat)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    - [`ChiefSeries(G): GrpMat → [ GrpMat ], [ <RngIntElt, RngIntElt, RngIntElt, Rng IntElt> ]`](characteristic-subgroup-normal-structure.md#function-chiefseries-grpmat)

    - [`Example: Composition Factors`](characteristic-subgroup-normal-structure.md#example-ex-76e310)

- [Coset Tables and Transversals](coset-table-transversal.md)

  - [`CosetTable(G, H): Grp, Grp → Hom(Grp)`](coset-table-transversal.md#function-cosettable-grp-grp)

  - [`Transversal(G, H): GrpMat, GrpMat → { @ GrpMatElt  @}, Map`](coset-table-transversal.md#function-transversal-grpmat-grpmat)

  - [`RightTransversal(G, H): GrpMat, GrpMat → { @ GrpMatElt  @}, Map`](coset-table-transversal.md#function-righttransversal-grpmat-grpmat)

- [Presentations](finitely_presented_group.md)

  - [Presentations](finitely_presented_group.md#id1)

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

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

  - [Matrices as Words](finitely_presented_group.md#matrices-as-words)

    - [`WordGroup(G): GrpMat → GrpSLP, Map`](finitely_presented_group.md#function-wordgroup-grpmat)

    - [`InverseWordMap(G): GrpMat → Map`](finitely_presented_group.md#function-inversewordmap-grpmat)

    - [`WordInGenerators(G, g : parameters): GrpMat, GrpMatElt → GrpFPElt`](finitely_presented_group.md#function-wordingenerators-grpmat-grpmatelt)

- [Automorphism Groups](automorphisms.md)

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

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

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

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

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

  - [`Example: Isomorphism`](automorphisms.md#example-ex-ea03aa)

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

  - [`LinearCharacters(G): GrpMat → [ Chtr ]`](character-representation.md#function-linearcharacters-grpmat)

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

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

  - [`GModule(G): GrpMat → ModGrp`](character-representation.md#function-gmodule-grpmat-3)

  - [`GModule(G, A): GrpMat, AlgMat → ModGrp`](character-representation.md#function-gmodule-grpmat-algmat)

  - [`GModule(G, Q): GrpMat, [ AlgMatElt ] → ModGrp`](character-representation.md#function-gmodule-grpmat-algmatelt)

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

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

  - [`ChangeOfBasisMatrix(G, S): GrpMat, ModGrp → AlgMatElt`](character-representation.md#function-changeofbasismatrix-grpmat-modgrp)

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

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

  - [Introduction](BSGS-base-strong-generator.md#introduction)

  - [Controlling Selection of a Base](BSGS-base-strong-generator.md#controlling-selection-of-a-base)

    - [`GoodBasePoints(G: parameters): GrpMat → []`](BSGS-base-strong-generator.md#function-goodbasepoints-grpmat)

    - [`AssertAttribute(G, "Base", B): GrpMat, MonStgElt, Tup`](BSGS-base-strong-generator.md#function-assertattribute-grpmat-monstgelt-tup)

    - [`HasAttribute(G, "Base"): GrpMat, MonStgElt → BoolElt, Tup`](BSGS-base-strong-generator.md#function-hasattribute-grpmat-monstgelt)

    - [`AssertAttribute({GrpMat, }{"FirstBasicOrbitBound", n}): Cat, MonStgElt, RngIntElt`](BSGS-base-strong-generator.md#function-assertattribute-cat-monstgelt-rngintelt)

    - [`HasAttribute({GrpMat, }{"FirstBasicOrbitBound"}): Cat, MonStgElt → BoolElt, RngIntElt`](BSGS-base-strong-generator.md#function-hasattribute-cat-monstgelt)

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

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

    - [`BSGS(G, str): GrpMat, MonStgElt`](BSGS-base-strong-generator.md#function-bsgs-grpmat-monstgelt)

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

    - [`RandomSchreier(G, str : parameters): GrpMat, MonStgElt`](BSGS-base-strong-generator.md#function-randomschreier-grpmat-monstgelt)

    - [`RandomSchreierBounded(G, L: parameters): GrpMat, RngIntElt → BoolElt`](BSGS-base-strong-generator.md#function-randomschreierbounded-grpmat-rngintelt)

    - [`ToddCoxeterSchreier(G): GrpMat`](BSGS-base-strong-generator.md#function-toddcoxeterschreier-grpmat)

    - [`Verify(G): GrpMat`](BSGS-base-strong-generator.md#function-verify-grpmat)

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

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

    - [`AssertAttribute(G, "Order", Q): GrpMat, MonStgElt, [Tup(RngIntElt, RngIntElt)]`](BSGS-base-strong-generator.md#function-assertattribute-grpmat-monstgelt-tup-rngintelt-rngintelt)

    - [`AssertAttribute(G, "IsVerified", b): GrpMat, MonStgElt, BoolElt`](BSGS-base-strong-generator.md#function-assertattribute-grpmat-monstgelt-boolelt)

    - [`HasAttribute(G, "Order"): GrpMat, MonStgElt → RngIntElt`](BSGS-base-strong-generator.md#function-hasattribute-grpmat-monstgelt-2)

    - [`HasAttribute(G, "FactoredOrder"): GrpMat, MonStgElt → [Tup(RngIntElt, RngIntElt)]`](BSGS-base-strong-generator.md#function-hasattribute-grpmat-monstgelt-3)

    - [`HasAttribute(G, "IsVerified"): GrpMat, MonStgElt → BoolElt`](BSGS-base-strong-generator.md#function-hasattribute-grpmat-monstgelt-4)

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

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

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

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

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

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

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

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

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

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

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

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

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

- [Soluble Matrix Groups](soluble-matrix-group.md)

  - [Conversion to a PC-Group](soluble-matrix-group.md#conversion-to-a-pc-group)

    - [`PolycyclicGenerators(G): GrpMat → [ GrpPCElt ]`](soluble-matrix-group.md#function-polycyclicgenerators-grpmat)

    - [`PCGroup(G): GrpMat → GrpPC, Map`](soluble-matrix-group.md#function-pcgroup-grpmat-2)

  - [Soluble Group Functions](soluble-matrix-group.md#soluble-group-functions)

    - [`pCentralSeries(G, p): GrpMat, RngIntElt → [ GrpMat ]`](soluble-matrix-group.md#function-pcentralseries-grpmat-rngintelt)

  - [$p$-group Functions](soluble-matrix-group.md#p-group-functions)

    - [`IsSpecial(G): GrpMat → BoolElt`](soluble-matrix-group.md#function-isspecial-grpmat)

    - [`IsExtraSpecial(G): GrpMat → BoolElt`](soluble-matrix-group.md#function-isextraspecial-grpmat)

    - [`FrattiniSubgroup(G): GrpMat → GrpMat`](soluble-matrix-group.md#function-frattinisubgroup-grpmat)

    - [`JenningsSeries(G): GrpMat → [ GrpMat ]`](soluble-matrix-group.md#function-jenningsseries-grpmat)

  - [Abelian Group Functions](soluble-matrix-group.md#abelian-group-functions)

    - [`PrimaryAbelianInvariants(G): GrpMat → [ RngIntElt ]`](soluble-matrix-group.md#function-primaryabelianinvariants-grpmat)

    - [`AbelianInvariants(G): GrpMat → [ RngIntElt ]`](soluble-matrix-group.md#function-abelianinvariants-grpmat)

    - [`PrimaryAbelianBasis(G): GrpMat → [ GrpMatElt ], [ RngIntElt ]`](soluble-matrix-group.md#function-primaryabelianbasis-grpmat)

    - [`AbelianBasis(G): GrpMat → [ GrpMatElt ], [ RngIntElt ]`](soluble-matrix-group.md#function-abelianbasis-grpmat)
