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

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

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

参照用 記事

ラムダ計算とイプシロン計算を使って線形代数の計算 -- 随伴の例

「線形代数の難所とアダムとイブと矢印一元論」でベクトル空間の双対の話をして、「イプシロン計算ってなんですかぁ? こんなもんですよぉ」イプシロン計算を紹介しました。せっかくだから、例題をやっておこうかな。

内容:

前提と例題の説明

ベクトル空間は常に有限次元、双対空間U*の定義は、多数派に従って「U上の線形形式の空間」としておきます。つまり、U* = Lin(U, K)(Kはスカラー体、Linは線形写像全体の空間を示す)。

ベクトル空間Uと双線形形式φ:U×U→Kを一緒にしたもの(U, φ)を考えます。ただし、φは次の非退化性を持つとします。

  • ∀y∈U.(φ(x, y) = 0) ならば、x = 0。

φは内積みたいなもんだから φ(x, y) = (x|y) と書きましょう。ただし、上の非退化性条件以外は一切何も仮定しません。次のようなことが成立すると期待しないでね!

  • (x|y) = (y|x)
  • (x|x) ≧ 0
  • (x|x) = 0 ならば x = 0

以下、非退化双線形形式を持った有限次元ベクトル空間の圏(射はとりあえず任意の線形写像)で議論するのですが、記号を濫用して U = (U, φ) のように書き、φがUに付随することを明記するには下添字でφUとします。そして、φU = (-|-)U と書くのでした。(あっと、僕は無名変数にハイフンを使うので、引き算と間違わないでね。)Aが線形写像のときA(x)を単にAxと書くこともあります。また、AとBの反図式順の結合B・Aを単にBAと書くことがあります。

φ = (-|-) は内積に比べてずっと弱いのですが、それでも随伴概念が定義できます。そして、A:U→W に対してAがその随伴なら、(Ay|t)U = (y|At)W が成立します。これを露骨な計算で示すことにします。

双対写像

A:U→W に対して、A*:W*→U*を次の等式で定義します。

  • (A*g)x = g(Ax)

ここで、g∈W*です、(A*g) はU*に入るので、x∈Uに対してスカラー値を取る線形形式です。よって、任意のx∈Uに対する(A*g)の値が決まればハッキリとした定義になります。xに対するg(Ax)はハッキリとしているので、A*はちゃんと定義されています。

線形写像Aに対してその双対A*を対応させることは、ベクトル空間の圏における反変自己関手(contravariant endofunctor)になっています。つまり、次が成立します。

  • A:U→W に対して A*:W*→U*
  • (BA)* = A*B*
  • (IdU)* = IdU*

A** = A (対合性/包合性)も成立していると思っていいのですが、ほんとにイコールかどうかは微妙で、「イコールとみなして差し支えない」と言うほうが適切でしょう。もう少し正確に言うと、(-) ⇒ (-)** という自然同型(成分がすべて同型な自然変換)があります。

ベクトルとコベクトルの対応

U = (U, (-|-)U) の(-|-)Uは、普通の内積よりはるかに弱いものですが、便宜上、内積と呼んでしまいましょう(ちょっと強引かもしれない)。x∈Uに対して

  • Φ(x) = λt.(x|t)

とすると、Φ(x)はU*に入るので、Φ自身は U→U* という写像です。非退化性から、

  • Φ(x) = 0 ならば x = 0

これはΦが単射であることを意味し、UとU*が同次元なのでΦは可逆で、Φ-1が存在します。f∈U*に対するΦ-1の値は、イプシロン記法を用いて次のように書けます。

  • Φ-1(f) = εu.(Φ(u) = f)

(Φ(u) = f) は関数に対する等式なので、値を使って書き下すと ∀t.[(Φ(u))(t) = f(t)]。Φ(u)を具体的な表示(ラムダ式)に展開すれば、∀t.[(u|t) = f(t)] が得られます。結局、

  • Φ-1(f) = εu.∀t.[(u|t) = f(t)]

この等式を読み下すと; Φ-1は、コベクトル(線形形式)fに対し、fとまったく同じ“働き”をするベクトルxを対応させるものです。ベクトルの“働き”は、内積を使って定義されます。要約するなら: Φ(x) = f ⇔ Φ-1(f) = x ⇔ fとxは同じ働き。

