このブログの更新は X(旧Twitter)アカウント @m_hiyama で通知されます。
Follow @m_hiyama

ご連絡は上記 X アカウントに DM にてお願いします。

参照用 記事

方向とオリエンテーション、圏論の絵図

「方向と向きは区別しなさい」と教わって、それを守ってきたつもりですが、テクニカルタームだとしても「方向」と「向き」を区別して運用するのはどうも無理がある気がしてきました。方向は direction で、向きは orientation のことなのですが、思い切ってカタカタ語「オリエンテーション」を使ったほうがいいと思い直しました。「方向」と「オリエンテーション」なら区別して運用できるでしょう。

方向〈direction〉とオリエンテーション〈orientation〉はキチンと区別したとして、さらに次の区別があります。

  • オリエンテーション付き方向〈oriented direction〉
  • オリエンテーション無し方向〈unoriented direction〉

けっこうややこしいんですよ。

ややこしい事態をハッキリさせるために、実係数有限次元ベクトル空間 $`V`$ に対して、オリエンテーション付き方向の集合 $`\mathrm{ODirec}(V)`$ 、オリエンテーション無し方向の集合 $`\mathrm{UDirec}(V)`$ 、オリエンテーションの集合 $`\mathrm{Orien}(V)`$ を定義します。ある程度は過去記事への参照で済ませますが、新たにベクトル空間の位相化〈topologize〉についてこの記事で述べます。

また、なんでこんなことが気になるか? 考える必要があるのか? の動機・背景も説明します。実は、動機・背景は“圏論のお絵描き”なんです(本文参照)。$`\newcommand{\cat}[1]{\mathcal{#1}}
\newcommand{\mrm}[1]{\mathrm{#1}}
\newcommand{\mbf}[1]{\mathbf{#1}}
%\newcommand{\msf}[1]{\mathsf{#1}}
\newcommand{\o}[1]{\overline{#1}}
%\newcommand{\id}{\mathrm{id}}
\newcommand{\op}{\mathrm{op}}
\newcommand{\In}{\text{ in }}
\newcommand{\hyp}{ \text{-} }
\newcommand{\Imp}{ \Rightarrow }
\newcommand{\twoto}{\Rightarrow}
%
\newcommand{\SWArrow}{\style{display: inline-block; transform: rotate(-45deg)}{\Leftarrow} }
\newcommand{\SEArrow}{\style{display: inline-block; transform: rotate(45deg)}{\Rightarrow} }
\newcommand{\NEArrow}{\style{display: inline-block; transform: rotate(-45deg)}{\Rightarrow} }
\newcommand{\VEQ}{\style{display: inline-block; transform: rotate(90deg)}{\Rrightarrow} }
`$

内容:

方向とオリエンテーション

実係数有限次元ベクトル空間 $`V`$ をひとつ固定します。我々が視認可能な場合を考えるなら、次元は 1 か 2 か 3 だと思っていいです。ベクトル空間は足し算と(実数による)スカラー倍を持つ代数系ですが、ここでは幾何的な空間だとみなします -- それは、普通に皆さんやっていることでしょう。

原点(ベクトル空間のゼロのところ)から出る半直線を考えます。「半」とは、原点はハジッコになっていて、無限の彼方に向かう、ということです。この半直線が $`V`$ における方向〈direction〉を定めると言っていいでしょう。

$`V`$ のオリエンテーション〈orientation〉は難しい概念です。短い説明は困難です。とりあえず言えることは、1次元以上のベクトル空間には2つのオリエンテーションがあることです。1次元ベクトル空間(直線)なら、正方向と負方向が2つのオリエンテーションです。2次元ベクトル空間(平面)なら、時計回りと反時計回りが2つのオリエンテーションです。3次元ベクトル空間(いわゆる空間)なら、右手系と左手系が2つのオリエンテーションです。

