bitterharvest’s diary

A Bitter Harvestは小説の題名。作者は豪州のPeter Yeldham。苦闘の末に勝ちえた偏見からの解放は命との引換になったという悲しい物語

随伴関手 - 随伴の別定義

7.7 随伴の別定義

1)別定義

随伴の定義にはこれまでと異なる方法がある。それは次のように定義される。

\(\fbox {随伴の定義2:}\)
二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が次の条件を満たす時そしてその時に限り、随伴であるという。
\begin{eqnarray}
\mathcal{C} (L(Y),X) \cong \mathcal{D} (Y,R(X)) \\
\end{eqnarray}

これを、下図に示す。
f:id:bitterharvest:20181211153230p:plain

もう少し、詳しく説明しよう。

まず、定義をするための準備をしよう。今、二つの圏\(\mathcal{C},\mathcal{D}\)からそれぞれターゲットとなる対象\(X\)とソースとなる対象\(Y\)を適当に選んだとしよう。そして、ソースである対象\(Y\)を\(L\)によって、\(\mathcal{C}\)に写像したとしよう。これにより、二つの対象\(L(Y),X\)の間で、\({\rm Hom}\)集合\(\mathcal{C}(L(Y),X)\)を定義することができる。

同様にして、ターゲットである対象\(X\)を\(R\)によって、\(\mathcal{D}\)に写像したとしよう。これにより、二つの対象\(Y,R(X)\)の間で、\({\rm Hom}\)集合\(\mathcal{C}(Y,R(X))\)を定義することができる。

それでは随伴の定義をしてみよう。関手の対\(L,R\)が随伴の時かつその時に限り、二つの\({\rm Hom}\)集合\(\mathcal{C}(L(Y),X)\)と\(\mathcal{D}(Y,R(X)))\)は同型
\begin{eqnarray}
\mathcal{C}(L(Y),X) \cong \mathcal{D}(Y,R(X))
\end{eqnarray}
である。即ち、\(X,Y\)に対して自然である。

ここで、自然であるとは、\(\mathcal{C}\)から\({\rm Hom}\)集合の圏\({\rm Set}\)に対して、次の二つの関手
\begin{eqnarray}
X \rightarrow C(L(Y), X) \\
X \rightarrow D(Y, R(X))
\end{eqnarray}
の間に自然変換があり、さらに、
\(\mathcal{D}\)から\({\rm Hom}\)集合の圏\({\rm Set}\)に対して、次の二つの関手
\begin{eqnarray}
Y \rightarrow C(L(Y), X) \\
Y \rightarrow D(Y, R(X))
\end{eqnarray}
の間に自然変換があり、そして、自然変換は可逆(invertible)であることである。

これが、随伴の別定理である。

これと、今までに示してきた定義(下記に示す)が同一となる。
\(\fbox {随伴の定義1:}\)
二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が三角恒等式を満たす次の射\(ϵ,η\)を有する時、随伴であるという。

\begin{eqnarray}
ϵ : L \circ R \rightarrow I_\mathcal{C} \\
η : I_\mathcal{D} \rightarrow R \circ L
\end{eqnarray}

それでは、二つの定義が同じであることの証明の概略を示そう。

2)証明の概略

定義2から定義1を導いてみよう。

同型は、任意の対象\(X\)に対して働くので、\(X=L(Y)\)としよう。そうすると、
\begin{eqnarray}
\mathcal{C}(L(Y), L(Y)) \cong \mathcal{C}(Y,R(L(Y))
\end{eqnarray}

これより、左辺は少なくとも一つの射、即ち、恒等射\(I\)を持たなければならない。自然変換は恒等射を、\({\rm Hom}\)集合\(\mathcal{C}(Y,R(L(Y)))\)の一つの要素に写像する。ここで、\(I\)を挿入すると、\(\mathcal{C}(I(Y),R(L(Y)))\)の中の一つの要素にとなる。\(Y\)は任意なので、これは、まさしく、\(η : I_\mathcal{D} \rightarrow R \circ L\)と同じである。

同じように、\(ϵ: L \circ R \rightarrow I_\mathcal{C}\)を得ることができる。

また、二つの自然変換、即ち、
\begin{eqnarray}
X \rightarrow C(L(Y), X) \\
X \rightarrow D(Y, R(X))
\end{eqnarray}

\begin{eqnarray}
Y \rightarrow C(L(Y), X) \\
Y \rightarrow D(Y, R(X))
\end{eqnarray}
が可逆であることから三角恒等式を導くことができる。

逆に定義1から定義2も導いてみよう。
ここでは、片方(\(\mathcal{C}(L(Y),X)\)または\(\mathcal{D}(Y,R(X))\))の射が定まった時に他方(\(\mathcal{D}(Y,R(X))\)または\(\mathcal{C}(L(Y),X)\))の射が一意的に定まることを示せばよい。

そこで、\(f\)を\(\mathcal{C}(L(Y),X)\)の任意の射としてみよう。これを関手\(R\)を用いて\(\mathcal{D}\)上に持ち上げると、
\begin{eqnarray}
R \circ f : R(L(Y)) \rightarrow R(X)
\end{eqnarray}
となる。
そこで、随伴の定義1での射\(η\)を用いると
\begin{eqnarray}
η: I_D \rightarrow R \circ L \\
η_X: I_D(Y) \rightarrow R \circ L (Y) \\
η_X: Y \rightarrow R \circ L (Y)
\end{eqnarray}
を得る。

従って、
\begin{eqnarray}
R \circ f \circ η_X: Y \rightarrow R (X)
\end{eqnarray}
となる。\(\phi_x = R \circ f \circ η_X\)とすると、
\begin{eqnarray}
\phi_X: Y \rightarrow R (X)
\end{eqnarray}
が一意に定まることが分かる。

同様に、\(\mathcal{D}(Y,R(X)\)の任意の射に対しても、\(\mathcal{C}(L(Y),X)\))の射が一意的に定まることが分かる。そして、三角恒等式を利用して、二つの自然変換が可逆となることを示すことができる。

これにより同型であること、即ち、
\begin{eqnarray}
\mathcal{C}(L(Y),X) \cong \mathcal{D}(Y,R(X))
\end{eqnarray}
を導くことができる。

随伴関手 - 随伴から導き出される可換図式

7.6 随伴から導き出される可換図式

随伴の定義からどのような可換図式が導きだされるかを考えてみよう。随伴の定義は次のようになっている。

二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が三角恒等式を満たす次の射\(ϵ,η\)を有する時、随伴であるという。

\begin{eqnarray}
ϵ : L \circ R \rightarrow I_\mathcal{C} \\
η : I_\mathcal{D} \rightarrow R \circ L
\end{eqnarray}

そこで、この式を用いて\(L\)を変形してみよう。

最初に、\(L\)は\(L \circ I_\mathcal{D}\)に変形できる。次に、\(η : I_\mathcal{D} \rightarrow R \circ L \)を用いて、\( L \circ R \circ L \)に変形できる。さらに、\(ϵ : L \circ R \rightarrow I_\mathcal{C} \)を用いて、\( I_\mathcal{C} \circ L \)に変形できる。これは、\( L \)と同じである。

式の変形を可換図式で表すと下図の左側を得る。
f:id:bitterharvest:20181211152314p:plain

同様に、\(R\)で始めると、
\begin{eqnarray}
&&R \\
&=& I_\mathcal{D} \circ R \\
&=& R \circ L \circ R \\
&=& R \circ I_\mathcal{C} \\
&=& R
\end{eqnarray}
をえる。これを可換図式にしたのが、上図の右側である。

この二つの可換図式は、英語ではTriangle Identitiesと呼ばれている。

上の可換図式は、関手をベースに考えたが、圏をベースに可換図式を描くと次のようになる。
f:id:bitterharvest:20181211153053p:plain

随伴の定義をウィキペディアで調べると、違う方法で定義されることが分かる。次回は、この話をしよう。

随伴関手 - 随伴の解釈

7.5 随伴の解釈

随伴の定義は次のようになっていた。

二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が三角恒等式を満たす次の射\(ϵ,η\)を有する時、随伴であるという。

\begin{eqnarray}
ϵ : L \circ R \rightarrow I_\mathcal{C} \\
η : I_\mathcal{D} \rightarrow R \circ L
\end{eqnarray}

この定義を理解することとしよう。随伴の趣旨は、二つの局所的に小さな圏があった時にそれが等しいということを定義することであった。そこで、一方の圏\(\mathcal{D}\)に、左随伴関手\(L\)を施した後で、右随伴関手\(R\)を施したときに、下図のように圏\(\mathcal{D}\)に戻ってくる。
f:id:bitterharvest:20180522103401p:plain

通常は等しいというときは、重なることが前提になっているが、圏論ではこれを緩めてある。関数\(η\)だけずれていても等しいということにしている。これを示すと下図のようになる。
f:id:bitterharvest:20181211152725p:plain

即ち、恒等射\(I_D\)の任意の要素を\(d\)とした時、これに\(R \circ L\)を施したとする。このとき、その移動後の場所は、同じところではなく、自然変換\(η: I_D \rightarrow R \circ L\)を行った先、即ち、\(R \circ L (d)\)となる。これが圏論での二つの圏が等しいと見なす定義の内容の一つだ。これまでの同型という言葉は使えないので、随伴という言葉を用いている。

この移動は、\(R \circ L \)というコンテナの中に\(d\)を納めるという気分だ。コンテナに入れただけなので同じと見なしてもよいだろうということだ。そして、モノイドでの\(return\)と同じだということも感覚的にわかると思う。
f:id:bitterharvest:20181211152741p:plain

逆に、圏\(\mathcal{C}\)に、右随伴関手\(R\)を施した後で、左随伴関手\(L\)を施したときに、下図のように圏\(\mathcal{C}\)に戻ってくる場合について考えてみよう。
f:id:bitterharvest:20181211152758p:plain
このときは、\(L \circ R \)というコンテナの中から前から入っていた\(c\)を取り出すという気分だ。コモノイドでの\(extract\)と同じだということがやはり感覚的にとらえることができ面白い。

随伴関手 - 随伴の定義

7.4 随伴の定義

数学で最も重要な概念はと問われた時、皆さんは何と答えるだろうか。私は、「等しい」だと思う。算数から数学へと教科の名前が変わり、少し大人になったと感じさせてくれた中学で、すぐに習ったのが三角形の合同であった。ある三角形を移動したり回転したりして、別の三角形にぴったりと重ね合わせることができるなら、二つの三角形は合同だというものだ。

大学になると「等しい」という概念をもう少し抽象的に学ぶようになる。それは「同型」だ。集合\(A,B\)が存在したときに、次の条件を満足する\(f: A \rightarrow B, g: B \rightarrow A\)が存在するとき、二つの集合は同型と言われる。その条件は、
\begin{eqnarray}
g \circ f=I_A \\
f \circ g=I_B
\end{eqnarray}
である。図で表すと次のようになる。なお、このような写像\(f,g\)を同型写像という。
f:id:bitterharvest:20180521112223p:plain

同型という概念は、合同という概念の上位概念となっているので、合同な二つの三角形はもちろん同型でもある。それでは、さらなる上位概念を圏においても定めたい。即ち、二つの圏が与えられた時に、これらが「等しい」といはどのようなことなのかを定めたい。

上の図は集合と関数から成り立っていたが、これらを対応する圏論の用語で置き換えると、集合のところは(局所的に小さな)圏\(\mathcal{C},\mathcal{D}\)となり、関数のところは関手\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)となる。
f:id:bitterharvest:20180521112303p:plain

