bitterharvest’s diary

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

アデライン、100年目の恋

今回、日常的な言い回しが分かる例として利用する映画は『アデライン、100年目の恋』だ。英語のタイトルは”The age of Adaline”だ。主役はブレイク・ライブリー。2007年放送開始のテレビシリーズ『ゴシップガール』でブレイクした女優だ。恋人をマイケル・ユイスマンが務めるが、彼の父親を1942年生まれの名優のハリソン・フォードが演じる。この映画は2015年の製作なので当時73歳だ。その妻を演じるのはキャシー・ベイカー。そして、舞台は大好きなサンフランシスコだ。この街は私にとっては特別な場所だ。大学院時代を過ごしたバークレーからは湾越しにこの街を見ることができた。また、休日にはしばしば訪れたので、サンフランシスコの通りの名前が出てくるととても懐かしく感じられる。感傷に浸るのはこのくらいにして、元に戻ろう。
f:id:bitterharvest:20180701192437p:plain

年を取らずにずっと若いままでいられるというのは、人間の究極の望みだろう。しかし、もし、実際にそうなったらどうなのだろうか。自分だけは若いままで、周りの友達はどんどん年を取っていく。友達という関係を維持できるだろうか。もし、子供がいたとして、その子が成長し、やがて自分の年を追い越し、老人ホームで過ごしている子供を見舞うときどのような気分になるだろうか。年老いてしまった恋人と再会したとしたらどのように対応すればよいのだろうか。このようなことを考えさせてくれる映画だ。

女性主人公アデラインは1908年の生まれ。ゴールデンゲートブリッジの工事に携わった技術者と結婚し、女の子を得る。29歳の時、夫は工事中の事故で無くなり、アデラインも交通事故を起こす。この交通事故によって、アデラインは「DNAの電子圧縮」によって年を取らなくなる。
f:id:bitterharvest:20180701192456p:plain

誕生から数えた年齢と29歳のままの姿とに差がありすぎてトラブルが起き始める。それを避けるために10年ごとに場所と名前を変えて世間から隠れて生活するアデラインは、2015年にエリスと出会い、彼に惹かれていく。そして、アデラインは彼の実家を訪ねる。そこで彼の父親のウィリアムを紹介されるが、ウィリアムはかつて彼女の恋人であった。ウィリアムも昔の恋人そっくりの女性が目の前に表われびっくりする。アデラインは、その人はお母さんだと言い逃れをする。

その晩はウィリアムもアデラインも眠れぬ夜を過ごした。翌朝、家族全員が食卓に着いた時、ウィリアムはかつての恋人との思い出を懐かしく語り始める。しかも、どんなに魅力的で優れた女性であったかを繰り返し述べる。妻のキャシーも横で聞いている。複雑な気持ちだろうなと感じたとき、案の定、席をプイとたつ。妻の異様な行動に気がついたウィリアムは妻を追いかけて、話をする。そこでのやり取りを見てみよう。
f:id:bitterharvest:20180701192514p:plain

妻をいたわるようにウィリアムが、
W: What? Honey?
「どうしたの?」と聞く。

妻は、
K: That's enough, William.
「もう十分だわ。」という。これ以上は思い出話を聞いていられないということだろう。

妻の微妙な感情のいら立ちに出会ったウィリアムは動揺して、
W: What? What's... what's cooking?
「え、どうしちゃったの?」と聞く。思いがけず妻をいら立たせてしまったウィリアムが対応に困っている。こういう時、女性の心理が読み切れず、男性は困惑するが、そのような様子をとてもうまく演じている。

妻は、
K: What, you think this is funny?
「おかしなことだと考えているの?」と言い返す。妻の感情を読み取ってくれない夫にいら立ち、簡単な問題ではなく、深刻な問題であることを告げようとする。結婚する前とは言え、そんなにも素晴らしい女性と付き合っていたことが許せないと妻は感じている。

妻のいら立ちの原因を知ろうとしてウィリアムは尋ねる。
W: What do you mean? I'm do... What did I do?
「どういうこと?」「私が何をしたという?」

それに答えて妻は、
K: You were very close, you were very close, you said that to me twice now. And you should see your face when you talk about her. Are you going to wax nostalgic this whole god damn weekend?
「あなた方はとても仲が良かったと、とてもとても仲が、私に2回も言ったわ。彼女について語るときのあなたの顔を見るべきだわ。この週末ずっと思い出に浸ろうとでも思っているの?」と言う。ウィリアムにとっては、思いもかけない妻からの反撃だろう。