1次元ベクトル空間(直線)に限って言えば、方向とオリエンテーションは同一の概念になります。1次元ベクトル空間の原点(ゼロ)から出る半直線は2本しかありません。この2本の半直線は“方向”を表すと同時に“オリエンテーション”も表します。“方向=オリエンテーション”のどちらか一方を選び、それを“正方向=正のオリエンテーション”と指定すれば、残ったもうひとつの“方向=オリエンテーション”は“負方向=負のオリエンテーション”となります。

1次元なら「正方向は選ばなくても事前に決まっているではないか」と思いましたか? それは勘違いです。スカラー体としての $`\mbf{R}`$ では、1 があるほうの半直線が正です。それはゼロ以外にイチがあるから決められることです。1次元ベクトル空間には、ゼロはあってもイチはありません。恣意的にどちらかの“方向=オリエンテーション”を選ばないと正負は決まりません。

さて、1次元とは限らない一般の実係数有限次元ベクトル空間 $`V`$ において、原点を通る直線(半直線ではない)で決まる“向き概念”もあります。直線は原点から両方向に延びるので、どっちが正方向かは決まってません。当該直線のオリエンテーションを決めると、正方向の半直線が決まり、最初に説明した意味の方向が決まります。

次の2つの概念は別物なのです。

  1. 原点から出る半直線で決まるオリエンテーション付き方向〈oriented direction〉
  2. 原点を通る直線で決まるオリエンテーション無し方向〈unoriented direction〉

これにオリエンテーションも入れると3つの別な概念となります。オリエンテーションに対するまともな定義・説明はまだしてないので、この後で述べますが。

オリエンテーションの厳密な一般論は難しいので、3次元までの直感的な理解(正方向・負方向、時計回り・反時計回り、右手系・左手系)でもいいんじゃないか、と思います。直感的なオリエンテーションと、上で説明したオリエンテーション付き方向とオリエンテーション無し方向を理解し区別できるなら、視認可能な空間(次元が 3 以下)においては十分です。

圏論における絵図: 描画方向と射の方向

最近、ちょっとした工夫で2次元のペースティング図がうまく描けることに気付きました(以下の記事参照)。

例えば、次のようなペースティング図(あるいは2-グラフ*1)が描けます。

$`\quad \xymatrix{
\bullet \ar[r]^g \ar[d]|{/}_t
\ar@{.>}[dr]|{\SWArrow}
&\cdot \ar[d]|{/}^s
\\
\cdot \ar[r]_f
&\circ
}`$

ここで:

  1. 横方向に走る2本の矢印と、縦方向に走る2本の矢印は別種の射を表すとする。
  2. 縦方向に走る2本の矢印に付けたスラッシュは、別種であることを示す目印
  3. 頂点にラベルを付けてないが、大きな黒丸と白丸が対角線の視点と終点の目印
  4. 対角線については「n角形の対角線とペースティング図 // 面の情報を対角線により指定する」参照。
  5. 対角線を時計回り90度回転した方向が面の方向を表すと約束する
  6. 面の方向は二重矢印で示す。

まーまーな視認性の絵図が描けるのですが、問題もあります。「随伴系のペースティング図もXyJax (Xy-pic extension for MathJax)で描いてみる」より:

ペースティング図はレイアウトの自由度があり過ぎて、レイアウトにより印象がまったく違ってしまう問題があります。

レイアウトを変えること/変える必要性はあります。ペースティング図が表す情報は、図の位相的な性質から決まるので、レイアウトをドラスティックに変えてもいいのですが、よく使うレイアウト変更はアフィン変換です。アフィン変換は、線形変換と平行移動の組み合わせです。2次元の場合の典型的線形変換は:

  1. 主に45度単位での回転
  2. 鏡映〈reflection〉
  3. 特定の方向への伸縮〈スケーリング〉
  4. せん断変換〈シアー変換 | shear transformation〉

回転と鏡映により絵図の描画方向を変えることになります。描画方向については以下の過去記事を参照してください。

