-------
A **monoid** is a structure `(S, *, z)` consisting of an associative binary operation `*` over some set `S`, which is closed under `*`, and which contains an identity element `z` for `*`. That is:
-<pre>this is
-my pre-only
-block
-</pre>
-<code>this is
-my code-only
-block
+<pre>
+ for all s1, s2, s3 in S:
+ (i) s1*s2 etc are also in S
+ (ii) (s1*s2)*s3 = s1*(s2*s3)
+ (iii) z*s1 = s1 = s1*z
</pre>
-<blockquote>this is
-my bq-only
-block
-</blockquote>
-
-
-<blockquote><pre>
-for all `s1`, `s2`, `s3` in `S`:
-(i) `s1*s2` etc are also in `S`
-(ii) `(s1*s2)*s3` = `s1*(s2*s3)`
-(iii) `z*s1` = `s1` = `s1*z`
-</pre></blockquote>
-
Some examples of monoids are:
* finite strings of an alphabet `A`, with `*` being concatenation and `z` being the empty string
To have a category, the elements and morphisms have to satisfy some constraints:
-<blockquote><pre>
-(i) the class of morphisms has to be closed under composition: where `f:C1->C2` and `g:C2->C3`, `g o f` is also a morphism of the category, which maps `C1->C3`.
-(ii) composition of morphisms has to be associative
-(iii) every element `E` of the category has to have an identity morphism 1<sub>E</sub>, which is such that for every morphism `f:C1->C2`: 1<sub>C2</sub> o f = f = f o 1<sub>C1</sub>
-</pre></blockquote>
+<pre>
+ (i) the class of morphisms has to be closed under composition: where f:C1->C2 and g:C2->C3, g o f is also a morphism of the category, which maps C1->C3.
+ (ii) composition of morphisms has to be associative
+ (iii) every element E of the category has to have an identity morphism 1<sub>E</sub>, which is such that for every morphism f:C1->C2: 1<sub>C2</sub> o f = f = f o 1<sub>C1</sub>
+</pre>
These parallel the constraints for monoids. Note that there can be multiple distinct morphisms between an element `E` and itself; they need not all be identity morphisms. Indeed from (iii) it follows that each element can have only a single identity morphism.