ウィリアムは自身の感じ方を伝えて分かってもらおうと努める。
W: Look, it's just that... she looks so much like her mother that... that I'm remembering things that I didn't even know I remembered.
「いいかい。彼女はお母さんにとても似ていて、忘れていたことさえよみがえってきているだけなんだよ。」

遂に、妻がありのままの感情を伝えてくれる。
K: Well, I'd hate feeling like second choice.
「そう、私が二番目の選択のように感じられて嫌なのよ。」

二人とも感情が高まってきて、ウィリアムが
W: What do you mean?
「なんだって?」というのと同時に、妻も
K: Especially this weekend.
「特に、この週末はね」という。

ウィリアムが妻の本音を理解して
W: Second choice?
「二番目の選択かい?」と聞きただす。それに答えて、

K: Yes.
「そうよ。」という。

ウィリアムが続ける。
W: Forty years, Baby, come on... Second choice? Uh-uh. Honey, you're blowing this all out of proportion.
「40年だよ。どうなってんの。二番目なんて。大げさに考えすぎだよ。」と吹っ切れたように言う。「Blow out of proportion」 は「誇張する」という慣用句である、

妻も冷静になってきて、
K: Am I?
「そうかしら。」という。

ウィリアムがすかさず、
W: Are you jealous?
「やきもち焼いているの?」と茶化す。

妻のほうもすっかり冷静さを取り戻して、
K: Yeah, as a matter of fact.
「そう、本当のところはね。」と答える。

妻の心が和んだところで、ウィリアムが優しくいたわって、
W: Look, look, it was fleeting, inconsequential. 
「よく聞いて、それはつかの間の、とるに足らないものだったよ。」という。

そして妻が、
K: Sounded like you were more than that.
「それ以上に聞こえたけど。」

ウィリアムは妻の首筋にやさしく手を当てて、
W: I love you.
「愛している。」という。

妻もすっかり気分を取り戻して、
K: I love you, too.
「私もよ。」と応じる。

この後も意外な展開があるが、結末は映画を観て楽しんでください。

プログラマのための圏論:上級編(上)

プログラマのための圏論:上級編(上)』はこれまで、プログラマのための圏論(上級編)で説明してきたことをまとめました。圏論での重要な概念である、極限、米田の補題、随伴関手についてまとめてあります。

レーズン入りパウンドケーキを作る

パウンドケーキは、小麦粉、バター、砂糖、卵を1ポンドずつ用いることから、その名がつけられたそうだ。1ポンドは454gだが、このまま作ると4本ぐらいのパウンドケーキができてしまうので、今日はそれぞれを100g用いることにする。卵は50gを少し上回るぐらいなので2個用いる。また、小麦粉は薄力粉にした。バターは品薄で入手しにくいので、
ケーキ用マーガリンを用いた。

材料と道具に登場してもらおう。料理よりも手間がかかるのが、型に入れるオーブンシート。型の内径に合わせて、四隅を切り抜き、ぴったりと入るように細工するのだが、神経を使う作業となる。
f:id:bitterharvest:20180531200309j:plain
最初にする作業は、2個の卵を泡立てない程度に溶く。
f:id:bitterharvest:20180531200327j:plain
次は、バターを電動ミキサーで練る。バターがミキサーにくっついてしまうが、気にする必要はなさそうだ。
f:id:bitterharvest:20180531200343j:plain
これに砂糖は3回に分けて加え、そのつど電動ミキサーで練りこむ。
f:id:bitterharvest:20180531200454j:plain
その次は、卵だ。これも3回に分けて行うが、電動ミキサーのスピードを速くして混ぜ合わせる。
f:id:bitterharvest:20180531200826j:plain
最後は、薄力粉だが、これは一度に全部入れ、へらを垂直に入れて大きくかき混ぜる操作を繰り返す。入念に行いふんわりと弾力が出てきたら終了。
f:id:bitterharvest:20180531200537j:plain
さらに、レーズンを加えて均等に混ぜる。

できた生地を型に入れる。真ん中を低めに、端の方が高めになるようにする。さらに、レーズンを上にものせた。
f:id:bitterharvest:20180531200943j:plain
180度で余熱したオーブンで40分焼く。途中、15分経過したときに、果物ナイフを用いて縦に切れ目を入れる。このとき火傷をしないように、耐熱用のグローブで手を保護して行う。
f:id:bitterharvest:20180531201026j:plain
また、表面が黒焦げになることを防ぐために、さらに10分ぐらい経過した時に、アルミホイルをかぶせる。

時間が来たら、竹串をケーキの真ん中あたりで刺し、抜いたときに生の生地がついてこないかを確認する。もし、そうであれば、もう少し焼く。

