モノイド
ふたつのモノイド (M, •), (M′, •′) の間のモノイド準同型 (monoid homomorphism) とは、写像 f: M → M′ であって、
M の任意の元 x, y に対して f(x • y) = f(x) •′ f(y),
f(e) = e′
を満たすものをいう。ここで、e および e′ はそれぞれ M および M′ の単位元である。モノイド準同型は簡単にモノイド射 (monoid morphisms) と呼ばれることもある。
半群準同型は単位元を保つことを要しないため、必ずしもモノイド準同型とはならない。これは群準同型の場合とは対照的な事実で、群の間の半群準同型はかならず単位元を保ち、したがって群準同型となることを、群の公理から示すことができる。モノイドではそのようなことは一般には望めないので、モノイド準同型の定義では「単位元を保つ」ことを改めて別に要請する必要がある。
全単射なモノイド準同型はモノイド同型と呼ばれる。ふたつのモノイドが同型であるとは、それらの間にモノイド同型が存在するときにいう。
fold l = { ε if l = nil m ∙ fold l ′ if l = cons m l ′ {\displaystyle \operatorname {fold} \,l={\begin{cases}\varepsilon &{\text{if }}l=\operatorname {nil} \\m\bullet \operatorname {fold} \,l'&{\text{if }}l=\operatorname {cons} \,m\,l'\end{cases}}}
更に、任意のデータ型でもその元の直列化演算(serialization)が与えられれば同様に「重畳」することができる。例えば、二分木においては木の走査が直列化にあたるが、結果は走査が行きがけか帰りがけかによって異なる。
単純な構造化プログラミング言語自身は文やブロックの連接を演算としてモノイドをなす。
N0 の 0 以外の元(正の整数)からなる部分集合 N は乗法に関して 1 を単位元とする部分モノイドを成す。
閉曲面の同相類の全体は連結和 "#" に関して可換モノイドを成す。単位元は通常の球面(2-球面)の属する同相類である。さらにいえば、トーラスの属する同相類 a と射影平面の属する同相類 b に対して、このモノイドの任意の元 c は c = na # mb の形に一意的に表される。ここで n は非負の整数で、m は 0, 1, 2 の何れか(実は 3b = a # b が成り立つ)である。
集合 S 上の自己写像(変換)S → S 全体の成す集合は、恒等写像を単位元とし写像の合成をモノイド演算としてモノイドになる。これを S 上の全変換モノイド (full transformation monoid) と呼ぶ。S が有限であることと S 上の全変換モノイドが有限であることは同値である。