条件は、そのまま置き換えると、
\begin{eqnarray}
L \circ R=I_\mathcal{C} \\
R \circ L=I_\mathcal{D}
\end{eqnarray}

ところで、上の条件は、左側の関手と右側の関手が等しいと言っている。圏論では、二つの関手が等しいという概念を別に用意している。自然同型(naturally isomorphic)だ。

下図を用いて自然変換(natural transoformation)を復習しておこう。
f:id:bitterharvest:20180521112327p:plain

\(\fbox {自然変換の定義:}\)
上の図で、関手\(F,G\)の自然変換\(\alpha\)とは、次の条件を満たすものである。
1) 自然変換\(\alpha\)は、全ての対象\(X \in \mathcal{C}\)に、\(\mathcal{D}\)の対象間での射\(\alpha_X:F(X) \rightarrow G(X)\)を対応させる。ここで、\(\alpha_X\)は自然変換\(\alpha\)の\(X\)での成分と呼ばれる。
2) 成分は全ての射\(f:X \rightarrow Y\)に対して、次を成り立たせる。
\begin{eqnarray}
\alpha_Y \circ F(f) = G(f) \circ \alpha_X
\end{eqnarray}
なお、ここでは、\(F,G\)が共に共変(covariant)である場合について定義したが、共に反変(contravariant)の時は、\(F(f),G(f)\)の矢印は反対になる。

次に、関手\(F,G\)が自然同型であるとは次のように定義される。なお、自然同型は、英語の方はいくつかの表現があり、先にあげたnaturally isomorphicのほかにnatural isomorphism, natural equivalence, isomorphism of functorsがある。

\(\fbox {自然同型の定義:}\)
全ての\(X \in \mathcal{C}\)の対象\(X\)に対して、射\(\alpha_X\)が\(\mathcal{D}\)において同型射(isomorphic)であるならば、\(\alpha\)は自然同型である。

ここで、同型射とは、同型写像と同じ意味である。即ち、\(\beta_X \circ \alpha_X = I_{F(X)}\), \(\alpha_X \circ \beta_X = I_{G(X)}\)となるような\(\beta_X: G(X) \rightarrow F(X)\)が存在することを言う。

そこで、等しいことの条件を緩めて、自然同型\(\cong\)を用いると次のようになる。
\begin{eqnarray}
L \circ R \cong I_\mathcal{C} \\
R \circ L \cong I_\mathcal{D}
\end{eqnarray}

圏論の人々は、これでも条件がきつすぎると感じているので、さらに条件を次のように緩めている。そして、同型ではなく随伴(adjunction)と呼ぶ。定義は次のようになる。

\(\fbox {随伴の定義:}\)
二つの局所的に小さな圏\(\mathcal{C},\mathcal{D}\)において、関手の対\(R: \mathcal{C} \rightarrow \mathcal{D}, L: \mathcal{D} \rightarrow \mathcal{C}\)が三角恒等式を満たす次の射\(ϵ,η\)を有する時、随伴であるという。また、\(L,R\)のそれぞれを左随伴関手、右随伴関手という。また、\(L \circ R \)は圏\(\mathcal{C}\)での自己関手(endofunctor)、同様に\(R \circ L \)は圏\(\mathcal{D}\)での自己関手となっていることにも注意を払っておく必要がある。

\begin{eqnarray}
ϵ : L \circ R \rightarrow I_\mathcal{C} \\
η : I_\mathcal{D} \rightarrow R \circ L
\end{eqnarray}

三角恒等式

\(ϵ\)を用いて、\(\mathcal{C}\)上では\(L \circ R\)は、\( I_\mathcal{C}\)に置き換えることで\(L \circ R\)を消去することができ、また\(\mathcal{D}\)上では\( I_\mathcal{D}\)を自由に挿入することができるので、\(η\)を用いて\(R \circ L\)作り出すことで、次を得る。
\begin{eqnarray}
L &=& L \circ I_\mathcal{D} \rightarrow L \circ R \circ L \rightarrow I_\mathcal{C} \circ L = L \\
R &=& I_\mathcal{D} \circ R \rightarrow R \circ L \circ R \rightarrow R \circ I_\mathcal{C} = R
\end{eqnarray}

それぞれの式で、左辺から右辺(上の式では\(L\)と\(L\))への射が恒等射となる時、これを三角恒等式という。即ち、
\begin{eqnarray}
ϵ L \circ L η &=& Id_L \\
R ϵ \circ η R &=& Id_R
\end{eqnarray}

三角恒等式の可換図式は以下のようになる。
f:id:bitterharvest:20181211152417p:plain

なお、\(ϵ,η\)はそれぞれ\(counit,unit\)という関数名でも呼ばれる。Haskellではこれらの関数は別の名前で呼ばれている。即ち、\(counit\)はコモナド(comonad)での関数\(extract\)として、\(unit\)はモナド(monad)での関数\(return\)として使われる。

プロから教わった「鯵のソテー」を母の日に挑戦する

5月13日は母の日。実母も義母もすでに他界していて、感謝する対象は既にいないのだが、母として長いこと子供たちの養育に尽くしてくれた妻に感謝を込めて、特別な料理をプレゼントした。

「鯵のソテー」だが、プロの方から教わった特別な料理だ。この方のお店は、東京大神宮近くの隠れ家的なお店で、イタリアンレストランだ。大学に在職していた時の同僚たちや、気の置けない高校時代の友人たちと利用するお店だ。

母の日の前日に、高校3年生の時の同じクラスの親しかった仲間たちとこのレストランでランチを共にした。高校時代に戻って、遠慮することなく、好き勝手に話をするので、別のお客さんがいると迷惑をかけるが、それほど多くない人数なのに貸し切りにしてくれ、しかも、長い時間、居座り続けることを許してくれるので、とてもありがたいお店だ。

長い人生経験を経て、話している話題は今日的なのだが、それに対する意見の持ちようは高校時代と全く変わらないのにびっくりさせられる。高校の時が人格形成期だったのがその理由なのだろうが、タイムスリップしたような気分を味わう。

お店からは、美味しい料理とそれにぴったりのワインがタイムリーにサービスされるのだが、皆、話すことに夢中になっていて、料理を味わうゆとりがない。一生懸命に料理を作ってくださったシェフの方に申し訳ないなと思いながらも、それを忘れて、高校時代の思い出話に花を咲かせた。

帰り際に、宿題がありますとレシピを手渡された。かつての同僚が、一月ぐらい前に、お店の方に手ごろなレシピを教えてあげてくださいと依頼してくれていたのだ。そのレシピが、「鯵のソテー、フレッシュトマトと香草のソース」だ。

プロのレシピを手渡されたのは初めてなので、早速、母の日に挑戦することとした。

例によって食材に登場してもらおう。主役はもちろん鯵。今回は、いつもの安売り店ではなく、デパ地下の高級感のある魚屋さんで仕入れた。このため、ゼイゴと呼ばれる側面についている骨と内臓を魚屋さんの方で取り除いてくれた。ソテーのスープの主役になるのは、トマト。美味しそうなトマトがたくさん出回っているので、これも同じデパ地下で仕入れた。さらに、玉ねぎだが、友達が水俣から取り寄せてくれたサラダ玉葱を用いることにし、いつもより高級な食材で勝負だ。

しかし、白ワインだけは、自宅のワインセラーにあるものを使うことがためらわれたので、カルディで仕入れることとした。物色していると、隣のお客さんがお店の人に、料理用に白ワインを利用したいのですがどれがいいでしょうかと相談している。お店の人が、栓がスクリューになっているのがお薦めですと言っている。別の機会のために貯蔵しておくのに便利だし、飲んでも美味しいのでと理由を説明している。それではということで、1000円を少し超えているイタリア産のシャルドネを選んだ。ハーブの方は、家庭菜園にオレガノとパセリがあったので、スイートバジルとチャービルを購入した。母の日なので、少し、ぜいたくにという戦略で臨んだ。その他に利用したのはニンニク、オリーブオイル、塩、胡椒だ。
f:id:bitterharvest:20180513220129j:plain

食材がそろった後は、下ごしらえだ。ニンニクは、一片を細かく切った。
f:id:bitterharvest:20180513221831j:plain

玉ねぎは半分を利用してスライスした。
f:id:bitterharvest:20180513221946j:plain

トマトは1個を1㎝角に切った。
f:id:bitterharvest:20180513222045j:plain

ハーブは、パセリ、オレガノスイートバジル、チャービルの4種類を混ぜて細かく切り、大匙2杯ぐらいの量を利用した。
f:id:bitterharvest:20180513222306j:plain

鯵は、内臓の切り口の部分に塩、胡椒をし、表面にも同じように塩、胡椒をした後、薄力粉を均等にまぶした。なお、魚屋さんではえらの部分の骨は落としてくれなかったので、この時に、切断した。
f:id:bitterharvest:20180513222500j:plain

下ごしらえが済んだので、次は、鯵の表面に焦げ目をつける作業だ。
フライパンにオリーブオイルを多めに入れ、さらに、にんにくを入れてつぶした。その後、中火にしてぱちぱちという音が出るまで、ニンニクを炒めた。
f:id:bitterharvest:20180513222756j:plain

