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

メールでのご連絡は hiyama{at}chimaira{dot}org まで。

はじめてのメールはスパムと判定されることがあります。最初は、信頼されているドメインから差し障りのない文面を送っていただけると、スパムと判定されにくいと思います。

参照用 記事

双対と随伴、そして左と右

JavaScript配列とJSON配列の差を埋めるような些細な問題でも、納得のいく解決のためにはモナドが必要になり、モナドといえば随伴で、随伴といえば …… いつもいつも僕を悩ませる左と右の問題がぁ。

内容:

双対に関する左右の使い分け

AとBを圏Cの対象だとして、A -| B という記法で「AとBが双対」であることを表すとしましょう。「'-|'という記号は随伴では?」 -- そうです、随伴に使われる記号です。僕も以前は、双対と随伴を区別しようとしていたのですが、ある抽象レベルでは双対も随伴も区別がなくなってしまうので、今は「双対」と「随伴」を同義語だと捉えています。

A -| B のとき、AをBの左双対、BをAの右双対と呼びます。どうしてAが左なのか? まったく何の根拠もありません、「左側に書いてあるから左と呼ぶことにした」という程度の理由。どうしてBが右なのか? それはAを左と呼んだからです。

A -| B の状況において、B = A*、A = *B と書きます。つまり、A -| A*, *B -| B です。B = A、A = B という記号を使うときもあります。要するに肩になんか記号を乗せる書き方ですね。

以上のような左右の使い分けは、僕の最近の流儀です。「檜山の流儀なんてアテにならない」 -- まったくです。でもね、左右の使い方のルールは驚くほどにカオス状態で、誰の流儀もアテになりません。そのことは次の記事に書きました。

形容詞「左」「右」をどんな組み合わせで使ってもそれには前例があります。複数の流儀を整合的に統合する方法はありません。

「右と左 n-たび セリンガーの左右」から引用:

どうやってもうまくいかないのだが、現状での僕の態度としては、

  1. 右双対は右肩の星(憶えやすい)
  2. 右双対は余単位の定義域の右側に置く
  3. 右随伴は -| の右に置く
  4. 左右を整合的にするために、テンソル積としては反図式順結合を採用する

自分で「左右」の使い方を決めて、他人の用語法との差に注意するしかないようです。

双対対象を一意に割り当てること

ブルース・バートレット(Bruce Bartlett)は、次のように主張しています。

  • 双対(随伴)は、大域的な割り当てと考えるべきではない。

どういうことかと言うと、対象Aに対してAの右双対A*を割り当てる写像が存在するわけじゃないということです。いや、まー、存在してもいいのですが、「存在する前提で議論するのは一般性に欠ける」と。

バートレットは、AとBに対して、「BをAの右双対(右随伴)にする」ところの双対性の全体を Dual(A -| B) (とか Adj(A -| B))と書きます。これは、命題「BはAの右双対」を成立させる証拠の集合といえます。つまり、

  • Dual(A -| B) = 空 ⇔ BはAの右双対となり得ない
  • Dual(A -| B) ≠ 空 ⇔ BはAの右双対となり得る

Aを固定した場合、Dual(A -| X) ≠ 空 となるXがあることは、「Aが右双対を持つ」ことになります。Aの右双対となるBを一つ取り出して Dual(A -| B) を考えても、Dual(A -| B) が単元集合である保証はないので、「A -| B」である根拠を一意に確定できるとは限らない、ということです。

したがって、A |→ A* のような写像を持つ圏は、単に「すべての対象に右双対が存在する」圏よりずっとずっと強い構造を持つことになります。もちろん、強い構造は扱いやすいというメリットがあります。

双対性はどうやって定義されるのか

ところでそもそも、Dual(A -| B) って集合はナニモノでしょう。Dual(A -| B) の要素は、次のプロファイルを持つ2つの射から構成されます。

  1. f:A×B→I
  2. g:I→B×A

×(掛け算)は圏のモノイド積で、Iはモノイド単位です。(f, g) は次の等式を満たします。

  1. (A × g);(f × A) = A
  2. (f × B);(B × g) = B

対象と恒等射は同じ記号で表しています。=(イコール)はホントは同型なので、正確に言えば、(f, g)と同型を与える射も一緒に考えます。

よく使われる記号法では、B = A*、f = ε = εA、g = η = ηA として、上の2つの等式は次のように書きます。

  1. (A × η);(ε × A) = A
  2. (ε × A*);(A* × η) = A*

絵で描けば次のとおり(この絵は2005年に描いたヤツ、射の向きは左から右です。)。

「双対性」という言葉はものすごく多義的なので、今説明した事とはまったく別な意味で使われることがあります。でも、コンパクト閉圏とか随伴関手に関連して出てくる双対性(随伴性)はこのような定義を持ちます。

双対性を持つ圏

モノイド圏C対象A, Bに対して、A -| B の正確な意味は、Dual(A -| B) が空ではないことですが、通常は特定の双対性が選ばれていると考えます。つまり、A -| B を主張するとき、次のような射も特定されていると考えていいでしょう。

  1. f:A×B→I
  2. g:I→B×A

双対性を定義するf, gをなんと呼ぶか? これがまたいくつも呼び名があります。

fのこと gのこと
余単位 ε 単位 η
評価射 ev 余評価射 coev
ペアリング 余ペアリング

圏が双対性を持つと、双対性を利用して色々なことが出来るので、「双対性を持つ圏」は調べる価値があります。非常に多くの人が興味を持ったので、用語法はメチャクチャになってしまいました。次のような性質を考えます。

  1. 性質A: 任意の対象に右双対対象が存在する。
  2. 性質B: 任意の対象に左双対対象が存在する。
  3. 性質C: 任意の対象に右双対対象も左双対対象も存在する。
  4. 性質D: 任意の対象に右双対対象も左双対対象も存在して、その2つが同型である。

これらの性質を満たす圏の呼び名がイッパイあります。

  1. 性質Aを満たす圏:自立(自律)圏、堅い圏、コンパクト圏に形容詞「右」を付ける。
  2. 性質Bを満たす圏:自立(自律)圏、堅い圏、コンパクト圏に形容詞「左」を付ける。
  3. 性質Cを満たす圏:自立圏(autonomous category)、堅い圏(rigid category)、コンパクト圏(compact category)
  4. 性質Dを満たす圏:自足圏(sovereign category)、軸的圏(pivotal category)

ただし、形容詞「左右」は人により逆になるかもしれません -- あー、ナンテコッタイ。

あと、それから

実例を全然出せなかったのですが、線形代数の双対はいい例になります。相互に通信するコンポネントの役割をひっくり返すことも(コンパクト閉圏における)双対性の例です。随伴関手を扱うには、モノイド圏では不十分で2-圏における双対性が必要です。

まー、なんつっても左と右の混乱で頭が痛くなりますね。