bitterharvest’s diary

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

圏論での積と余積―代数的データ型

5.6 代数的データ型

引き続き、Bartosz Milewskiの動画を元に、話を進める。

1) 乗算(Multiply)

デカルト積の圏について、前々回の記事で説明したが、積と名前がついているので、四則演算での乗算とかかわりがありそうである。
乗算\(\times\)は、交換律(Commutative Property)、結合律(Associative Property)、単位元(Identity Element)の存在、ゼロの存在(Property of Zero)という性質を持つ。

デカルト積の圏にもこれらの性質を持たすことができれば、このような性質を持った圏と乗算の圏は同じ構造の圏になりそうだ。そこで、これらの性質を持たせるように工夫してみよう。
デカルト積の圏で\((a,b)\)と表されるものは、乗算では\(a \times b \)と表されるものとする。
次は交換律である。値の順序を入れ替えても結果は同じという性質なので、デカルト積の圏の方には、\(mswap\)という射を用意する。即ち、
\begin{eqnarray}
mswap \ p = (snd \ p, fst \ p)
\end{eqnarray}

次は結合律である。計算の順番によらないという性質なので、デカルト積の圏の方には、\(massoc,massoc\_inv\)という射を用意する。即ち、
\begin{eqnarray}
massoc \ ( (x,y),z) = (x, (y,z) ) \\
massoc\_inv \ ( x,(y,z) ) = ( (x, y ),z )
\end{eqnarray}

また、デカルト積の圏では1は()に対応させることとする。従って、単位元に対する演算\(a \times 1 = a\)と\(a =a \times 1\)は、\(munit, munit\_inv\)で表すと次のようになる。
\begin{eqnarray}
munit \ (x,() )= x \\
munit\_inv \ x = (x,( ) )
\end{eqnarray}

さらに、0は\(Void\)に対応させることとする。演算\(a \times 0 = 0\)は、\(mzero\)で表すと次のようになる。
\begin{eqnarray}
mzero :: (a,Void ) \rightarrow Void
\end{eqnarray}
ただし、型コンストラクタ\(Void\)は次に示すように値コンストラクタを有しない。このため、関数は値コンストラクタを用いて定義されるので、シグネチャは定義できるが、その関数は定義できない(前後が逆になるが、型コンストラクタ、値コンストラクタについてはすぐ後で説明する)。

Prelude> import Data.Void
Prelude Data.Void> :i Void
data Void 	-- Defined in ‘Data.Void’

これまでの説明をまとめたのが、以下の表である。

規則積の圏(Haskell)乗算
解釈\((a,b)\)\(a \times b \)
交換律\(mswap :: (a, b) \rightarrow (b, a) \\ mswap \ p = (snd \ p, fst \ p)\)\(a \times b = b \times a \)
結合律\(massoc :: ( (a,b),c) \rightarrow (a, (b,c) ) \\ massoc \ ( (x,y),z) = (x, (y,z) ) \)\((a \times b) \times c = a \times (b \times c) \)
\(massoc\_inv :: ( a,(b,c) ) \rightarrow ( (a, b),c ) \\ massoc\_inv \ ( x,(y,z) ) = ( (x, y ),z ) \)\(a \times (b \times c) = (a \times b) \times c \)
単位元\(munit :: (a,() ) \rightarrow a \\ munit \ (x,() )= x\)\(a \times 1 = a \)
\(munit\_inv :: a \rightarrow (a,() ) \\ munit\_inv \ x = (x,( ) )\)\(a = a \times 1 \)
ゼロ\(mzero :: (a,Void ) \rightarrow Void \)\(a \times 0 = 0 \)

これをHaskellのプログラムとして実装してみよう。

import Data.Void

mswap :: (a,b) -> (b,a)
mswap p = (snd p, fst p)

massoc :: ((a,b),c) -> (a,(b,c))
massoc ((x,y),z) = (x,(y,z))

munit :: (a,()) -> a
munit (x,()) = x

munit_inv :: a -> (a,())
munit_inv x = (x,())

--mzero :: (a, Void) -> Void

少し、利用してみよう。

Prelude> :load "product.hs"
[1 of 1] Compiling Main             ( product.hs, interpreted )
Ok, modules loaded: Main.
*Main> mswap (3,4)
(4,3)
*Main> massoc ((3,4),5)
(3,(4,5))
*Main> massoc_inv (6,(7,8))
((6,7),8)
*Main> munit (4,())
4
*Main> munit_inv 5
(5,())

2) 加算(Sum)

次は余積の圏だ。余積は和と書かれることもあるので、加算と関係があるはずだ。
余積の圏は\(Either \ a \ b \)と記述していたが、これを\(a+b\)と思うことにしよう。\(+\)の左側には\(a\)があって、右側には\(b\)があると思うことにする。このようにすると、
加算が有する、交換律、結合律、単位元の存在などの性質は乗算の時と同じように、余積の圏に持たせることができる。

交換律は射\(sswap\)で表すことにすると次のようになる。\(mswap\)とは異なり単純な関数では済まない。左側\(Left\)の値が来た場合と右側\(Right\)の値が来た場合に応じて、計算の仕方を変える必要がある。
\begin{eqnarray}
sswap \ (Left \ x) = Right \ x \\
sswap \ (Right \ x) = left \ x
\end{eqnarray}

次は交換律である。交換律では3個の値を使うことになるので、対(ペア)のデータ型だけでは結果を表すことができない。そこで、新しいデータ型を用意する。

data Tripple a c b= Left' a | Middle' c | Right' b deriving (Eq, Show, Read)

これを用いると結合律の射\(asspc, assoc\_inv \)は次のように定義できる。
\begin{eqnarray}
sassoc (Left \ x) = Left' \ x \\
sassoc (Right \ (Left \ x) ) = Middle' \ x \\
sassoc (Right \ (Right \ x) ) = Right' \ x \\
sassoc\_inv (Left \ (Left \ x) ) = Left' \ x \\
sassoc\_inv (Left \ (Right \ x) ) = Middle' \ x \\
sassoc\_inv (Right \ x) = Right' \ x
\end{eqnarray}

加算の時の単位元は0である。余積の圏でも0を\(Void\)で表すことにする。単位元に関連する演算\(sunit,sunit\_inv\)は、シグネチャだけになり、次のようになる。
\begin{eqnarray}
sunit :: Either \ a \ Void \rightarrow a \\
sunit\_inv :: a \rightarrow Either \ a \ Void
\end{eqnarray}

\(Either \ a \ Void\)の解釈だが、左側からは\(a\)という値が取り出せる。しかし、右側からは何も出てこない。従って、二つを足し合わせると、\(a\)になるというものだ。

これらを表にまとめると次のようになる。

規則余積の圏(Haskell)乗算
解釈\(Either \ a \ b\)\(a + b \)
交換律\(sswap :: Either \ a \ b \rightarrow Either \ b \ a \\ sswap \ (Left \ x) = Right \ x \\ sswap \ (Right \ x) = left \ x \)\(a + b = b + a \)
結合律\(sassoc :: Either \ a \ (Either \ c \ b) \rightarrow Tripple \ a \ c \ b \\
sassoc (Left \ x) = Left' \ x \\
sassoc (Right \ (Left \ x) ) = Middle' \ x \\
sassoc (Right \ (Right \ x) ) = Right' \ x\)
\((a + c) + b = a + (c + b) \)
\(sassoc\_inv :: Either \ (Either \ a \ c) \ b \rightarrow Tripple \ a \ c \ b \\
sassoc\_inv (Left \ (Left \ x) ) = Left' \ x \\
sassoc\_inv (Left \ (Right \ x) ) = Middle' \ x \\
sassoc\_inv (Right \ x) = Right' \ x \)
\(a + (c + b) = (a + c) + b \)
単位元\(sunit :: Either \ a \ Void \rightarrow a\)\(a + 0 = a \)
\(sunit\_inv :: a \rightarrow Either \ a \ Void \)\(a = a + 0 \)

Haskellのプログラムで記述してみよう。次のようになる。

import Data.Void

data Tripple a c b= Left' a | Middle' c | Right' b deriving (Eq, Show, Read)
 
sswap :: Either a b -> Either b a
sswap (Left x) = Right x
sswap (Right x) = Left x

sassoc :: Either a (Either c b) -> Tripple a c b
sassoc (Left x) = Left' x
sassoc (Right (Left x)) = Middle' x
sassoc (Right (Right x)) = Right' x 

sassoc_inv :: Either (Either a c) b -> Tripple a c b
sassoc_inv (Left (Left x)) = Left' x
sassoc_inv (Left (Right x)) = Middle' x 
sassoc_inv (Right x) = Right' x

--sunit :: Either a Void -> a
--sunit_inv :: a -> Either a Void

実行してみよう。

Prelude> :load "coproduct.hs"
[1 of 1] Compiling Main             ( coproduct.hs, interpreted )
Ok, modules loaded: Main.
*Main> let a = Left 3
*Main> let b = Right 4
*Main> sswap a
Right 3
*Main> sswap b
Left 4
*Main> let c = Right (Left 5)
*Main> let d = Right (Right 6)
*Main> sassoc a
Left' 3
*Main> sassoc c
Middle' 5
*Main> sassoc d
Right' 6
*Main> let e = Left (Left 7)
*Main> let f = Left (Right 8)
*Main> sassoc_inv e
Left' 7
*Main> sassoc_inv f
Middle' 8
*Main> sassoc_inv b
Right' 4

3) 分配律(Distributive Property)

加算と乗算が出てきたので、分配律についても確認しよう。これは\(a \times ( b + c) = a \times b + a \times c \)である。従って、()と\(Either\)を用いて次のように表すことができる。

規則積・余積の圏(Haskell)乗算と加算
分配律\(distr :: (a, Either \ b \ c) \rightarrow Either \ (a, b) \ (a, c) \\ distr \ (x, Left \ y) = Left \ (x, y) \\ distr \ (x, Right \ y) = Right \ (x, y) \)\(a \times ( b + c) = a \times b + a \times c \)

プログラムで示すと以下のようになる。

distr :: (a, Either b c) -> Either (a, b) (a, c)
distr (x, Left y) = Left (x, y)
distr (x, Right y) = Right (x, y)

実行してみよう

*Main> let a = 3
*Main> let b = Left 4
*Main> let c = Right 5
*Main> distr (a, b)
Left (3,4)
*Main> distr (a, c)
Right (3,5)

4) Haskellのデータ型の定義

Haskellでは、プログラマが新しいデータ型を作成することを許している。\(data\)というキーワードの後に型コンストラクタを書く。その後、\(=\)を書き、それに続けて値コンストラクタを記述する。例えば、\(x,y\)座標の点を表したいときは、

Prelude> data Point = P Float Float

とする。\(a=(3.1, 2.5)\)および\(b=(5.6, -2.4)\)を作りたいのであれば次のようにする。

Prelude> let a = P 3.1 2.5
Prelude> let b = P 5.6 (-2.4)
Prelude> :t a
a :: Point
Prelude> :t b
b :: Point

あるいはレコードを用いて次のようにも定義できる。

Prelude> data Point = P {x::Float, y::Float} deriving (Eq, Show, Read)
Prelude> let a = P {x=3.1, y=2.5}
Prelude> let b = P {x=5.6, y=(-2.4)}
Prelude> :t a
a :: Point
Prelude> :t b
b :: Point

5) 代数方程式からのデータ型の定義

さて、今回のメインディッシュである代数的データ型の話に移ろう。

\(l(a) = 1 + a \times l(a) \)という代数方程式を考えよう。

これは、\(l(a) = \frac{1}{1-a} \)となるので、
\(l(a) = \sum_{i=0}^{\infty} a^i = 1 + a + a^2 + a^3 + a^4...\)
を得る(これは良く知られた公式であるが、実際に求めたければ、割り算をするとよい)。