その後、頭が右側になるようにして、魚をフライパンに入れる。熱は中火である。表面に焦げ目がついたとき、ひっくり返し、反対側の表面にも焦げ目をつける。
f:id:bitterharvest:20180513222939j:plain

中まで火が通っていなくても構わないが、両面に焦げ目がついたら、鯵をいったんクッキングペーパーの上に取り除く。
f:id:bitterharvest:20180513223306j:plain

残っているオリーブオイルを利用して、中火で玉ねぎを透明感が出るまで炒める。
f:id:bitterharvest:20180513223433j:plain

強火にして白ワイン200CCをフライパンに加え、そして、アルコール分を飛ばす。
f:id:bitterharvest:20180513223852j:plain

今度は、左側を頭にして鯵をフライパンに再度入れる。
f:id:bitterharvest:20180513224010j:plain

さらに、トマトとハーブを加える。
f:id:bitterharvest:20180513224113j:plain

蓋をして、2分間中火で煮る。
f:id:bitterharvest:20180513224257j:plain

ソースがとろっとした感じになるので出来上がり。
f:id:bitterharvest:20180513224417j:plain

そして、食卓に並べる。
f:id:bitterharvest:20180513224503j:plain

妻もとても美味しいと言ってくれたので、思い出に残る母の日になりました。
プロのシェフに教えてもらったレシピの通りに本当に実現できたかどうかは疑わしいのだが、普段の料理とは一味も二味も違うので、すごいなと感じた。

随伴関手 - 米田の埋め込み

7.2 余米田の補題

米田の補題では、共変\(\rm{Hom}\)関手\(\mathcal{C}(A,-)\)を用いていたが、これを反変\(\rm{Hom}\)関手\(\mathcal{C}(-,A)\)に変えたのが、余米田の補題となる。

次のようになる。局所的に小さな圏\(\mathcal{C}\)と集合の圏\(\mathbf{Set}\)、これらによって作られる関手圏\([\mathcal{C},\mathbf{Set}]\)を考える。今、任意の対象\(A \in \mathcal{C}\)と任意の関手\(F: \mathcal{C} \rightarrow \mathbf{Set}\)に対して、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(-,A),F) \cong F(A)
\end{eqnarray}
が成り立つ。ただし、\(\mathcal{C}(-,A): \mathcal{C} \rightarrow \mathbf{Set}\)は関手であり、\([\mathcal{C},\mathbf{Set}](\mathcal{C}(-,A),F)\)は\(\mathcal{C}(-,A)\)から\(F\)への自然変換である。

図で示すと次のようになる。
f:id:bitterharvest:20190527144405p:plain
証明は、米田の補題でのそれを利用すると、同じように行える。

7.3 米田の埋め込み

米田の補題は、米田の埋め込みを証明するために利用したものである。米田の補題で、関手\(F\)を反変関手にしたものを、前回の記事で紹介した。
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-), \mathcal{C}(B,-)) \cong \mathcal{C}(B,A)
\end{eqnarray}

これが米田の埋め込みと呼ばれている。図で表すと次のようになる。
f:id:bitterharvest:20190527144425p:plain
米田の埋め込みは\(B\)から\(A\)への\({\rm Hom}\)集合と、\(\mathcal{C}(A,-)\)から\(\mathcal{C}(B,-)\)への\({\rm Hom}\)集合とは同型であるといっている。

これは、局所的に小さな圏\(\mathcal{C}\)の任意の二つの対象\(A\)と\(B\)を選び、また、その対象間の\({\rm Hom}\)集合を\(\mathcal{C}(A,B)\)とした時、関手圏\([\mathcal{C},\mathbf{Set}]\)にはこれと同型の構造が存在する。即ち、\(A\)に対して対象\(\mathcal{C}(B,-)\)が、また、\(B\)に対して対象\(\mathcal{C}(A,-)\)が対応し、\(\mathcal{C}(A,B)\)に対して、対象\(\mathcal{C}(B,-)\)から対象\(\mathcal{C}(A,-)\)への同型の\({\rm Hom}\)集合が存在する。

従って、米田の埋め込みは、局所的に小さな圏\(\mathcal{C}\)の構造が、関手圏\([\mathcal{C},\mathbf{Set}]\)に忠実に(faithful)しかも充満に(full)埋め込まれることを述べている。なお、忠実は単射であることを言い、充満は全射であることを言う。

米田の埋め込みを利用してみよう。

例1

今、\(f \in \mathcal{C}(B,A)\)と\(u \in \mathcal{C}(A,X)\)が図のように与えられたとしよう。この時、自然変換\(\alpha_X\)を求めよう。これには、\(u’ \in \mathcal{C}(B,X)\)を求めればよいが、\(u’ = u \circ f\)となることは自明である。
f:id:bitterharvest:20190527144522p:plain
参考のために、三つの対象の場合も図に挙げておく。対応関係を確認して欲しい。
f:id:bitterharvest:20190527144620p:plain

例2

関手圏\([\mathcal{C},\mathbf{Set}]\)において、\(\mathcal{C}(A,-)\)と \(\mathcal{C}(B,-)\)が同型の時、小さい圏\(\mathcal{C}\)において、\(A\)と\(B\)は同型である。また、逆も成り立つ。証明は試みて欲しい。

例3

前順序(preorder)集合を考えてみよう。これは、任意の二つの要素に対して、\(a \leq b\)であれば矢印があり、そうでなければ矢印はないという性質を有している。

それでは、前順序集合に対して余米田の埋め込みを利用してみよう。
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(-,A), \mathcal{C}(-,B)) \cong \mathcal{C}(A,B)
\end{eqnarray}

今、右辺が\(A \leq B\)であったとする。この時、\({\rm Hom}\)集合\(\mathcal{C}(A,B)\)での関数の数が1であることに注意して、これを満たす左辺を求めて見よう。

今、任意の\(X\)に対して\(X \leq A\)の時は、前順序の関数が一つ存在するので\({\rm Hom}\)集合としての\(\mathcal{C}(-,A)\)は関数の数は1になり、そうでないときは前順序の関数が存在しないので空\(\phi\)となる。\(X \leq B\)についても同じである。なお、ここでは、\(X\)は\(A\)でもなく\(B\)でもないとする。

左辺の\({\rm Hom}\)集合での関数の数が1なので、\({\rm Hom}\)集合としての自然変換\([\mathcal{C},\mathbf{Set}](\mathcal{C}(X,A), \mathcal{C}(X,B))\)も1になるはずである。自然変換は、\(\mathcal{C}(X,A) \rightarrow \mathcal{C}(X,B))\)での組み合わせとなる。従って、以下の四つの組合せのどれかということになるが、どれが該当するのであろうか。この中の、一つだといっている。
\begin{eqnarray}
id_\phi: \phi \rightarrow \phi \\
absurb: \phi \rightarrow 1 \\
id_1: 1 \rightarrow 1 \\
prohibit: 1 \rightarrow \phi
\end{eqnarray}

この中で、4番目は関数が値を持たないこととなり関数ではない。従って、最初の三つが候補となるが、正しいのは3遍目となる。これは、\(X \leq A\)ならば、\(X \leq B\)であるといっている。これを示したのが下図である。
f:id:bitterharvest:20190527144643p:plain
このように、米田の補題、あるいは、余米田の補題は証明の助けにもなる。

次回は、圏論の中心である随伴関手を説明しよう。

随伴関手 - 米田の補題:復習

7.随伴関手

7.1 米田の補題:復習

米田の補題は次のようになっていた。

局所的に小さな圏\(\mathcal{C}\)と集合の圏\(\mathbf{Set}\)、これらによって作られる関手圏\([\mathcal{C},\mathbf{Set}]\)を考えよう。今、任意の対象\(A \in \mathcal{C}\)と任意の関手\(F: \mathcal{C} \rightarrow \mathbf{Set}\)に対して、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-),F) \cong F(A)
\end{eqnarray}
が成り立つ。ただし、\(\mathcal{C}(A,-) : \mathcal{C} \rightarrow \mathbf{Set}\)である。すなわち、これは関手である。このため、\([\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-),F)\)は、関手\(\mathcal{C}(A,-)\)から\(F\)への自然変換である。

米田の補題Haskellでは、どのようにあらわすことができるであろうか。自然変換は、多相関数(polymorphic function)で表すことができる。従って、型シグネチャで表すと

forall x. (a -> x) -> F x ~= F a

となる。Haskellでは、\(forall \ x\)を省略することができるが、ここでは、\(\mathcal{C}(A,-)\)の部分がどのように表されるかを正確に期するために、\(forall \ x\)をわざわざ付けた。

上の型シグネチャで、\( forall \ x. (a \rightarrow x) \rightarrow F \ x \)は高次の多相関数となっている。また、\(F \ a\)はデータ型である。

それでは少し、例を挙げてみよう。

例1)リスト

リストは関手なので、これを用いると、米田の補題は次のように書き換えられる。
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-),[- ]) \cong [A]
\end{eqnarray}

また、Haskellで表すと

forall x. (a -> x) -> [x] ~= [a] 

となる。

そこで、左辺を自然変換\(\alpha\)とすると、

α :: forall x. (a -> x) -> [x]

となる。

これは、リストに対する関手と同じなので、

α f = fmap f

と考えることができる。これをクロージャと考えると、これに対する入力は\([a]\)と考えることができる。例えば、\([a1,a2,…,an]\)とすると、

fmap f [a1,a2,…,an] 
=[f(a1),f(a2),…,f(an)] 
=[x1,x2,…,xn] 

となる。

例2)\({\rm Hom}\)集合の関手

関手を\(\mathcal{C}(B,-)\)にしてみよう。この時、\(F(A)\)は\(\mathcal{C}(B,A)\)になることに注意すると、米田の補題から、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-), \mathcal{C}(B,-)) \cong \mathcal{C}(B,A)
\end{eqnarray}
となる。これをHaskellで表すと、

forall x. (a -> x) -> (b -> x) ~= (b -> a)

となる。\((b \rightarrow x)\)はリーダーであることに注意しよう。これは、

α :: (a -> x) -> (b -> x)
g :: b -> a

とすると、

α f = f . g

となる。

例3)継続渡し

関手を\(Id\)にしてみよう。米田の補題から、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-),Id) \cong Id(A)
\end{eqnarray}
となる。これをHaskellで表すと、