鏡映は、描画のキャンバス空間(今の場合は2次元平面)のオリエンテーションを反転させます。時計回りが反時計回りになります。

以上の話は純粋に幾何的なことなのですが、圏論側の問題(困難の発生源)として反対圏と反変関手があります。以下の過去記事を参照してください。

ペースティング図を反対圏で考えるときは、矢印の向きを反転させます。このとき二重矢印はどうすべきでしょうか? 二重矢印も反転させるかそのままにするか? 実はどちらもあるのです。高次圏の反対圏は一種類ではないのです。

ここらで、ペースティング図の描き換え/レイアウト変更の実例を示しましょう。上に挙げたペースティング図を反対圏で考えたものを絵に描きます。ここでは、辺の向きは逆にして、面の向き(二重矢印)は見た目としてはそのままとします。対角線と二重矢印の関係は「対角線を反時計回りに90度回転させたら二重矢印」となります。反対圏の射には上線〈オーバーライン〉を引いて識別します。

$`\quad \xymatrix{
\bullet
&\cdot \ar[l]_{\o{g}}
\\
\cdot \ar[u]|{/}^{\o{t} }
&\circ \ar[u]|{/}_{\o{s}} \ar[l]^{\o{f}}
\ar@{.>}[ul]|{\SWArrow}
}`$

次に反時計回りに90度回転します。スラッシュの目印が付いた矢印が横方向になります。

$`\quad \xymatrix{
\cdot \ar[d]_{\o{g}}
&\circ \ar[l]|{/}_{\o{s}} \ar[d]^{\o{f}}
\ar@{.>}[dl]|{\SEArrow}
\\
\bullet
&\cdot \ar[l]|{/}^{\o{t} }
}`$

さらに、縦方向に線対称の軸をとって鏡映変換すると左右の方向が入れ替わります。

$`\quad \xymatrix{
\circ \ar[r]|{/}^{\o{s}} \ar[d]_{\o{f}}
\ar@{.>}[dr]|{\SWArrow}
&\cdot \ar[d]^{\o{g}}
\\
\cdot \ar[r]|{/}_{\o{t} }
&\bullet
}`$

ペースティング図を描いているターゲット2-圏〈キャンバス2-圏〉を $`\cat{K}, \cat{K}^\op`$ だとして、最初のペースティング図をテキスト数式で表現すれば:

$`\quad g;s \twoto t;f \In \cat{K}`$

最後のペースティング図のテキスト数式は:

$`\quad \o{s}; \o{g} \twoto\o{f};\o{t} \In \cat{K}^\op`$

もし、二重矢印の(テキストにおける)左右も入れ替えると:

$`\quad \o{f};\o{t} \twoto \o{s}; \o{g} \In \cat{K}^{\mrm{coop}}`$

ここで、$`^{\mrm{coop}}`$ は conjugate-opposite の略で、2-射〈二重矢印〉の向きも反対にすることを示します。「高次圏の反対圏をどう書くか」の記法では、$`^{\mrm{co}}`$ は “$`^{\mrm{op}}`$ の反時計回り90度回転”です。

その他の問題と過去記事

前節で扱ったのは、描画方向(キャンバスの方向に関する約束)と矢印・二重矢印の向きの反転でした。絵図ではなくてテキストの書き方の方向〈書字方向〉として、図式順と反図式順があります。例えば、前節最後のテキスト数式を反図式順記法で書くと:

$`\quad \o{g}\circ \o{s} \twoto \o{t}\circ \o{f} \In \cat{K}^\op`$

$`\quad \o{t}\circ \o{f} \twoto \o{g}\circ \o{s} \In \cat{K}^{\mrm{coop}}`$