これは、加算と乗算の形で表されているが、まず、\(a\)のべき乗のところを、1が()になることに注意して、タプルに代えてみよう。
\(l(a) = () + a + (a,a) + (a,a,a) + (a,a,a,a) + ...\)
次に、+の部分を\(Either\)で変えてみよう。
\(l(a) = Either \ () \ (Either \ a \ (Either \ (a,a) \ (Either \ (a,a,a) \ (Either \ (a,a,a,a)....\)
なんと、上の式は全てのタプルを表している(但し、後で説明するが、構成要素のデータ型は同じである)。

ところで、上の式で用いられている\(a\)について若干説明する。ここでの\(a\)は型変数と呼ばれるものである。データ型には、\(Int, Float, Char, Tuple\)など、あるいは自身で作ったものもあるが、型変数は、データ型を値とする変数である。従って、\(a=Int\)であれば、\((a,a,a)\)は\((Int,Int,Int)\)となり、整数を三つ組みとするタプルである。また、\(a=String\)であれば、文字列を三つ組みとするタプルである。

さて、\(l(a) = 1 + a \times l(a) \)は型変数\(a\)で作られるデータ型の構造を示す代数方程式と思うことにしよう。左辺の方はデータ型を示し、右辺の方はデータ型の作り方を示しているものとする。
\(l(a)\)は型変数を\(a\)を有するデータ型Listとしよう。即ち、Listは型コンストラクタである。

data List a

右辺の\(+\)は\(Either\)の英語での意味、即ちどちらかであるということにする。そして、記号は、\(|\)を用いる。また、1と\(a \times l(a)\)はタプルで取りあえず表してみよう。即ち、()と\( (a, l(a) )\)とにする。さて、タプルを新しいコンストラクタで置き換えることにする。()は値コンストラクタ\( N il \)で、また、\( (a, l(a) )\)は値コンストラクタ\(Cons\)で置き換える。このようにすると、後者の方は \(Cons \ a \ List(a) \)で表すことができる。即ち、代数方程式\(l(a) = 1 + a \times l(a) \)は、次のデータ型で置き換えることができる。

data List a = Nil | Cons a (List a)

上記のデータ型は、代数方程式から導き出されている。そこで、このようなデータ型を、特に、代数的データ型と呼ぶ。上記のデータ型は、また、良く知られているリストの定義である。下図に示すように、リストの定義が代数方程式から導き出される。何とも面白い変換だと思う。
f:id:bitterharvest:20170201092537p:plain

圏論では、同じ構造の圏であれば、一方の圏の性質を他方の圏を用いて調べることができる。この役割をしてくれるのが関手(Functor)である。これについては次回で述べる。

圏論での積と余積―余積

5.5 余積

オーストラリアオープンテニス2017は、昨日、男子決勝戦が行われた。テニス界のレジェンドといわれるフェデラーナダルが決勝で争うこととなり、これ以上、楽しませてくれる組合せはなかった。
グランドスラムの優勝回数で、二人は歴代の1位と2位である。テニス史上、最も強いプレーヤーの対決だ。二人とも準決勝では長い試合を戦ったので、決勝戦に疲れが残っていないのだろうかと心配していたが、そのような心配は全く不要で、信じられないようなスーパープレーを余すところなく見せてくれ、感動したの一言に尽きる試合であった。

勝敗を決めることを雌雄を決するという。「雌雄を決する」という用語は『史記項羽本記』のなかで、「願與漢王挑戦決雌雄(願わくは漢王との戦いを挑み、雌雄を決せん)」と出てくる。一般に、動物は雄が強く、雌が弱いものとされていて、いずれが雄でいずれが雌であるかを決めようということから来た言葉だそうだ。

フェデラーナダルジョコビッチとマレー、そして願わくば、錦織とラオニッチが、雌雄を決する最高の場面をこれからもたくさん提供してくれるといいなあと思う。

これから話をする余積は、概念的には雌雄に相当するものだ。

積の圏(Product Category)は次の条件を満たすものであった。
1) 積と呼ばれる対象が一つ存在する。これを\(C\)とする。
2) \(C\)には投影(Projection)と呼ばれる二つの射\(p,q\)が存在する。これらは\(C\)をそれぞれ\(A,B\)に投射する。
3) \(C\)以外の任意の対象\(C'\)は\(A,B\)へ投影する射\(p',q'\)を持つ。そして、ただ一つの射\(m\)が存在し、これは\(p'=p \circ m,q'= q \circ m\)を満たす。
\(C\)が上記を満たす時、これは\(A,B\)の余積と呼ばれ\(C=A \times B\)と記される。

積の圏での射の方向を逆にすると、双対関係にある、余積の圏(Coproduct Category)を得る。図で示すと以下のようになる。
f:id:bitterharvest:20170130065511p:plain

余積の圏を定義すると次のようになる。
1) 余積と呼ばれる対象が一つ存在する。これを\(C\)とする。
2) \(C\)には注入(Injection)と呼ばれる二つの射\(i,j\)が存在する。これらはそれぞれ\(A,B\)から\(C\)に注入する。
3) \(C\)以外の任意の対象\(C'\)は\(A,B\)から注入する射\(i',j'\)を持つ。そして、ただ一つの射\(m\)が存在し、これは\(i'=m \circ i,j'= m \circ j\)を満たす。
\(C\)が上記を満たす時、これは\(A,B\)の積と呼ばれ\(C=A + B\)と記される(\(+\)の代わりに\(\oplus\)や\(\amalg\)が使われることもある)。

余積の圏とはどのようなものであろうか。二つの対象を注入して一つの対象を作るというのがその趣旨である。レトリックな世界で少し楽しんでみよう。

先ほどまで、雌雄の話をしていたので、ここでは、男女のカップルを考えてみよう。対象\(A\)を男だけを集めた対象にする。対象\(B\)を女だけを集めた対象とする。そして、対象\(C\)はカップルを集めた対象とする(ここは進行中のカップルだけでなく、可能なカップルをすべて含む。余談だが、何となく、\(C=A \times B\)ではなく、自由度の高そうな、\(C=A + B\)というような気がしないだろうか)。この時、\(i,j\)はカップルを構成するための関数として定義できる。それでは、対象\(C'\)は何だろう。カップルが住む家の集まりを対象\(C'\)にしてはどうだろうか(但し、それぞれのカップルは一軒だけ家を持つこととする。二軒以上持つと関数を定義するのが厄介になる)。このようにすると、射\(m\)は一意に決めることができ、また、\(i'=m \circ i\)と\(j'= m \circ j\)を満足する。

積の圏はHaskellでは対、あるいは、タプルであった。余積の圏はHaskellではなんであろうか。Eitherである。これは次のように定義されている。

Prelude> :i Either
data Either a b = Left a | Right b 	-- Defined in ‘Data.Either’

ここで、\(i\)に相当するものはLeftであり、\(j\)に相当するものはRightである。少し利用してみよう。友人たちの名前を利用させてもらうと次のようになる。

Prelude> let a1 = Left "Peter"
Prelude> let a2 = Left "Mike"
Prelude> let b1 = Right "Leonie"
Prelude> let b2 = Right "Jenny"
Prelude> :t a1
a1 :: Either [Char] b
Prelude> :t b1
b1 :: Either a [Char]

それでは、家を求める関数\(m\)を定義してみよう。最初の二組は法律上のカップル。最後は、実際にそうなると大変なことになる。英語ではaffairといわれるものだ。

Prelude> let m (Left a) (Right b) = "Home of " ++ a ++ " and " ++ b ++ "."
Prelude> m a1 b1
"Home of Peter and Leonie."
Prelude> m a2 b2
"Home of Mike and Jenny."
Prelude> m a1 b2
"Home of Peter and Jenny."

積は\(\times\)で余積は\(+\)で表した。これらの記号は、乗算と加算で用いられるものである。このような記号が使われているからには、関係があるはずである。これについて次の記事で述べる。

圏論での積と余積―デカルト積

5.4 積の圏

1)デカルト

デカルト積(Cartesian Product)は、直積集合、直積、積集合などと呼ばれたりする。これは集合の集まりに対して、それぞれの集合からひとつずつ元を取り出して組にしたものである。
f:id:bitterharvest:20170128064601p:plain
例えば、二つの集合\(A,B\)に対し、それらのデカルト積\( A \times B \)とは、それらの任意の元\(a \in A, b \in B\)の順序対\((a,b)\)の全てにより構成される集合をいう。

一般には、\(n\)個の集合\(A_i, i=1..n\)に対して定義され、任意の元\(a_i \in A_i, i=1..n\)の順序対\((a_1,a_2,..,a_n)\)のすべてにより構成される集合をいうが、ここでは、話を簡単にするため、二つの集合ということにする。

デカルト積をよく見かける例は座標点である。\(x\)軸上の値\(x_1\)と\(y\)軸上の値\(y_1\)によって、座標点は\((x_1,y_1)\)と表される。
f:id:bitterharvest:20170126135509p:plain

トランプもデカルト積となる。余談だがトランプは和製英語。とかく話題の尽きない大統領もトランプだ。そのスペルはTrumpである。普通名詞のTrumpは切り札、奥の手、素晴らしい人という意味だ。そうであってくれればいいと思う。さて、話を元に戻そう。横軸をランクに、縦軸をスーツにすると、それぞれの交点にカードが一枚対応する。
f:id:bitterharvest:20170126143233j:plain
例えば、ランクが4で、スーツがハートのところにおかれたカードは(4,💛)である。

思わず例にあげそうになったのが、商品ごとに出ているスーパーの価格表。(サンマ、189円)、(さば、250円)などと表示されている。ここまで例にあげた組と同じ構造を取っている。しかし、価格の方の元を考えるのが難しい。整数としたとしても、任意の商品と任意の価格の組は何を表すのだろうか。現実問題として、全ての組が存在することは考えにくい。

僕が通っていた中学では、期末試験が終了すると親との面談に備えて、クラス担任の先生が成績表を用意した。クラス全員の成績が記された表を見せられることは現在ではないと思うが、その当時の親たちはどのような思いで面談に臨んでいたのだろう。成績表は、縦軸を総合成績での順位に、横軸を科目名(この当時は9科目あった)にし、各こま(セル)には点数が記入されていた。
\begin{array}{|c|c|c|c|c|c|c|}
\hline
& 国語 & 数学 & ... & 体育 & 英語 & 合計点 \\
\hline
1 & 98 & 100 & ... & 100 & 95 & 852 \\
\hline
2 & 95 & 85 & ... & 95 & 100 & 833 \\
\hline
3 & 90 & 90 & ... & 98 & 87 & 802 \\
\hline
.. & ... & ... & ... & ... & ... & ... \\
\hline
\end{array}

当時は、コンピュータはおろか電卓もなかったのでソロバンで計算し、コピー機も発明されていなかったのでガリ版だった。先生は何日も夜なべして作成したのではと思う。当時は当たり前のように考えていたが、その時の先生は大変だったなあとつくづく思う。今さらながら感謝だ。ところで、ここでできた表はデカルト積だろうか。組になっていないので、残念ながら、そうではない。それでは、各セルのところに、情報としては冗長なのだが、(国語,1,98),(数学,2,85)などとしたらどうであろうか。何となく、デカルト積のようには見えないだろうか。冗長な情報が付加されたデカルト積のようには見えないだろうか。

それでは、デカルト積を圏論ではどのように表しているかを紹介しよう。デカルト積は下図のようにあらわすことができる。この図で、\(A\)と\(B\)は対象である。また、\(C\)は、\(A\)と\(B\)から構成されたデカルト積である。\(p\)と\(q\)は射である。\(p\)はデカルト積\(C\)の構成要素である\(A\)を示す。\(q\)はもう一方の構成要素である\(B\)を示す。
f:id:bitterharvest:20170126163549p:plain

トランプの場合は、\(A\)はランクであり、\(B\)はスーツであり、\(C\)はカードである。一枚のカードが与えられたとき、それに\(p\)を作用させるとランクが得られ、\(q\)だとスーツが得られる。

Haskellでは、デカルト積は対を用いて表すことができる。例えば、一方の対象を整数\(Int\)、他方の対象をブール値\(Bool\)としたとき、デカルト積は\((Int,Bool)\)となる。そして、\(p\)は対の最初の要素を出力する\(fst\)であり、\(q\)は2番目の要素を出力する\(snd\)である。
簡単な実行例を見てみよう。aでデカルト積の値を一つ定め、これにfst,sndを作用させるだけのものだ。

Prelude> let a = (3::Int,True)
Prelude> :t a
a :: (Int, Bool)
Prelude> fst a
3
Prelude> snd a
True

デカルト積の基本形だけだと面白みがまったくと言っていいほどない。昨日、「総合診療医ドクターGスペシャル」という番組を見ていたら、肺がん治療法についてディスカッションしていた。がんはその周りを大きく切除した方が転移を起こす危険が減るそうだ。しかし、肺がんの場合、あまり大きく切ると呼吸困難に陥るというリスクが伴う。そこで、最小限の範囲で切除することが求められるそうである。

実は、デカルト積にもこれと同じような性質が要求される。先に挙げた図において、デカルト積はこれ以上余分な情報が含まれていないというところまで、切り刻んだものである。

従って、余分なものを含んだものから最小のデカルト積を得るための工程を示したのが、下図である。\(C'\)は\(A\)と\(B\)から構成されたデカルト積に余分な情報を組み込んだ対象である。\(m\)が余分な情報を除くための射である。\(p'\)は\(C'\)から\(A\)への射で、\(q'\)は\(B\)への射である。また、\(p'=p \circ m\)であり\(q'=q \circ m\)である。
f:id:bitterharvest:20170126171819p:plain

それでは、先ほどの成績表を考えてみよう。対象は科目名\(Subject\)、順位\(Rank\)、成績\(Mark\)とし、デカルト積を対象\((Subject,Rank)\)とし、余分な情報を含んだ対象を\((Subject,Rank,Mark)\)とする。\(p,q\)はそれぞれ\(fst,snd\)となり、\(p',q'\)もそれぞれ\(fst,snd\)となる。また、\(m\)は3番目の対象を除く射となる。すなわち、\(m:(Subject,Rank,Mark)\rightarrow(Subject,Rank)\)である。

これをHaskellで実装すると以下のようになる。

Prelude> data Subject = Kokugo | Sugaku | Rika | Shakai | Ongaku | Bijyutu | Kateika | Taiiku | Eigo deriving (Eq, Show, Read)
Prelude> type Rank = Int
Prelude> type Mark = Int
Prelude> let p = fst
Prelude> let q = snd
Prelude> let m (s, m, _) = (s,m)
Prelude> let p' = p . m
Prelude> let q' = q . m
Prelude> let a = (Kokugo :: Subject, 1 :: Rank, 100 :: Mark)
Prelude> p' a
Kokugo
Prelude> q' a
1
Prelude> m a
(Kokugo,1)

