# Monoids Given by Rewrite Systems

- [Introduction](introduction.md)

  - [Terminology](introduction.md#terminology)

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

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

- [Construction of a Rewrite Monoid](creation.md)

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

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

  - [`Example: RWS Monoid`](creation.md#example-ex-1dd9f1)

  - [`Example: RWSMonoid 2`](creation.md#example-ex-917c6e)

  - [`Example: RWSMonoid 4`](creation.md#example-ex-fe6d08)

  - [`Example: RWSMonoid 5`](creation.md#example-ex-d43295)

- [Basic Operations](operation.md)

  - [Accessing Monoid Information](operation.md#accessing-monoid-information)

    - [`M . i: MonRWS, RngIntElt → MonRWSElt`](operation.md#operation-operation-monrws-rngintelt-monrwselt)

    - [`Generators(M): MonRWS → [ MonRWSElt]`](operation.md#function-generators-monrws)

    - [`NumberOfGenerators(M): MonRWS → RngIntElt`](operation.md#function-numberofgenerators-monrws)

    - [`Ngens(M): MonRWS → RngIntElt`](operation.md#function-ngens-monrws)

    - [`Relations(M): MonRWS → [MonFPRel]`](operation.md#function-monrws-relations)

    - [`NumberOfRelations(M): MonRWS → RngIntElt`](operation.md#function-numberofrelations-monrws)

    - [`Nrels(M): MonRWS → RngIntElt`](operation.md#function-nrels-monrws)

    - [`Ordering(M): MonRWS → String`](operation.md#function-ordering-monrws)

    - [`Parent(w): MonRWSElt → MonRWS`](operation.md#function-parent-monrwselt)

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

  - [Properties of a Rewrite Monoid](operation.md#properties-of-a-rewrite-monoid)

    - [`IsConfluent(M): MonRWS → BoolElt`](operation.md#function-isconfluent-monrws)

    - [`IsFinite(M): MonRWS → BoolElt, RngIntElt`](operation.md#function-isfinite-monrws)

    - [`Order(M): MonRWS → RngIntElt`](operation.md#function-order-monrws)

    - [`# M: MonRWS → RngIntElt`](operation.md#operation-operation-monrws-rngintelt)

    - [`Example: Order Finite`](operation.md#example-ex-7a9289)

    - [`Example: Order Infinite`](operation.md#example-ex-541f65)

    - [`Example: order`](operation.md#example-ex-2a5004)

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

    - [`Identity(M): MonRWS → MonRWSElt`](operation.md#function-identity-monrws)

    - [`Id(M): MonRWS → MonRWSElt`](operation.md#function-id-monrws)

    - [`M ! 1: MonRWS, RngIntElt → MonRWSElt`](operation.md#operation-op-monrws-rngintelt)

    - [`M ! [ i₁, ..., iₛ ]: MonRWS, [ RngIntElt ] → MonRWSElt`](operation.md#operation-op-monrws-rngintelt-2)

    - [`Example: Words`](operation.md#example-ex-00230f)

  - [Arithmetic with Words](operation.md#arithmetic-with-words)

    - [`u * v: MonRWSElt, MonRWSElt → MonRWSElt`](operation.md#operation-op-times-monrwselt-monrwselt)

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

    - [`u eq v: MonRWSElt, MonRWSElt → BoolElt`](operation.md#operation-op-eq-monrwselt-monrwselt)

    - [`u ne v: MonRWSElt, MonRWSElt → BoolElt`](operation.md#operation-op-ne-monrwselt-monrwselt)

    - [`IsId(w): MonRWSElt → BoolElt`](operation.md#function-isid-monrwselt)

    - [`IsIdentity(w): MonRWSElt → BoolElt`](operation.md#function-isidentity-monrwselt)

    - [`# u: MonRWSElt → RngIntElt`](operation.md#operation-operation-monrwselt-rngintelt)

    - [`ElementToSequence(u): MonRWSElt → [ RngIntElt ]`](operation.md#function-elementtosequence-monrwselt)

    - [`Eltseq(u): MonRWSElt → [ RngIntElt ]`](operation.md#function-eltseq-monrwselt)

    - [`Example: Arithmetic`](operation.md#example-ex-3c8630)

- [Homomorphisms](homomorphism.md)

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

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

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

- [Set Operations](Set.md)

  - [`Random(M, n): MonRWS, RngIntElt → MonRWSElt`](Set.md#function-random-monrws-rngintelt)

  - [`Random(M): MonRWS → MonRWSElt`](Set.md#function-random-monrws)

  - [`Representative(M): MonRWS → MonRWSElt`](Set.md#function-representative-monrws)

  - [`Rep(M): MonRWS → MonRWSElt`](Set.md#function-rep-monrws)

  - [`Set(M, a, b): MonRWS, RngIntElt, RngIntElt → SetEnum`](Set.md#function-set-monrws-rngintelt-rngintelt)

  - [`Set(M): MonRWS → SetEnum`](Set.md#function-set-monrws)

  - [`Seq(M, a, b): MonRWS, RngIntElt, RngIntElt → SeqEnum`](Set.md#function-seq-monrws-rngintelt-rngintelt)

  - [`Seq(M): MonRWS → SeqEnum`](Set.md#function-seq-monrws)

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

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

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