logo

集合論によって厳密に定義される関数と写像、数列 📂集合論

集合論によって厳密に定義される関数と写像、数列

定義 1

空集合じゃない二つの集合 XXYY が与えられたとする。

  1. 二項関係 f(X,Y)f \subset (X,Y) が次を満たすとき、関数と呼び、f:XYf : X \to Y と表す。 (x,y1)f(x,y2)f    y1=y2 (x ,y_{1}) \in f \land (x,y_{2}) \in f \implies y_{1} = y_{2}
  2. 関数 f:XYf : X \to Y において、Dom(f)=X\text{Dom} (f) = Xff定義域domainといい、YYff共変域codomainという。定義域の部分集合 AXA \subset X が与えられたとき、f(A):={f(x)Y  xA}f(A):= \left\{ f(x) \in Y \ | \ x \in A \right\}ff に対するAAimageという。特に ff に対する定義域 XX の像 Imf:=f(X)\operatorname{Im} f := f(X)ff値域rangeという。
  3. 定義域が自然数の集合 N\mathbb{N} の関数を数列sequenceという。
  4. 定義域 AA と共変域 BB を持つすべての関数 λ:AB\lambda : A \to B の集合を BAB^{A} と表す。

説明

  1. 教科書レベルでは、‘全ての元 x1,x2Xx_{1}, x_{2} \in X に対して、x1=x2    f(x1)=f(x2)x_{1} = x_{2} \implies f(x_{1}) = f(x_{2}) を満たす f(x1)f(x_{1})f(x2)f(x_{2})YY に存在するなら、対応 f:XYf : X \to YXX から YY への関数とする’ と言われがちだ。しかし、この ‘対応’ あるいは ‘写像’ は、表現がやや曖昧だった。大学レベル以上の数学では、集合論を用いて、関数に関連する概念を厳格に定義する。入力があれば出力がただ一つだけ出る、という説明は、コンピュータ科学の関数にもっと適した説明だ。
  2. なぜ値域を別に定義するのか疑問に思うかもしれない。例えば、f(x)=x2f(x) = x^2 を考えると、明らかに関数の値は [0,)\left[ 0,\infty \right) に属していて、f:RRf : \mathbb{R} \to \mathbb{R} のように無駄に大きくする必要はないと見える。もともと値域は共変域の部分集合であり、実際には使われない値をなぜ別にするのか理解しにくいことだ。これは、あまりにも簡単な例だけを考えることからくる誤解で、すべての関数が定義時から値域を簡単に予測できるわけではない。関数を定義するときに保証できるのは、xXx \in X に対して f(x)Yf(x) \in Y が存在することだけで、それが何かはわからない。もし f(x)=sinlnx+13x17t+t2dt f(x) = \sin \ln \sqrt{x} + \int_{1}^{3^x} {{1} \over {7t+t^2}} dt のような複雑な関数があれば、定義時からその値域を知ることは不可能であり、必要もない。値域を知ることが重要なのは、合成関数を定義するときくらいだ。
  3. 数列が単に数を並べたものだという説明よりも、もっとシンプルで一般的な定義ができたことを確認できる。共変域が「数」であることに限らず、関数であれ、いかにも珍しい集合であれ、全てをカバーできるようになった。このような抽象化は、ただちに数列の概念をきれいに表現できるだけでなく、無限を扱う数学のさまざまな分野で柔軟に使用できる。
  4. 関数の集合という概念自体が新しいかもしれないが、抽象数学では、関数空間のような集合を日常的に言及する。BAB^{A} のような記法をなぜ使うのかは、基数を思い出せば理解しやすい。例えば、BB が共変域であり、AA が定義域であるすべての関数を考えると、 e1 or 2 or 3π1 or 2 or 3 e \mapsto 1 \text{ or } 2 \text{ or } 3 \\ \pi \mapsto 1 \text{ or } 2 \text{ or } 3 全ての組み合わせは 9=32=BA9 = 3^2 = |B|^{|A|} になる。

  1. 李興天 訳, You-Feng Lin. (2011). 集合論(Set Theory: An Intuitive Approach): p157~159. ↩︎