forall x. (a -> x) -> x ~= a

となる。

これも同じように、自然変換を\(\alpha\)とすると、

α :: (a -> x) -> x
α f = f

これは、前に説明した継続渡しである。継続渡しは時間的な推移を表現できることに特徴がある。

横浜三渓園を訪ねる

少し肌寒く感じられる昨日(23日月曜日)、横浜市にある三渓園を訪ねた。肌寒いと言っても、実は、平年並みの気温だ。土曜、日曜と夏日だったので、相対的にそのように感じただけだ。気候変動がカオス的であるとすると、三つの状態がある。安定的、振動的、ランダム的だ。縄文時代以来、1万3千年以上にもわたって気候は穏やかな状態にある。地球の歴史を顧みると、このように長く続くのは珍しく、別の状態にいつ入ってもおかしくない状況にある。この異常さが、このことを示唆していないことを願っている。

三渓園を訪れたのは、実に50年ぶり。帰りのバスが混んでいて、終点まで立っていたことぐらいしか覚えていないので、初めてと言ってもよいくらいだ。

三渓園は原富太郎によって造られた。彼を含めて、高島嘉右衛門浅野総一郎などが明治期の横浜の発展に大きく貢献したとされている。原富太郎は慶応4年(1868年)に美濃国厚見郡佐波村(現在の岐阜市)に生まれている。青木久衛の長男で、明治25年(1892年)に横浜の豪商の原善三郎の孫娘の屋寿(やす)と結婚して、原家に入り、絹貿易により富を築いた。また、彼の号は三渓である。このため、原三渓とも呼ばれる。

三渓園の小史は以下のとおりである。富太郎の養祖父の原善三郎が明治初年(1968年)に土地を購入し、20年代に山上に別荘を建てた。善三郎が死去した35年ごろから、富太郎が三渓園の造園に着手し、この地を本宅とした。そして、明治39年(1906年)より、現在の外苑と呼ばれる地域を無料で開放した。彼は、当時の新進気鋭の画家たちの支援をし、前田青邨横山大観、下村観山などの作品が園内で生まれている。富太郎は昭和14年(1939年)に死去している。

三渓園は、関東大震災第二次世界大戦での横浜空襲により被害を受け、昭和28年(1953)年には横浜市に譲渡・寄贈され、復旧工事が施され、現在に至っている。

三渓園本牧にある。高速道路を利用してのアクセスは良いのだが、電車で利用する場合は不便だ。横浜や桜木町から本牧車庫前行のバス(8,148系統)に乗り、三渓園入口で下車する。その後、歩いて5分ぐらいで三渓園の入り口に到着する。

現在の三渓園の地図は次のようになっている。
f:id:bitterharvest:20180424120908p:plain

三渓園の南側は高速道路が走っている。ボランティアの方が50年前は海に面していたと教えてくれたので調べてみた。昭和39年(1974年)の地図では次のようになっている。
f:id:bitterharvest:20180424121044p:plain

この地図には高速道路はない。地図を重ねてみると、現在の地図には高速道路に沿うように北側に長細い池があり、そこが50年前には海岸線であったことが分かる。のちに、左側にある埋立地が延長され、海岸線が外になり、新たな土地に工場が造られ、そして、高速道路が開通されたようだ。埋め立てられる前の三渓園は、崖の上に立地し、眺望は今以上に素晴らしかったことだろう。

入場券を買って門の中に入ると、ボランティアの方が出迎えてくれる。お願いして、園内を紹介してもらうこととした。最初に連れて行ってくれたのが鶴翔閣だ。明治35年(1902年)に建立され、住いとして使われた。広さは290坪だそうだ。
f:id:bitterharvest:20180424121149j:plain

さらに進むと御門がある。
f:id:bitterharvest:20180424121222j:plain

外側のひさしが長くなるように、アンバランスに造られているのが特徴だ。

門を抜けて少し進むと立派な庭園が見えてくる。その奥に佇んでいるのが数寄屋風書院の臨春閣だ。紀州徳川家初代の徳川順宣によって慶安2年(1649年)に夏の別荘として紀ノ川沿いに建てられた。なお、順宣は家康の十男である。
f:id:bitterharvest:20180424121355j:plain
f:id:bitterharvest:20180424121442j:plain

臨春閣の2階に上る階段が面白い。釣鐘上の入り口の中に階段がある。この階段は一直線に2階に上るのではなく、途中に踊り場があって、回りながら上がっていくのだそうだ。
f:id:bitterharvest:20180424121555j:plain

さらに進むと、とても古そうな堂にいたる。これは旧天瑞寺寿塔覆堂だ。天正19年(1591年)に、豊臣秀吉が母の長寿祈願のために京都大徳寺に造った寿塔(生前墓)を納めるために建立した建物だ。
f:id:bitterharvest:20180424121710j:plain

また、近くには聴秋閣がある。これは三代将軍家光が上洛に際して二条城内に造ったものを春日局に下賜され、江戸稲葉候邸に移築されたものだそうだ。大正11年三渓園に移された。
f:id:bitterharvest:20180424121759j:plain

ここより少し高いところに、天寿院がある。これは鎌倉・建長寺近くにあった地蔵堂の建物を移したものである。
f:id:bitterharvest:20180424121847j:plain

ここまでは、内苑と呼ばれる。この後、外苑へと向かう。小高い丘に登ると、旧燈明寺の三重塔がある。室町時代の康生3年(1457年)の建立だ。移築したのは大正3年である。
f:id:bitterharvest:20180424121938j:plain

鎌倉の旧東慶寺仏殿もある。江戸時代の寛永11年(1634年)の建立である。
f:id:bitterharvest:20180424122043j:plain

また、白川郷の合掌造りの建物もあった。ここでは、この地域の家族形態についてボランティアの方から伺うことができた。大家族で生活を営んでおり、長男は嫁入婚だが、次男・三男は妻問婚だったそうだ。主人夫婦は1階を寝室にしていて、その他の家族は中2階に寝ていたそうだ。外部との接触を遮断したときの生き残るための知恵なのだろうが、古代の習慣に似ていることにも驚かされた。

ボランティアの方が、原富太郎が考案した料理を教えてくれた。汁のないそばだ。通常のそばだと、食べているときに汁が飛んで衣服を汚す可能性があるので、そのようなことが起こらないようにとおもてなしを第一に考えてのことだそうだ。

三渓園を訪問した記念にと食べてみることにした。三渓そばという名前だが、実際は、そばではなくうどんだ。タケノコ、ハム、薄焼き卵などがトッピングされている。昆布茶が一緒についてくるが、間違ってこれをかけてはいけない。珍しい料理で、思い出としてはよかったと思った。
f:id:bitterharvest:20180424122114j:plain

今回は、複数のボランティアの人のお世話になった。最初の方は、1時間かけて園内を案内してくれた。合掌造りの建物では、複数人の方からとっておきの話を伺うことができた。また、新しいボランティアの方が入ったのであろう。研修されている方からも、新鮮な話を聞くことができた。ボランティアのすばらしさを体験する一日でもあった。

米田の補題 ー 集合値関手を積として表す

6.6 集合値関手を積として表す

米田の補題は次のようになっていた。局所的に小さな圏\(\mathcal{C}\)と集合の圏\(\mathbf{Set}\)、これらによって作られる関手圏\([\mathcal{C},\mathbf{Set}]\)を考える。任意の対象\(A \in \mathcal{C}\)と任意の関手\(F: \mathcal{C} \rightarrow\mathbf{Set}\)に対して、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F) \cong F(A)
\end{eqnarray}
が成り立つのが米田の補題である(\(\cong\)は左辺と右辺が同型である、即ち、全単射であることを示す)。また、\(\mathcal{C}(A,-): \mathcal{C} \rightarrow \mathbf{Set}\)は関手であり、\([\mathcal{C},\mathbf{Set}](\mathcal{C}(A,-),F) \)は、\(\mathcal{C}(A,-)\)から\(F\)への自然変換である。
f:id:bitterharvest:20190527135127p:plain
そこで、\(F(A)\)の性質について考えることとしよう。\(F(A)\)は、\(A\)に\(F\)というコンテナで覆ったものと考えることが可能である。従って、馴染み深い積\((F,A)\)と考えてみてはどうだろうか。

\(F\)は圏\([\mathcal{C},\mathbf{Set}]\)の対象であり、\(A\)は\(\mathcal{C}\)の対象である。また、\(F(A)\)は\(\mathbf{Set}\)の対象である。従って、\(F\)と\(A\)の積から\(F(A)\)への射は
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}] \times \mathcal{C} \rightarrow \mathbf{Set}
\end{eqnarray}
となる。

これを利用して、\((F,A)\)を\(F(A)\)へ移す関手を考えよう。また、\((F,A)\)から、\([\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F)\)へ移す関手も考えてみよう。

圏\(([\mathcal{C},\mathbf{Set}] \times \mathcal{C})\)は下図のようになる。
f:id:bitterharvest:20190527141239p:plain
図には二つの対象\((F,A)\)と\((G,B)\)を設けた。そして、その間の射を\((\mu,u)\)とした。即ち、
\begin{eqnarray}
\forall X.\mu_X &:& F(X) \rightarrow G(X) \\
u&:& A \rightarrow B
\end{eqnarray}

1)関手:\((F,A),(F,B)\)から\(F(A),F(B)\)へ

それでは、圏\(([\mathcal{C},\mathbf{Set}] \times \mathcal{C})\)の対象\((F,A)\),\((G,B)\)から圏\(\mathbf{Set}\)の対象\(F(A)\),\(G(B)\)へ下図のように射を設けてみよう。
f:id:bitterharvest:20190527141317p:plain
このとき、これは関手であると考えることにしよう。このとき、\(F(A)\)から\(G(B)\)への射は、\(G(A)\)を経由しての合成射と同一になる。従って、
\begin{eqnarray}
&& F(A) \rightarrow G(B) \\
&=& F(A) \rightarrow G(A) \rightarrow G(B) \\
\mu_A &:& F(A) \rightarrow G(A) \\
G(u) &:& G(A) \rightarrow G(B)
\end{eqnarray}
より
\begin{eqnarray}
G(u) \circ \mu_A : F(A) \rightarrow G(B)
\end{eqnarray}
を得る。