2)最大公約数

数学には積と呼ばれるものがたくさんある。これらの積でも、デカルト積で論じた概念と同じ性質は存在しないのだろうか。もし、このようなものが存在するとすれば、これは積と呼ばれるものすべてに通じる普遍性となる。

デカルト積で説明した性質は次の図である。
f:id:bitterharvest:20170126171819p:plain
この図で、\(p'=p \circ m\)であり\(q'=q \circ m\)である。これから、公約数もこの図で表されることを示すが、この図はより一般的な図なので、積を表す圏と呼ぶことにする。

今二つの整数\(a,b\)を考えよう。これら整数は約数をもつ。
例えば、\(a=66,b=72\)の時、\(a\)の約数は2,3,6,11,22,33であり、\(b\)の約数は2,3,4,6,8,12,24,36である。
これら二つの整数に共通な約数は2,3,6である。
これを\(c=6,c'=3,c"=2,...\)として上の図に記入してみよう。
f:id:bitterharvest:20170128072505p:plain

さて上の図のピンクと赤で示した対象の間にはどのような関係があるのだろう。成績表を説明しているときは、ピンクは冗長な情報を有しているとし、冗長な情報をそぎ落としたのが、赤であると説明した。何となくわかったようにさせてくれるレトリックな表現で、数学的な厳密性を欠いている。成績表と公約数の両方のケースを、さらには、積と呼ばれる一般的な圏に対して、共通に説明できる用語で表現することを考えよう。

まず成績表の方から考えてみよう。ピンクの方は(a,b,c)という3組で表される。赤の方は(a,b)という2組で表されている。それぞれが持つ情報の精度という視点から比較すると、ピンクの方がより詳しいといえる。情報が表している空間を考えると、ピンクが表している領域は、赤のそれに含まれることが分かる。即ち、\(pink \subset red\)となる。

次に公約数の方を考えてみよう。公約数は、素因数に分解することができる。例えば、ピンクの\(C'=3\)は素因数分解すると(3)である。他方、赤の\(C'=6\)は素因数分解すると(2,3)である。これを素因数の集合と考えると、いずれのピンクに対しても\(pink \subset red\)となる。

このことから、赤はピンクの領域を可能な限り拡げたものと考えることができる。従って、公約数の場合、赤での公約数は最大公約数となる。

上の図では一つの最大公約数について示したが、これが圏であるといわれても、困る人が多いことと思う。それで、下図のように一般化しよう。
f:id:bitterharvest:20170130085600p:plain

上の図で、\(A\)(緑)\(B\)(黄)はともに1で始まる自然数\(Nat\)で構成される対象である。\(C\)(赤)は、\(A,B\)の最大公約数で構成される対象である。また、\(C'\)(ピンク)は、\(A,B\)の約数で構成される対象である(図では約数を求める関数は\(CD\)となっている)。射\(p\)は乗算する関数で、乗算する数は\(A\)の値を\(C\)の値で割ったものである。同様に、射\(q\)も乗算する関数で、乗算する数は\(B\)の値を\(C\)の値で割ったものである。射\(m\)も乗算する関数で、乗算する数は\(C\)の値を\(C'\)の値で割ったものである。また、\(p'=p \circ m,q'= q \circ m\)である。このことから。上の図はデカルト積の圏と同じ構造を有していることが分かる。

ウィキペディア積(圏論)を調べると例が出てくる。その最後に、「半順序集合は順序関係を射として用いることで圏として扱うことができる。この場合積と余積は最大下界と最小上界(交わりと結び)に対応する」というのがある。最大公約数はここで述べられている最大下界に相当するものである。

3)論理積

論理積も同じように積の圏として考えることができる。ここでは、図のみを示すので、これをもとに考えて欲しい。
f:id:bitterharvest:20170203221133p:plain

ここの部分はウィキペディア積(圏論)の例で、「位相空間の圏における積は、各因子の台集合のデカルト積を台として積位相を入れた空間である。積位相はすべての射影が連続であるような最も粗い位相である」に相当する部分である。

4)積の圏

