集合論によって厳密に定義される関数と写像、数列
定義 1
- 二項関係 が次を満たすとき、関数と呼び、 と表す。
- 関数 において、 を の定義域domainといい、 を の共変域codomainという。定義域の部分集合 が与えられたとき、 を に対する の像imageという。特に に対する定義域 の像 を の値域rangeという。
- 定義域が自然数の集合 の関数を数列sequenceという。
- 定義域 と共変域 を持つすべての関数 の集合を と表す。
説明
- 教科書レベルでは、‘全ての元 に対して、 を満たす と が に存在するなら、対応 を から への関数とする’ と言われがちだ。しかし、この ‘対応’ あるいは ‘写像’ は、表現がやや曖昧だった。大学レベル以上の数学では、集合論を用いて、関数に関連する概念を厳格に定義する。入力があれば出力がただ一つだけ出る、という説明は、コンピュータ科学の関数にもっと適した説明だ。
- なぜ値域を別に定義するのか疑問に思うかもしれない。例えば、 を考えると、明らかに関数の値は に属していて、 のように無駄に大きくする必要はないと見える。もともと値域は共変域の部分集合であり、実際には使われない値をなぜ別にするのか理解しにくいことだ。これは、あまりにも簡単な例だけを考えることからくる誤解で、すべての関数が定義時から値域を簡単に予測できるわけではない。関数を定義するときに保証できるのは、 に対して が存在することだけで、それが何かはわからない。もし のような複雑な関数があれば、定義時からその値域を知ることは不可能であり、必要もない。値域を知ることが重要なのは、合成関数を定義するときくらいだ。
- 数列が単に数を並べたものだという説明よりも、もっとシンプルで一般的な定義ができたことを確認できる。共変域が「数」であることに限らず、関数であれ、いかにも珍しい集合であれ、全てをカバーできるようになった。このような抽象化は、ただちに数列の概念をきれいに表現できるだけでなく、無限を扱う数学のさまざまな分野で柔軟に使用できる。
- 関数の集合という概念自体が新しいかもしれないが、抽象数学では、関数空間のような集合を日常的に言及する。 のような記法をなぜ使うのかは、基数を思い出せば理解しやすい。例えば、 が共変域であり、 が定義域であるすべての関数を考えると、 全ての組み合わせは になる。
李興天 訳, You-Feng Lin. (2011). 集合論(Set Theory: An Intuitive Approach): p157~159. ↩︎