また、\(F(B)\)を経由しての合成射とも同一であるので、
\begin{eqnarray}
&& F(A) \rightarrow G(B) \\
&=& F(A) \rightarrow F(B) \rightarrow G(B) \\
\mu_B &:& F(B) \rightarrow G(B) \\
F(u) &:& F(A) \rightarrow F(B)
\end{eqnarray}
より
\begin{eqnarray}
\mu_B \circ F(u) : F(A) \rightarrow G(B)
\end{eqnarray}
を得る。

これより、関手であれば、
\begin{eqnarray}
G(u) \circ \mu_A=\mu_B \circ F(u)
\end{eqnarray}
であることが分かる。可換図式で示すと次のようになる。
f:id:bitterharvest:20190527141357p:plain
逆は言えるのであろうか。即ち、上の式が成り立つとき、関手となるだろうか。この証明は読者に任せる。

2)関手:\((F,A),(F,B)\)から\(( (A, -),F),((B, -),G)\)へ

それでは次に、\((F,A)\)から、\( [\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F) \)への射を関手と考えてみよう。それには、下図を用いる。
f:id:bitterharvest:20190527141559p:plain
ところで、\([\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F)\)と\([\mathcal{C},\mathbf{Set}](\mathcal{C} (B, -),G)\)の間の射は、上から下へだろうか、それとも下から上へであろうか。射の向きは、\({\rm Hom}\)関手が共変であるか反変であるに依存する。

一般に、合成射\(g \circ f\)を関手\(F\)によって写した時、\(F(g \circ f)= F(g) \circ F(f)\)の時、関手\(F\)を共変関手という。また、\(F(g \circ f)= F(f) \circ F(g)\)の時、関手\(F\)を反変関手という。

下図においては、関手\(\mathcal{C}(A,-)\)は、\(Sheet \ A\)のところで、
\begin{eqnarray}
f: X \rightarrow Y \\
id_A : A \rightarrow A \\
u : A \rightarrow X \\
v : A \rightarrow Y
\end{eqnarray}
とすると、
\begin{eqnarray}
v= f \circ u \\
\end{eqnarray}
となるので、共変関手である。
f:id:bitterharvest:20190527141744p:plain
これに対して、関手\(\mathcal{C}(-,A)\)は、下図のようになるので反変関手である。
f:id:bitterharvest:20190527141803p:plain
それでは、今考えている\([\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F)\)は、\( (A, -)\)の\(A\)の部分が変わるので、反変である。さらに、\((\mathcal{C} (A, -),F)\)で、\( (A, -)\)の部分が変化するので、また、反変である。反変の反変となっているので、全体では共変となる。

従って、\([\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F)\)と\([\mathcal{C},\mathbf{Set}](\mathcal{C} (B, -),G)\)の間の射は、下図に示すように、上から下へとなる。そこで、この射を求めることを考えよう。
f:id:bitterharvest:20190527141821p:plain
いま、圏\([\mathcal{C},\mathbf{Set}] \times \mathcal{C}\)で、対象\((F,A)\)と 対象\((G,B)\)が与えられ、その間の射は\((\mu,u)\)であったとする。即ち、
\begin{eqnarray}
\mu_X : F(X) \rightarrow G(X) \\
u: A \rightarrow B
\end{eqnarray}
である。

さらに、\(A\),\(B\)が属している圏\(C\)での任意の対象を\(X\)としよう。そして、
\begin{eqnarray}
w’: B \rightarrow X
\end{eqnarray}
であったとする。

このとき、\(w: A \rightarrow X\)とすると\(w=w’ \circ u\)となる。

次に、圏\(\mathbf{Set}\)を考えよう。\((F,A)\)が写された先は、\([\mathcal{C},\mathbf{Set}](\mathcal{C} (A, -),F)\)である。この射は自然変換なので、\(\alpha\)で表すと、次のようになる。
\begin{eqnarray}
\alpha_X: \mathcal{C}[A,X] \rightarrow F(X)
\end{eqnarray}

同様に、\([\mathcal{C},\mathbf{Set}](\mathcal{C} (B, -),G)\)を\(\beta\)とすると、
\begin{eqnarray}
\beta_X: \mathcal{C}[B,X] \rightarrow G(X)
\end{eqnarray}