これは、あくまで記法の流儀の違いであって、内容的・理論的な差が生じるわけではありません。また、絵図の描画方向とテキスト数式の書字方向は独立な話です。その結果、「描画方向の個数 ✕ 書字方向の個数」だけのバラエティが生じます。書字方向は、ひとつの二項演算に関しては二種類(「左→右」か「右→左」)だとしても、複数の二項演算で異なる書字方向の約束をすることもあるので、2つの二項演算(例えば、結合〈composition〉とモノイド積)だと4種類の書字方向があります。

この記事の絵図はペースティング図でしたが、その他のメジャーな描画法としてストリング図もあります。ペースティング図とストリング図はポアンカレ双対で対応します。具体的には:

  • ペースティング図の頂点 ←→ ストリング図の背景エリア
  • ペースティング図の辺 ←→ ストリング図のワイヤー
  • ペースティング図の面 ←→ ストリング図のノード

絵図の描き方にも、テキスト数式の書き方にも、とにかく色々な流儀があり、それらが混在併用されているわけです。相互翻訳と書き換え・描き換えは必須のスキルになるので、それはトレーニングするしかないです -- トレーニングのススメが以下の過去記事。

方向/オリエンテーションをはじめとする圏論の絵図を幾何的に取り扱うための基本的な知識と道具については:

上記過去記事の冒頭は次のようです。

この記事の目的は、「上下」「左右」「前後」などの言葉の意味をハッキリさせることです。動機は、高次元の圏 -- あるいは圏類似代数系〈category-like algebraic {structure | system}〉について、行き違い/誤認がないように語りたいからです。

ベクトル空間に限らず、多様体におけるオリエンテーション〈向き〉について書いた過去記事には以下があります。

有限次元ベクトル空間の位相化

ここから先はオマケ(別記事にしてもよいくらい)です。冒頭で予告したように、実数係数有限次元ベクトル空間 $`V`$ に対して、$`\mathrm{ODirec}(V)`$ 、 $`\mathrm{UDirec}(V)`$ 、 $`\mathrm{Orien}(V)`$ を定義します。

ベクトル空間のオリエンテーション〈向き〉については、「方向・向きの話: 高次圏を語るために // ベクトル空間の向き」などで既に述べているので、ここでは、オリエンテーションが代数構造だけからは出そうにないことを指摘します。

実数係数有限次元ベクトル空間 $`V`$ に対して、二元集合 $`\mathrm{Orien}(V)`$ は定義できるのですが、これには、実数体 $`\mbf{R}`$ の順序構造か位相構造が必要です。順序も位相もない純代数的な意味での体 $`K`$ 上の有限次元ベクトル空間 $`W`$ に対して $`\mathrm{Orien}(W)`$ を定義できるか? というと、ちょっと無理そう。

ここでは、実数体の位相構造を利用することにして、位相空間としての $`\mbf{R}`$ を $`\mrm{top}(\mbf{R})`$ と書くことにします。体達の圏を $`\mbf{Field}`$ 、位相空間達の圏を $`\mbf{Top}`$ とすると、次のように考えます。

  • $`\mbf{R} \in |\mbf{Field}|`$
  • $`\mrm{top}(\mbf{R}) \in |\mbf{Top}|`$

実数体上の有限次元ベクトル空間達の圏を $`\mbf{FdVect}_\mbf{R}`$ とします。$`\mrm{top}(\hyp)`$ を、次の形の関手まで拡張して考えましょう。

$`\quad \mrm{top} : \mbf{FdVect}_\mbf{R} \to \mbf{Top} \In \mbf{CAT}`$

実係数有限次元ベクトル空間 $`V`$ は、適当な自然数 $`n`$ に対する $`\mbf{R}^n`$ と同型になります。$`\mbf{R}^n`$ には標準的な位相が入るので、$`V`$ にも同じ位相を入れます。こうして作られた“位相空間としての $`V`$” を $`\mrm{top}(V)`$ とします。“連続写像としての線形写像 $`f`$” が $`\mrm{top}(f)`$ です。

