## `Cat::Monoid` -- the category of monoids

#### Introduction

`Cat::Monoid` represents the category of monoids.

#### Generating the category

`Cat::Monoid()`

#### Categories

`Cat::SemiGroup`

#### Details

- A `Cat::Monoid` is a non-abelian semi-group with a neutral element one (`dom::one`) according to the group operation `*` (`_mult`).

#### Basic Entries

one

  Must hold the neutral element according to the operation `*`.

#### Method _invert: returns inverse

- `_invert(dom x)`
- - Must return an inverse of `x` according to the operation `*` or `FAIL` if no inverse exists.

#### Method isone: tests if element is one

- `isone(dom x)`
- - Tests if `x` is equal to one. Uses the method `"equal"` if this domain has not the axiom `Ax::normalRep`.

#### Method _power: tests if element is one

- `_power(dom x, DOM_INT n)`
- - Returns `dom::one` if `n` is 0 and the `n`-fold product of `x` if `n` is positive. If `n` is negative then `x` is inverted. If no inverse exists `FAIL` is returned, otherwise the -`n`-fold product of the inverse.
  - This implementation does ``repeated squaring''.

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000