演算同士の演算

投稿日:
研究
数学
関数
集合論
演算
演算子
代数学
群論
環論
ブール代数

演算同士の演算

はじめに

集合論において、集合は要素の集まりとして定義されますが、要素が単なる値ではなく、特定の演算を元として持つ場合、その集合の性質や挙動はどのように変わるのでしょうか。例えば、数値の集合に加算や乗算といった演算を元として持たせることが考えられます。

具体的には、次のような場合が考えられます。本記事では基本的に演算同士の2項演算、つまり「演算子と演算子を演算する」ことを考えます。

このように定義すると、2項演算は以下のように書き下せます。

いちおう8通り列挙しましたが、演算子が3つ並んでいるとなんのこっちゃわからないですね。

改めて、演算子の代わりに「Plus」「Times」のような文字列を使って2変数関数として考える(関数として振る舞う、引数を持てる数、と考えてもいいかもしれません)と、次のようになります。

これで、2項演算は以下のように書き下せます。

まだ「?」なところはありますが、少しはわかりやすくなったでしょうか。

零元と単位元を自然に与える

このように演算を元として持つ集合を考えると、自然に零元と乗法の単位元を与えることができます。

例えば、上記の例でいうと、零元は「Plus」、乗法の単位元は「Times」となります。(ただし、必ずしもこのような定義が自然とは言い切れません。)

これは、加算における零元が0であり、乗算における単位元が1であることと対応しています。

簡単のために引数の方の要素を Plus ⇒ 0、Times ⇒ 1 と置き換えると、次のようになります。

このように、演算を元として持つ集合を考えることで、零元と乗法の単位元の概念を自然に導入することができます。

これを元に最初の Plus と Times の組み合わせに戻すと、次のようになります。

…ちなみに、8通りあったはずの組み合わせが7通りしか示されていませんが、何を省略したかわかりますか?(笑)

そう、演算が閉じているようで閉じていないのです。

このことについては後述します。

ブール代数で改めて考える

ブール代数においても、同様の考え方が適用できます。

ブール代数の演算子は (AND)、(OR)、(NOT)などがありますが、ここでは2項演算である AND と OR に注目します。

これもまた、上記のように2項演算を列挙すると、

となりますが、やはりわかりにくいので、演算子の代わりに「OR」「AND」のような文字列を使って2変数関数として考えます。

本来のブール値の集合 (または ) に対して、論理和(OR)と論理積(AND)を演算として考えることができます。

従来の定義において、論理和は単位元が false、論理積は単位元が true です。

これを元に、演算を元として持つ集合を考えると、 OR ⇒ 0 (false) 、 AND ⇒ 1 (true)と置き換えることができます。

演算を書き下すと、次のようになります。

演算に戻すと、次のようになります。

ちなみに、検証として、 AND ⇒ 0 (false)、 OR ⇒ 1 (true) と置き換えてみると、次のようになります。

演算では

なるほど、こちらはこちらで8通りしっかり出てきましたね。

こちらについては検証が足りていませんが、じつは引数として与える元にどの演算子を割り当てても整合性が取れるのかもしれませんし、あるいはブール代数では0と1の役割が入れ替わっても成立するような相補性(対称性)が出ているのかもしれません。最初のモチベーションとして「演算」を元としてもつことにこだわっていましたが、じつはやはり演算と元は根本的に分けて考えるべきかもしれず、ここはまたの機会に考えてみたいと思います。

なお、Plus と Times でも Times ⇒ 0, Plus ⇒ 1 と置き換えてみると、次のようになりました。(やはりこちらも閉じていない。)

加算と乗算は閉じていない?

さて、前述の通り、加算と乗算を元として持つ集合は、閉じていない計算があります。

答え合わせとしては、 となり、これは元の集合 に含まれないため、閉じていないことになります。

このことは、加算と乗算がそれぞれ閉じている演算であるにもかかわらず、これらを組み合わせた演算が閉じていないことを示しています。

数で言うと、 、つまり に相当しますが、 に相当する元が集合に含まれていないため、閉じていないことになります。

きょうの研究はこの「未定義の演算」についてのことに発展しました。

算術の構造を考えると、もしかしたらみなさんもある程度予想が付くのではないかとも思いますが、長くなったのでまたの機会に。

余談: 群の定義について

群の定義において、一般的に「集合 」と「二項演算 」が与えられたときに、ある条件を満たせば を群と呼ぶ、とされています。

また、環の定義においても、集合 と二項演算 および が与えられたときに、ある条件を満たせば を環と呼ぶ、とされています。

このときの G や R はそれぞれに別個の元を持つわけですが、もし G や R 自体が演算を元として持つ集合であった場合、なんだか自己言及的で面白いことになりそうな気がします。

結論

元として を持つ集合を考え、どちらかを0どちらかを1に相当するような「演算子の演算」を改めて列挙すると、 とみなすと、

  • (未定義)

または、 とみなすと、

  • (未定義)

と、8通りのうち7通りが元の集合に含まれ、1通りが含まれないことがわかりました。

また、元として を持つ集合を考え、どちらかを0どちらかを1に相当するような「演算子の演算」を真理値表に基づいて改めて列挙すると、

引数1 引数2
0 0 0 0
0 1 1 0
1 0 1 0
1 1 1 1

より、

とみなすと、

引数1 引数2

または、 とみなすと、

引数1 引数2

となり、8通りすべてが元の集合に含まれることがわかりました。

より暗号チックになりますが、

または

という形でも表せます。

(私自身、記号だらけで頭が混乱していますが、間違いがあれば指摘してください。)

演算を元として持つ集合を考えるのって、なかなか面白いですね。

頭の体操にもなりますし、群や環のような代数的構造を考える際にも新たな視点を提供してくれるかもしれません。

著者紹介

岩淵夕希物智 butchi_y

言語を作る博士(工学)

ART, Research, Techの人

広告
広告