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

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

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

ヤコビ微分圏: 取り急ぎ概要と課題

ヤコビ微分圏に関する最初の記事と2回目の記事が、2年5か月近くあいだが空いてしまいました(苦笑)。

  1. ヤコビ微分圏: はじまり
  2. ヤコビ微分圏: 下部構造としての芯付きラムダ圏

ここで立て続けに続きを書き切ってしまいたい、とは思うものの、気力が足りない。今は無理。でも、長い期間が空くと、思い出すのに苦労するので、概要と課題だけでも大雑把に書き記しておこうと思います。上記の2つの記事で書いたことは仮定します。

内容:

微分公理と微分定理

微分に関して成立する命題を微分公式〈differentiation formula〉と呼んでますが、公理的な定式化では、微分公理と微分定理にわけるべきですね。微分公理は、ヤコビ微分圏の定義に含まれます。微分定理は、それらの公理から証明される命題です。

ヤコビ微分圏の公理から、次の命題は証明できます。つまり、微分定理です。

  1. 微分作用素の線形性(半加法性)
  2. 偏微分と全微分の関係
  3. 関数のペア(一般にはタプル)の微分公式
  4. 双線形写像(一般には複線形写像)の微分公式
  5. ライプニッツの法則
  6. 微分の局所性(制限の微分微分の制限であること)

ヤコビ微分圏の公理は、これらの定理より、もっと基本的な事実を述べていることになります。

開包含系

ヤコビ微分圏: 下部構造としての芯付きラムダ圏」で次のように述べました。

微分計算を行う前に知っておいたほうがいい概念には何があるでしょうか? おそらく、次の事項でしょう。

  1. 線形代数
  2. ラムダ計算
  3. 位相の初歩

位相の初歩とは、「ベクトル空間の位相と、ベクトル空間の開集合のあいだの連続写像」の知識のことです。

基本事項のなかの線形代数とラムダ計算は、半加法芯付きラムダ圏によって定式化しました(前回記事)。残る位相の初歩は、開包含系(この節で説明)とスプレッダー(次節)により定式化します。

まず、開包含系は、「開部分集合」という概念の一部(全部ではない)を圏Cの上で定義するものです。開部分集合Xは、その親の集合への包含写像 j:X→Y を持ちます。この包含写像を全部寄せ集めたものが開包含系だと思ってください。

C上の開包含系〈system of open inclusions〉Oのオフィシナルな定義(条件 | 公理)は:

  1. Oは、Cの部分圏である。
  2. Oの射は、Cのモノ射である。
  3. Oは、広い部分圏である。つまり |O| = |C|
  4. Oは、やせた部分圏である。つまり O(X, Y) は空集合か単元集合。
  5. Oは、引き戻しで閉じている。つまり、f:X→Y in C と j:V→Y in O に対して、引き戻し図〈pullback diagram〉が存在して、jの引き戻しである i:f*V→X はOの射である。

Oの射は、“開部分集合の包含写像”の性質をある程度持ちます。Cに開包含系Oが載っていると、Cの射は「開集合の逆像が開集合になる」という意味で“連続写像”とみなせます。

ヤコビ微分圏では、「すべての対象は開集合であり、すべての写像連続写像である」と考えたいので、下部構造として開包含系も要求します。

スプレッダー

クラットウェル〈G.S.H. Cruttwell〉は、一般化デカルト微分圏〈generalized Cartesian differential category〉の定義のなかで、圏の対象Xにその線形化〈linearization〉または線形台〈linear {carrier | support}〉という対象 L(X) を対応させる操作を導入しています。

スプレッダーは、クラットウェルの線形化と同じものです。「線形(半加法的)」という条件は使わないので、名前は変えました。ただし、記号は同じ L を使います。

芯付きデカルト圏 (C, A) 上のスプレッダー〈spreader〉は次の構成要素からなります。

  • L:|C|→|A| という写像
  • ι:|C|→Mor(C) という写像で、X \mapstoX:X→L(X)) という形のもの

Lとιは次の性質を持ちます。

  1. A∈|A| ならば、L(A) = A
  2. L(X×Y) = L(X)×L(Y)
  3. L(1) = 1
  4. ιX:X→L(X) はモノ射

対象Xに対して、L(X) をXのスプレッド〈spread〉と呼びます。スプレッドは、芯付きデカルト圏の芯Aの対象です。芯Aが何らかの線形構造を持っているときは、「線形化」とか「線形台」がふさわしい言葉になります。

デカルトCに開包含系Oが載っているとき、開包含系とスプレッダーの整合性をとるために、次の条件を課します。

  1. ιX:X→L(X) はOの射である。
  2. j:X→Y in O ならば、L(X) = L(Y)

芯付きデカルト圏に開包含系とスプレッダーが載ると、雰囲気的には次の状況が実現します。

  1. すべての対象は開集合である。
  2. すべての射は連続写像である。
  3. すべての対象=開集合に、親のベクトル空間が一意に存在する。

内部化と内部演算