出来上がったら型をオーブンから取り出す。
f:id:bitterharvest:20180531201112j:plain
2-3分おいて、型からパウンドケーキを取り出す。
f:id:bitterharvest:20180531202047j:plain
夕飯の後、デザートとしておいしくいただいた。
f:id:bitterharvest:20180531201941j:plain

今回はレーズンを用いたが、別のドライフルーツを入れてもよい。ただ、悩みはこれらが均等にパウンドケーキの中に納まらないことだ。薄力粉をつけるとうまくいくというブログの記事もあったが、もう少し、研究が必要だ。

伊豆半島ジオパーク ー 城ケ崎を訪れる

28日(月曜日)に伊豆半島の城ケ崎を訪れた。この半島は今年4月18日にユネスコから「世界ジオパーク」に認定された。伊豆半島は、フィリピン海プレートにのって南の方からやってきた火山島が日本列島にくっついて生まれた。火山によって作り出された地形が地質学上の様々な知見を与えてくれる重要な資源を有している。

これまでに、世界ジオパークとしてユネスコから認定されている地域は、糸魚川山陰海岸など8ヶ所あって、伊豆半島は9番目となる。今回訪れた城ケ崎も、伊豆半島ジオパークに含まれるエリアの一つだ。

城ケ崎を訪れたきっかけはジオパークに指定されたからではない。前の日に夕食を取ったイタリアン・レストランで、たまたま読んだ地元の伊豆新聞に、「城ケ崎あじさい」がきれいに咲いているというニュースが載っていたことによる。実は、伊豆半島世界ジオパークに指定されたことを、城ケ崎でその掲示を見るまでは知らなかった。連休に訪れたときも、ジオパークの看板がやけに目立つぐらいにしか感じていなかった。

前日は抜けるような青空であったが、屋外を歩くには暑すぎた。城ケ崎を訪れたこの日は、薄曇りで暑くもなく寒くもなかったので、野外を楽しむには適していた。向かった先の「ニューヨークミュージアム&フラワーガーデン」は、昨年の暮れにリニューアルオープンした。それまでは、「伊豆四季の花公園」と呼ばれていた。

リニューアルに伴って新たに開館したのが、「ティファニーミュージアム」だ。ここには、ティファニーランプやステンドグラスが飾られている。
f:id:bitterharvest:20180531135336j:plain
f:id:bitterharvest:20180531135356j:plain

ミュージアムの外はカフェになっているので、コーヒーを飲みながら城ヶ崎海岸の景色を楽しむ。右側の海岸線の先には城ケ崎の灯台が見える。
f:id:bitterharvest:20180531135421j:plain

左側の海岸線は蓮着寺のほうだ。突端を越えた先には日蓮上人が置き去りにされたといわれる俎岩があるが、ここからは見ることができない。
f:id:bitterharvest:20180531135436j:plain

ミュージアムを後にして、今日の目的であるあじさいを見に行く。その途中にジオスポットがあった。口上書きは以下の通り。
f:id:bitterharvest:20180531135507j:plain

そして、ジオスポットは、
f:id:bitterharvest:20180531135536j:plain

あじさい苑に入ると、最初に出会うのが城ケ崎あじさい。
f:id:bitterharvest:20180531135552j:plain

そして、沢山のあじさいを楽しむことができる。
f:id:bitterharvest:20180531135615j:plain
f:id:bitterharvest:20180531135630j:plain

ニューヨークミュージアム&フラワーガーデンに別れを告げて、門脇吊橋へと向かう。
f:id:bitterharvest:20180531135647j:plain

いつもはここで戻るのだが、今回はさらにその先の「ぼら納屋」まで歩を進めた。途中には、黒船防備のための砲台の跡がある。こんなので防備は大丈夫だと思ったのだろうか。黒船とまともに交戦しなくてよかったといまさらながら感じる。
f:id:bitterharvest:20180531135712j:plain

海岸線に沿って上り下りしているうちに、ぼら納屋につく。この納屋は1627年に紀伊家によって建築され、徳川幕府からの保護を受けてぼら漁業がおこなわれた。ぼら漁業は昭和39年まで続けられていたが、後継者不足とぼらの減少によって絶えたそうである。この納屋は当時の様子を残すために復元され、食堂として利用されている。
f:id:bitterharvest:20180531135735j:plain

このあと戻って、日蓮上人ゆかりの蓮着寺を訪れた。この寺は、日蓮を開祖とする法華宗に属し、1508年に開山された。
f:id:bitterharvest:20180531135846j:plain

俎岩の日蓮上人。日蓮鎌倉幕府を批判したために、1261年に伊豆に流罪となり、1263年に放免となるまでこの地にとどまった。
f:id:bitterharvest:20180531135906j:plain

