トップ «前の日記(2006-09-25) 最新 次の日記(2006-09-27)» 月表示 編集

日々の流転


2006-09-26 [長年日記]

λ. 誕生日

今日は誕生日。

最近時間が過ぎ去るのがずいぶん速い気がする。 こんな調子だと人生なんかあっという間に終わってしまうに違いない。 けど、それは流石に困るので、もう少し気合入れて色々頑張らねば。

λ. Build, Augment and Destroy, Universally. Neil Ghani, Tarmo Uustalu, and Varmo Vene

<URL:http://lambda-the-ultimate.org/node/1717>で知って何気なく読んだのだが、「うわっ、やられたっ」と思った。何故これを自分で思いつけなかったのかと思うと悔しい。

帰納的なデータ型を関手Fの始代数としてではなく、忘却関手 UF: F-Alg → C の極限錐(limiting cone) として特徴付ける。UFの錐(C,Θ)から極限錐(μF,foldF)への一意な射への対応を与えるのがbuild。この特徴づけと始代数による特徴づけは等しい。

\xymatrix{ & & & U_F(X,\varphi) \ar[dd]^{U_F(h)} \\ C \ar@/^1.5pc/[urrr]^{\Theta_{(X,\varphi)}} \ar@/_1.5pc/[drrr]_{\Theta_{(Y,\psi)}} \ar@{.>}[rr]^{\mbox{build}_{F,C}(\Theta)} & & \mu F \ar[ur]|{\mbox{fold}_{F,X}(\varphi)} \ar[dr]|{\mbox{fold}_{F,Y}(\psi)} \\ & & & U_F(Y,\psi) }

ここで、(C,Θ)が錐になっているために必要な条件は ∀h:(X,φ)→(Y,ψ). UF(h)∘Θ(X,φ) = Θ(Y,ψ) で、ちょっと書き換えると ∀h:X→Y. (∀φ:FX→X, ψ:FY→Y. h∘φ = ψ∘Fh ⇒ h∘Θ(X,φ) = Θ(Y,ψ)) となり、実はΘを hom(F-,-)→hom(C,-) と考えたときの strong dinaturality になっていたりする。

\xymatrix{ & \hom(FX,X) \ar[dr]|{\hom(FX,h)} \ar[r]^{\Theta_X} & \hom(C,X) \ar[dr]^{\hom(C,h)} \\ W \ar[ur]\ar[dr] & \mbox{pb} & \hom(FX,Y) & \hom(C,Y) \\ & \hom(FY,Y) \ar[ur]|{\hom(Fh,Y)} \ar[r]_{\Theta_Y} & \hom(C,Y) \ar@{=}[ur] }

もちろん、fold/build だけでなく unfold/destroy についても同様のことが言える。また、buildのさらなる一般化であるaugmentもモナドを使って同様に扱うことが出来る(が、こっちは結構ややこしい)。

【2006-11-15追記】augment周りのコードをHaskellで書いてみる

maoさんが<URL:http://d.hatena.ne.jp/m-a-o/20061107#p2>で「augmentを書こうとして挫折した。Monadに持ち上げるとこの(>>=)が定義できねー」と書いていたので、試しにHaskellで書いてみた。Control.RecursionモジュールはCategory Extrasのもの。 型クラスのインスタンスを定義するためにnewtypeでラップしているために、元の定義よりだいぶ複雑になってしまっている。あと、Category Extras でのFixpointクラスにあたるようなクラスを定義できれば、もっと扱いやすい定義が可能かも知れない。

import Control.Recursion
import Control.Monad

data T' h a x
    = Eta' a
    | Tau' (h x)

t' :: (a -> b) -> (h x -> b) -> (T' h a x -> b)
t' f g (Eta' a)  = f a
t' f g (Tau' hx) = g hx

instance Functor h => Functor (T' h a) where
    fmap f = t' Eta' (Tau' . fmap f)

newtype T h a = T{ unT :: Fix (T' h a) }

eta :: Functor h => a -> T h a
eta = T . In . Eta'

tau :: Functor h => h (T h a) -> T h a
tau = T . In . Tau' . fmap unT

ext :: forall h a b. Functor h => (a -> T h b) -> (T h a -> T h b)
ext f = fold (t' f tau) . unT

instance Functor h => Monad (T h) where
    return  = eta
    m >>= f = ext f m
instance Functor h => Functor (T h) where
    fmap = liftM
instance Functor h => Fixpoint (T' h a) (T h a) where
    inF  = T . inF . fmap unT
    outF = fmap T . outF . unT

augment :: Functor h =>
           (a -> T h b) ->
           (forall x. (T' h a x -> x) -> (c -> x)) ->
           c -> T h b
augment f theta = theta (t' f tau)

λ. 植芝理一のマンガみたいな人

MORILOG ACADEMY - 【図工】 特別講義2の記述を読んで、最上の日々(2006-09-25)と同じく「植芝理一のマンガみたい」という感想を持った。いやー、世の中には面白い人がいるものだ。

λ. 小泉首相退任

小泉政権が発足したのが2001-04-26だったから、それから大体5年半がたったことになる。その間には色々なことがあった。

  • 派閥推薦を受け入れない組閣
  • 経済財政諮問会議主導の予算編成と歳出削減
  • 「改革無くして成長なし」という言葉に代表される構造改革路線。不良債権処理の加速。景気の低迷と失業率の増加。
  • 産業再生機構の発足。ペイオフ解禁の延期。金融機関の保有株買い入れ。
  • 911の同時多発テロと、その後成立したテロ対策特別措置法に基づいた後方支援
  • 外務省改革と、田中真紀子と鈴木宗男の対立
  • クリントン政権下で冷え込んだ日米関係の改善
  • 電撃的な訪朝と平壌宣言。拉致被害者5名およびその家族の帰国。その後の日朝関係の行き詰まり。
  • 米国のイラク攻撃に際しての率先した支持
  • イラク特別措置法の成立と、それに基づくイラク復興支援
  • 靖国神社参拝をきっかけとした中韓二カ国との関係の冷え込み
  • 有事法制の成立
  • 東シナ海の天然ガス田開発に関する日中の対立
  • 道路公団民営化をはじめとする特殊法人改革
  • 年金改革
  • スマトラ沖地震と津波災害に対する支援
  • 郵政民営化と郵政解散
  • 狂牛病騒動
  • 北朝鮮によるミサイル発射実験
  • ……

評価は人それぞれだけど、振り返るとそれなりに感慨深いものもある。 個人的には「改革無くして成長なし」の誤りを認めずに退任してしまうことは残念だし、個別の政策には批判したい部分が多々あるが、同時に小泉政権は概ねよくやっていたのではないかとも思う。 ともあれ、5年半お疲れ様でした。

Tags: 時事
本日のツッコミ(全2件) [ツッコミを入れる]
ψ ささだ (2006-09-28 18:05)

おめ。<br><br>ところで2段落目は何語ですか。

ψ さかい (2006-09-29 09:12)

ありがとうございます。<br><br>> ところで2段落目は何語ですか。<br><br>なんだろう。圏論語?<br>慣れるとなかなか便利ですよ (^^;