芯付きラムダ圏を表すには、芯付きデカルト圏 (C, A ) に、[-, -], rev, lev などの構成素を添えて書くべきでしょうが、面倒なので単に (C, A) と書きます。

[追記 date="翌日"]以下の部分にワケわからないことが書いてあったので修正しました。もとの文章はそのまま最後に置きます。[/追記]芯付きラムダ圏では、ホムセット間の部分写像として定義されたカリー化 ℓΛ があります。ℓΛ は定義域の上では同型です。

  • ℓΛX,A,B:LC(A×X, B)→C(X, [A→B]) (同型)

X = 1 と置けば、

  • ℓΛ1,A,B:LC(A×1, B)→C(1, [A→B]) (同型)

芯付きラムダ圏の公理に LC(A×1, B) = A(A×1, B) があったので、

  • ℓΛ1,A,B:A(A×1, B)→C(1, [A→B]) (同型)

これに、右単位律子 ρA:A×1→A のプレ結合により定義される同型 A(A, B)→A(A×1, B) を結合すると、

  • A(A, B)→C(1, [A→B]) (同型)

というフルカリー化が定義できます。

f∈A(A, B) に対するフルカリー化を \hat{f} と書きました。\hat{f}:1→[A, B] in C は、内部ホム対象 [A, B] の“要素”と思えるので、fの内部化〈internalization〉とも呼びます。[追記]ここまで[/追記]

ここで記法の話なんですが; 内部化を上に乗せるハットで表したので、\widehat{g\circ f} のような長いハット(ワイドハット)も使いました。これは、テキストだけだとうまく書けないので、前置のハットも使うことにします。

  •  \widehat{g \circ f} = \hat{}(g \circ f)

芯付きラムダ圏では、芯Aの射なら内部化できます(Cの射一般では無理です)。すると、Aのホムセット上で定義されていた圏論的演算が、内部ホム対象に対する射で表現可能になります。例えば、図式順結合の中置演算子を ; として、それに対応する写像を (;) と丸括弧で囲んで表すとして、

  •  (;)_{A,B,C}:{\mathcal A}(A, B)\times{\mathcal A}(B, C) \to {\mathcal A}(A, C) \:\:\mbox{in}\: {\bf Set}

が、次のように内部化されます。

  •  (\hat{;})_{A,B,C}:[A, B]\times[B, C]\to [A, C] \:\:\mbox{in}\: {\mathcal C}

ここで、 (\hat{;}) (;) の内部化です。集合圏の射(の族)として存在していた  ({;}) が、C の射である  (\hat{;}) となったので(SetからCへの)内部化といえます。

反図式順中置演算子 \circ の内部化であれば、

  •  (\hat{\circ})_{A,B,C}:[B, C]\times[A, B]\to [A, C] \:\:\mbox{in}\: {\mathcal C}

となります。

内部化された圏論的演算を内部演算〈{internal | internalized} operation〉と呼び、もとの記号にハットを乗せた記号で表すことにします。

内部結合は、\hat{;} または \hat{\circ}、内部直積は  \hat{\times} または  \hat{\oplus} です。ただし、内部逆を  (\mbox{-})^{\widehat{-1}} と書くと見にくいので、「快適な微分計算のための圏と微分公式」で導入した  (\mbox{-})^{\triangleleft} にします。他にも例外があるかも知れませんが、原則は「もとの記号にハットを乗せる」です。

ヤコビ微分コンビネータ微分法則公理

以上の準備のもとで、ヤコビ微分圏が定義できます。ヤコビ微分〈Jacobian differential category〉は、開包含系とスプレッダーを備えた半加法芯付きラムダ圏にヤコビ微分コンビネータが載った構造です。

ヤコビ微分コンビネータ〈Jacobian differential combinator〉は J で表します。デカルト微分圏の微分コンビネータ D とは区別します。ヤコビ微分コンビネータデカルト微分コンビネータが一緒に出てくるときがあるので、違う文字にしておかないと困ったことになります。

ヤコビ微分コンビネータは、次の形のホムセット間の写像の族です。

  • JX,Y:C(X, Y)→C(X, [L(X), L(Y)])

[-, -] は内部ホムで、L(-) はスプレッドでした。我々がよく知っている状況で言えば、fのヤコビアン J(f) は、ベクトル空間 L(X) から L(Y) への線形写像の空間 [L(X), L(Y)] に値を取ることになります。

これだけでは、まだ「微分らしさ」が出てないので、いくつかの微分公理により、「微分らしさ」を付け加えていきます。微分公理は、微分法則公理と、基本的射の微分公理にわけるといいでしょう。

微分法則公理は、圏の結合と直積に対して、ヤコビ微分コンビネータがどう振る舞うかを規定します。

  1.  J(f;g) = \langle J(f),\: f;J(g) \rangle ; (\hat{;})
  2.  J(f\times g) = (J(f) \times J(g)) ; (\hat{\times})