随伴写像

A:U→W があるとき、Aの随伴A:W→U を次の等式で陽に(explicitly)定義します。

  • A = ΦU-1・A*・ΦW

ここで、ΦW:W→W*、ΦU-1:U*→U は、WとUの内積(非退化双線形形式)から定義される写像です。ΦW、A*、ΦU-1 のいずれも、ラムダ項またはイプシロン項として具体的な表示を持つので、y∈Wが与えられれば、A(y)はラムダ/イプシロン計算で具体的に求めることができます。

A|→A という対応を関手(反変自己関手)とみなすには、対象(ベクトル空間)Uに対してU = U とします。すると:

  • A:U→W に対して A:W→U
  • (BA) = AB
  • (IdU) = IdU†

双対写像を対応させる関手とよく似てますが、同じ関手ではありません。例えば、UとU*は違う(同じとは限らない)ベクトル空間ですが、UとUは同じ空間です。

計算例

A:U→W の随伴A:W→U の値を計算してみます。y∈Wに対するAy の表示を求めます。結果的に、(Ay|t)U = (y|At)W という等式も示せます。

既に出てきた定義を再掲しておきましょう。

  1. (A*g)x = g(Ax)
  2. Φx = λu.(x|u)
  3. Φ-1f = εu.∀t.[(u|t) = ft]
  4. A = ΦU-1・A*・ΦW

これらの等式を上から順に、[1], [2], [3], [4]として引用します。

[4]に基づいて Ay を計算するのですが、次のような小さいステップに分けます。

  • g = ΦWy (y∈W, g∈W*
  • f = A*g (g∈W*, f∈U*
  • x = ΦU-1f (f∈U*, x∈U)
g = ΦWy //↓ [2]より
  = λs.(y|s)

f = A*g
// t∈U に対する値を計算
ft = (A*g)t //↓ [1]より
   = g(At) //↓ gを展開
   = (λs.(y|s))(At) //↓ ベータ変換
   = (y|At)

x = ΦU-1f //↓ [3]より
  = εu.∀t.[(u|t) = ft] //↓ ftを展開
  = εu.∀t.[(u|t) = (y|At)]

x = Ay は、Aとyを(自由変数として)含むイプシロン項 εu.∀t.[(u|t) = (y|At)] で表示できました。イプシロン項の原則を思い起こすと:

  • x = εu.P(u) ならば P(x)

今のケースにおいて具体的に書き下せば:

  • x = εu.∀t.[(u|t) = (y|At)] ならば、∀t.[(x|t) = (y|At)]

x = εu.∀t.[(u|t) = (y|At)] は、Ay の表示だったので、結局

  • ∀t.[(Ay|t) = (y|At)]

yは自由変数だったので、次の命題が成立します。

  • y∈W と t∈U に対して、(Ay|t) = (y|At)

雑感

Φ:U→U*が可逆だったので、Φ-1という記法を使いましたが、計算過程を見直すと、Φ-1がΦの逆であることは使ってません。Φ':U*→Uがあって、Φ'・Φ = IdU となればいいのです。つまり、(Φ, Φ')がEPペアならいいのです。

もっとも、有限次元でこんなこと言っても(実際に可逆なので)意味がないのですが、無限次元なら、Φ=λx.λu.(x|u):U→U*に対して、逆ではないが引き込みとなるΦ':U*→U の例があるのかもしれません。僕はサッパリわかりませんが、id:ALeoさんあたりはご存知かも。

まーともかくも、非退化双線形形式から随伴が定義できることは分かりました。他の計算もいくつかやってみたのですが、普通の内積や計量の性質のかなりの部分は非退化双線形形式だけからでも出てくるようです。例えば、(x|y) = 0 により、xとyの直交性を定義すると、(-|-)は対称ではないので、「xとyが直交 ⇔ yとxが直交」さえも成立しません。にもかかわらず、部分空間の束でド・モルガン法則の類似 (X∨Y) = X∧Y が成立するようです(僕の勘違いでなければ)。