それでは、この間での変換を求めてみよう。下図を参考にする。
f:id:bitterharvest:20190527141842p:plain
\( w=w’ \circ u \in \mathcal{C}(A,X)\)なので、\(\alpha_X \circ w’ \circ u \in (F(X)\)である。また、\(\mu_X:F(X) \rightarrow G(X)\)なので、\(\mu_X \circ \alpha_X \circ w’ \circ u \in (G(X)\)となる。

同様に、\( (w’:B \rightarrow X) \in \mathcal{C}(B,X)\)なので、\(\beta_X \circ w’ \in G(X)\)である。

これから
\begin{eqnarray}
\beta_X \circ w’ = \mu_X \circ \alpha_X \circ w’ \circ u
\end{eqnarray}

を得る。即ち、関手であれば、上記の式が満たされることが分かる。上記の式が満たされるとき、関手になるかどうかは、読者の方で調べて欲しい。

今回は、米田の補題と積との関連について考えたが、このように、他との関連を考えることにより、米田の補題の利用の範囲を広げることができる。永かった米田の補題の説明はこれで終了である。次回は、米田の埋め込みを説明する。

鎌倉に足利氏ゆかりの寺を訪ねる

鎌倉の春はきれいだ。特に桜の咲くころは素晴らしいのだが、観光客の多いのにはうんざりさせられる。鎌倉時代室町時代に関する歴史の書物を読み漁ったので、久しぶりに訪ねてみたいと思っていた。桜がすでに散ってしまった昨日(9日)、ゆっくりと見学できるだろうと思い、足利氏にかかわりのある寺院を訪ねた。

鎌倉の北東部、六浦に抜ける滑川沿いの街道に沿って、これらの寺が点在している。この街道は六浦道と呼ばれるが、鎌倉時代においては港町の六浦に物資を運ぶための重要な街道であった。六浦は現在では「むつうら」だが、当時は「むつら」と呼ばれていた。

滑川に沿って狭い平野部が開けているが、街道の両側は山が迫っていて、山に分け入るように所々が谷になっている。谷戸(やと)と呼ばれている。御家人の一族が住んでいたと思われる谷戸には、その氏族名がついているところもある。

六浦道は鎌倉駅からはほぼ東の方に向かって山の中へと入っていく道だ。今回訪れた寺院を下図に示す。
f:id:bitterharvest:20180410141925p:plain

地図で、左下が鎌倉駅、左の緑の部分が鶴岡八幡宮だ。若宮大路の東側に平行している小町大路を北東の方に上がってゆく。東勝寺跡という案内が出てくるので、滑川の方に向かって歩く。ほどなくすると東勝寺橋に着く。橋から滑川を見て、鎌倉時代も同じような風景であったのだろうかと思いをめぐらした。小さな渓谷の趣がある。鎌倉末期の14代執権、北条高時(ほうじょうたかとき)が新田義貞(にったよしさだ)に追われて、最後の地に向かうべくこの橋を渡ったことだろう。
f:id:bitterharvest:20180410142021j:plain

しばらく進むと北条家の菩提寺であった東勝寺跡が見えてくる。寺跡には、タンポポが咲きそろい、奥には鎌倉の一つの特徴である「やぐら」が見える。やぐらは横穴式の供養堂であり、三方を山に囲まれた鎌倉の地勢を活かしの特異な墓様式だ。

f:id:bitterharvest:20180410145628j:plain
東勝寺跡の隣には、高時の腹切りやぐらがある。写真の真ん中に穴が見えるが、ここで、1333年に一族や家臣870名とともに自刃したと伝えられている。鎌倉時代が終わった瞬間だ。『太平記』には、「相模守高時禅門、元弘年5月22日、葛西谷におひて自害しける」と記されている。
f:id:bitterharvest:20180410143333j:plain

東勝寺跡の周辺は葛西谷(かさいがやつ)と呼ばれている。『鎌倉攬勝考(らんしょうこう)』によれば、「治承以来、葛西三郎清重に給ひし地ゆへ葛西ヶ谷とは号せりとぞ」と土地の由来を伝えている。清重(きよしげ)は、武蔵国豊島郡を領有した秩父平氏豊島清元(としまきよもと)の子で、下総国葛西御厨を相続して葛西三郎(かさいさぶろう)と称した。東国の御家人である。

なお、この谷の一つ南に位置する谷、妙本寺の周辺は、比企谷(ひきがやつ)と呼ばれている。これは鎌倉初期の有力な御家人であった比企能員(ひきよしかず)の旧跡に因んだとされている。

小町大路に戻り、宝戒寺に立ち寄る。北条高時の慰霊のため、その屋敷跡に後醍醐天皇が建立したと伝えられているが、実際は、天皇没後に足利尊氏(あしかがたかうじ)の寄進によって造営されたと推定されている。
f:id:bitterharvest:20180410143601j:plain

小町大路をさらに進むと岐れ路(わかれみち)につく。滑川に沿った六浦道を選ぶ。しばらく進むと大御堂橋という案内が出てくる。釈迦堂谷へと進む道だ。ここで右折して、川を越えたところで左折し川沿いの狭い道へと歩を進める。

少し進むと犬懸谷(いぬかけがやつ)へと向かう道に出会う。この谷戸には、室町幕府関東管領であった上杉朝宗(うえすぎともむね)・氏憲(うじのり)の屋敷があったとされている。室町時代は、鎌倉に鎌倉公方が置かれ、それを補佐する役として関東管領が置かれていた。上杉朝宗・氏憲の頃、関東管領山内上杉家犬懸上杉家が独占していたが、氏憲が反乱(1416年の上杉弾秀の乱)をおこし敗れてしまい、犬懸上杉家は滅亡する。
f:id:bitterharvest:20180410144828j:plain

さらに、川沿いに進むと報国寺に至る。この寺は、足利尊氏の祖父の足利家時(あしかがいえとき)あるいは上杉重兼(うえすぎしげかね)の創建とされている。享永の乱(1438年に鎌倉公方足利持氏(あしかがもちうじ)と関東管領の上杉憲実(うえすぎのりざね)の対立で勃発)で敗れた持氏の子義久(よしひさ)がこの寺で自刃した。
f:id:bitterharvest:20180410143735j:plain

竹林で有名なこの寺には、外国人観光客が多数見受けられ、他の寺の静けさとは異質であった。
f:id:bitterharvest:20180410143812j:plain

また、報国寺にもやぐらがあった。また、報国寺周辺は宅間谷(たくまがやつ)と呼ばれている。
f:id:bitterharvest:20180410143853j:plain

この後、今回の主目的である浄妙寺へと向かう。この寺は鎌倉時代の初めの1188年に足利義兼(よしかね)により創建された。かつて、鎌倉時代征夷大将軍に就任した1192年に始まると教えられていたが、最近では、関東支配権の承認を得た1183年、あるいは、守護・地頭設置権が認められた1185年が有力になっている。もちろん、足利義兼は鎌倉幕府の有力御家人で、北条政子の妹を妻に迎えるなど、源頼朝に厚遇された。

この寺は当初極楽寺と呼ばれ密教(真言宗)であった。その後、建長寺を開山した蘭渓道隆(らんけいどうりゅう)の弟子の月峯了然(げっぽうりょうねん)が住職になった時に、禅刹に改められた。また、寺の名前は、足利貞氏(あしかがさだうじ)の法名をとって浄妙寺とされた。鎌倉五山第五位の格式を誇る寺でもある。
f:id:bitterharvest:20180410143932j:plain

足利貞氏の墓もある。また、『新編鎌倉志』に掲載されている浄妙寺境内絵図によれば、総門に向かって右隣に東公方屋敷の記載がある。これは、室町時代の東国支配機関であった鎌倉公方(関東公方ともいわれる)の屋敷跡と見られている。鎌倉公方足利尊氏の子孫によって世襲される。
f:id:bitterharvest:20180410144009j:plain

この隣には杉本寺がある。鎌倉最古の寺である。奈良時代の734年に行基が十一面観音を安置して創建したのが始まりと伝えられている。行基は、聖武天皇の時代に奈良の大仏造立の実質上の責任者として招かれた僧だ。

杉本寺の近くの高台から、滑川沿いの街並みを見ることができた。
f:id:bitterharvest:20180410144112j:plain

この後、瑞泉寺へと向かうのだが、腹ごしらえをするために、民家を改造したレストランで昼食を取った。

瑞泉寺へ向かう途中で出会ったのが、永福寺(ようふくじ)跡。かつてテニスをしたコートの横にある。何もなかったように記憶しているのだが、立派な遺跡になっていることにびっくりした。源頼朝が、源義経藤原泰衡(ふじわらやすひら)を始めとする奥州合戦での戦没者を慰霊するために、中尊寺の二階大堂、大長寿院を模して建立したそうである。かつての寺院の模型写真もあった。
f:id:bitterharvest:20180410144146j:plain

池が印象に残った。荘厳で静寂な寺院だったのだろう。この周辺は永福寺谷(ゆうふくじがやつ)と呼ばれる。
f:id:bitterharvest:20180410144235j:plain

ここからだいぶ歩いて瑞泉寺に到着した。庭園がきれいな寺で、周辺は紅葉谷(もみじがやつ)と呼ばれている。1327年に夢窓疎石(むそうそせき)が創建した。夢窓疎石は京都の西芳寺竜安寺などの庭園を設計している。
f:id:bitterharvest:20180410145754j:plain
f:id:bitterharvest:20180410145848j:plain

最後に訪れたのが、鎌倉宮である。この宮には、護良(もりなが)親王が幽閉された土牢がある。護良親王は父の後醍醐天皇とともに建武の新政(1333年)を成し遂げたが、その後、足利尊氏と対立し、北条高時の遺児の時行(ときゆき)が起こした中先代の乱の混乱の中で、尊氏の弟の足利直義(あしかがただよし)の命で1335年に殺害された。
f:id:bitterharvest:20180410145050j:plain

16,000歩をかけての足利氏にゆかりのある寺院の旅は、10時半ごろに始め、15時ごろに終了した。武家同士の権力闘争が激しかった時代の寺院であるが、現在は、どの寺も谷戸の中で鎮魂のための静寂を保っている。

米田の補題 ー 継続渡しのプログラム

6.5 継続渡しのプログラム

1980年代後半に情報科学を学んだ人々にとって、アベルソンとサスマン夫妻が書かれた『計算機プログラムの構造と解釈』は思い出に残る本だったと思う。私も、情報科学の中でどれが最も良い本であったかと問われればこの本をあげる。
f:id:bitterharvest:20180405100542j:plain

この本が出版された当時、ゼミで学生たちに講読させた。しかも、まだ翻訳されていなかったので、原書で読んだ。C言語ぐらいの知識しかない学生たちが、いきなり、Schemeでプログラミングの原理を理解しようと取り組んだため、色々な事件が起きた。ある女子学生は、毎日、クラスとオブジェクトのお化けが夢に出てくると悩まされていた。徹也に次ぐ徹夜で輪講の準備をしてきた学生は、発表の後、トイレで倒れるという事件もあった。英文科を出たお母さんが息子のために翻訳をした文章を大学に行く前に渡してくれる、という麗しい家庭の話もあった。

この本の中で、最も理解しにくかったのは、継続渡しだと思う。米田の補題と結びついていることを知ると、理解しにくかったことに納得できるが、当時のゼミ生の苦労は並大抵ではなかった。この当時の卒業生に会うと、懐かしそうにオブジェクト指向の話をするので、彼らにとっては今では楽しい思い出になっているのであろう。

そこで、継続渡しのプログラムの例をHaskellで少しだけ説明しよう。

米田の補題は、Haskellでは次のように書くことができた。

forall x. (a -> x) -> F x ~= F a

であった。

そこで、\(F\)を恒等射とし、\(x\)を\(r\)で置き換えると、

forall r. (a -> r) -> r ~= a

となる。これと可換図式との対応を示すと下図のようになる。
f:id:bitterharvest:20190527143005p:plain
これは次のように解釈することができる。この式の右側は任意のデータ型\(a\)を取ることを意味する。そして、左側は\(a\)のためのハンドラー\(a \rightarrow r\)を利用する関数であることを示す。さらに、右側は左側で置き換えてもよいことを示している。

この解釈はさらに次のように変えることもできる。ハンドラーは、\(a\)を入力として残りの計算をする関数と見なすことができる。これは次のように考えることが可能になる。

a -> (a -> r) -> r

可換図式との対応を示すと以下のようになる。
f:id:bitterharvest:20190527143028p:plain
それでは、簡単な例から示そう。与えられた数\(a\)に対して、関数\((+3)\)を施し、そして、ハンドラー\(k\)を行うことを考えよう。この関数を\(add3CSP\)としよう。

add3CSP :: (Num a) => a -> (a -> r) -> r
add3CSP a k = k $ (+3) a

可換図式との対応を下図に示す。
f:id:bitterharvest:20190527143045p:plain
いくつか実験してみよう。

Prelude> add3CSP 4 (+5)
12
Prelude> add3CSP 3 (*4)
24
Prelude> add3CSP 6 sqrt
3.0
Prelude> add3CSP (-6) abs
3

それでは、\(+3\)の代わりに階乗としたらどうであろうか。これは少し面倒くさい。

通常、階乗は次のように実装される。

fac :: (Num a, Eq a) => a -> a
fac 0 = 1
fac n = n * fac (n -1)

実行結果も示しておこう。

fac 4
24

継続渡しスタイルでは、実行すべき関数を返す。従って、次のように考える。\(n\)の階乗の計算の後にハンドラー\(k\)を実行する関数は、\(n-1\)の階乗の計算の後に、これに\(n\)を掛けるという計算を行い、その後にハンドラー\(k\)を実行することと同じである。そこで、\((n-1)\)までの階乗の計算結果を\(ret\)で返してもらうことにすると、次のようにプログラムを実装することができる。

facCSP :: (Num a, Eq a) => a -> (a -> r) -> r
facCSP 0 k = k 1
facCSP n k = facCSP (n-1) $ \ret -> k (n * ret)

可換図式との対応を示すと下図になる。
f:id:bitterharvest:20190527143113p:plain
分かりにくいかもしれないが、少し、実行してみよう。

*Main> facCSP 4 (+2)
26
*Main> facCSP 4 (*3)
72
*Main> facCSP 4 sqrt
4.898979485566356

それでは、どのように実行されているのかを見に行くこととしよう。

facCSP 3 k 
= facCSP 2 $ \ret2 -> k (3 * ret2)
= facCSP 1 $ \ret1 -> (\ret2 -> k (3 * ret2)) (2 * ret1)
= facCSP 0 $ \ret0 -> (\ret1 -> (\ret2 -> k (3 * ret2)) (2 * ret1)) (1 * ret0)
= (\ret0 -> (\ret1 -> (\ret2 -> k (3 * ret2)) (2 * ret1)) (1 * ret0)) 1
= (\ret1 -> (\ret2 -> k (3 * ret2)) (2 * ret1)) (1 * 1) 
= (\ret2 -> k (3 * ret2)) (2 * 1)
= k (3 * 2)

上記の式の展開で、それぞれの式は計算をするのに十分な情報を持ち合わせていることに気がつく。そこで、計算を中断したとしても、計算は途中で中断しても、継続して計算ができることが分かる。ユーザインターフェースのプログラムは、センターとユーザとの通信で行われ、中断を伴う。従って、ユーザインターフェースのプログラムでは、継続渡しスタイルのプログラムが使われる。

また、今回は説明を簡単にするために、自然変換に恒等射\(Id = \{Id_A,Id_R\}\)を用いたが、別な射も用いることができる。

米田の補題 ー Haskellで理解する

6.4 Haskellで理解する

米田の補題補題を下図の可換図式を用いて説明した。Haskellを用いてさらに理解を深めることとしよう。
f:id:bitterharvest:20180326210741p:plain

Bartosz Milewskiさんが上手に説明しているので、それを借りることにしよう。\({\rm Hom}\)関手を作成しよう。\(Reader\)のデータ型を定めよう。これは、射の集合だ。そこで、ドメインを型変数\(a\)で、コドメイン\(x\)とし、\(a\)から\(x\)への射の集まりと考えると、型構築子を\(Reader\)として、次のように定義できる。

type Reader a x = a -> x

\(Reader\)は関手なので、クラス\(Functor\)のインスタンスとするためには、次のようにする。

instance Functor (Reader a) where
  fmap f g = f . g

プログラムは下図を意味する。
f:id:bitterharvest:20180403162555p:plain

そして、自然変換\(\alpha\)は多相関数なので、次のように定義できる(ドメインやコドメインの方が型変数になっているものを多相関数という)。

alpha :: forall x . (a -> x) -> F

これは、以下の可換図式と同じである。
f:id:bitterharvest:20180403162624p:plain

米田の補題は、

forall x . (a -> x) -> F ~= F a

と言っている。即ち、自然変換と\(F \ a\)の要素は一対一に対応すると言っている。

Haskellでは、右の項の\(F \ a\)は通常、データ型として扱う。そして、\(F\)は\(a\)を包んでいるコンテイナと考える。左の項は、引数として関数をとる、多相関数だ。米田の補題は、二つの項が同値だと言っている。即ち、同じ情報を有していると言っている。

言い方を変えると、

alpha :: forall x . (a -> x) -> F

という多相関数が与えられると、\(a\)のコンテイナ\(F\)を得ることができる。逆に、\(a\)のコンテイナ\(F\)が与えられる、先の多相関数を得ることができると言っている。

米田の補題の証明では、\(A\)から\(A\)への恒等射\(id\)を用いた。証明の手順を追っていこう。

\(id_A\)に対して、\(F (A)\)の任意の一つの要素\(p \in F(A)\)を対応させよう。即ち、

alpha id :: F a
p :: F a

\(id_A\)を\(p\)に写す自然変換を\(\alpha\)とすると、下図の可換図式を得る。
f:id:bitterharvest:20180406095514p:plain

従って、

alpha f = fmap f p

を得る。
逆に、\(p\)を任意にするのではなく、\(f\)を任意にしてもよいことが分かる。これにより米田の補題が証明されたこととなる。

米田の補題の応用の一つは、継続渡しスタイル(continuation-passing style)のプログラムである。興味のある人は調べて欲しい。

御殿場線山北駅で桜並木を楽しむ

今年は、桜が開花してから、暖かいというよりも暑い日が続き、あっという間に満開となってしまった。まごまごしていると、良い時期を失ってしまいそうだ。今日(29日)も天候に恵まれたので、少し遠くでさらにマニアックだが、御殿場線山北駅に出かけた。

山北町は神奈川県西部の丹沢山地にある町だ。人口は1万人強。山北駅明治22年に開業している。現在は、御殿場線だが、かつては東海道本線の主要な一駅であった。昭和9年丹那トンネルが開通すると、御殿場線という地方路線の一つの駅になった。

山北駅へは、小田急線で新松田まで行き、御殿場線松田駅を利用した。
f:id:bitterharvest:20180329182916j:plain
f:id:bitterharvest:20180329182937j:plain

松田駅から山北駅までは2駅だ。ただし、列車は1時間に1~2本とまばらだ。いつもは乗客は少ないのだろうが、今日は、同じ目的を抱いている人が多く集まっているようで、ホームではかなりの人が列車を待っていた。

昼間はワンマンカ―なので、駅員が常駐していない山北駅では2両連結の先頭車両の一番前のドアーからしか降りることができない。いつもはスムーズに降りられるのだろうが、今日は降りる人の列が延々と続いた。列車が出発する前にホームのはずれに行き、桜並木に向かう列車を撮影できるように構える。橋の上にもこの瞬間を目指してカメラマンたちが構えている。
f:id:bitterharvest:20180329183047j:plain

駅の周辺は公園になっており、D52型蒸気機関車が展示されていた。
f:id:bitterharvest:20180329183118j:plain

御殿場線は、山北駅から西側の方は掘割になっている。底を列車が走り、土手に沿っておよそ130本の桜並木がある。
f:id:bitterharvest:20180329183159j:plain

土手には野草も咲いていて、楽しみを高めてくれる。
f:id:bitterharvest:20180329183250j:plain
f:id:bitterharvest:20180329183325j:plain

でも、ここに来た目的は列車と桜並木を一緒に撮ることだ。多くの人も列車の時刻表を見ながら、今か今かと待っている。我々もその仲間に入って、機会を狙った。
f:id:bitterharvest:20180329183411j:plain

もう少し待つと特急列車が通るのだが、お腹もすいてきたので山北駅を去ることにした。懐かしい赤いポストにも別れを告げた。
f:id:bitterharvest:20180329183505j:plain

手元に大正14年の時刻表があったので、当時の東海道本線の様子を調べてみた。東京発の特急列車は2本で、この頃は愛称で呼ばれていない。特1、特3となっている。特1は一等車・二等車のみだ。東京駅を8:45に出発し、横浜、国府津だけに停車した後、山北には11:02に到着する。ここからは勾配のきつい区間になるため、補助機関車を接続して、次の沼津駅へと向かう。

現在、御殿場線には新宿発のふじさん1,3,5号の特急電車が運行されているが、山北には停車しない。ふじさん3号は、新宿を10:40に出発し、松田に11:58に到着し、所要時間が半分になっている。蒸気機関車から電車へと変化し、時代の流れを感じさせられるが、時々は、山北駅D52型蒸気機関車を走らせてくれたらと思う。

川崎市の日本民家園を訪ねる

川崎市の日本民家園が50周年を迎えていて、その記念のコンサートをしたという記事を週末に見た。春の温かい日差しに恵まれ、また、懐かしさも手伝って、昨日(27日)訪れた。田園都市線と南部線が交差する溝の口から向ヶ丘遊園行のバスを利用した。最近のバスはどこでもそうなのだが、老人たちで混んでいる。市が提供する無料パスを利用する人々が多いためだ。この日に利用したバスも例にもれず、市外から来た我々夫婦を除いては、無料パスを見せながら、運転手席の横にある料金箱をパスしていく。

向ヶ丘遊園行は二系統あって、我々のバスは府中街道に沿って進む。この街道に沿って二ヶ領用水が流れている。川に沿って、花や木が植えられていて、車窓を楽しませてくれる。この用水は、江戸時代が始まる頃に農業用水として造られたもので、川崎領と稲毛領にまたがったことから二ヶ領と呼ばれたということを、川崎市内の小学校で4年生と5年生を過ごした頃に学んだ。桜で有名な二ヶ領用水の方はこれの分流だ。

最寄りの停留所でバスを降り、民家園へと向かう。車通勤をしていた頃に抜け道に使っていた道で、付近の丘陵地は一方通行で狭く対向車が来ないことを祈りながら運転したものだが、いまでは、歩道も付いた立派な道になっている。

日本民家園は、生田緑地と呼ばれる広大な丘陵地の一角にある。この緑地には、このほかに、岡本太郎美術館藤子・F・不二雄ミュージアムなどがあり、入口(東口)にはビジターセンターもある。
f:id:bitterharvest:20180328205749j:plain

日本民家園には、18軒の住宅と、水車小屋や蔵など7軒の建物がある。合わせて25軒の展示民家だ。五つにグループ分けされ、入口の方から、宿場、信越の村、関東の村、神奈川の村、東北の村となっている。また、国の重要文化財に指定されている住宅も7軒ある。

入り口から入ってすぐのところに、番号0、どのグループにも属さない原家住宅がある。大正時代に竣工したため、江戸時代の他の建物とは離して移築したのだろう。
f:id:bitterharvest:20180328205840j:plain

原家住宅のすぐ横は、宿場だ。門の右側に見えるのは、鈴木家住宅で、奥州街道の八丁目にあった馬宿だ。白河での子馬の競り市に往復する馬喰と馬方が泊まっていた。
f:id:bitterharvest:20180328205916j:plain

さらに奥へと進むと、佐地家の門・供待・堀がある。250石取り尾張藩士の武家屋敷入口部分だ。今年の大河ドラマは「せごどん」だ。その主人公は西郷隆盛だが、父の吉兵衛は下級武士で、石高は41石である。家老の小松帯刀は2600石だ。1石で一人暮らせる時代だった。中級武士というところだろうか。
f:id:bitterharvest:20180328210006j:plain

宿屋地区の最後は、伊奈街道の宿駅、伊那部宿にあった三澤家住宅だ。農業を主とし、代々組頭をつとめてきた村の有力者の家である。板葺の屋根で、置石があるのが特徴だ。
f:id:bitterharvest:20180328210110j:plain

次は、信越の村だ。小学6年から中学2年まで、長野で暮らしたので、親しみの持てる場所だ。最初の建物は長野県南佐久郡のもので、千曲川沿いの名主の家である。長野県と言うだけで雪深いところと思いがちだが、そうではない。左側が佐々木家だ。柱の細さに気が付く。そして、正面が江向家住宅だ。富山県岐阜県との境にある越中五箇山の合掌造りの家だ。豪雪地帯のため、雪の重みに耐えるために様々な工夫が凝らされている。二つの家とも国の重要文化財に指定されている。このほかにも、越中五箇山の合掌造りの家が2軒、飛騨白川郷の合掌造りの家が1軒ある。また、白川郷の家はお蕎麦屋さんになっていたので、ここで、お昼を食べた。
f:id:bitterharvest:20180328210154j:plain

腹ごしらえも済んだところで、関東の村へと進んだ。これまでとは趣を異にする家に出くわす。千葉県の九十九里浜から移築された作田家住宅だ。網本の家で、棟(屋根)が、横の方に向かうものと、奥の方に向かうものとに分かれていることが分かる。分棟型民家と呼ばれている。この家も国の重要文化財である。
f:id:bitterharvest:20180328210223j:plain

次の廣瀬家住宅の家は、妻の部分の柱が曲がっていて、目を楽しませてくれた。山梨県甲州市の民家だ。
f:id:bitterharvest:20180328210307j:plain

今度は、茨城県笠間市の名主さんの家だ。大戸の上に定書きがあり、それを読もうとしていたら、ボランティアの人が近づいてきて、助けてくれた。定書きは慶應4年に太政官(明治政府)から出されたもので、次のように書かれていた。なお、変体仮名のところはカタカナに変えてある。
一 人タルモノ五倫ノ道ヲ正シクスヘキ事
一 鰥寡孤獨癈疾ノモノヲ憫ムヘキ事
一 人ヲ殺シ家ヲ焼キ財ヲ盗ム等ノ惡業アル間敷事

この建物も分棟型民家で、国の重要文化財に指定されている。ボランティアの方の説明によれば、太田家住宅はここで火災に遭遇したそうだ。1990年の夏、近くの公園で遊んでいた若者たちの打ち上げ花火が屋根に落ち、母屋を中心に焼けてしまった。その後、復元されたが、焼けた跡が柱に残っていると言って、見せてくれた。文化財の保護の難しさの一面を知ることができた。
f:id:bitterharvest:20180328210446j:plain

次は、神奈川の村だ。最初に現れるのが、秦野市の名主をしていた北原家住宅だ。移築解体をするときに、墨書が発見され、貞享4年(1667年)に建築されたことが分かる貴重な家で、国の重要文化財となっている。
f:id:bitterharvest:20180328210530j:plain

そして、いよいよ伊藤家住宅だ。日本民家園発祥の建物だ。関口欣也さんは、1955年に横浜国立大学で農村の近代化の推進についての卒業論文に取り組んでいるときに、江戸時代に名主であった伊藤家の古民家に出会う。建築史の大岡実教授にも相談して、古民家の建築時期を判断しようとしたが、寺や城などと違い、その当時は古民家の基準を示すものがなかった。大岡教授はそのあと古民家の調査に乗り出し、伊藤家住宅は17末~18世紀初ということが1960年に判明した。歴史的に貴重なこの住宅を保存するために、国重要文化財に指定し、横浜の三渓園に移築する方針が決まった。

川崎市文化財を担当していた古江亮仁さんは、その計画を1964年に知り、大岡教授を訪ね、川崎市に残せないかと相談する。民家園の構想が持ち上がり、それが現在へとつながった。1967年4月にオープンしたが、何ともさみしいことに、初日の入館者は0だったそうだ。しかし、2016年度の実績は116,053人となっている。
f:id:bitterharvest:20180328210628j:plain

最後は東北の村。村の構成が分かりにくかったことと、疲れてきたこともあって、国重要文化財に指定されている工藤家住宅を見学しそこなったが、山形県鶴岡市の菅原家住宅は、見ごたえがあった。豪雪地帯のため、冬用の出入り口が二階にあり、雪の重みで家が沈むために、引き戸にはコロが付いていた。酷寒に耐えるには隙間が多すぎるように感じたが、わらの中で睡眠するとのこと、耐え忍んだのだろうと哀れさを感じた。
f:id:bitterharvest:20180328210732j:plain

妻の目的である桜見学を達成していなかったので、出口で警備の人にこの辺に桜の見どころはないだろうかと聞くと、舛形城がいいのではと言われた。180段の階段を上った先に、お城の跡がある。かつては広場だけだったような気がするが、いくつかの施設が建築されていた。入口には門があった。
f:id:bitterharvest:20180328210814j:plain

舛形城は鎌倉時代に、秩父党の流れをくむ小山田有重の子の稲毛三郎重成によって築かれたとされている。広場には見晴らし台がある。
f:id:bitterharvest:20180328210851j:plain

見晴らし台から見た桜がきれいだった。桜は見上げることが多いのだが、見下ろすのもなかなか壮観だ。
f:id:bitterharvest:20180328210917j:plain

帰りは向ヶ丘遊園駅まで歩くことにした。途中に、生田長者穴横穴墓があるので見学した。7世紀の築造で、10程度の横穴がある。勾玉を始めとする副葬品も出土している。
f:id:bitterharvest:20180328211020j:plain

天気にも恵まれ、夫婦二人、まぶしいほどに明るい春を楽しむことができた。

米田の補題 ー 証明

6.3 米田の補題の証明

前回の記事で米田の補題を提示した。米田の補題は次のようになっていた。

局所的に小さな圏\(\mathcal{C}\)において、\({\rm Hom}\)関手\(h^A: \mathcal{C} \rightarrow \mathbf{Set}\)から、集合値関手\(F: \mathcal{C} \rightarrow \mathbf{Set}\)への自然変換と、集合である対象\(F(A)\)の要素との間に一対一の対応が存在する。なお、\([\mathcal{C},\mathbf{Set}]\)は関手圏で、\({\rm Hom}\)関手と集合値関手はその対象であり、自然変換はその射である。

これを式で書くと、
\begin{eqnarray}
[\mathcal{C},\mathbf{Set}](h^A,F) \cong F(A)
\end{eqnarray}

\({\rm Hom}\)関手\(h^A\)と集合値関手\(F\)では、自然変換\(\alpha\)に対して、下図の可換図式が成り立つ。
f:id:bitterharvest:20190527135127p:plain
そこで、上の図で、\(X\)を\(A\)とし、\(Y\)を\(X\)とすると、下図の可換図式を得る。
f:id:bitterharvest:20190527135751p:plain
このとき、これは単に可換図式だと述べているだけではない。米田の補題は「\({\rm Hom}\)関手\(h^A\)から集合値関手\(F\)への自然変換と、集合である対象\(F(A)\)の要素との間に一対一の対応が存在する」と言っている。隠れていたものが表れてくるのがこの補題だ。

1)可換図式であることの証明

それでは、米田の補題を証明する前に、最初に揚げた図が可換図式になっていることを証明しよう。それには自然変換が存在することを証明すればよい。

もう少し詳しく説明すると、\(F\)を圏\(\mathcal{C}\)から圏\(\mathbf{Set}\)への関手とする。関手であることから、任意の\(a \in A\)に対して、任意の関数\(g:A \rightarrow X\)と任意の\(f:X \rightarrow Y\)適応したとする。このとき、圏\(\mathcal{C}\)内で関数\(g,f\)を施して、圏\(\mathbf{Set}\)へ移した\(F (f (g (a)))\)と、\(a\)を圏\(\mathbf{Set}\)に写し、その後、関数\(F(g),F(f)\)を施した\(F(f) (F(g) (F(a)))\)とは、一致する。これを利用して、可換にするような、\(\alpha = \{\alpha_X : \mathcal{C} (A,X) \rightarrow F(X), \alpha_Y : \mathcal{C} (A,X) \rightarrow F(X) \}\)が存在することを証明すればよい。

そのために、下図を利用しよう。この図は、説明しやすくするために、圏\(\mathcal{C}\)を圏\(\mathbf{Set}\)の上に描いた。なお、\(p = F(a)\)とした。
f:id:bitterharvest:20190527135824p:plain
最初に1から2を経由して3への写像は考えよう。1での一つの要素\(g \in \mathcal{C}(A,X)\)は2での要素\(f \circ g \in \mathcal{C}(A,X)\)に写される。これは3の中のある一つの要素に写すことを考えよう。この要素を\(F ( f \circ g) (p) \in F(Y)\)としよう。2から3への射を考えることができるので、これを\(\alpha_Y\)としよう。これまでの説明を式で表すと次のようになる。
\begin{eqnarray}
&& \alpha_Y \circ \mathcal{C}(A,f)(g) \\
&=& \alpha_Y (f \circ g) \\
&= & F(f \circ g) (p)
\end{eqnarray}

\(F\)が関手であることを利用して式を展開すると
\begin{eqnarray}
&= & F (f) \circ F (g) (p) \\
&= & F (f) (F (g) (p))
\end{eqnarray}

ここで、\(F (g) (p) \in F(X)\)である。即ち、\(F(X)\)の一つの要素である。そこで、1から3への写像を考えることができる。そこで、これを\(\alpha_X\)としよう。さらに式の展開を続けると、
\begin{eqnarray}
&= & F (f) (\alpha_X (g) ) \\
&= & F (f) \circ \alpha_X (g)
\end{eqnarray}
を得る。これから、任意の\(f,g\)に対して、
\begin{eqnarray}
&& \alpha_Y \circ \mathcal{C}(A,f)(g) \\
&= & F (f) \circ \alpha_X (g)
\end{eqnarray}
とするような自然変換\(\alpha=\{\alpha_X,\alpha_Y\}\)が存在することが分かる。

2)米田の補題の証明

