空積

提供: testwiki
2023年11月29日 (水) 22:28時点におけるimported>ぐしーによる版 (解消済み仮リンクの除去(空虚な真))
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

数学における空積(くうせき、テンプレート:Lang-en-short)あるいは零項積 (nullary product) は、テンプレート:Math 個の因子を掛けた結果である。(考えている乗法演算に単位元が存在する場合に限り)「空積の値は単位元 1 に等しい」という規約を設ける[1][2][3][4]。このことは、空和(すなわち0個の数を足した結果)が零元 0 に等しいと約束することと同様である。

用語 "空積" は算術的演算を議論するときに上の意味で使われることが多い。しかしながら、この用語は集合論の共通部分、圏論の積、コンピュータプログラミングにおける積に対しても使われる。これらは以下で議論される。

零項算術積

正当化

テンプレート:Math数の列とし、

Pm=i=1mai=a1am

をこの列の最初の テンプレート:Mvar-項の積とする。このとき

Pm=amPm1

がすべての テンプレート:Math に対して成り立つというためには、テンプレート:Math および テンプレート:Math とするという規約が必要である。これはつまり、ただ一つの因子からなる "積" テンプレート:Math の値はその因子自身であり、全く因子を持たない "積" テンプレート:Math の値は テンプレート:Math とするということである。一つだけあるいは零個の因子の "積" を許すことで、多くの数学的な公式において考慮すべき場合の数を減らすことができるようになる。そのような "積" は数学的帰納法やアルゴリズムにおける起点として自然に現れる。これらの理由のため「空積の値は テンプレート:Math であるものと約束する」ことは数学やコンピュータプログラミングにおいて常識である。

空積を定義することの妥当性

空積の概念は、数 0空集合が有用なのと同じ理由で有用である。全く面白くない概念を表しているように見えるが、その存在によって多くの主題のはるかに短い数学的表示が可能になるのである。

例えば、テンプレート:Mathテンプレート:Math といった空積は、テイラー級数表記を短くする(テンプレート:Math のときの議論は0の0乗を参照)。同様に、テンプレート:Mvarテンプレート:Math 行列であれば、テンプレート:Mathテンプレート:Math 単位行列である。これは線型写像を零回適用することは恒等写像を適用することと同じ効果を持っているという事実を反映している。

別の例として、算術の基本定理は、すべての正の整数は素数の積として一意的に書けることを言っている。しかしながら、もし 0 個や 1 個の因子の積を許さなかったら、定理(と証明)は長くなる[5][6]

数学で空積を使用しているさらなる例は、二項定理(これは任意の テンプレート:Mvar に対して テンプレート:Math であることを仮定し、かつそれを導く)、スターリング数ケーニッヒの定理二項型多項式列二項級数有限差分ポッホハマー記号において見つかるだろう。

対数

対数は積を和に変えるから、空積を空和に写すべきである。そして空積を テンプレート:Math と定義するならば、空和は テンプレート:Math であるべきである。逆に、指数関数は和を積に変えるから、空和を テンプレート:Math と定義するならば、空積は テンプレート:Math であるべきである。

ixi=exp(ilogxi)

零項デカルト積

デカルト積の一般の定義を考えよう:

iIXi={g:IiIXii, g(i)Xi}.

添字集合 テンプレート:Mvar が空ならば、そのような テンプレート:Mvar空写像 テンプレート:Math ただ一つである。これは テンプレート:Math の部分集合で写像 テンプレート:Math を定める唯一のものであり、(テンプレート:Math が持つ唯一の部分集合としての)空部分集合 テンプレート:Math である:

={f:}={}.

したがって、零個の集合のデカルト積の濃度は テンプレート:Math である。

より馴染みのあるであろう順序組の解釈の下では、

={()},

つまり、空リストを含む一元集合である。両方の表現において空積は濃度 テンプレート:Math を持つことに注意しよう。

写像の零項デカルト積

写像の空デカルト積は再び空写像である。

圏論における空積

任意のにおいて、空の族のはその圏の終対象である。これは積の極限による定義を用いて証明できる。テンプレート:Mvar 重の圏論的積は テンプレート:Mvar 個の対象からなる離散圏によって与えられる図式に関する極限として定義できる。すると空積は空圏に関する極限によって与えられ、これは圏の終対象(存在すれば)である。この定義を特殊化すれば上記の結果が与えられる。例えば、集合の圏において、圏論的積は通常のデカルト積であり、終対象は単元集合である。群の圏において、圏論的積は群のデカルト積であり、終対象は1つの元からなる自明群である。空積の通常の算術的定義を得るためには、有限集合の圏において空積のテンプレート:仮リンクを取らなければならない(今の場合これはすなわち、各集合に対してその濃度を考えるということに他ならない)。

双対的に、空な族の余積始対象である。零項の圏論的積や余積は与えられた圏において存在しないかもしれない。例えば、体の圏においては、どちらも存在しない。

論理学における空積

古典論理学で定義される演算としての連言は、テンプレート:仮リンクをすることとして、そして述語計算により任意個数の連言へ一般化することができる。真を テンプレート:Math, 偽を テンプレート:Math と同一視すれば連言を取ることは単に算術的な掛け算をしているだけと直観できるから、連言のことは論理積といった方が通りがよかろう。論理積の因子としては任意個数の入力を受けることができるから、入力が零個の場合として空論理積 (empty conjunction) が考えられ、これは恒等的に真である。

論理学においてこれと関連する概念として、空虚な真は対象からなる空集合は任意の性質を持ち得ることを主張する。これを(論理学の一般論の一部として)論理積が テンプレート:Math 以下の値をとるということを用いて説明することができる。つまり、因子の数の多い論理積を考える場合、それが長くなれば長くなるほどその値が テンプレート:Math(つまり偽)となる確率は高くなる(特に、論理積を取る命題のうちの一つでも テンプレート:Mathであることが分かれば、その論理積全体は テンプレート:Math と確定するから、残り全ての命題について値が テンプレート:Math かどうかを調べる必要が無くなる)ということであり、裏を返せば論理積の因子となる命題の数を減らせば、テンプレート:Math でないことのチェックを通過してその論理積の値が テンプレート:Math になる確率はより増加するということである。従って特に、命題の数が零個なら、調べる回数も零回で、何もしなくてもチェックに引っかかることなどあり得ないから、どのような命題あるいは対象の性質を調べているかということとは無関係に、このチェックは必ず通過することになる。

コンピュータプログラミングにおいて

多くのプログラミング言語、例えばPython、は数のリストの直接的表現を許しており、任意個のパラメーターを許す関数すら許している。そのような言語がリストに入っているすべての数の積を返す関数を持っていれば、通常以下のように動く:

   listprod( [2,3,5] ) --> 30
   listprod( [2,3] )   --> 6
   listprod( [2] )     --> 2
   listprod( [] )      --> 1

この慣習によって「リストの長さが1ならば」とか「リストの長さが0ならば」のような特別な場合を特別な場合としてコードしなくてもよくなる。

乗法は中置オペレータであり、したがって二項演算であり、空積の表記をややこしくしている。いくつかのプログラミング言語はこれを可変長引数関数を使うことによって扱っている。例えば、LISP十分にかっこをつけた前置記法からテンプレート:仮リンク関数の自然な表記が生じる:

(* 2 2 2)   ; evaluates to 8
(* 2 2)     ; evaluates to 4
(* 2)       ; evaluates to 2
(*)         ; evaluates to 1

関連項目

参考文献

外部リンク