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

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

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

参照用 記事

右カン拡張が、自然変換のラムダ計算における指数型らしい件

ここ2,3日、カン拡張(Kan extension)を理解しようとジタバタしてました。どうにもイメージがつかめなくて四苦八苦。ワッカラーン。やっとこさで絵に描くことができました。フーッ

絵を描く前に記号法を: [C, D]は関手圏を表します。圏[C, D]の対象は、CD という関手、射は関手のあいだの自然変換です。[C, D]は、[CD]とも書くことにします。矢印の向きを逆にした [DC]もまったく同じ意味だとします。関手 H:CD と K:DE の結合は H;K と書きます。これは図式順です。反図式順のときは、K・H と書くことにします。

さて、問題の右カン拡張(right Kan extension)ですが、J:CD、G:CE という状況で、Jに沿ったGの右カン拡張(right Kan extension of G along J)を、JG または GJ と書きます。要するに指数の書き方です。絵とあわせる都合で、図式順のときは JG を、反図式順のときは GJ を採用します。

右カン拡張の基本的性質として、次のカン対応(Kan bijection)があります

  • [C, E](J;F, G) = [D, E](F, JG)

イコールは同型です。この同型は、自然変換の集合のあいだの1:1対応を与えます。反図式順で書くなら:

  • [EC](F・J, G) = [ED](F, GJ)

これは、ラムダ計算のカリー化/反カリー化による同型を連想させます。どうやら、「;」(または「・」)を非対称なモノイド積(テンソル積)と考えて、Jによる掛け算 J;(-) の右随伴である指数 J(-) が右カン拡張となっているようです。

[D, E](JG, JG) = [C, E](J;JG, G) というカン対応が作れるので、左辺にある恒等自然変換の右辺での対応物を run::J;JG⇒G とします。runは自然変換ですが、ある種の実行エンジンで、ラムダ計算のeval(apply)とよく似た働きをします。

以上の状況を描いたのが次の絵です。

自然変換 α::J;F⇒G をカリー化したものが β::F⇒JG です。指数の肩に乗っているJは、図では逆方向に走るワイヤーで描いています。run::J;JG⇒G を使うと、ワイヤーJのストレッチングによりβのなかに包み込まれているαを引っ張りだすことが出来て、左の絵のαが再現します。

βはαのラムダ抽象と考えることができるので、β = Λα (大文字ラムダを使いました)と書いてもいいでしょう。runの中置記法を仮に >> とすると、J>>Λα = α が成立することになります。ここらへんは、通常のラムダ計算のデカルト閉圏における意味論と同様です。

どうも、右カン拡張は、自然変換のラムダ計算における指数型を与える仕掛けのようです。