それでは、米田の補題を証明しよう。1対1に対応することから次のように行えばよい。

1)\(F(A)\)内の要素を一つ定めたとしよう。この要素に対して、\(h^A\)から\(F\)への自然変換がただ一つ存在することを示す。

2)\(h^A\)から\(F\)への自然変換を一つ定めたとしよう。この自然変換に対して、\(F(A)\)内の要素がただ一つ存在することを示す。

1)の証明を行うことを考えよう。証明には下図を利用しよう。
f:id:bitterharvest:20190527135909p:plain
\(F(A)\)内の要素を一つ定めたとする。これを\(p\)としよう。これは任意の点であることに注意して欲しい。そして、\(h^A\)から\(F\)への求める自然変換を\(\alpha:h^A \rightarrow F\)としよう。自然変換は成分ごとに定められるので、\(\mathcal{C}(A,A)\)から\(F(A)\)への成分を\(\alpha_A\)としよう。また、任意の対象\(X\)に対して、自然変換の成分を\(\alpha_X\)としよう。そして、\(\alpha_A\)と\(\alpha_X\)がただ一つ存在することを示せばよい。

まず、\(\alpha_A\)について考えよう。\(\mathcal{C}(A,A)\)は恒等射であるため、\(id_A = \mathcal{C}(A,A)\)である。従って、単一の射\(id_A\)から単一の要素\(p\)へ写像させるただ一つの\(\alpha_A\)が存在する。