こうして定義された関手 $`\mrm{top}`$ を、有限次元ベクトル空間の位相化〈topologize〉と呼びましょう。有限次元ベクトル空間の位相化は埋め込み関手になります。念の為、埋め込み関手について次節で補足します。

埋め込み関手

老婆心でオマケの補足を書きます。

関数〈写像〉 $`f:X \to Y \In \mbf{Set}`$ が全射/単射であることの定義は以下です。

  • 全射: $`\forall y\in Y.\exists x\in X.\, f(x) = y`$
  • 単射: $`\forall x, x'\in X.\, f(x) = f(x') \Imp x = x'`$

関手 $`F:\cat{C} \to \cat{D}`$ の対象パート〈object part〉である関数に対し、全射と単射の概念をゆるくした性質を考えます。ゆるくするには、等値($`=`$)を同型($`\cong`$)に置き換えます。

  • 本質的に全射: $`\forall Y\in |\cat{D}|.\exists X\in \cat{C}.\, F(X) \cong Y`$
  • 本質的に単射: $`\forall X, X'\in |\cat{C}|.\, F(X) \cong F(X') \Imp X \cong X'`$

一方で、関手のホムパート達(全体として射パート)に関する性質に以下があります。

  • 充満: すべての $`X, X'\in |\cat{C}|`$ に対して、
    $`F_{X, X'} : \cat{C}(X, X') \to \cat{D}(F(X), F(X') ) \In \mbf{Set}`$ は全射
  • 忠実: すべての $`X, X'\in |\cat{C}|`$ に対して、
    $`F_{X, X'} : \cat{C}(X, X') \to \cat{D}(F(X), F(X') ) \In \mbf{Set}`$ は単射

関手 $`F:\cat{C} \to \cat{D}`$ が、本質的に単射で忠実な関手なとき、$`F`$ は埋め込み〈embedding〉だといいます。対象パートがほんとの単射であることを要求することもありますが、それはちょっと厳しすぎるでしょう。単射の条件を少しゆるめた“本質的に単射”でもいいと思います。充満である埋め込みは充満埋め込み〈full embedding〉です(まんま)。

関手 $`F`$ が埋め込みなら、圏 $`\cat{C}`$ は圏 $`\cat{D}`$ の部分圏と(同型を除いて)同一視できます。前節の $`\mrm{top}`$ は埋め込み関手なので、$`\mbf{FdVect}_\mbf{R} \subseteq \mbf{Top}`$ のように思ってかまいません。

方向とオリエンテーションの定義

実係数有限次元ベクトル空間のオリエンテーションを定義するために、ベクトル空間に内積を入れて直交群と特殊直交群を使ったりすると、幾分か議論が簡単になります。が、ここでは内積は使わずに、ベクトル空間の外積空間と位相構造を使います。

$`V\in |\mbf{FdVect}_\mbf{R}|`$ の$`k`$次の外積空間を $`\bigwedge^k(V)`$ とします。$`k`$ を動かしてまとめ上げるなら、次のどちらかを使います。

  • $`\bigwedge^\bullet(V) := (\bigwedge^k(V) )_{k\in \mbf{N}}`$ (ベクトル空間達の無限列)
  • $`\bigwedge^\oplus(V) := \bigoplus_{k \in \mbf{N}} \bigwedge^k(V)`$ (直和に組んだベクトル空間)

別にまとめ上げないでパランパランで扱ってもいいです。

$`V`$ の次元が $`n`$ ならば、$`k \gt n`$ のところで $`\bigwedge^k(V) = \mbf{0}`$ です。ここでの $`\mbf{0}`$ は空集合ではなくてゼロ空間です。$`n \ne 0`$ のとき、$`\bigwedge^n(V)`$ が1次元空間であることも知られています。つまり、$`\bigwedge^n(V) \cong \mbf{R}`$ です。ただし、実数体との同型が規準的〈canonical〉に定まるわけではありません。

位相を入れて(位相化して)考えると:

$`\quad \mrm{top}(\bigwedge^n(V) ) \cong \mrm{top}(\mbf{R} ) \In \mbf{Top}`$

ゼロを取り除いて連結成分の集合(0次ホモトピー集合)をとると:

$`\quad \pi_0( \mrm{top}(\bigwedge^n(V) ) \setminus \{0\} ) \cong \pi_0( \mrm{top}(\mbf{R} )\setminus \{0\} ) \In \mbf{Top}`$

位相空間としての非ゼロ実数達の集合は2つの連結成分を持つので、上記の左辺も二元集合です。

$`V`$ のオリエンテーション達の集合の定義は、上記の左辺を採用します。

$`\text{For }V \in |\mbf{FdVect}_\mbf{R}|\\
\quad \mrm{Orien}(V) := \pi_0( \mrm{top}(\bigwedge^n(V) ) \setminus \{0\} )\\
\quad \text{where } n = \mrm{dim}(V)
`$

なんか複雑そうですが、結局はこういう定義になるんだろうと思います。なお、「方向・向きの話 // ベクトル空間の向き」では、外積空間を使わずにオリエンテーションを定義しています。

$`V`$ のオリエンテーション付き方向達の集合は以下のように定義します。

$`\text{For }V \in |\mbf{FdVect}_\mbf{R}|\\
\quad \mrm{ODirec}(V) := (\mrm{top}(V) \setminus \{0\})/\sim
`$

ここで、同値関係 $`\sim`$ の定義は以下のようです。

$`\text{For }v, w \in (V\setminus \{0\} ) \\
\quad v \sim w :\Leftrightarrow \exists r \in \mbf{R}_{\gt 0}. v = r w
`$

つまり、正実数のスカラー倍で移り合う2つの非ゼロベクトルは同一視します。

$`\mrm{ODirec}(V)`$ の定義は圏 $`\mbf{Top}`$ 内で考えているので、$`\mrm{ODirec}(V)`$ は位相空間にできます。$`n = \mrm{dim}(V)`$ として、$`\mrm{ODirec}(V)`$ は $`n - 1`$ 次元の球面と同相です。

$`V`$ のオリエンテーション無し方向達の集合(位相空間)は以下のように定義します。

$`\text{For }V \in |\mbf{FdVect}_\mbf{R}|\\
\quad \mrm{UDirec}(V) := (\mrm{top}(V) \setminus \{0\})/\approx
`$

ここで、同値関係 $`\approx`$ の定義は以下のようです。

$`\text{For }v, w \in (V\setminus \{0\} ) \\
\quad v \approx w :\Leftrightarrow \exists r \in \mbf{R}_{\ne 0}. v = r w
`$

つまり、非ゼロスカラー倍で移り合う2つの非ゼロベクトルは同一視します。

位相空間としての $`\mrm{UDirec}(V)`$ は、$`n = \mrm{dim}(V)`$ として、$`n - 1`$ 次元の射影空間と同相です。$`\mrm{dim}(V) = 3`$ のときなら2次元射影空間ですが、2次元でも射影空間(射影平面)はうまく絵に描けません。

おわりに

圏論で使う絵図をうまく取り扱うには、方向とオリエンテーションについて知っていて、方向とオリエンテーションの変更に追従できるようにトレーニングが必要です。

後半のオマケの話は、圏論の絵図のためにはオーバーキルな内容ですが、次のことは知っておいて損はないです。

  • 1次元以上のベクトル空間のオリエンテーションの集合は二元集合である。
  • 1次元以上のベクトル空間のオリエンテーション付き方向の集合(位相空間)は、1次元低い球面である。
  • 1次元以上のベクトル空間のオリエンテーション無し方向の集合(位相空間)は、1次元低い射影空間である。

絵図を描くにも読み解くにも、ある程度の幾何的概念は必要です。

*1:2-グラフとペースティング図は区別する必要があることは「n角形の対角線とペースティング図 // ペースティング図とラベル」参照。