「直積集合」という言葉は、集合論や線形代数を学ぶうえで必ず登場する重要なキーワードです。
しかし、定義の文字面だけを追っていても、なかなか直感的に理解しにくいと感じる方も多いでしょう。
本記事では、直積集合とはどのような概念かを、豊富な具体例とともにわかりやすく解説していきます。
要素の組み合わせ方、表記方法、計算の仕方まで、ステップを踏んで丁寧に説明しますので、ぜひ最後までお付き合いください。
直積集合の本質は「すべての組み合わせを集めること」
それではまず、直積集合の本質的な意味と定義について解説していきます。
直積集合とは、二つの集合から一つずつ要素を取り出してできる、すべての順序対の集合のことです。
「順序対」とは、順番が重要な二つの要素の組み合わせで、(a, b)と書きます。
集合AとBの直積集合はA×Bと表記し、AとBのすべての組み合わせ(a, b)を集めたものです。
たとえば「色」と「形」という二つの集合を直積することで、「色と形の組み合わせ全体」が得られます。
これは日常生活でも非常に自然な発想であり、直積集合は私たちが無意識に行っている「組み合わせを列挙する」という操作を数学的に定式化したものです。
【直積集合の基本例】
A = {赤, 青}、B = {丸, 三角, 四角} のとき、
A × B = {(赤, 丸), (赤, 三角), (赤, 四角), (青, 丸), (青, 三角), (青, 四角)}
要素数は |A| × |B| = 2 × 3 = 6個
B × A = {(丸, 赤), (丸, 青), (三角, 赤), (三角, 青), (四角, 赤), (四角, 青)}
A×B と B×A は要素数は同じですが、順序が異なるため別の集合です。
このように、直積集合では「どちらの要素が先か」という順序が重要です。
(赤, 丸)と(丸, 赤)は異なる要素として扱われます。
この性質が「順序対」と呼ばれる理由であり、直積が非可換である根拠でもあります。
順序対の性質と直積集合の特徴
順序対(a, b)の最も重要な性質は、(a, b) = (c, d) ⟺ a = c かつ b = d という等号条件です。
つまり、二つの順序対が等しいのは、第一成分どうし・第二成分どうしがそれぞれ等しい場合だけです。
この性質があるからこそ、直積集合は組み合わせの情報を完全に保持できます。
順序対はクラトフスキーの定義によって集合論の枠組みで厳密に定義されており、(a, b) = {{a}, {a, b}}という形で表現されます。
この定義は抽象的に見えますが、「aが先、bが後」という順序情報を集合として符号化する巧妙な方法です。
直積集合の要素数についても整理しておきましょう。
有限集合AとBの場合、|A × B| = |A| × |B|が成り立ちます。
これは「Aからの選択肢 × Bからの選択肢」という積の法則そのものであり、組み合わせ論の基本定理とも一致します。
直積集合の具体例:数の集合での応用
数の集合を使った直積集合の具体例を見てみましょう。
【数の集合での直積例】
A = {1, 2, 3}、B = {0, 1} のとき、
A × B = {(1,0), (1,1), (2,0), (2,1), (3,0), (3,1)}
要素数 = 3 × 2 = 6
ℝ × ℝ(実数×実数)= ℝ² :二次元平面上のすべての点(x, y)の集合
ℝ × ℝ × ℝ = ℝ³ :三次元空間上のすべての点(x, y, z)の集合
特に重要なのは、ℝ × ℝ = ℝ²が二次元平面を表すという例です。
私たちが使うxy座標系は、まさに実数の直積集合ℝ²の視覚化に他なりません。
デカルト座標系が「カルテシアン座標系」とも呼ばれるのは、直積集合のことを「カルテシアン積」とも言うことに由来しています。
空集合・単元素集合との直積
特殊なケースとして、空集合や単元素集合との直積も確認しておきましょう。
| 直積の形 | 結果 | 要素数 | 説明 |
|---|---|---|---|
| A × ∅ | ∅(空集合) | 0 | Bに要素がなければ組み合わせは0通り |
| ∅ × B | ∅(空集合) | 0 | Aに要素がなければ組み合わせは0通り |
| A × {c} | {(a,c) | a ∈ A} | |A| | 単元素集合との直積はAと「実質同型」 |
| {a} × {b} | {(a, b)} | 1 | 一元素集合どうしの直積は一元素 |
空集合との直積が空集合になるのは自然な結果です。
「何も選べない集合」から要素を選ぶことはできないため、組み合わせが存在しないのです。
直積集合の表記方法と記号の使い方
続いては、直積集合の表記方法と記号の使い方について確認していきます。
直積集合にはいくつかの表記方法があり、文脈によって使い分けられています。
基本的な表記方法と「×」記号
最も基本的な表記は「×」記号を使うものです。
A × B、C × D × E のように書き、複数の集合の直積を表します。
「×」記号は掛け算と同じ記号ですが、集合の文脈では直積を意味します。
この記号の類似性は偶然ではなく、直積集合の要素数が |A| × |B| という掛け算で求まることに対応しています。
また、同じ集合を自分自身と直積する場合は、A × A = A²と書くことがあります。
たとえばℝ × ℝ = ℝ²(二次元実数平面)がその代表例です。
三つの同じ集合の直積はA³ = A × A × Aと書き、n個の場合はAⁿ = A × A × … × A(n個)と表記します。
総乗記号∏を用いた表記
n個の集合の直積をまとめて表す場合には、総乗記号∏(パイ)を使います。
【∏記号による直積の表記】
n個の集合A₁, A₂, …, Aₙの直積:
∏ᵢ₌₁ⁿ Aᵢ = A₁ × A₂ × … × Aₙ
無限個の集合の直積(無限直積):
∏ᵢ₌₁^∞ Aᵢ = A₁ × A₂ × A₃ × …
添字集合Iを使った表記:∏ᵢ∈ᵢ Aᵢ
特に無限直積は、位相空間論や関数解析において重要な役割を果たします。
チコノフの定理は「コンパクト空間の無限直積はコンパクトである」という定理で、無限直積の最も有名な結果のひとつです。
無限直積を考えるためには選択公理が必要になる場合があり、集合論の深いテーマと関連しています。
集合内包記法による表記
直積集合を集合内包記法で書く方法も重要です。
【集合内包記法による直積の表記】
A × B = {(a, b) | a ∈ A ∧ b ∈ B}
「aはAの要素であり、かつbはBの要素である」ような(a, b)の全体。
条件付き直積の例:
{(x, y) ∈ ℝ × ℝ | x² + y² = 1} :単位円上の点の集合
{(x, y) ∈ ℤ × ℤ | x + y = 5} :整数の組でx+y=5を満たすもの
集合内包記法は、直積集合の部分集合(二項関係)を定義する際にも活用されます。
たとえば単位円は、ℝ²の部分集合として内包記法で定義できます。
直積集合の計算方法と要素数の求め方
続いては、直積集合の計算方法と要素数の求め方について確認していきます。
直積集合を実際に計算する際には、体系的な手順を踏むことが大切です。
直積集合の具体的な計算手順
直積集合A×Bを計算する手順を整理しましょう。
【直積集合の計算手順】
① Aの最初の要素a₁を固定する
② Bのすべての要素b₁, b₂, …と組み合わせて (a₁, b₁), (a₁, b₂), … を作る
③ Aの次の要素a₂に移り、同様に (a₂, b₁), (a₂, b₂), … を作る
④ Aのすべての要素について繰り返す
⑤ できたすべての順序対を集めたものがA×B
この手順を実際に適用してみましょう。
A = {1, 2, 3}、B = {x, y}のとき、A×Bの計算は以下のようになります。
a₁ = 1のとき:(1, x), (1, y)
a₂ = 2のとき:(2, x), (2, y)
a₃ = 3のとき:(3, x), (3, y)
よって、A × B = {(1,x), (1,y), (2,x), (2,y), (3,x), (3,y)}となります。
三つ以上の集合の直積計算
三つ以上の集合の直積も同様に計算できます。
A = {0, 1}、B = {a, b}、C = {α, β}の三重直積A×B×Cを求めてみましょう。
| A の要素 | B の要素 | C の要素 | 順序三つ組 |
|---|---|---|---|
| 0 | a | α | (0, a, α) |
| 0 | a | β | (0, a, β) |
| 0 | b | α | (0, b, α) |
| 0 | b | β | (0, b, β) |
| 1 | a | α | (1, a, α) |
| 1 | a | β | (1, a, β) |
| 1 | b | α | (1, b, α) |
| 1 | b | β | (1, b, β) |
要素数は |A| × |B| × |C| = 2 × 2 × 2 = 8個で、上の表の通りです。
n個の集合A₁, …, Aₙの直積の要素数は |A₁| × |A₂| × … × |Aₙ| になります。
これはn個の選択を独立に行う場合の数に等しく、組み合わせ論の積の法則そのものです。
直積集合と関係・関数の関係
直積集合の重要な応用として、「二項関係」と「関数(写像)」の定義があります。
【直積集合を用いた関係と関数の定義】
■ 二項関係:A×Bの部分集合R ⊆ A×B
例:「≤」という関係はℝ×ℝの部分集合 {(x,y) | x ≤ y}
■ 関数(写像)f: A → B:A×Bの部分集合で、各a∈Aに対して一意なb∈Bが対応するもの
f ⊆ A×B で、∀a∈A に対して唯一の (a,b)∈f が存在する
■ 全単射:f: A→B が全射かつ単射(A×Bの部分集合として完全な対応関係)
このように、直積集合は関係や関数の定義の土台になっています。
数学における「関数」の概念が集合論的に厳密に定義できるのも、直積集合があるからこそです。
直積集合の集合論的応用と発展的な内容
続いては、直積集合の集合論的な応用と、より発展的な内容について確認していきます。
直積集合は基本的な概念でありながら、より高度な数学の基礎にもなっています。
直積集合と位相空間
位相空間論では、二つの位相空間の直積に自然な位相を定義できます。
この位相を「直積位相(積位相)」と呼びます。
直積位相は、二つの位相空間の開集合から生成される最も粗い位相として定義されます。
二次元平面ℝ²は、実直線ℝとℝの直積にユークリッド位相(直積位相と一致)を入れたものとして理解できます。
さらに複雑な空間も、よりシンプルな空間の直積として構成できる場合があり、これが直積位相の重要な応用です。
直積集合と群論・代数的構造
代数学においても、直積集合は重要な役割を果たします。
二つの群GとHが与えられたとき、その直積集合G×Hに自然に群の演算を定義できます。
【直積群の演算の定義】
(g₁, h₁) · (g₂, h₂) = (g₁·g₂, h₁·h₂)
単位元:(e_G, e_H)(それぞれの群の単位元の組)
逆元:(g, h)⁻¹ = (g⁻¹, h⁻¹)
例:ℤ₂ × ℤ₂(クラインの四元群V₄)
このように定義されたG×Hは「直積群」と呼ばれます。
群論において、複雑な群を単純な群の直積として分解することは、群の構造を理解する上で非常に重要な手法です。
データベースにおける直積集合の応用
コンピューターサイエンスの分野でも、直積集合は重要な役割を担っています。
関係データベースのSQL文における「CROSS JOIN(クロス結合)」は、二つのテーブルの直積そのものです。
| 数学の概念 | データベースの対応概念 |
|---|---|
| 集合A | テーブルA(レコードの集まり) |
| 集合B | テーブルB(レコードの集まり) |
| 直積A×B | CROSS JOINの結果 |
| 直積の部分集合(条件付き) | WHERE句によるフィルタリング |
| 射影π₁, π₂ | SELECT文による列の選択 |
SQLのJOIN操作は数学的には直積集合の部分集合を取り出す操作であり、集合論が直接応用されている典型例です。
プログラミングにおいても、二つのリストの「デカルト積」を計算する操作(全組み合わせの列挙)は直積集合の計算そのものです。
Pythonのitertools.productなどがこの操作を提供しています。
まとめ
本記事では、直積集合とは何かという基本的な定義から、要素の組み合わせ方、表記方法、計算手順、そして集合論的な応用まで幅広く解説してきました。
直積集合A×Bとは、集合AとBのすべての要素の組み合わせからなる順序対の集合であり、|A×B| = |A|×|B| という要素数の関係が成立します。
順序対(a, b)では順序が重要であるため、A×BとB×Aは一般に異なる集合です。
表記方法としては「×」記号と∏記号が使われ、n個の集合の直積も同様に定義できます。
計算においては、Aの各要素を固定してBの全要素と組み合わせるという体系的な手順に従うとミスを防げます。
さらに直積集合は、関係・関数の定義、位相空間・群論への応用、データベースのJOIN操作まで、数学とコンピューターサイエンスの広い場面で活躍する基礎概念です。
直積集合の理解を深めることで、数学全体の見通しが格段によくなるでしょう。