# Groups Defined by Rewrite Systems

- [Introduction](introduction.md)

  - [Terminology](introduction.md#terminology)

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

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

- [Constructing Confluent Presentations](creation.md)

  - [The Knuth-Bendix Procedure](creation.md#the-knuth-bendix-procedure)

    - [`RWSGroup(F: parameters): MonFP → MonRWS`](creation.md#function-grprws-rwsgroup)

    - [`Example: RWS Group`](creation.md#example-ex-8622c9)

  - [Defining Orderings](creation.md#defining-orderings)

    - [`RWSGroup(F: parameters): MonFP → MonRWS`](creation.md#function-rwsgroup-monfp)

    - [`Example: RWSGroup 2`](creation.md#example-ex-e4565e)

    - [`Example: RWSGroup 3`](creation.md#example-ex-8d0d83)

  - [Setting Limits](creation.md#setting-limits)

    - [`RWSMonoid(F: parameters): MonFP → MonRWS`](creation.md#function-rwsmonoid-monfp)

    - [`SetVerbose("KBMAG", v): MonStgElt, RngIntElt`](creation.md#function-setverbose-monstgelt-rngintelt)

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

    - [`G . i: GrpRWS, RngIntElt → GrpRWSElt`](creation.md#operation-operation-grprws-rngintelt-grprwselt)

    - [`Generators(G): GrpRWS → [GrpRWSElt]`](creation.md#function-generators-grprws)

    - [`NumberOfGenerators(G): GrpRWS → RngIntElt`](creation.md#function-numberofgenerators-grprws)

    - [`Ngens(G): GrpRWS → RngIntElt`](creation.md#function-ngens-grprws)

    - [`Relations(G): GrpRWS → [GrpFPRel]`](creation.md#function-grprws-relations)

    - [`NumberOfRelations(G): GrpRWS → RngIntElt`](creation.md#function-numberofrelations-grprws)

    - [`Nrels(G): GrpRWS → RngIntElt`](creation.md#function-nrels-grprws)

    - [`Ordering(G): GrpRWS → String`](creation.md#function-ordering-grprws)

    - [`Example: Basic Access`](creation.md#example-ex-13860e)

- [Properties of a Rewrite Group](properties.md)

  - [`IsConfluent(G): GrpRWS → BoolElt`](properties.md#function-isconfluent-grprws)

  - [`IsFinite(G): GrpRWS → BoolElt, RngIntElt`](properties.md#function-isfinite-grprws)

  - [`Order(G): GrpRWS → RngIntElt`](properties.md#function-order-grprws)

  - [`# G: GrpRWS → RngIntElt`](properties.md#operation-operation-grprws-rngintelt)

  - [`Example: Is Confluent`](properties.md#example-ex-40c60a)

  - [`Example: Order`](properties.md#example-ex-174016)

- [Arithmetic with Words](arithmetic.md)

  - [Construction of a Word](arithmetic.md#construction-of-a-word)

    - [`Identity(G): GrpRWS → GrpRWSElt`](arithmetic.md#function-identity-grprws)

    - [`Id(G): GrpRWS → GrpRWSElt`](arithmetic.md#function-id-grprws)

    - [`G ! 1: GrpRWS, RngIntElt → GrpRWSElt`](arithmetic.md#operation-op-grprws-rngintelt)

    - [`G ! [ i₁, ..., iₛ ]: GrpRWS, [ RngIntElt ] → GrpRWSElt`](arithmetic.md#operation-op-grprws-rngintelt-2)

    - [`Parent(w): GrpRWSElt → GrpRWS`](arithmetic.md#function-parent-grprwselt)

    - [`Example: Words`](arithmetic.md#example-ex-6e6f68)

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

    - [`u * v: GrpRWSElt, GrpRWSElt → GrpRWSElt`](arithmetic.md#operation-op-times-grprwselt-grprwselt)

    - [`u / v: GrpRWSElt, GrpRWSElt → GrpRWSElt`](arithmetic.md#operation-op-div-grprwselt-grprwselt)

    - [`u ^ n: GrpRWSElt, RngIntElt → GrpRWSElt`](arithmetic.md#operation-op-pow-grprwselt-rngintelt)

    - [`u ^ v: GrpRWSElt, GrpRWSElt → GrpRWSElt`](arithmetic.md#operation-op-pow-grprwselt-grprwselt)

    - [`Inverse(w): GrpRWSElt → GrpRWSElt`](arithmetic.md#function-inverse-grprwselt)

    - [`(u, v): GrpRWSElt, GrpRWSElt → GrpRWSElt`](arithmetic.md#literal-literal-u-v-grprwselt-grprwselt-grprwselt)

    - [`(u₁, ..., uᵣ): GrpRWSElt, ..., GrpRWSElt → GrpRWSElt`](arithmetic.md#literal-literal-u1-ur-grprwselt-grprwselt-grprwselt)

    - [`u eq v: GrpRWSElt, GrpRWSElt → BoolElt`](arithmetic.md#operation-op-eq-grprwselt-grprwselt)

    - [`u ne v: GrpRWSElt, GrpRWSElt → BoolElt`](arithmetic.md#operation-op-ne-grprwselt-grprwselt)

    - [`IsId(w): GrpRWSElt → BoolElt`](arithmetic.md#function-isid-grprwselt)

    - [`IsIdentity(w): GrpRWSElt → BoolElt`](arithmetic.md#function-isidentity-grprwselt)

    - [`# u: GrpRWSElt → RngIntElt`](arithmetic.md#operation-operation-grprwselt-rngintelt)

    - [`ElementToSequence(u): GrpRWSElt → [ RngIntElt ]`](arithmetic.md#function-elementtosequence-grprwselt)

    - [`Eltseq(u): GrpRWSElt → [ RngIntElt ]`](arithmetic.md#function-eltseq-grprwselt)

    - [`Example: Arithmetic`](arithmetic.md#example-ex-0eba9a)

- [Operations on the Set of Group Elements](Set.md)

  - [`Random(G, n): GrpRWS, RngIntElt → GrpRWSElt`](Set.md#function-random-grprws-rngintelt)

  - [`Random(G): GrpRWS → GrpRWSElt`](Set.md#function-random-grprws)

  - [`Representative(G): GrpRWS → GrpRWSElt`](Set.md#function-representative-grprws)

  - [`Rep(G): GrpRWS → GrpRWSElt`](Set.md#function-rep-grprws)

  - [`Set(G, a, b): GrpRWS, RngIntElt, RngIntElt → SetEnum`](Set.md#function-set-grprws-rngintelt-rngintelt)

  - [`Set(G): GrpRWS → SetEnum`](Set.md#function-set-grprws)

  - [`Seq(G, a, b): GrpRWS, RngIntElt, RngIntElt → SeqEnum`](Set.md#function-seq-grprws-rngintelt-rngintelt)

  - [`Seq(G): GrpRWS → SeqEnum`](Set.md#function-seq-grprws)

  - [`Example: Set`](Set.md#example-ex-6fc61b)

- [Homomorphisms](homomorphism.md)

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

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

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

- [Conversion to a Finitely Presented Group](conversion.md)

  - [`Example: Conversion`](conversion.md#example-ex-c2fddd)