天然記念物ののヤマモモ。国内最大を誇っている。
f:id:bitterharvest:20180531135938j:plain

今回歩いたエリアは、城ケ崎ピクニカルコースと呼ばれている。城ケ崎の海岸線に沿って、複雑な海岸線を登ったり下ったりする。海に近づいたり離れたりするので、角度を変えて風景を楽しむことができる。溶岩が流れ出て形成されたごつごつした海岸線や、浸食によって削られた深い谷があったりして、楽しませてくれる散策路だ。ニューヨークミュージアム&フラワーガーデンは地図には示されていないが、海洋公園の右隣だ。
f:id:bitterharvest:20180531150254p:plain

散策路に沿って、地質学的な特徴も丁寧に説明されているので、勉強になる散策路でもある。城ケ崎ピクニカルコースは蓮着寺の先で、城ケ崎自然探求路へとつながっている。さらに、地質学を学びたいときは好都合だ。この学問に興味を持った時に改めて訪れようと思っている。

随伴関手 - 随伴関手をHaskellで表現する

7.8 随伴関手をHaskellで表現する

随分と時間がかかったが、随伴関手をHaskellで表現するための準備がほぼ出そろった。ほぼといったのは、もう一つだけ、頭の体操をしておかなければならないことがある。それは、右随伴関手が表現可能関手でもあるということだ。

1)右随伴関手は表現可能関手である

表現可能関手を復習しておこう。局所的に小さな圏\(\mathcal{C}\)と集合の圏\(\mathbf{Set}\)において、\({\rm Hom}\)関手\(\mathcal{C}(A,-)\)と関手\(F\)の自然変換が、自然同型である時、即ち、
\begin{eqnarray}
\mathcal{C}(A,-) \cong F
\end{eqnarray}
ならば、\(F\)を表現可能関手という。

それでは、右随伴関手が表現可能関手であることを示そう。随伴の定義は次のようになっていた。

\(\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{D}\)は集合の圏でもあるので、これを\(\mathbf{Set}\)で、\(Y\)を単集合(singleton setに置き換えると下図を得る。
f:id:bitterharvest:20190527145944p:plain
従って、
\begin{eqnarray}
\mathcal{C} (L( ),X) \cong \mathcal{D} ( ( ),R(X))
\end{eqnarray}
を得る。右側の\(\mathcal{D} ( ( ),R(X))\)は、単集合を\(R(X)\)に写すものである。関数の数は、その集合の要素の数と同じになる。従って、各\(x \in X\)に対して、一つの関数を与えるので、\(R\)は表現可能関手となる。即ち、
\begin{eqnarray}
\mathcal{C} (L( ),-) \cong R
\end{eqnarray}
である。

2)Haskellで表現する

それではすべての材料がそろったので、Haskellで表すことにしよう。ここでは、最初に定義したものを実装することとしよう。定義は次のようになっていた。
\(\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}

そこで、\(L,R\)を\(f,u\)とし、\(ϵ,η\)を\(counit,unit\)とすると、次のようになる。

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}

class (Functor f, Representable u) => Adjunction f u where
  unit :: a -> u (f a)
  counit :: f (u a) -> a

class Representable f where
  type Rep f :: *
  tabulate :: (Rep f -> x) -> f x
  index :: f x -> Rep f -> x

\(\fbox {随伴の定義 2:}\)
また、定義2に従うと、次のようになる。

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}

class (Functor f, Representable u) => Adjunction f u where
  leftAdjunct :: (f a -> b) -> a - u b
  rightAdjunct :: (a -> u b) -> f a - b

class Representable f where
  type Rep f :: *
  tabulate :: (Rep f -> x) -> f x
  index :: f x -> Rep f -> x

定義1と定義2のいずれかが満たされればよいが、両方を一緒に含めても構わないので、この場合には次のようになる。

{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}

class (Functor f, Representable u) => Adjunction f u where
  unit :: a -> u (f a)
  counit :: f (u a) -> a
  leftAdjunct :: (f a -> b) -> a - u b
  rightAdjunct :: (a -> u b) -> f a - b

class Representable f where
  type Rep f :: *
  tabulate :: (Rep f -> x) -> f x
  index :: f x -> Rep f -> x

なお、三角恒等式は次の条件となる。

  rightAdjunct unit = id
  leftAdjunct counit = id

随伴関手 - 随伴の別定義

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時ごろに終了した。武家同士の権力闘争が激しかった時代の寺院であるが、現在は、どの寺も谷戸の中で鎮魂のための静寂を保っている。