最後に積の圏(Product Category)をまとめておこう。再び次の図を使う。
f:id:bitterharvest:20170126171819p:plain
積の圏とは、上の図が互換図となるような対象\(C\)、射\(p,q\)、対象\(A,B\)が存在し、さらに、一意的な関数\(m\)が存在して、その他の対象\(C'\)に対して、\(m: C' \rightarrow C\)となる。
即ち次のようになる。
1) 積と呼ばれる対象が一つ存在する。これを\(C\)とする。
2) \(C\)には投影(Projection)と呼ばれる二つの射\(p,q\)が存在する。これらは\(C\)をそれぞれ\(A,B\)に投射する。
3) \(C\)以外の任意の対象\(C'\)は\(A,B\)へ投影する射\(p',q'\)を持つ。そして、ただ一つの射\(m\)が存在し、これは\(p'=p \circ m,q'= q \circ m\)を満たす。

\(C\)が上記を満たす時、これは\(A,B\)の積と呼ばれ\(C=A \times B\)と記される。

圏論での積と余積―双対という概念

5.3 双対という概念

普遍性(Universal Property)は圏論の中では重要な概念である。前回は、始対象と終対象について論じた。対象という言葉は、何かの集まりを表したものであり、抽象的な概念である。対象は、集合であるかもしれないし、グラフのノードの集まりであるかもしれないし、もしかすると、射(関数)の集まりであるかもしれない。対象は物の集まりを一般化したものである。

始対象と終対象はそのような対象の中で特別な性質を持つものである。始対象は入ってくる(Incoming)射がない対象で、終対象は出ていく(Outgoing)射がない対象である(但し、始対象から任意の対象への射、あるいは、任意の対象から終対象への射は、必ず存在して、しかも、ただ一つでなければならない)。冬の弱い日を浴びて作業していると太陽のありがたさをしみじみと感じる。太陽は全てに恵みを与えてくれる始対象ではないかと幻想を抱かせる。それに対して、なんでも吸い込んでしまうブラックホールは終対象ではないかと思えてならない。

積の話をする前にもう少し、始対象と終対象の話をしておこう。それは双対(Duality)についてである。双対は、これからの説明の中でもしばしば出てくるように、数学の重要な概念である。丁度、表と裏の関係にある。表の世界を裏返したものが裏の世界であり、裏の世界を裏返ししたのが表の世界である。始対象と終対象もこれと同じ関係である。始対象を裏返しにすると終対象、終対象を裏返しにすると始対象となる。この時の裏返しは、射の方向を逆にすることである。

始対象と終対象とではどちらのほうが分かりやすいだろうか。始対象という人は少ないかと思うので、終対象を裏返しにして始対象を作ることにしよう。

前回の記事で、次のように終対象の例を示した。
f:id:bitterharvest:20161231211106p:plain

例に示した圏では、対象は、整数の集まり\(B\)と文字の集まり\(C\)とシングルトン\(A\)、の3個であった。また、射は、整数の集まりからシングルトンへの射\(unit'\)と文字の集まりからシングルトンへの射\(unit"\)、および、各対象での恒等射であった(但し図には整数の集まりと文字の集まりに対する恒等射は省いてある)。

上の図で対象に含まれる要素を描かないようにすると、より一般的に終対象を示すことができる(\(unit',unit"\)も\(f,g\)で置き換えた)。下図のように対象に含まれる要素を描かないだけで、随分と見え方が変わるだろう。図には、対象と射しか含まれないので、圏の表現としては過不足なしというところだろう(以後、このように表現することが多くなるので、具体的な記述があった方がよいと思う人は、その都度、要素を入れて考えて欲しい)。
f:id:bitterharvest:20170126091126p:plain

さて、上の図で、射の矢印の方向を逆にしてみよう(恒等射は矢印の方向を変えても変わらない)。射の名前は、\(f,g\)をそれぞれ\(f^{op},g^{op}\)とする。以下のような図を得る。
f:id:bitterharvest:20170126092105p:plain
対象\(A\)に入ってくる射がないので、始対象であることが分かる。このように、始対象と終対象は射の方向を入れ替えることにより一方から他方へと変わる。

ついでに双対の圏も例によって示そう。
今、図のような圏\(\mathcal{C}\)が与えられたとする。
f:id:bitterharvest:20170126094920p:plain

全ての射を逆向きにして、双対となる圏\(\mathcal{C}^{op}\)を下図のようにえることができる。
f:id:bitterharvest:20170126095432p:plain

次回は、いよいよ、積の話をしよう。

豚肉のシードル煮込み(北フランスノルマンディー地方)

横浜の港北ニュータウンにあるノースポートを訪れたとき、ブルーミング・ブルーミーというスーパーマーケットでシードルを発見した。

シードルは、フランスのノルマンディー地方のお酒で、ブドウの代わりにリンゴを発酵して作られる。シードルを知ったのは、2年前の記事で紹介したが、北フランスを訪問したときだ。モン・サン・ミッシェル近くのレストランで飲んだのが最初で最後である。

シードルのスペルはCidreである。英語読みだとサイダーになる。日本でサイダーというと生鮮飲料水を意味するが、本来は、リンゴ酒である。サイダーという名をさけ、シードルという看板の下に小さなコーナーを設けて幾種類かを販売していた。

シードルを利用して煮込み料理でも作ろうと思って、キリン製のハードシードル(290ml)を220円で1本だけ購入した。料理用だけでなく、飲食用にもう1本買えばよかったなあと後で思ったがこれは後の祭りである。シードルには、発泡性のものとそうでないものがあるが、ハードシードルは発泡性である。

シードルの煮込み料理が、堤人美著『材料入れてのんびり煮るだけレシピ』で紹介されていたので、これを参考に試みた。

例によって、今日の料理の仲間たちを紹介しよう。
f:id:bitterharvest:20170123093924j:plain

料理に先だって、豚肉は、ヒレかたまり(250g)を1.5cmの間隔で切り、塩、胡椒をして、白ワイン(50cc)をかけ、味付けをしておく(白ワインは塩と胡椒の後ろにあるが、隠れている)。
f:id:bitterharvest:20170123094606j:plain

夕飯の時間が近づいたら下ごしらえである。玉ねぎ(1個)をみじん切りにし、マッシュルーム(小型のビニールケース入り1箱、今回は9個入っていた)を2等分する。
f:id:bitterharvest:20170123094227j:plain

豚肉に薄力粉をまぶす。ビニール袋に薄力粉を入れ、さらに豚肉を加え、ビニール袋を振り回すと豚肉の表面にキレイに薄力粉が付着する。
f:id:bitterharvest:20170123094954j:plain

中火にして、フライパンにバターを(小さじ1杯)を引き、豚肉のそれぞれの面を1分半ずつ焼く。
f:id:bitterharvest:20170123095108j:plain

煮込み用の鍋に玉ねぎ入れ、さらに、豚肉を味付けしたときの汁を加えて、中火で10分ほど蓋をして蒸し炒めする。
f:id:bitterharvest:20170123095322j:plain

煮込み用鍋に、表面を焼いた豚肉、半分に切ったマッシュルーム、シードル(290cc)、ローリエ(1枚)、マギーブイヨン(固形1個)を加える。
f:id:bitterharvest:20170123100647j:plain

蓋をして、中が温まるまで中火で、その後、弱火にして30分ほど煮込む。
f:id:bitterharvest:20170123100400j:plain

塩、胡椒を加えて味を調え、さらに弱火で10分ほど煮込む。

サラダ、スープとともに食卓に並べた。
f:id:bitterharvest:20170123100853j:plain

出来上がった豚肉のシードル煮込みは、シードル、たまねぎ、マッシュルームの味が肉にしみ込み、少し歯ごたえのある固さで、水分も程よくあっていい味であった。また、スープの方はリンゴの酸味なのだろう。酸っぱい感じがした。今のリンゴはとても甘いので昔のリンゴの名残がほとんどないが、かつてのリンゴは顔がゆがむほど酸っぱかった。この煮込みは、さすがにそこまでの酸っぱさはなかったが、口の中でほのかに感じられ、懐かしさがよみがえってきて、美味しかった。

我が家の定番になりだした「だし巻き卵」

正月気分もそろそろ終わり。昨日(7日)の朝は七草がゆを食べて、正月との折り合いをつけて、今年の活動を開始する。

この日は、川崎の等々力緑地にある市民ミュージアムに講演を聞きに行く。暮れにも参加したので、連続で「かながわの最初の現代人」の話を伺った。前回は、国立科学博物館海部陽介さんだった。テレビでも何度か紹介されているが、与那国島から西表島、そして、台湾から与那国島へ、3万年前の先祖たちの航海を再現するプロジェクトを推進されている方だ。
f:id:bitterharvest:20170108105010p:plain
この方を知る切っ掛けになったのは、彼の著書の『日本人はどこから来たのか?』である。遺跡に残っている人骨のDNAを利用して、いつ頃、どのような経路を辿って、日本に到着したかを解説した本である。
f:id:bitterharvest:20170108110237j:plain

技術の進歩によって化石からDNAを抽出する方法は、最近では随分と簡単になってきているようだが、初期の頃の涙ぐましい努力は、前にも記事で紹介したが、スヴァンテ・ペーボ著『ネアンデルタール人は私たちと交配した』(野中香方子訳)に書かれている。少し刺激的なタイトルだが、内容の方は真摯な研究姿勢が伝わり、好感の持てる本であった。これがきっかけになって、太古の昔の人類の移動に興味を持つようになったが、タイミングよく出版されたのが海部さんの著書であった。著者はどのような方なのかということを知りたくて前回お話を伺いに行った。

それを受けての今回の講演だが、お話をしてくれたのは東京大学教授の佐藤宏之さんで、題名は「神奈川の歴史の始まり:考古学から見た日本列島における現代人の出現」である。タイトルの方は、神奈川の歴史の始まりとなっていたが、日本についてであった。後期石器時代における人類の営みがどれだけ環境に影響されたかということを丁寧に説明され、なるほどと納得した(正月にジャレド・ダイアモンド著『銃・病原菌・鉄』を読み、文明の発達にどれだけ環境が大きく作用するかを理解した直後だったこともあり、分かりやすい内容であった)。
f:id:bitterharvest:20170108164134j:plain
氷河期と呼ばれる最終氷期最寒冷期(25,000-20,000年前)は、最も寒い時代であった。この時期は、後期石器時代の後半期の中に含まれる。日本の東半分はシベリアアムール川下流域の植生と、西半分は北海道東部と同じだった。このため、どんぐり・クリなどの有用な植物はなく、動物を中心とした狩猟生活だけが営まれた(植物を採取するという生活は成り立たなかった)。

最終氷期最寒冷期が始まるころにはマンモス(北海道・東北の一部)やナウマンゾウなどが、また、終わるころにはオオツノシカなどの大型動物が絶滅した。これら大型動物は、大量の食糧を求めて広範囲に移動する。このため、この当時は、人間もこれと一緒に広く移動した。しかし、最終氷期最寒冷期が終わると大型動物は皆無となり、狭い範囲を移動する中小動物だけになり、人間の移動範囲は縮まった。これが、後期旧石器時代の狩猟生活の大きな流れである。

話の中で、関心を持ったのが落とし穴猟である。旧石器時代は、動物を追っての狩猟生活である。最終氷期最寒冷期の植生を詳しく見ると、九州や関東の南部に、狭い範囲であるが、落葉広葉樹や常緑広葉樹の林がある。これらの地域では、どんぐり・クリなどの実を採取しての定着活動が行われただろうと想像される。この定着生活に伴って、何とも面白い生活の仕組みが生まれる。それが第二東名の工事現場(静岡県)での落とし穴の発見である。この時期の落とし穴は、世界にも類がないそうである。昨今の大型開発によって、大規模な掘り起しが行われ、沢山の遺跡が発見され、考古学は年ごとに進歩しているそうである。何とも古い学問だと思っていたのだが、最も活気のある時代を迎えているようだ。

例によって、前振りが長くなった。我が家の朝食として定着してきたのが、落とし穴ではなく、「だし巻き卵」である。これは子供のお弁当の定番の一つだろう。それぞれの家ごとに作り方が違う。このため、お昼の時間になると、思わず隣の人の弁当箱をのぞき込んで、羨ましく思ったり、安心したりする。

それでは、我が家の定番になりつつあるだし巻き卵を紹介し、皆さまに比べてもらうことにしよう。

例によって、役者に登場してもらおう。いつもとは異なり、少数精鋭だ。卵、長ネギ、白だし、砂糖、水だけだ。長ネギは色々な料理に使うので細切りにし、冷凍保存すると便利だ。
f:id:bitterharvest:20170108155646j:plain
卵(3個)は割ってお椀に入れる。また、白だし(小さじ2杯)、砂糖(小さじ1杯)、水(大さじ3杯)を別のお碗に入れよく混ぜる。
f:id:bitterharvest:20170108160320j:plain
卵は泡だて器を用いて白身の塊がなくなるまでよくかき混ぜる。
f:id:bitterharvest:20170108160409j:plain
かき混ぜた卵が入っているお椀に、白だしを薄めた液を加え、さらに、長ネギも加える。これで準備は完了である。
f:id:bitterharvest:20170108165851j:plain

焼くときは少し工夫しないといけない。卵はクルクルと巻いていくので、いっぺんには焼かず、少しずつ何回か繰り返す(3,4回になるが、これは進行の中で決めればよい)。
卵焼きフライパンに、卵を薄く引く。
f:id:bitterharvest:20170108161353j:plain
表面が焼きあがったか焼きあがらないか程度のところで卵を巻く。丸く巻いても、四角く巻いても構わないが、今回は四角くなるようにした。
f:id:bitterharvest:20170108161551j:plain
再び、卵を薄く引く。
f:id:bitterharvest:20170108161658j:plain
卵の様子を見て、前回と同じぐらいになったところでまた巻く。
f:id:bitterharvest:20170108161815j:plain
同じことをもう一回、あるいは、二回繰り返す。これは、卵の残り具合によって判断する。今回は、もう一回だけであった。巻いたときの写真は以下の様である。
f:id:bitterharvest:20170108162009j:plain
これを食器に移し、朝の食卓に加える。
f:id:bitterharvest:20170108162106j:plain
f:id:bitterharvest:20170108162129j:plain

ハンガリー料理のパプリカチキンを味わう

NHKBSプレミアムで、朝ドラの「べっぴんさん」を見た後、テレビをそのままにし、新聞を読み始めた。そうこうしているうちに、ハンガリーという言葉が耳に入ってきたので、ふとテレビの方に目を向けると、ヨーロッパ鉄道の旅をしている関口知宏さんがセルビアに国境を接するハンガリーの村を訪問している最中であった。牧歌的な田舎の風景を映し出していたが、一方で、最近のヨーロッパの影の部分も伝えていた。国境に設けられた鉄条網が昨年来の厳しい現実を思い出させてくれた。難民に対して厳しい意見を述べる農家の人が、関口さんを温かく迎え、ハンガリー料理をお昼にふるまっていた。静かな平和と戦慄を覚えるような混乱が隣り合っている状況が現実であることを改めて認識させられ、正月気分が吹き飛ばされた。

この番組によれば、パプリカはハンガリーの主要な農産物だそうで、関口さんもパプリカ料理をご馳走になっていた。以前の記事でも紹介したが、グラーシュが代表的な料理だ。これもパプリカを使うが、今回は、パプリカチキンを作ってみた。正月料理にも飽きてきたので、味の違うヨーロッパ料理が食べたいなと思い始めていたので、丁度、良い機会でもあった。

パプリカチキンの食材さんたちに登場してもらおう。
f:id:bitterharvest:20170105202729j:plain

この料理手間がかからない料理で、下ごしらえは、湯剥きをしたトマト(1個)を6等分に切っておくことと、玉ねぎ(1個)をみじん切りにするだけで済む。
f:id:bitterharvest:20170105203029j:plain

鍋にバター(小さじ2杯)を入れて、塩、胡椒した鳥のもも肉(唐揚げ用400g)を表面がきつね色になるまで焼く。
f:id:bitterharvest:20170105203528j:plain
f:id:bitterharvest:20170105203634j:plain
これを皿に移す。そして、同じ鍋にバター(小さじ1杯)を入れて、玉ねぎが柔らかくなるまで炒める。
f:id:bitterharvest:20170105203804j:plain
f:id:bitterharvest:20170105203941j:plain
パプリカパウダー(小さじ2杯)、小麦粉(大さじ2杯)を加え、2分混ぜ合わせる。
f:id:bitterharvest:20170105204553j:plain
その後、鍋に、鶏肉、トマト、ニンニク(ペーストのニンニク小さじ1杯)、マギーブイヨン(1個)、ローリエ(1枚)、さらに、水(200cc)を加える。
f:id:bitterharvest:20170105204520j:plain
弱火で30分程煮込む。なお、途中、時々、かき混ぜる。
f:id:bitterharvest:20170105204747j:plain
煮込みが終了したら、肉を皿に取り出し、ソースの方は、10分間さらに煮詰める。この時、上に浮かんでいる油は取り去る。
f:id:bitterharvest:20170105205041j:plain
煮詰めが終了したら、ソースにサワークリーム(90cc)を加える。
f:id:bitterharvest:20170105205219j:plain
鶏肉を戻し、2分間さらに煮る。
f:id:bitterharvest:20170105205312j:plain
皿に盛り、サラダなどと一緒に、頂く。
f:id:bitterharvest:20170105205628j:plain

料理を作るときは、想像力が必要だ。材料と調理法が用意できた時、どのような味の料理になるのかをあらかじめ頭の中に描いておくことが重要だ。イメージ通りのものができたときはうれしいし、違った場合にはどうしてそうなったかを考えることで、次の新しい料理への準備ができるようになる。サワークリームは使う機会が少ないので、出来上がった時の味を想像することが難しかった。家族はおいしいといってくれたので、初めてのパプリカチキンであったが、合格点かなと自己満足している。

圏論での積と余積―終対象と始対象

今年最後に読む本を定めて、28日に市の図書館から網野義彦著『日本の歴史のよみなおし(全)』と山本淳子著『源氏物語の時代 ― 一条天皇と后たちのものがたり』を借りた。

『日本の歴史のよみなおし』は、中世の時代を中心にいくつかのテーマに沿って横断的に説明している。ロングセラーになっている本なので、読まれた方も多いことと思う。2005年に出版されたこの本は、1991年と1996年に刊行された本の合本である。両方とも、筑摩書房の社員向けに講演した内容をもとに書かれている。このため、要領よくまとまっていて読みやすい。
f:id:bitterharvest:20161231093307j:plain

文字、貨幣、女性などがテーマとして取り上げられている。その中で、「日本の社会は農業社会か」を説明した部分が最も感銘を受けた。1991年の山川出版の高校の教科書には、「封建社会では農業が生産の中心で、農民は自給自足の生活を立てていた」と記述されていたそうである。この根拠になっていたのは、関本直太郎著『近代日本の人口構造』である。この中に、秋田藩の人口構成を示した表があり、そこには、諸士9.8%、百姓76.4%、町人7.5%...と示された表がある。

子供の頃、ご飯を残すと「お百姓さんが丹精込めて作ったものを残してはいけない」と叱られた。百姓イコール農民のイメージを持っていたが、この表を利用した学者も百姓を農民と見なしたようである。

能登半島の時国家の文書を調査していた網野さんは、年貢を納めていない百姓が多いことに気がつく。子供の頃に聞いたことのある言葉だが、いわゆる、水呑百姓である。その頃は、この言葉は貧乏な農家を示していた。しかし、網野さんはそうではないことに気がつく。廻船業などで裕福な生活をしている人たちだ。今でいう兼業農家だ。本業は農業以外の職業だが、所有する農地からの生産高がわずかであるために、水呑百姓として分類された人々だ。

このことを発見した網野さんは、封建社会には農業以外の産業に従事している人が多くいたはずだと主張し、この視点からの研究の必要性を説いている。今春、購入した山川出版の『詳説日本史研究』の261ページには身分別人口構成がある。百姓87.3%となっている。やはり、農業と解釈しているように読める。百姓という言葉は、中国語では一般の人民を指す。網野さんも指摘しているが、かつてはそのような意味で使っていたのではないかと思う。

源氏物語の時代』は、源氏物語が書かれた時代に生きた一条天皇およびその后の定子と彰子の心理状態をあぶりだした本だ。
f:id:bitterharvest:20161231102554j:plain

この時代は摂関政治の最盛期である。一条天皇は、藤原家から政治的な圧力を受けながらも、しなやかに生き抜いていく。定子は中関白家の藤原道隆(みちたか)の娘で才気活発である。彰子は当代一の権力者である藤原道長の娘でおっとりとしたお嬢さんである。

一条天皇は、数え年の7歳で即位し、11歳で結婚する。結婚相手は、いとこの定子14歳である。姉さん女房だが、そういうには二人は若すぎる。姉と弟という関係に近かったのだろう。政略結婚なのだが、一条天皇は定子を熱愛するようになる。定子の兄である伊周(これちか)を含めて、三人は夜を徹して漢詩の知識を競うなど、和やかな生活を享受する。しかし、ヒロインの定子には残酷な悲劇が待ち受けている。伊周が謀反の疑いで配流になり、罪人の家の出としての汚名を背負うこととなる。

一方、天皇の祖父になりたいという欲望を抱く道長は、彰子を12歳で一条天皇の后にする。この時、一条天皇は20歳である。また、二人はいとこである(先ほどの網野さんもいとこ婚だそうだ。そして、なんと彼の両親も、そして義理の両親もいとこ婚だそうだ。少し前の日本では普通だったのだろうか)。

この1年後、定子は24歳で3番目の子供を出産した後、亡くなってしまう。彰子は定子の長男の敦康(あつやす)を、定子が亡くなった1年後に、養子として迎える。この時、彰子は14歳、敦康は2歳であった。継母というには年が若すぎるので、敦康を弟のようにかわいがったのであろう。一条天皇崩御の後、敦康を東宮にするようにと道長に抗議していることからも、このことがうかがえる。政治の世界は、このような情を許さず、彰子が20歳の時に生んだ敦成(あつひら)が東宮になる。

定子が亡くなった後も、一条天皇は定子が忘れられず、悲しい日々を送っていたようだ。しかし、状況を読み、対応が柔軟であった一条天皇は、仲のよい夫婦として彰子と過ごすようになる。敦成(後一条天皇)を、さらには、敦良(あつなが後朱雀天皇)を儲け、後には、聖代と崇められた。

なお、一条天皇は辞世の句を残している。死ぬ間際のか細い声で言ったため、聞き手によってその内容が異なっている。道長の『御堂関白記』には、
   露の身のの宿りに君を置きて 塵を出でぬることをこそ思へ
となっている。また、藤原行成の『権記』には、
   露の身のの宿りに君を置きて 塵を出でぬることぞ悲しき
となっている。

道長は、当然、「君」は娘の彰子だと思っている。従って、この歌は彰子に捧げたものだと解釈している。これに対して、行成は、「君」は天皇が寵愛していた定子だと解釈している(偶然だが、道長と行成は同じ年の同じ日に亡くなっている)。

作者の山本さんは前者だと思っている。物語の筋としては後者の方が面白そうだが、柔軟に対応した一条天皇であれば前者になるのだろうか。

ところで、草枕の著者である清少納言は定子に、源氏物語紫式部は彰子に仕えた。この辺りの心理描写も巧みに描かれているので、楽しく読むことができる本である。

5.圏論での積と余積

歴史の中に普遍性を求めることは大変だ。今日の歴史学は多様性を大切にしているので、さらに大変だ。この究極にある学問が数学である。数学は普遍性を追求する学問だといっても過言ではない。その中でも、圏論は最も抽象的であり、最も一般的な普遍性を求めている。これから圏論の中で論ぜられてきたいろいろな普遍的な性質(Universal Properties)を説明する。まず、手始めに、積(Product)と余積(Coproduct)から始める。それでは、その一部を構成する始対象と終対象から説明しよう。

5.1 終対象

終対象の定義から始めよう。これは次のように定義される。終対象とは、対象の一つであるがそれは次の性質を持つ。圏内の任意の対象からこの対象への射が一つそして唯一つだけである。

もう少し、詳しく定義してみよう。
ある圏において、一つの対象を\(A\)とする。また、任意の対象を\(B\)とする。この時、下記の①と②を満たすような\(A\)が存在するとき、\(A\)を終対象という。
①\(f:B \rightarrow A\)なる射が存在する。
②任意の二つの射\(f,g:B \rightarrow A\)が存在するとき、\(f=g\)が成り立つ。

例を示そう。
f:id:bitterharvest:20161231181410p:plain
上図で、\(A\)が終対象である。少し調べてみよう。任意の対象となるのは\(A,B\)の二つである。

対象\(A\)から\(A\)への写像\(id\)のみである。これは①と②の条件を満たしている。

また、対象\(B\)から\(A\)への写像は\(f\)のみである。これも①と②の条件を満たしている。

従って、対象\(A\)は終対象となる。

もう一つの例を示そう。Haskellにはタプルがある。例えば、年齢と性別をタプルで示すと\((age,sex)\)となる。このタプルの構成要素は年齢と性別の2個である。構成要素が\(n\)個のものを\(n\)-tuppleという。\(n\)が1以上のものは分かりやすいと思うが、\(n\)が0の場合はどうであろうか。

上述した源氏物語では、年齢を数え年で考えていた。最近は数え年を使わなくなったので、なじみのない人も多いと思う。数え年は誕生したときに1歳となり、その後は、正月を迎えるごとに1歳ずつ増える。これに対して、満年齢は誕生日を迎えるごとに1歳ずつ増え、最初の1年は0歳である。

0という数は、何もないことを表すので、構成要素がない場合には0-tuppleとなる。これは構成要素がないので()と表される。Haskellでは()はシングルトンと呼ばれる。

シングルトンは特殊な対象である。即ち、いかなるタイプの対象からもシングルトンへの射を用意すると、シングルトンは終対象となる。シングルトンへの射を次のように用意しよう。

unit :: a -> ()
unit _ = ()

実行してみよう。

Prelude Data.Void> :load "unit.hs"
[1 of 1] Compiling Main             ( unit.hs, interpreted )
Ok, modules loaded: Main.
*Main Data.Void> unit 2
()
*Main Data.Void> unit 'a'
()
*Main Data.Void> unit "spring"
()
*Main Data.Void> unit (14,"male")
()
*Main Data.Void> unit ()
()

最初の例は、対象\(Num\)からシングルトンに写像する唯一の射である。即ち、\(unit :: Num -> ()\)である。図で表すと次のようになる。
f:id:bitterharvest:20161231203639p:plain
2番目の例は、対象Charからシングルトンに写像する唯一の射である。即ち、\(unit :: Char -> ()\)である。
3番目の例は、対象[Char]、即ち、文字列からシングルトンに写像する唯一の射である。即ち、\(unit :: [Char] -> ()\)である。
4番目の例は、対象(Num,[Char])からシングルトンに写像する唯一の射である。即ち、\(unit :: (Num,[Char]) -> ()\)である。
5番目の例は少し注意を要する。図で示すように\(id=unit\)である。
f:id:bitterharvest:20161231204059p:plain

上記の例は、\(A\)に写像される対象が自身を除いて一つ(5番目の例では0)であったが、複数ある場合の例を示そう。
f:id:bitterharvest:20161231211106p:plain
上図では、タイプNumとタイプCharの対象を用意した。分かりやすくするために、射をそれぞれの対象ごとに別々に設け、それぞれをunit',unit"とした。

ところで、終対象は一つとは限らない。複数の場合もある。しかし、この場合でも、それぞれを構成する射の間が同型写像となる(これについては後の記事で説明する)。その結果、これらの終対象を同じものとみなすことができる。

5.2 始対象

始対象次のように定義される。始対象とは、対象の一つであるがそれは次の性質を持つ。この対象から圏内の任意の対象への射が一つそして唯一つだけである。

もう少し、詳しく定義してみよう。
ある圏において、一つの対象を\(A\)とする。また、任意の対象を\(B\)とする。この時、下記の①と②を満たすような\(A\)が存在するとき、\(A\)を始対象という。
①\(f:A \rightarrow B\)なる射が存在する。
②任意の二つの射\(f,g:A \rightarrow B\)が存在するとき、\(f=g\)が成り立つ。

例を示そう。Haskellでは、以前のブログで説明したが、Voidというタイプを用意している。

*Main Data.Void> :i absurd
absurd :: Void -> a 	-- Defined in ‘Data.Void’

これを図で示すと次のようになる。
f:id:bitterharvest:20161231213029p:plain

Voidという用語はC++でも使っているので、混乱を起こす。C++でのvoidは、先ほど説明したスケルトン()と同じである。

先ほどの説明で()は何もないということを表していた。HaskellでのVoidは、空っぽと説明されることが多いが、これでは、()との違いが分からない。適当な日本語がないので、英語を用いるが、HaskellのVoidはPrinciple of explosionである(explosionは爆発を意味する)。即ち、「命題A=>Bの前提条件Aが偽である時、A=>Bは真である」という論理での偽の部分に当たるのが、Voidである。Voidを偽とみなせば、命題absurd :: Void -> aは真であることになる。即ち、前提条件が偽であれば、どのような命題を持ってきたも真となる。言い換えると、矛盾からは何事も引き出せるということになる。とても、比喩的に述べると、ビッグバンが起きるようなものだ。超高温、超高密度な火の塊から宇宙が誕生するような感じだ。

面倒くさい議論になったが、哲学的な説明から離れて、分かりやすい例を示そう。0で始まる自然数を昇順(<)に並べると次のようになる。
f:id:bitterharvest:20161231215356p:plain
昇順で用いた大小関係(<)を射とみなし、対象\(A\)と\(B\)を次のように定めると\(A\)は始対象となる。
f:id:bitterharvest:20161231220346p:plain

先ほどと同じで、始対象についても、複数存在する場合があるが、その場合には、これらは等価であるとみなせる。

ところで上の図で、降順(<)に並べ、射の矢印を逆方向にすると、0は終対象となる。このような性質を双対(Duality)という。
f:id:bitterharvest:20170101095446p:plain

圏には始対象あるいは終対象が存在しない場合がある。圏を構成したときは、どれが始対象になるのか、どれが終対象になるのか、あるいは、なぜ存在しないのかを考えると、圏に対する認識が深まることと思う。

モナドを音楽の力を借りてアナログ的に説明する

4.8 モナドを関手(ファンクタ)を用いずに説明する

数学の本を読んでいると、1ページを読むのに数時間もかかることが往々にして起きる。特に、定理があってその証明が書かれているときがそうだ。純粋な数学的用語で書かれているときは、その背後にある概念を把握するまでにかなりの時間を取られ、読んでいるという感じではない。まるで、暗号を解読しているような状況に追い込まれてしまう。

最近は、日本の古代史や中世史の書籍を読む機会が多くなり、同じような経験をすることがある。研究論文に近い文章を読んでいるときは、それぞれの用語にある背景を吟味する必要があるため、一行の文章を理解するのに、長い時間を必要とする時がある。このような時は、前に何が書かれていたのかを忘れてしまい、同じページを行ったり来たりしながら読むことになる。

中世史の若手研究者の呉座勇一さんが書かれた書籍は、内容は高度だが、分かりやすい言葉で書かれていて、とても読みやすい。何冊か既に読んだが、『一揆の原理』の中に、面白い例があったので、紹介しよう。
f:id:bitterharvest:20161223112336j:plain
室町時代が始まった頃、朝廷は北朝南朝とに分かれていた。南北朝時代と呼ばれる。この時代が終わるころ、日本史研究者の間では「中世後期」と呼ばれる時代になると、一揆が社会全体に広がる。一揆にはいくつかのタイプがあり、その中に徳政一揆がある。簡単に言うと借金をチャラにしてくれというものだ。この時代になぜこのような一揆が生じるようになったかを解明するのが、歴史学者の役割である。

古い戦後歴史学では「悪徳高利貸に苦しめられた民衆の怒りが爆発し、徳政一揆をおこした」と考えられていたそうである。説明の内容は省くが、この記述の部分を論文調で書くと「貨幣経済の農村への浸透を契機とした都市高利貸資本の農村浸食」となるそうだ。相当に専門的な知識を有していないと理解するのに時間を要する。

圏論にも似たような点が多い。専門的な知識を有している仲間たちの間では、専門用語を多用して説明すれば、簡潔に述べることができるだろうが、あまり、知識を有しない人に同じように理解してもらうためには、平易な言葉で、比喩を多用しながら、逃げられないように説明する必要がある。

Milewskiが関手という専門用語を用いないでモナド(Monad)の説明をしていた。これをヒントにして、同じように、関手を使わずに、モナドの説明を試みよう。数学とはだいぶ距離があるように思えるが、音楽の世界を利用する。小学校での音楽の時間に出会った曲に「朝はどこから」という歌があった。その中で、1番の歌詞の終わりの方に「おはよう」という部分がある。そこだけ楽譜に落とすと、次のようになる(原曲の楽譜とは異なっている)。
f:id:bitterharvest:20161225215157p:plain
少し単調なので、クラシック風にアレンジする。
f:id:bitterharvest:20161225222727p:plain

原曲からアレンジした曲へ矢印を引き、矢印に\(classic\)という名前を付けてみよう。
f:id:bitterharvest:20161226100237p:plain

なんとなく、圏に見えないだろうか。自分から自分への写像\(id\)をつけてみよう。図のように立派に圏になっていることが分かる。
f:id:bitterharvest:20161226100504p:plain

それでは、この楽譜を演奏したらどうなるだろう。
f:id:bitterharvest:20161226100718p:plain

上の図で、スピーカーのところを押したら曲が流れてくるとよいのだが、はてなブログでは、残念ながら、音楽をアップロードできない。仕方がないので、ブログDraw the Dotsを利用して聞いてほしい(その他にも、Music Editor - abcjs, abc Converter - MandolinTab.netなどがある)。

Draw the Dotsが開いたところで、長方形の枠の中に、ABC記法に従って楽譜を記入すると、下の方に五線譜での楽譜が表示される。また、midiファイルも用意されているので、これをダウンロードして視聴する。原曲の部分はABC記法では次のようになる。

X: 1
T: Original
Q: 1/4=100
M: 4/4
K: C
E2EFG4-|G6z2|
w: お は * よ ―

上記の楽譜を書き込んだブログDraw the Dotsの画面を下図に示す。
f:id:bitterharvest:20161226105506p:plain
画面右端の真ん中あたりにdownload midiがあるので、ここより、midiファイルを獲得し、視聴できる。
また、クラシック風にアレンジした曲は、ABC記法では以下のようになる。

X: 1
T: Classic
Q: 1/4=100
M: 4/4
K: G
B2 B1/2A1/2B1/2c1/2 dd1/2e1/2 d1/2c1/2B1/2c1/2|d6z2|
w: お は * * * よ * * ― * * * ―

聞き比べての印象はどうであろうか。うまくアレンジされているだろうか。midiで演奏された原曲とクラシック風の曲にも、楽譜の時と同じように、矢印を引くことができる(矢印に名前を付けるのはしばらく保留しておこう)。
f:id:bitterharvest:20161226110705p:plain

これもやはり恒等射を付加することで、立派な圏を得ることができる(二つの間の曲の射は実態が明らかになるまで?で示す)。
f:id:bitterharvest:20161226110839p:plain

さて、これまでに得た二つの圏を並べてみよう。
f:id:bitterharvest:20161226111255p:plain

ここで質問したい。楽譜で書かれた曲(赤い色の\(A\))とmidiで演奏された曲(緑色の\(A\))は、同じものだろうか。同じだという人もいるだろうし、違うという人もいるであろう。著作権をもとに考えれば同じだろう。物理的に考えると異なっているだろう。ある時は同じであるとみるし、別の時は異なるとみるのがモナドだ。そのため、惑わされてしまう。しかし、ここでは、この二つは同じものと考えておこう。

それでは、midiで演奏された二つの曲を結ぶ矢印は、楽譜で書かれた二つの曲の矢印と同じであろうか。後者の方の矢印は、ある規則に従っているのであれば、それはプログラムで表すことが可能である。このプログラムを用いて、一方のmidiの曲から他方のそれを作り出すことができるであろうか。これはどうも難しそうだ。

それでは、midi間での射を決めよう。そこで、次の図のように、楽譜の\(A\)から、midiの\(B\)を作り出す関数を考える。
f:id:bitterharvest:20161226113215p:plain
この関数は、先ほどのプログラムを実行した後にmidiに変換すればよいので、関数として定めることができる。この関数を\(classic?\)とする。midiでの二つの曲をつなぐ関数を今定義した関数\(classic?\)を用いることにする。
f:id:bitterharvest:20161226113802p:plain

この関数がモナドの神髄である。しかし、図を見る限り、midiの方の圏(対象が緑色で示されている)からは、赤色の\(A\)を発見することができない。なぜ、赤色の\(A\)を用いることができるのかと悩んでしまう。ここで、先ほどの赤色の\(A\)と緑色の\(A\)は同じというおまじないを使う。緑色の\(A\)があるのだから、緑色を剥げば、赤色の\(A\)が得られるだろうと考える。そこで、これを利用して、関数を適応する。Haskellでの型シグネチャを用いると次のように表すことができる。

classic? :: m a -> (a -> m b) -> m b

なお、上記の\(a\)は赤色の\(A\)であり、\(m \ a\), \(m \ b\)は緑色の\(A,B\)である(以下同じである)。

midiの曲の方を圏にするためには、自分から自分への射を必要とする。これも、少し、特殊である。楽譜からmidiで演奏するときの写像を考えよう。これを\(m\)と表すことにしよう。これを用いると次の図を得る。
f:id:bitterharvest:20161226115803p:plain

ここで得た関数\(m\)が、midiで演奏される曲の\(id\)となる。
f:id:bitterharvest:20161226124047p:plain

これは、楽譜(赤色の\(A\))とmidiによる演奏(緑色の\(B\))への写像\(classic?\)がmidiによる演奏間での射となったのと同じ理由である。Haskellの型シグネチャを用いると次のようになる。

idA :: m a -> (a -> m a) -> m a
idB :: m b -> (b -> m b) -> m b

圏論では射の合成も重要な役割をなす。そこで、クラシック風の曲をワルツ風の曲にアレンジしてみよう。
f:id:bitterharvest:20161226123246p:plain

ABC記法では以下のようになる。

X: 1
T: Classic
Q: 1/4=100
M: 4/4
K: G
B2 B1/2A1/2B1/2c1/2 dd1/2e1/2 d1/2c1/2B1/2c1/2|d6z2|
w: お は * * * よ * * ― * * * ―

アレンジした曲の関係は次の図のようになる。
f:id:bitterharvest:20161226124810p:plain

midiで演奏された曲の間では、原曲\(A\)からワルツ風の曲\(C\)への射\(compose?\)は、原曲\(A\)からワルツ風の曲\(B\)への射\(classic?\)とワルツ風の曲\(B\)からワルツ風の曲\(C\)への射\(waltz?\)との結合となる。即ち、\(compose?=waltz? \circ classic?\)となる。

Haskellの型シグネチャで表すと

classic? :: m a -> (a -> m b) -> m b
waltz? :: m b -> (b -> m c) -> m c
compose? :: m a -> ((a -> m b) -> m b -> (b -> m c)) -> m c

となる。\(compose?\)の関数\( ( (a \rightarrow m \ b) -> m \ b -> (b \rightarrow m \ c) )\)が二つの関数\( (a \rightarrow m \ b)\)と\( (b \rightarrow m \ c)\)との結合になっていることに注意してほしい。

ここまで、音楽を例にとって説明したが、説明した内容は汎用的である。このため、モナドを形成しているほかの世界にも応用することができる。例えば、カッコが使える世界を考えてみよう。
f:id:bitterharvest:20161226130355p:plain

カッコの世界では、\(A\)も\((A)\)同じである。これは、楽譜での曲\(A\)とmidiで演奏された曲\(A\)を同じと見做したのと同じ理屈である。\(f,f?\)のHaskellでの型シグネチャを求めると次のようになる。

f :: a -> b
f? :: m a -> (a -> m b) - m b

\((a)\)に\(f?\)を施すことを考えよう。\((a)\)は\(m \ A\)である。また、\(a\)は\(A\)である。そこで、\(aに(a \rightarrow m \ b)\)を施すと、\(m \ b\)を得る。従って、カッコの中の\(a\)が変わるので、\(f?\)を施すと\(( (b) )\)となる。外側のカッコはもともとあったもので、内側のカッコは今回の変換で得たものである。\((b)\)は\(b\)と同じなので、\(( (b) )\)は\((b)\)と同じである。即ち、カッコが付いたこの世界では、たくさんのカッコが付くことになるが、この世界ではあってもなくても同じである。

前に書いたクライスリ圏でも同じことが言えるが、これについては、確認して欲しい。

ブライン液につけて、ジューシーなターキーを食卓に

今年もまた、ターキーを焼く季節がやってきた。孫や子供たちの都合によって、作る日は異なる。今年は、23日がよいということなので、クリスマスイブのさらにイブに食することとなった。

ターキーの焼き方は、イギリス滞在経験の長い隣の家から教えて頂いた。もう、25年以上も前のことになる。その間に焼く技術も進化した。特に、鶏肉をジューシーに焼く方法が、この春、NHKあさイチで紹介された。この番組では、これまであまり人気のなかった鳥の胸肉を美味しく調理する方法として、ブライン(Brine)液に浸すとよいと提案された(この液を用いると、浸透圧で水が肉に吸収される)。胸肉は、あのぱさぱさ感が障害となっていたようである。しかし、ブライン液を利用するようになってから、ジューシーな食感が出せるようになり、低カロリー高タンパクであることとも相まって、胸肉の人気が高まったそうである。

今年は、ブライン液を利用して、ジューシーなターキーを試みた。

ターキーは、例によって、明治屋で仕入れた。あまり大きなターキーは、日本製のオーブンレンジでは焼けないので、3Kg前後のものを手に入れた。
f:id:bitterharvest:20161223205816j:plain

仕入れたのは10日前だったので、4日前までは冷凍庫に、そのあとは冷蔵庫に移して保管した。昨日(1日前)、解凍状況を調べたら、まだ、凍っている部分があったので、日中台所に放置しておき、夕方、冷蔵庫に戻した。

今日(23日)、朝食を済ませた後、ブライン液を作成した。ブライン液は、100ccの水に対して5gの塩ということなので、3リットルの水に150gの塩を溶かして作った(NHKでは、塩と等量の砂糖も加えていたが、甘くなることには迷いがあったので避けた)。丈夫なビニールの袋を2重にしてその中にターキーを入れ、さらに、ブライン液を全部加え、ターキーの全表面にブライン液が浸るようにビニール袋を絞った。さらに、これを、氷の入ったもう一つのビニール袋の中に入れて、低温に保って、廊下に放置した(冷蔵庫にと書いてあったが、相当な重量になっていたので、冷蔵庫の棚が壊れるのを避ける処置である)。
f:id:bitterharvest:20161223210949j:plain

ブライン液に浸してから4時間後にターキーを取り出した。ビニール袋から少し水がこぼれたので、正確ではないのだが、残った水の量は2.4Kgであった。おそらく、(全体の水の量は塩も含めて3.15Kgなので)500-600g程度の水が肉に吸収されたのではないかと思う。随分と大量の水が吸収されたことになる。ターキーに触ってみると、瑞々しい。美味しく焼けそうな気がする。

さて、ターキーの前処理が済んだので、後は、これまでの手順でターキーを焼いた(詳しい手順はここを参照)。
サラダに使った後の不要な部分や、冷蔵庫の中に残っている野菜の残り、即ち、キャベツの芯、ニンジンの皮、細切りにした玉ねぎ、セロリの茎、ブロッコリの芯、レモンバームローズマリーなどを下にひき、ターキーに胡椒を塗りこみ、さらには、バターを張り付けて、焼くための準備をした(この料理を教わった時は、塩も揉みこむこととなっていたが、ブライン液に浸したので、今回はやめた)。なお、お腹の中に首の部分が入っていたので、これは後日のスープのだしで使うことにし、冷蔵庫にしまった。
f:id:bitterharvest:20161223212824j:plain
昨年の記事で説明したが、最近のターキーにはポップアップタイマーが付いている。ターキーが焼きあがった時に、赤いマークの棒が飛び出す。中の肉汁の色を調べながら、焼き具合を見る従来の原始的な方法よりは、簡単で、便利で、ハイテクでもある。

最初の10分は250度で、その後は180度で焼いた。時々、出汁をかけること(ベイスティングbasting)は必要ないというレシピもあったが、これまでの習慣が抜け切れず、時間を少し延ばして20分に一回は出汁をかけた。焼く時間は150分となっていたが、2時間程で、ポップアップタイマーの赤い棒が飛び出してきたので、火を落とし、そのまま、オーブンの中で蒸らした。出来上がりは次のようだ。
f:id:bitterharvest:20161223213942j:plain
サラダやスープを添えて、成長盛りの孫たちと一緒に美味しくいただいた。ブライン液を利用した効果は絶大で、胸肉もジューシーでとても美味しかった。食卓を賑やかにしてくれた料理の仲間たちに、最後に登場してもらおう(コーンスープは恥ずかしがり屋なので、抜けている)。
f:id:bitterharvest:20161223214906j:plain
f:id:bitterharvest:20161223214944j:plain
アンコールを頂き、来年の出場も決まった。

ドイツ料理「リンダールーラーデン」を楽しむ

クリスマスが近づくとシュトレン(Stollen)を見かけるようになる。ドイツの菓子パンだが、伝統的にクリスマスの時期に食されている。先日、Kaldiで大量に販売していた。季節ものなので購入したが、少し、甘すぎるかなと感じた。

そうこうするうちに、ドイツ料理には何があるのだろうと考え始めた。市ヶ谷には、パウケというドイツ料理のレストランがある。何回か訪れたことがあるが、本格的な料理を食べた記憶がない。いつも、ビールを飲むことが目的で、ソーセージをおつまみに食べたことしか覚えていない。

インターネットで調べると、グラーシュが出てくる。この料理、以前に記事で紹介した。ドイツのレストランでよく見かける料理ではあるが、ハンガリー起源の料理だ。

さらに検索していくと、ドイツに在住しているご婦人のブログに行きついた。リンダールーラーデン(Rinderrouladen)と呼ばれるドイツの家庭料理を紹介していた。ご主人がドイツ人なので、伝統的な料理なのだろうと思い、少し調べてみた。

ドイツ語で書かれたレシピはたくさんあったが、大体の内容はつかめるものの、正確には読むことができない(大学生の頃には簡単な小説は読めるようになったのに、その後、使う機会がなかったので、すっかり忘れてしまった)。仕方なく、英語のレシピをいくつかさっと読んでみた。

家庭料理ということもあるのだろう。いろいろなレシピがあったが、それらに共通しているのは、薄く切った牛肉に野菜を巻いて長い時間かけて煮込むということであった。

正統な作り方はないようなので、読んだレシピを参考にしながら、リンダールーラーデンなるものを作ってみた。ちなみに、Rinderは「牛肉」を、Rouladenは「巻いた料理」を意味するそうだ。

今日の食材に登場してもらおう。
f:id:bitterharvest:20161222201853j:plain

次に下ごしらえをしよう。玉ねぎ(2個)は、牛肉の中に入れるだけでなく、煮込むためのスープにも用いるので、薄く切る。
f:id:bitterharvest:20161222202110j:plain
さらに、肉に包む分はもう少し小さく切る(1/3程度を細かく。残った場合には煮込み用のスープに入れるので多くても気にしない)。
f:id:bitterharvest:20161222202229j:plain
ピクルス(4本)を細長く切る。
f:id:bitterharvest:20161222202440j:plain
牛肉(350g程度)を広げる。ドイツではリンダールーラーデン用に牛肉を切ってくれるそうだが、日本ではかなわないので、今回は、すき焼き用の肉を購入した。ドイツ料理なので、赤身の方がよいだろうと思い、米国産にした。
f:id:bitterharvest:20161222202803j:plain
さらに、ベーコンを広げた牛肉の上に重ね、マスタードを塗る。
f:id:bitterharvest:20161222202858j:plain
隅の方に、ピクルスと玉ねぎを重ねる。
f:id:bitterharvest:20161222203142j:plain
この上に、塩、コショウ、パプリカをまぶす。
f:id:bitterharvest:20161222203242j:plain
野菜がのっている方から、牛肉を巻く。
f:id:bitterharvest:20161222203338j:plain
料理用のタコ糸で牛肉巻を縛る。
f:id:bitterharvest:20161222203442j:plain
フライパンにバターをひき、牛肉の表面が茶色になる程度まで焼く。
f:id:bitterharvest:20161222203608j:plain
f:id:bitterharvest:20161222203659j:plain
鍋に、残った玉ねぎ、ピクルス、表面を焦がした牛肉をいれ、さらに、赤ワイン(150cc程度)、細かく切ったニンニク(1かけ)、トマトペースト(大匙1杯)、マギーブイヨン(1個)を加える。中火で90分間煮込む。水分が少なくなってきたら、水を少しだけ加える。
f:id:bitterharvest:20161222204049j:plain
リンダールーラーデン(牛肉巻)を取り出す。
f:id:bitterharvest:20161222204604j:plain
鍋に残されたスープを取り出し、煮詰める。
リンダールーラーデンのタコ糸を外し、皿に盛り付け、煮詰めたソースをかけ、食卓に出す。今回は、温野菜とともに食べた。
f:id:bitterharvest:20161222205000j:plain
リンダールーラーデンを真ん中で切断すると、中の野菜が見えてきれいである。
f:id:bitterharvest:20161222205159j:plain
リンダールーラーデンは赤ワインとの相性がよく、おいしくいただいた。ただ、家庭料理にしては、味が強すぎるようにも感じた。マギーブイヨンを入れなくてもよかったような気がした。

称名寺(金沢文庫)を訪れる

称名寺を訪ねた。森茂暁著『闇の歴史、後南朝』を読んだのがきっかけになった。

f:id:bitterharvest:20161216140752j:plain

室町時代の幕開け(1336年)とともに始まった南北朝時代は、1392年に北朝南朝を吸収して合体することで終了する。その後の歴史は合体を主導した側(北朝)を中心に描かれた。そして、この本が出版されるまでは、南朝のその後について、総括的に記述されることはなかった。合体によって南朝は滅びたと思われがちだが、実はそうではない。そのあと(1479年までの)90年間もの間、室町幕府に反対する勢力のシンボルとなって、幕府の前に立ちはだかっている。このような状況をこの本は詳述している。

この本のなかで、永享(えいきょう)の乱(1438年)についても説明がある。この乱では、将軍権力の拡充を目指す第8代将軍足利義教(よしのり)と将軍職を奪おうとする鎌倉公方足利持氏(もちうじ)が対決した。たいした戦いもなしに、将軍家が勝利する。持氏は称名寺で出家し、その後、永安寺に移され、関東管領上杉憲実(のりざね)を介して義教に赦免を願うが、許されるわけもなく、逆に憲実に攻められ、自害する。

この本で、称名寺が出てくるのはここだけだ。なぜ、1回だけなのに注目したのだろうか。それは、先週の土曜日に横浜歴史博物館で称名寺の古文書を見たことによる。

横浜市あるいはその近辺で義務教育を受けた人は、金沢文庫について学校で説明を受けたことがあると思う。金沢文庫は、鎌倉時代の中期に北条実時(さねとき)が武家の文庫として設置したものである(北条実時は、第2代執権北条義時の孫で、金沢流北条氏の実質初代で金沢実時ともいわれる。これから金沢文庫と呼ばれる)。現在は、神奈川県立金沢文庫になっていて、称名寺所有の資料を保管展示している。今年、これらの資料が国宝となった。

これを記念して、国宝となった称名寺の古文書が横浜市歴史博物館や金沢文庫などで展示されている。先週の土曜日に横浜市歴史博物館で用事があり、そのついでに、称名寺の資料を見学した。
f:id:bitterharvest:20161216194846j:plain
今日(12月16日)は、その続きではないが、称名寺金沢文庫を訪れた。金沢文庫は撮影禁止であったので、称名寺だけ紹介しよう。

称名寺で最も大きな建物は山門(1818年建立)である。
f:id:bitterharvest:20161216181035j:plain

山門の手前には、塔頭(たっちゅう)光明院表門があった。1665年の建立で、三渓園に移設された建物を別にすれば、造営年代が判明する横浜市内の建物の中では最も古いそうである。f:id:bitterharvest:20161216181504j:plain
境内の中に入ると、阿字ヶ池がある。
f:id:bitterharvest:20161216181705j:plain
そこには二つの橋がある。
山門よりの橋は、反り橋になっている。
f:id:bitterharvest:20161216181854j:plain
もう一つの橋は平らである。
f:id:bitterharvest:20161216181933j:plain
平らな橋の先には、金堂(1681年建立)がある。
f:id:bitterharvest:20161216182110j:plain
その右側には、釈迦堂(1862年建立)がある。
f:id:bitterharvest:20161216182227j:plain

金沢文庫へはトンネルを抜けるとたどり着く。
f:id:bitterharvest:20161216184840j:plain

称名寺の宗派は真言律宗である。真言宗の開祖は空海(弘法大師)。平安時代始まりの桓武天皇の時世に、最澄(天台宗の開祖)とともに遣唐使で唐にわたった僧だ。真言律宗の開祖はだれなのだろう(ちなみに、律宗の開祖は奈良時代帰化鑑真である)。ウィキペディアで調べてみた。西大寺の興正菩薩叡尊(えいぞん)が中興の祖となっている。

金沢文庫の写真には、忍性菩薩の展示会への案内がある。忍性(にんしょう)は、第5代執権北条時頼の病気平癒のために、金沢文庫創設者である北条実時によって鎌倉に招かれた。時頼の病気回復に成功したのをきっかけに、忍性の師である叡尊を鎌倉に招くこととなった。そのため、実時は、宋版一切経の7,000帖にも及ぶお経全巻を2セット輸入し、1セットを叡尊西大寺に、もう1セットを称名寺に贈った。

叡尊にあった実時は、叡尊と志を同じにする僧を称名寺に招聘したいと思うようになり、忍性に相談したところ、審海(しんかい)が紹介された。

また、忍性は鎌倉の極楽寺の開山となった。彼は87歳で亡くなったが、多大な功績により「忍性菩薩」と呼ばれることとなった。来年2017年は、忍性生誕800年を迎える。忍性は、貧者や病人の救済に身を尽くしたそうである。特に、ハンセン氏病患者を毎日背負って町に通ったそうである。社会福祉の祖とも言われる。

称名寺は有名なお寺ではあるが、観光客は多くない。今日の見学者は10人前後。散歩に出てきたのであろう、老夫婦が目立った。厳しい寒さの日であったが、快晴だったので、静かなたたずまいを楽しむことができた。また、和泉元彌主演の映画『忍性』の上演も始まったようなので、鑑賞してさらに理解を深めたいと思っている。
f:id:bitterharvest:20161217091957j:plain

国宝・円覚寺舎利殿を初冬に訪れる

何回となく訪れたことがある円覚寺だが、舎利殿だけはいつも遠目に見るだけで、訪れたことがない。今回(12月10日)、運よく、舎利殿を訪れるイベントがあり、それに参加した。

円覚寺は、鎌倉時代の1282年に建立された。モンゴル帝国(元)が日本を攻めてきた元寇、即ち、文永の役(1274年)と弘安の役(1281年)で戦死した両国の武士たちの魂を鎮めるために、第八代執権北条時宗が創建した寺である(モンゴル兵士の鎮魂をも願った時宗の優しい人柄がしのばれる。この他にも国家の鎮護と禅の普及という目的が創建にはあった)。

鎌倉時代の日本の人口は500万人。モンゴルが二回目に攻めてきた弘安の役では、元・高麗軍を主力とした東路軍が約40,000~56,989人、旧南宋軍を主力とした江南軍が約100,000人であったとされている(兵士数はウィキペディアによるが、なぜ、端数があるのだろう。それもとても細かな)。当時の日本の人口の3%にも及ぶ軍隊が押し寄せてきたことになる。現在の人口で換算すると、その数は300万人にも及ぶことになる。想像を超える国難であったが、いわゆる神風、台風が来襲したために、この難を逃れた。

このことによって、我々が学んだ教科書では、時宗はモンゴルの侵略を阻止した英雄として高く評価されていた。しかし、中世の時代の見直しが進むにしたがって、時宗についても評価が分かれている。

元寇が始まる前の1268年には、大蒙古國皇帝奉書をモンゴル皇帝から受け取っている。その内容は次のようになっている。

天の慈しみを受ける大蒙古国皇帝は書を日本国王に奉ず。朕(クビライ・カアン)が思うに、いにしえより小国の君主は国境が相接していれば、通信し親睦を修めるよう努めるものである。まして我が祖宗(チンギス・カン)は明らかな天命を受け、区夏(天下)を悉く領有し、遠方の異国にして我が威を畏れ、徳に懐く者はその数を知らぬ程である。朕が即位した当初、高麗の罪無き民が鋒鏑(戦争)に疲れたので命を発し出兵を止めさせ、高麗の領土を還し老人や子供をその地に帰らせた。高麗の君臣は感謝し敬い来朝した。義は君臣なりというがその歓びは父子のようである。
この事は王(日本国王)の君臣も知っていることだろう。高麗は朕の東藩である。日本は高麗にごく近い。また開国以来時には中国と通交している。だが朕の代に至っていまだ一度も誼みを通じようという使者がない。思うに、王国(日本)はこの事をいまだよく知らないのではないか。ゆえに特使を遣わして国書を持参させ朕の志を布告させる。願わくは、これ以降、通交を通して誼みを結びもって互いに親睦を深めたい。聖人(皇帝)は四海(天下)をもって家となすものである。互いに誼みを通じないというのは一家の理と言えるだろうか。
兵を用いることは誰が好もうか。王は、其の点を考慮されよ。不宣。
至元三年八月 日

古続記(吉田経長の日記)によれば、この国書を受け取った時、朝廷は返書を送ることを提案したが、幕府は黙殺せよと判断したそうである。どちらをとればよかったのかは、この書の読み方によって異なる。

判断の前提に、中国の手紙での「不宣」は対等な関係にあるときに使う結びである、ということを利用できる。これを念頭において、「兵を用いることは誰が好もうか」を解釈すると、圧倒的な兵力で日本を制圧するよりも、穏やかに和平したいと望んでいたのではないかと読める。

さらに、モンゴル皇帝の使者である趙良弼(ちょうりょうひつ)は、1272年に、モンゴル皇帝のクビライに、日本は「占領に値しない」と伝えていた。そのため、クビライは積極的に攻めようと思ってはいなかったのではないかと考えるのが妥当なように思える。

時宗は、漢文で書かれた国書を理解することができず、南宋から来た禅僧の意見を求めたのではないかと予想される。モンゴル帝国に敗れて日本に亡命してきた彼らは、モンゴル帝国と対決するように文章を捻じ曲げて意見を述べたのではないかと想像される。

このような理由から、もし返書を出していれば元寇はなかったのでと考えている学者もいる。

さらに、時宗は、自から戦場に赴こうとすることもなく、また、北条家の名だたる武士を九州に送ることもなく、九州在郷の少弐氏(しょうにし)を大将にするなどして、他人事のように、モンゴルの襲来をかわそうとしている。これは国の命運を握る職にあるものの施策とは思えないということで、時宗の統治者としての能力を疑っている学者もいる。

このように評価の分かれている時宗だが、元寇での犠牲者が多大であったのには、よほどショックだったのであろう。両国の戦死者を鎮魂するために円覚寺を創建した。

円覚寺の開山となったのが無学祖元(むがくそげん)である。彼は、南宋(現在の中国浙江省寧波市)出身の臨済宗の僧である。南宋がモンゴル軍の侵入を受けた後の1279年に、時宗の招きに応じて来日した。彼よりも前に南宋から渡来していた禅僧の蘭溪道隆(らんけいどうりゅう)の死後、彼を引きついで建長寺の住持となり、その後、円覚寺を開山した。

円覚寺にまつわる説明が長くなったが、さて、昨日のイベントの道順に従って、円覚寺を訪れてみよう。

円覚寺は、何度も火災にあっているそうで鎌倉時代からの建物は残っていないそうである。関東大震災(1923年)でも壊滅的な被害を受けたそうで、その時に被害を受けなかった建物はたった二つとのこと(何とも恐ろしい)。そのうちの一つが、三門(山門)である(他の一つは舎利殿がある正続院内の一つの建物)。この門は三つの解脱、空・無相・無願を象徴しているといわれている。江戸時代(1785年)の建物だそうだ。この門を通るときは、「門を通らずに門を通る」ことと、案内をしてくれた副住職の方が仰った。なお、この門は夏目漱石の『門』という小説の舞台になった。『門』の書き出しは次のようになっている。

宗助は先刻から縁側へ坐蒲団を持ち出して、日当りの好さそうな所へ気楽に胡坐をかいて見たが、やがて手に持っている雑誌を放り出すと共に、ごろりと横になった。秋日和と名のつくほどの上天気なので、往来を行く人の下駄の響が、静かな町だけに、朗らかに聞えて来る。肱枕をして軒から上を見上げると、奇麗な空が一面に蒼く澄んでいる。その空が自分の寝ている縁側の、窮屈な寸法に較べて見ると、非常に広大である。

三門の写真は、
f:id:bitterharvest:20161211062757j:plain
f:id:bitterharvest:20161211062906j:plain
また、紅葉も綺麗であった。
f:id:bitterharvest:20161211063001j:plain
副住職の方によれば、今年は11月の初めに寒い時があり、その月の終わりに温かくなったので、早く紅葉になった木と、遅くそのようになった木があるそうで、12月のこの時期に紅葉を楽しめることはあまりないことだそうだ。

次に訪れたのが仏殿である。仏殿は関東大震災で倒壊し1964年に再建された。鉄筋コンクリート造りの建物である。殿内には、円覚寺の本尊である宝冠釈迦如来坐像が安置されている(通常、釈迦如来は頭には何もつけていないが、円覚寺の釈迦如来は宝冠をかぶっているのが特徴である)。
f:id:bitterharvest:20161211080241j:plain

また、天井には前田青邨の監修で日本画家守屋多々志が描いた天井画の「白龍図」がある。
f:id:bitterharvest:20161211064802j:plain

次に説明を受けたのは、選仏場である。ここは僧のための座禅道場である。
f:id:bitterharvest:20161211065413j:plain

この右隣には、居士林があり、一般の人を対象に座禅が行われていた。この日、案内してくれた副住職の方も、民間企業に勤めているときに、この禅道場に通ったそうである。何か思うところがあったのだろう、企業をやめて、修行僧になり、今日に至ったとのこと、彼にとっては今のきっかけとなった場所であると感慨深げに話をしてくれた。

舎利殿に向かう道すがら妙香池を見る。岩が虎の頭に見えるそうだ。その気になれば何となくだが、
f:id:bitterharvest:20161211070333j:plain

さて、今日の目的である舎利殿に入る。舎利殿は神奈川県唯一の国宝建造物である。
f:id:bitterharvest:20161211070733j:plain

舎利殿は、入母屋造で、柿(こけら)葺である(屋根の下部が寄棟造、上部が切妻造のものを入母屋造という)。舎利殿は最初から円覚寺にあったものではないそうだ。尼寺の太平寺の仏殿を移築したもので、室町時代の建物と推察されている。1556年に安房の国の里見義弘が鎌倉を攻めたときに、太平寺も攻撃を受けた。青岳尼と本造聖観音菩薩立像が奪われ、青岳尼は、その後、里見義弘の正室となった。太平寺は廃寺となり、仏殿が円覚寺に移築されたそうだ。

なお、舎利殿関東大震災で倒壊したが、その写真が文化庁のホームページに掲載されていた。
f:id:bitterharvest:20161212071918j:plain

舎利殿の内部には、仏舎利(釈迦の遺骨)を安置した厨子がある。
f:id:bitterharvest:20161211072410j:plain
f:id:bitterharvest:20161211072458j:plain

舎利殿の周りには、鎌倉でよく見かける「やぐら」があった。
f:id:bitterharvest:20161211074456j:plain

舎利殿の奥の開山堂には、さらに建物があり、無学祖元の像が安置されていた。
f:id:bitterharvest:20161211073024j:plain

また、舎利殿の右横には禅堂があり、修行僧はここで座禅を組むそうである。7日間寝ずに座禅を組む修行も含まれているそうで(午後11時から2時まで横にならずに坐禅の姿勢のままで休む。座睡という)、ゆめゆめ臨済宗の僧侶になりたいと思ってはいけないと感じた。修行僧たちは、ここで、畳一枚での生活をする。座禅を組むときはその半分となる。円覚寺には25人の修行僧がいるとのこと。臨済宗のお寺の中では最大の人数だそうだ。
f:id:bitterharvest:20161211073818j:plain

この後、今日のもう一つの行事を楽しむため大方丈へと向かう。方丈は、大きさを表し、一辺が一丈、即ち、3メートルの正方形である。これが転じて、禅寺での住職の居室あるいは寺の住持を表すようになった。円覚寺の大方丈も、元々は、住職の居場所だったそうだが、禅を広めるために、一般に開放したそうだ。
f:id:bitterharvest:20161211084232j:plain
大方丈の裏には庭園がある。
f:id:bitterharvest:20161211084437j:plain

修行僧の足元にも及ばないのだが、その後、大方丈の横の建物で1時間ほどの座禅をして、帰路に着いた。

初冬にもかかわらず、真っ赤に色づいたもみじに迎えられて、普段見ることができない舎利殿、その内部、さらには、開山堂まで鑑賞することができ、さらには、初めての座禅を体験することができ、有意義な一日であった。

寒くなったらボルシチ

野菜売り場の店頭でビーツを見かけることが多くなった。先日のテレビによれば、昨年に比べて7倍も売り上げが増えたと野菜売り場の担当者が伝えていた。

ビーツは、英語ではbeetrootという。赤蕪とも聞いていたので、カブの一種かと思っていたが、そうではない。ビーツはアカザ科なので、ほうれん草や甜菜の仲間だそうだ。ビタミンや鉄分を多く含むということで、健康野菜として注目され、近年、使う人が増えてきたようである。

ビーツを使った料理と言えば、ボルシチだ。ロシア料理として紹介されることが多いが、本当は、ウクライナの家庭料理である。ソ連邦から分離したウクライナは、クリミア半島の帰属をめぐって、一昨年ロシアと激しく対立したことは、まだ、記憶に新しい。首都はキエフで、世界史の教科書にも出てくる都市だ。一度は訪れてみたいと思っている古都だ。

本格的なボルシチの料理を食べたのは、17年も前のことになる。同僚のロシア人、実は、ウクライナの出身だった彼を蓼科へ招待したことがきっかけである。そのときのお礼にということで、彼の家に招かれた時に、やはりウクライナ出身の奥さんの手料理であるボルシチをご馳走になった。素晴らしい味であったが、それにもまして、鮮やかな赤がとても印象的だった。

ビーツの話をあちらこちらで聞くうちに、色彩が印象に残っていた料理の思い出がよみがえり、一度作ってみたいと思うようになった。本来ならば、彼の奥さんからレシピを聞けばよいのだが、急に思い立ったので、日本語と英語の料理関連のホームページを手繰っての作品となった。本格的とはいかないかもしれないが挑戦した。

シチューを作るのと同じ要領なのだが、ビーツとサワークリームを使うことに特徴がある。以前にビーツを見かけたことのあるお店に出かけたが、残念ながら手に入れることができず、今回は缶詰を用いることにした。

例によって、今回の料理の仲間たちだ。
f:id:bitterharvest:20161210075910j:plain

主役のビーツが缶詰の中に納まっているのは残念だ。ビーツそのものは相当に硬そうな根菜なので、缶詰を用いれば下ごしらえの手間を省ける。最初のステップとしては悪くない選択だ。

最初は、スープの素を作る。カレー用の牛肉(250g)を湯通しして臭みを抜く。
f:id:bitterharvest:20161210082608j:plain

湯通しした熱湯は捨てて、牛肉が残った鍋に水(900cc)とマギーブイヨン(1個)を加えて、15分ほど煮る。
f:id:bitterharvest:20161210083000j:plain

この間十分な時間があるので、野菜の下ごしらえをする。セロリ(1/2本)とキャベツ(1/4個)は1cm幅に切る。トマト(2個)は熱湯をかけて湯むきをした後、ざく切りにする。ジャガイモ(2個)は一口大に切って水に浸しておく。

さらに、玉ねぎ(1個)とニンニク(1片)はみじん切りにする。
f:id:bitterharvest:20161210100921j:plain

別のフライパンを用意して、バター(2個、大さじ2程度)と玉ねぎ、にんにくを加える。
f:id:bitterharvest:20161210083749j:plain
これを、野菜に透明感が出るまで炒めて、赤ワインビネガー(大匙2杯)、砂糖(小匙1杯)、塩(小匙1/2杯)を加えて、ひと煮たてする(ビネガーが嫌いな場合には赤ワインで代用)。
f:id:bitterharvest:20161210084508j:plain

これを、牛肉を15分間煮た鍋に加える。
f:id:bitterharvest:20161210084635j:plain

さらに、キャベツ、セロリ、トマトを加える。
f:id:bitterharvest:20161210084737j:plain

そしてこれを10分ほど煮る。この間、時間があるので、ビーツの下ごしらえをする。
ビーツは缶詰半分ほどを用い、少し太めにせん切りにする。
f:id:bitterharvest:20161210085102j:plain

煮終わったところで、
f:id:bitterharvest:20161210085334j:plain

ビーツとジャガイモ、さらには缶詰のビーツの汁(半分)を鍋に加える。
f:id:bitterharvest:20161210085517j:plain

ジャガイモに味がしみ込んだ方がおいしくなるので、最初は中火でその後弱火にして30分ほど煮込む。
f:id:bitterharvest:20161210085642j:plain

出来上がったボルシチを器に移し、この上にパセリを加え、さらに、サワークリーム(90cc)と生クリーム(50cc)を混ぜたものを適量(大匙1-2杯)加える。
f:id:bitterharvest:20161210090245j:plain

サワークリームの味と、少しコリコリするビーツがまじりあって、おいしくいただけた。

少し残ったので、今朝もいただいた。ビーツの赤とサワークリームの白が混じりあい、ピンク色となったボルシチは見た目にもきれいだ。
f:id:bitterharvest:20161210090612j:plain

今度、機会があれば、同僚のウクライナ出身の奥さんにレシピを伺い、本格的なボルシチに挑戦してみたい。

秋深き伊豆修善寺を訪れる

11月末(27日―30日)に別荘の冬仕度をするために伊豆に出かけた。旅行する3日前(24日木曜日)には、東京では観測史上初の11月の積雪を記録した。我が家の庭もちょっとした風情を感じさせる冬景色になった。
f:id:bitterharvest:20161204183058j:plain

伊豆は暖かいところと思われがちだが、別荘のある地帯は箱根と同じように冬は厳しい。まだ、雪が残っているのではないかと心配して出かけたのだが、案の定、登っていくうちに道端の雪が増えてきて、駐車場の入口は吹き溜まりの雪で封鎖されていた。仕方なく、到着した日は雪かきに精を出すことになってしまった。ベランダにもたくさん残っていたので、記念に写真を撮った。
f:id:bitterharvest:20161204183725j:plain

次の日は伊豆修善寺の虹の郷を訪れた。昨日までライトアップしていたとのこと、まだ十分に楽しめた。日本庭園の近くのもみじは下り7分で、地面も朱色に染まっていて、深まり行く秋の景色を醸しだしていた。
f:id:bitterharvest:20161204193124j:plain
f:id:bitterharvest:20161204193154j:plain
f:id:bitterharvest:20161204193228j:plain

今年は、夏目漱石没後100年で、漱石にちなんだ話をあちらこちらで耳にする。NHKは「夏目の妻」を放映した。漱石の妻は悪妻として知られているが、尾野真千子は、癇癪持ちの漱石に耐えながらも、段々に自己を確立していくチャーミングな女性を演じた。表情がとても豊かで、ほのぼのとした温かみを感じさせてくれ、上手な女優さんだなと感心した。そのドラマの中で、夏目の胃潰瘍が悪くなり、修善寺の旅館で、妻鏡子の手厚い介護のもと療養する場面がある。そのとき滞在した旅館の一部(漱石が滞在していた部屋を含む)が虹の郷に移築されている。里山の佇まいを感じさせ、移築前よりも美しい背景の中に溶け込んでいるのではと想像させられる。
f:id:bitterharvest:20161204194249j:plain

日本庭園にほど近い匠の村はこれかららしく、まだ、緑が多かった。
f:id:bitterharvest:20161204200937j:plain

少し離れたところには、二季咲きの桜があったが、冬が迫っている冷たい空気の中、ただ寂しい。
f:id:bitterharvest:20161204201212j:plain

3日目は、修善寺の温泉街に出かけた。最初に、空海(弘法大師)が平安時代初期(807年)に開基した修禅寺を訪れた。最近の観光地は、外国人か老人で占められているが、ここは後者で溢れていた。
f:id:bitterharvest:20161204202040j:plain
修禅寺の庭園が運よく開園していたので、立ち寄った。
f:id:bitterharvest:20161204202151j:plain
f:id:bitterharvest:20161204202231j:plain
f:id:bitterharvest:20161204202335j:plain

伊豆は源頼朝が流された地のため、各所に源氏ゆかりの遺跡がある。修善寺も例外ではないが、しかし、暗い印象を伝えるものが多い。

二代将軍頼家は北条氏との政争に敗れて修善寺に流され、北条時政により入浴中に殺害された。彼の墓は温泉街の中心部の近くにある。
f:id:bitterharvest:20161204203206j:plain
そのそばには、母の北条政子によって、供養のために建立された指月堂がある。
f:id:bitterharvest:20161204203507j:plain
また、温泉街のはずれの山の麓に頼朝の弟の範頼の墓がある。範頼は義経とともに木曽義仲平氏の討伐に功績を挙げた武将である。二人とも、朝廷から官位を受けたために頼朝から疑われ追われる身となる。範頼は修善寺に幽閉され、梶原景時に攻められ、自害する。
f:id:bitterharvest:20161204204609j:plain

二人の武将の非業の死を悲しむように修善寺のもみじは鮮やかな朱色であった。
f:id:bitterharvest:20161204204752j:plain
f:id:bitterharvest:20161204204827j:plain