1+1が2にも3にも4にもなるって脳筋の陽キャがよく言うけど、
ここで謎の演算子「+」を持つモノイドを考えてみたい。
まず、前提として、1,2,3,...はモノイドの元 α1,α2,α3,...の簡易記法とする。
モノイドの単位元はα0とする。
α_n+1 = SUCC(α_n)と表すことができることとする。
つまり
α2 = SUCC(α1) α3 = SUCC(α2) = SUCC(SUCC(α1)) ...
である。
α0 = α0 + α0 α1 = α1 + α0 α2 = α2 + α0 ...
である。
α1 + α1 = α2 = SUCC(α1) = α3 = SUCC(SUCC(α1)) = α4 = SUCC(SUCC(SUCC(α1))) ...
となる。
これを満たすことができる関数SUCCは幾つか考えられるが
その1:
defun SUCC(x) = α0
その2:
defun SUCC(x) = if (x equals to α0) then α0 else x
等とすることができる。
その1は 1bit の排他的論理和
α0 + α0 = α0 α0 + α1 = α1 α1 + α0 = α1 α1 + α1 = α2 = SUCC(α1) = α0
その2は 1bit の論理和
α0 + α0 = α0 α0 + α1 = α1 α1 + α0 = α1 α1 + α1 = α2 = SUCC(α1) = α1
である。
脳筋って頭いいんだね