次に、\(\alpha_X\)について考えよう。\(\mathcal{C}(A,f) : g \rightarrow f \circ g\) である。ここで、\(g \in \mathcal{C}(A,A)\), \(f \circ g \in \mathcal{C}(A,X)\)なので、\(g=id_A\)より、\(f = \mathcal{C}(A,X)\)となる。他方、\(p\)は、射\(F(f)\)によって\(F(X)\)のある一つの要素に写像される。この点を\(q \in F(X)\)としよう。従って、
\begin{eqnarray}
q=F (f) (p)
\end{eqnarray}
となる。

一方、\(f = \mathcal{C}(A,X)\)から\(q\)への変換が存在する。これを\(\alpha_X\)とする。即ち、
\begin{eqnarray}
q=\alpha_X (f)
\end{eqnarray}
である。

これより、
\begin{eqnarray}
\alpha_X (f) = F (f) (p)
\end{eqnarray}
となり、\(\alpha_X\)が一意に定まることが分かる。

従って、 \(F(A)\)の一つの要素に対して、成分を\(\alpha_A\), \(\alpha_X\)とするようなただ一つの自然変換\(\alpha\)が存在することが証明できた。

同様に、任意に与えた一つの自然変換\(\alpha\)に対して、\(F(A)\)の要素がただ一つ存在することも証明できる。

よって、米田の補題は証明された。