ここで、山形括弧はデカルト圏の射のペアリングです。ハット付きの演算子は内部演算を表します。

反図式順、中置演算子記号などを使ったほうがお馴染みの形になるかも知れません。例えば、反図式順結合を \circ として、 (\star) = (\hat{\circ}) と置けば、一番目の微分法則公理(チェーン法則)は次のように書けます -- 今までこう書いてきました。

  •  J(g\circ f) = (J(g)\circ f) \star J(f)

ただ、省略や中置演算子を使うと、勘違い・間違いを誘発する危険性が増す(「快適な微分計算のための圏と微分公式 // 応用: 部分逆写像の微分公式」参照)ので、最初のうちは省略や中置演算子は避けたほうがいいでしょう。図式順/反図式順に関しては、どちらで書いても対応できるように慣れておきましょう。

基本的な射の微分公理

Cの射のなかで基本的なものに関しては、その微分(ヤコビ微分コンビネータによる値)が最初から分かっているとします。つまり、微分公理として微分導関数 | derivative〉を与えます。

基本的な射とは、次の射であるとします。

  1. Aの射
  2. LC(A×Y, C) に属する射
  3. RC(X×B, C) に属する射
  4. 開包含系Oの射
  5. 1→X の形の射

以下に、これら基本的な射の微分公式を並べます。!X は、Xから終対象1への唯一の射、π1, π2 は直積の射影です。

  1.  \mbox{For}\: f\in {\mathcal A}(A, B),\:\: J(f):A\to[A, B] \\ J(f) =\: !_A ;\hat{f}
  2.  \mbox{For}\: f\in \mbox{R}{\mathcal C}(X\times B, C), L(X) = A ,\:\: J(f):X\times B\to [A\times B, C]  \\ J(f) =\: \pi_1;r\Lambda(f)
  3.  \mbox{For}\: f\in \mbox{L}{\mathcal C}(A\times Y, C), L(Y) = B ,\:\: J(f):A\times Y\to [A\times B, C]  \\ J(f) =\: \pi_2;l\Lambda(f)
  4.  \mbox{For}\: f\in {\mathcal O}(X, Y), L(X) = L(Y)= A,\:\: J(f):X\to [A, A] \\ J(f) =\: !_X; \hat{}(id_A)
  5.  \mbox{For}\: f\in {\mathcal C}({\bf 1}, X), L(X) = A,\:\: J(f):{\bf 1}\to [{\bf 1}, A] \\ J(f) =\: \hat{}(0_{{\bf 1},A})

基本的な射の微分はすべて、カリー化 \hat{}(\mbox{-}),\: r\Lambda,\: l\Lambda)で与えられていることに注目してください。これは、微分計算とラムダ計算が深く関わっていることの証左のひとつです。

課題: 偏微分の交換可能性

fに対する J(f) は、通常の微分計算で言えば全微分です。偏微分に相当する微分コンビネータはJから定義できます。f:X×Y→Z に対して、J1(f):X×Y→[L(X), L(Z)], J2(f):X×Y→[L(Y), L(Z)] のようになります。

通常の微分計算では、偏微分 J1\frac{\partial}{\partial x} 相当)と J2\frac{\partial}{\partial y} 相当)は交換できます。J2J1 = J1J2 です。ヤコビ微分圏においても、偏微分の交換可能性は欲しい性質です。イコールでなくても、J2J1 と J1J2 がある種の同型的な関係で結ばれていればいいです。

一番簡単な解決策は、偏微分の交換可能性を微分公理に入れてしまうことです。それでいいのですが、偏微分の交換可能性が定理である可能性もあります。偏微分の交換可能性が定理ではないことを示すには、他の公理を満たして偏微分が交換しない実例(モデル)を作る必要があります。

ヤコビ微分圏の枠内で、偏微分の交換可能性は定理なのか、定理にはなり得ない(反例が存在する)のかは興味ある課題です。


[追記 date="翌日"]
ワケわからない記述 保存

もとの場所。ℓΛ, rΛ がA上では同型を与える、はウソ! なんでこんなことを書いたかも不明。なんかボーッとしてたのでしょう。

芯付きラムダ圏では、ホムセット間の部分写像として定義されたカリー化 ℓΛ, rΛがあります。カリー化を芯Aに制限すると、ホムセット間の全域写像(普通の写像になり、さらに集合の同型を与えます。

  • ℓΛB,A,C:A(A×B, C)→A(B, [A→C]) (同型)
  • A,B,C:A(A×B, C)→A(A, [C←B]) (同型)

インデックスのルールがウザくなっているのは勘弁(インデックス記法の工夫をしたほうがいいですね)。

A上のカリー化とC上の部分的カリー化を組み合わせると、A(A, B)→C(1, [A, B]) というフルカリー化が常に定義できます。f∈A(A, B) に対するフルカリー化を \hat{f} と書きました。\hat{f}:1→[A, B] in C は、内部ホム対象 [A, B] の“要素”と思えるので、fの内部化〈internalization〉とも呼びます。

[/追記]