## `Cat::SemiGroup` -- the category of semi-groups

#### Introduction

`Cat::SemiGroup` represents the category of semi-groups.

#### Generating the category

`Cat::SemiGroup()`

#### Categories

`Cat::BaseCategory`

#### Details

- A `Cat::SemiGroup` represents the category of non-abelian semi-groups, where the group operation is written as multiplication. Hence a `Cat::SemiGroup` is a set with an associative operation `*` (`_mult`).
- Note that abelian semi-groups with operation `+` have category `Cat::AbelianSemiGroup`.

#### Method _mult: returns product

- `_mult(dom x...)`
- - Must return the product of its arguments.

#### Method _power: returns power

- `_power(dom x, Type::PosInt n)`
- - Returns the `n`-fold product of `x`. The implementation provided does ``repeated squaring''.

#### Changes

- no changes

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