2002年 7月31日 作成 全射・単射・双射 >> 目次 (作成日順)
2007年10月 1日 補遺  


 
 さて、今回は、「全射・単射・双射」 を扱ってみましょう。

 基数 (cardinal) は モノ の 「多さ」 を記述する概念であるから、「同値」 であるということは、2つの集合が 「同数」 であるということになる。

 集合 A の任意の メンバー に対して集合 B の 1つの メンバー を対応する法則 f を A から B への写像といい、f: A → B と記述する。 b を f による a の像という [ 一般的に云えば、f (a) は f の像と呼ばれる ]。
 2つの集合 [ A と B ] があって、1つの集合から他の集合への関数 f (「対応」 あるいは 「写像」) があれば、集合 A の メンバー a について f (a) が 1つ対応する。
 対応関係には、「全射」 と 「単射」 がある。

 (1) f (A) = B ならば、f を全射 (surjection) という。
   つまり、B のどの メンバー b についても、b を f の値とする A の メンバー a が少なくとも1つ存在する。

 (2) f (a) = b において、a が一意的に存在するなら、f を 「単射」 (injection) という。
   つまり、A の任意の 2つの メンバー (a と a') に対して、それぞれ べつの f の値-- f (a) と f (a') --が存在する。
   (ただし、a ≠ a' ならば、f (a) ≠ f (a') である。)

 (3) 全射かつ単射のとき、B の メンバー b について a を対応することができるので、逆関数 f−1(f (a)) が成立するならば-- a = f−1(f (a)) かつ b = f−1(f (b)) ならば--、f を 「双射」 という。

 単射のことを 「1 対 1 の対応」 (one-to-one correspondence) といい、全射のことを 「上への関数」 (onto-mapping) という言いかたもあるが、「1 対 1 の対応」 と 「上への関数」 は古い用語法である。

 [ 参考 ]
  T字形 ER手法では、「対応表」 が 「onto-mapping」 である。

 A から B への双射が成立するなら、A と B は 「同数」 になる。双射の 「同数」 のことを 「同濃度」 という。
 なお、「全単射」 (bijection) という言い方もあるが、「全射で単射」 ということである。
 そして、「全単射」 と 「双射」 は違うことに注意されたい。「全単射」 が 「双射」 になるとは限らない。 □

 



[ 補遺 ] (2007年10月 1日)

 本 エッセー を読み返してみたのですが、「全射・単射・双射」 は、本 エッセー の文のみでは、なかなか、理解しにくいかもしれないと思いました。 m(_ _)m
 もう少し、「前提」 を綴れば良かったと。

 まず、「写像 (mapping)」 (あるいは、関数) は、文字通り、2つ (以上) の集合のあいだに成立する対応関係です--2つ以上としたのは、「合成関数」 もあるから。

 集合 A の どの メンバー に対しても、集合 B の或る メンバー が 1つだけ対応しているとき、この対応のことを 「写像 (あるいは、関数)」 と云います。写像は、ふつう、f とか g とか h とか φ などの文字を使って記述します。集合 A から集合 B への写像は、以下のように記述します。
                    f
    f: A → B. (あるいは、A → B.)

 このとき、A を 「(f の) 定義域」 と云い、B を 「(f の) 値域」 と云います。
 そして、(A の メンバー である) x に対して、(B の メンバー である) y が対応しているとき、f (x) と記述して、y を f の 「像」 と云います。

 たとえば、ZF 公理系の 「分出公理」 を思い出して下さい。

    { x ∈ a | A (x) }.

 ツェルメロ は、{ x | x ∈ X } の変わりに、部分集合 a を考えて、セット 概念を導入しました。すなわち、f (A) ⊆ f (X) です。このとき、たとえば、3つの集合 (A、X および Y) の包摂関係を考えて--言い換えれば、f (A) ⊆ f (X) ⊆ Y ならば--、f が X から Y への写像であるというとき、以下の 2つの事態を考えることができます。

  (1) X の任意の メンバー x に対して、Y の メンバー f (x) が存在する (定義されている)。
  (2) X の任意の メンバー x に対して、Y の メンバー f (x) が存在しない (定義されていない)。

 このとき、関数 f を 「部分関数」 と云います。つまり、f (x) は定義されていないことがある、ということです (すなわち、定義域 { x ∈ X | ∃y ∈ Y } ∧ 値域 { f (x) ∈ Y | x ∈ X } )。たとえば、f は A から B への部分関数で、ω が B の メンバー でないとすれば、関数 fω は、fω: A → B ∨ { ω } です。  これに対して、f (x) が、すべて、定義される関数を 「全域関数」 と云います。

 f: X → Y の定義域 X を A ⊆ X に限った写像を f の A への 「制限」 と云い、f |A というふうに記述し、逆に、f は、f |A の 「拡張」 と云います。

 そして、f: X → Y において、「すべての」 x ∈ X に対して、f (x) = a であるような a ∈ Y が存在するとき、f を 「定値写像 (あるいは、定数関数)」 と云います。また、「すべての」 x ∈ X に対して、f (x) = x である f を 「恒等写像 (あるいは、恒等関数)」 と云います。

 さて、全射と単射を具体例を考えてみましょう。私は、いま (2007年度)、或る高校の PTA 会長をしているので、生徒の例を考えてみます。或る高校の生徒の集合を X として、生徒の保護者の集合を Y とします。

 (1) X から Y への写像 g は全射だが、単射であるとは限らない。
 (2) 写像 g を 「一人っ子の集合」 に制限すれば、単射になるが、全射であるとは限らない。

 写像 f: X → Y と 写像 g: Y → Z が与えられたとき、写像 (g f): X → Z は、(g f): x → g (f (x)) と定義され、f と g との 「合成」 と云います。なお、(g f) において、g と f との並びに注意して下さい。この合成関数は、事業過程を対象にした データ 設計では、「one-header-many-details」 構成として現れます。




  << もどる HOME すすむ >>
  ベーシックス