めしレポ

 長きに渡り飯に謎の緊縮政策(意識だけ)をとっていたが、

近年「普通に面白いものを食べて食UXを上げたほうがコスパいいのでは????????????」と転換し、

異次元緩和を発動、学生身分を駆使して昼に飯に乗り出すようになったため、以下レポっす。

 なお飯選びの基準ポイントとして、 「国名・地域名を標榜できるもの」「(可能なら)ランチ営業をしているもの」 を採用しています。これは何故かと言うと、

  • 地域から日本周辺を外すことでUXが上げられる。

  • 流行を考慮しないので混雑を避けられる。行列や予約が不要。

  • ランチは回転率を上げて薄利多売にする傾向があるのでディナーより割安で食べられる。

 検索方法は (国名・地域名) ランチ とかでググるのが最適ですが、 次のようなサイトもあります。

e-food.jp

 見返してみると何故かいまんとこユーラシア周辺から出ていない。

ベトナムサイゴンフォー(新大塚

ビル地下にある。名前の通りフォー。サイドメニュー(生春巻きとか)とのセットがあった。 麺のボリュームがある。アクセス良好。

ベトナム:・チョップスティックス(高円寺)

ここもサイドメニューとのセットがある。↑よりパクチーが効いている印象。 飲食店街の一角で、他にも変な店がある。

シンガポール海南鶏飯(水道橋)

チキンライスはつけダレの味が濃いめではっきりしている。揚げ版のチキンライスがあるので、 食事としての充足度はある。土日はランチ関係なく日中同一やっているのでアクセスが楽。 夜一人で言ってチキンライスシュッと食って帰るなども可能。

マレーシア:クアラルンプール(本郷)

アクセスが制限されています[食べログ]

チキンライスは↑よりもタレの味は弱め。パクテーはスープが黒く漢方の味がして面白い。 スープが黒いのがマレー流、スープが透明なのがシンガポール流らしい。

タイ:ゲウチャイ(新宿)

トムヤムクンを食べた。スープはマイルドでインパクトはそんなにない。 立地がよくてメニューも豊富なので使い勝手はいいかも(一人で夜行っても問題なし)

タイ:ソムオー(新大久保)

ソムオー 新大久保店

食べログ ソムオー 新大久保店

ランチを食べた。安くてメニュー豊富な印象。ランチについてるトムヤムスープは↑よりも刺激が強い。

タイ:タイダイニング(早稲田)

アクセスが制限されています[食べログ]

ガパオライス的なセット食べた。学生街だからか値段の割にボリュームがすごい。

中華(蘭州ラーメン):火焔山(池袋)

アクセスが制限されています[食べログ]

シシカバブ的な肉を一本から注文できるので気軽にタンパク質を補給できる。麺はちょっと後半飽きるかも。 蘭州麺は牛だしとパクチーの芳香を味わう食べ物ということでいいですか?

中華(蘭州ラーメン):馬子禄(神保町)

馬子禄 牛肉面

食べログ 馬子禄 牛肉面

蘭州ラーメンのみ。↑より完成度は高いと思う。初回時ラー油が入りすぎてて味がわからなくなってたので、 ラー油別皿にしてくれるように頼み、まず素でスープを飲むのを推奨。 もとのスープの油分が少ないのでラー油の効きが強い。

ロシア:海燕(春日)

アクセスが制限されています[食べログ]

ビーフストロガノフは酸味があってやや軽め。洋食ナイズされている気もする。 ロシアンティーのジャムがちゃんと別皿で出てくる。店内は狭いが綺麗で居心地が良い。 ピロシキも食べられる。

ロシア:ろしあ亭(神保町)

アクセスが制限されています[食べログ]

ボルシチとつぼ焼きクリームはここが自分の中のスタンダード。うまい。 ボルシチは甘く(トマトが主張しすぎてない)、つぼ焼きは濃厚(カロリー濃度高そう)。 ディナーも一度行ったが前菜がうまくてよかった。 繁忙期にLOギリギリに行くと入れないことがあるので注意。

ロシア:サラファン(神保町)

サラファン

食べログ サラファン

丁寧な接客、というより店が地階で狭いので客の動線をコントロールしないと厳しい。 つぼ焼きを食べたが、チキンが多く入っていてクリームが負けており、個人的にはろしあ亭のほうが好み。

ロシア:スンガリー(新宿三丁目

格調高め。値段も高め。何食ったか忘れた…確かつぼ焼き。 ロシアンティーのジャムが多種類出てきて面白い。 場所が超絶わかりにくい。ディナー用の別店舗があるらしい。

ロシア:チャイカ高田馬場

チャイカ

食べログ チャイカ

ビーツが後乗せで入っているものの、ボルシチがほぼトマトベースになっている。 ただし濃厚なので食事としては充足度高い。ランチ営業長め+アクセス良好。 メインが何かしらのソテーだったりで洋食ナイズされているが、普通の食事としてはおすすめ。

ロシア(グルジア):カフェロシア(吉祥寺)

Cafe RUSSIA 吉祥寺

食べログ Cafe RUSSIA 吉祥寺

カフェ飯と油断していたところ大皿になみなみと注がれたボルシチがでてきた。 ビーツがガッツリ入っていてきちんと赤い。ちょっと肉の出汁が弱いかも。 つぼ焼きクリームもちゃんとクリームしていた。 「毛皮のコートを着たニシン」(ハッシュドポテトとビーツの間にニシン漬けを敷いたもの)も食える。 なにげにランチ営業がかなり長い。都心からやや遠いが穴場。

クルディスタンメソポタミア(十条)

アクセスが制限されています[食べログ]

地域一帯定番のシシカバブは大型の焼き鳥っぽい味。味もちょうどいい。 羊飼いサラダ(生野菜と角切りトマトを和えた奴)は他店の相当品よりも食べやすく感じた。 唐辛子、ラー油を多用しているように見えるが、種は除いてあるのかそれほど辛くはない。 ヨーグルトとナスを和えた不思議な冷製スープ(ほぼ半固形)があり、不思議な味。

ブルガリア:トロヤン(銀座)

ランチビュッフェ。ヨーグルトが多用されている。↑とはまた違うヨーグルトスープ(こんどはちゃんと液体)がある。 羊飼いサラダに似たトマト角切り生野菜サラダがあるが、チーズがかかっている。乳製品プッシュ。 ヨーグルトとチーズの中間みたいなやつがポテサラの地位にある。ムサカなるひき肉オーブンを食べたが、 肉の味がトルコのイスケンデルに似ている。で、やはりヨーグルトソースがかかっている。 メゼはなかった。コスパは良い。

トルコ:ヒサル(大久保)

トルコ料理レストラン ヒサル

食べログ トルコ料理レストラン ヒサル

ランチと夕食一回ずつ。駅からアクセスもよく、コスパもいい。 フムスもある。白濁するアニス酒のラクも飲める。メゼは食べてない。 イスケンデルはちょっと味がくどいかも。

トルコ:ボスボラスハサン(新宿二丁目

アクセスが制限されています[食べログ]

夕食。↑よりもちょっと格調高い雰囲気。でも高くはない。 ラム肉がうまかった。肉料理の肉の味付けが結構濃い気がする。ラクもある。 塩味のアイラン(飲む塩ヨーグルト)があり、確かに味の濃い料理と合う。塩分過多なりそう。 メゼ・ペースト系も満足できる味とボリューム。 トルコ料理いろんなメゼをパンでいじりながら酒を飲んでればだいたい完成しそう(偏見)。

イラン:アラジン(六本木)

アクセスが制限されています[食べログ]

ランチビュッフェをやっているのでたくさん食べられるが、なかなか料理の癖が強い。 行ったときは日本人がほとんど居なかった。

シリア:ゼノビア(広尾)

ランチを食べた。前菜のサラダだけはちょっと味がキツく、好き嫌いが分かれそう。 それ以外はだいたい食べやすくボリュームもある。 個人的にランチプレートについてるオリーブと野菜の和え物がうまくてすき。 限定10食と書いてあるがランチ終了ギリギリに行っても割とまだ頼めたりした。 店内が凝ってて趣がある。高UX。

スウェーデン:リラ・ダーラナ(六本木)

北欧料理リラ・ダーラナ

洋食と違う味付けが面白い。ボリュームもそこそこあって安くて美味しい。田舎っぽい味。 ピクルスの酸味がところどころ感じられてメインの味を中和している。

チェコ:セドミクラースキー(代々木上原

Sedmikrasky(セドミクラースキー)

これも洋食とは違う味付け。メニューは少ないが、メイン皿料理が安心する味で完成度高い。 ローストポークザワークラウトと茹でパンのディッシュがすき。完璧な1皿。 天気のいい日にベヘロフカを舐めながらこれを食べることで優勝できる。

クロアチア:ドブロ(京橋)

Dobro

食べログ Dobro

これも洋食とは微妙に違う。ランチは値段の割に格調高い食事ができる。海産物が推しらしい? ボリュームは普通。ランチ時間が短いのでアクセスは厳しめ。店の構造がかっこいい。

ハンガリー:パプリカドットフ(白金高輪

パプリカ ドット フ

食べログ パプリカ ドット フ

また洋食と別物な家庭料理。店名通りパプリカを推している。 味は優しいが、ちょっと印象が弱いかも。豚肉が名物(国宝)らしい。

イスラエル:タイーム(恵比寿)

アクセスが制限されています[食べログ]

ランチでイスラエルケバブ(ピタサンド)みたいなのが食える。よくあるケバブ屋の奴と比べると フムスが入っている、味付けの方向性が異なる、などの違いがある。

イスラエル:デビッドデリ(六本木)

アクセスが制限されています[食べログ]

羊飼いサラダ(トマトときゅうり角切り)あり。 ミートボールシチューを食べたが、そんなに特徴を感じなかった。 レストランかと思っていたら一階はカフェっぽい雰囲気でスイーツもあったのでその向きの利用もよさそう。

エジプト:コシャリ屋さん

エジプトめしコシャリ屋さん

キッチンカーなので出没地要確認。最近食えてない。 コメ、パスタ、スパゲッティ、豆などの穀物系を雑に混ぜてチリソースとフライドオニオンをゴシャッとした何か。 ほぼでんぷん質のジャンク飯だが満足度はある。プロテインを添えろ。

とりあえずのランチおすすめ:

確率解析すごい

 気まぐれで伊藤積分と伊藤公式を理解したいなーと思い立って いくつかの本を眺めていたのですが、

確率微分方程式入門 ―数理ファイナンスへの応用― (数学のかんどころ 26)

確率微分方程式―入門から応用まで

理学オタクの性として結局行間が気になってしまい、図書館で

確率微分方程式

確率過程入門 (確率論教程シリーズ)

などをチラ見してウンウンした結果、最終的に「アッアッアッこれはやばいやつや…」となって

巨大な憧憬と将来課題が発生してしまったのでその感想文を書きます。(結局以上の本ほとんど読んでない)

 ちゃんとした議論は今後勉強してなんとかやっていく…というか同志いませんか…?

 というわけで、今把握している限りのおおまかな概要を書いてみます。

 測度論的確率論は、可算要素の「かつ、または」をゆるしたBoole的な束構造を持つ事象の集合に、 確率を整合的に(可算加法的に)割り当てることで表現されます。 この事象束をσ加法族といって、通常ある集合の部分集合族として表現されています。ここでは\mathcal{F}と書きましょう。 この束構造を集合演算で表現した空間を可測空間といい、さらに測度が割り当てられているときに確率空間と言います。つまり3つ組(\Omega,\mathcal{F},P)です。ここで\mathcal{F}\subset \mathcal{P}(\Omega)です。

 確率変数とは、可測空間の間の写像で、その逆像がσ加法族の準同型になるものを言います。例えば、X:(\Omega_1,\mathcal{F}_1)\rightarrow (\Omega_2,\mathcal{F}_2)が確率変数であるためには、X^{-1}:\mathcal{F}_2\rightarrow \mathcal{F}_1が束構造の準同型になっている必要があります。 このσ加法族の準同型という構造は、もともと束構造に事象としての意味があることを考えれば自然なことです。 確率変数は可測写像ともいいます。今は実数値の確率変数を考えます。 実数側のσ加法族は、通常開集合を含むようなものを取ります(これをボレル族といいます)。

 実数値確率変数であれば、ルベーグ積分によって期待値を考えることができます。これを \mathbb{E} [ X] と書きましょう。また、一般に条件付き確率、条件付き期待値を、 \mathcal{F}の部分σ加法族\mathcal{G}\subset \mathcal{F}に対して考えることができます。 条件付けにつかう観測が、\mathcal{F}よりも小さい、つまり部分的な観測であることを考えれば自然なことです。 これを\mathbb{E} [ X|\mathcal{G}] と書きましょう。

 確率過程は、適当な時間パラメトライズされた確率変数の族X(t):\Omega\rightarrow \mathbb{R}といってよいのですが、 この場合は時間の経過とともに新しい現象が起きる=新しく問い合わせ可能な事象が増えていくので、 背後にあるσ加法族自体が時間とともに大きくなっていくと考えるのが自然です。つまり時間順序に従った包含関係にあるσ加法族の族があると考えます。

\{\mathcal{F}_t\}_t,\mathcal{F}_s \subset \mathcal{F}_t \; (s \le t)

 これをフィルトレーションといい、確率過程X(t)がフィルトレーションに適合する、とは、時刻tの確率変数X(t)\mathcal{F}_tについて可測なこととします。 確率変数X(t)に関する性質の問い合わせが時間t以降には可能になっている、と考えれば自然なことです。

 確率過程を考えるのはもちろん何か表現したり解析したりしたいものがあるからですが、 それらに連続性を期待できる場合があります。そこで連続な確率過程というものを考えます。 定義としては、確率1で(\lambda t.X(t)(\omega))がtについて連続になるようなものです。 さらにここから二種類の確率過程のクラスを考えます。

 ひとつはマルチンゲールといって、 任意の時刻sからのt>sまでの条件付き増分の期待値がゼロになるものです。 つまり、ある意味でフェア、任意の時点から次の瞬間どちらに転ぶかは期待値の意味で50:50であるような過程です。

\mathbb{E}[M(t)-M(s)|\mathcal{F}_s]=0

 もう一つは局所有界変動、つまり任意の時間区間で、変動が有界になるものです。 変動とは、直感的にはその関数が正負にどれだけ動いているかという量です。

|| A(\omega)||_{[s,t]} \lt \infty

 そして確率解析が扱う過程として、この2つが組み合わさったものを考えます。

X(t)=X(0)+A(t)+M(t)

 これをセミマルチンゲールと呼びます。 セミマルチンゲールのこの表式は、実は曖昧さなく決まります。 局所有界変動かつ連続マルチンゲールな確率過程は、定数しか無いことが知られているためです。

 セミマルチンゲールはいわば、「概ねゆるやかに推移していく」A(t)と、「平均ゼロだが激しく震える」M(t)による過程です。 震え、といいましたが、確率過程の「激しい震え」をどのように評価すればいいでしょうか? マルチンゲールの変分dM=M(t+dt)-M(t)を考えましょう。これは平均すればゼロですが、 分散を計算するときのように、二乗して総和をとったらどうでしょうか?

\sum_i dM_i^2

もし、このdMdt程度であれば、\sum_i dt^2は細分極限で消えてしまいます。 しかし一般に確率過程では、「激しく震える」部分が蓄積されてのこります。 これは標語的な言い方ですが、停止時間などを駆使することで、マルチンゲールMに対して

\langle M \rangle = \int dM^2

のようなものを定義することができます。これは同一のMだけではなく、一般に

\langle M_1, M_2 \rangle =\int dM_1 dM_2

のようなものを定義することができます。このとき\langle M,M\rangle = \langle M \rangleです。これを二次変分過程と呼びます。

 そして二次変分過程は、局所有界変動になります。つまりマルチンゲールの微小変化を掛け合わせて蓄積すると局所有界変動に戻ってきます。

 さて、様々な文脈で、確率過程で確率過程を積分したい、ということが出てきます。 もし確率過程ではなく関数であれば、これはリーマンスティルチェス積分を定義したい、ということになります。 つまり、関数f,gにたいして \int f dgを考えればよいです。 これはどのように構成したかというと、時間を区分分割して、gの差分とfの区間代表値の積の総和の極限を取りました。

 \int  f dg  = \lim_{|dt|\rightarrow 0} \sum_i f(s_i)(g(t_{i+1})-g(t_i)),\; (s_i\in [ t_{ i } ,t_{ i+1 } ] )

f,gがある程度良い性質を持っていれば、(例えばfが区分的連続でgが連続有界変動) このときの代表値のとり方や区分分割のとり方によらず、細分極限で積分値が決まります。

 確率過程のときはどうでしょうか? もし局所有界変動であれば、普通の関数のときと同じことを\omegaごとに行えば大丈夫です。 しかしマルチンゲールのときはどうでしょうか?今度は有界変動ではありません。 そして実はこのせいで、同じようにリーマンスティルチェス積分をしようとすると、 被積分過程の区間代表値の選択に依存してしまうのです。 したがって、区間代表値のとり方を固定しなくてはいけません。 これを各区間の左端に固定した結果として伊藤積分が定義されます。

I_M(\phi)(t)=\int_0^t \phi dM=\lim_{ |dt|\rightarrow 0 } \sum_i \phi(t_i)(M(t_{i+1})-M(t_i))

マルチンゲールによる伊藤積分は常にマルチンゲールになることが知られています。

そして、伊藤積分と二次変分過程に次の関係が成り立ちます。

\langle I_M(\phi),I_N(\psi)\rangle(t) = \int^t_0 \phi\psi d\langle M,N\rangle

おわりー!(CV鳩羽つぐ)

 以上はいくつかの本を見て拾った事実の羅列ですが、おそらくピンと来ないと思います。

 そこで、これらの「解釈」、オハナシをしたいと思います。

これ本当は普段(物理とかの)フワッと議論をdisってる身からすると言動不一致じゃねぇかと言われそうなんですが、

 不完全な言い方であることは重々承知である、という但し書きはした、という言い訳をした上で(?)

 あるいは以下の標語的なオハナシが上のように実現されることこそが重要、という立場なんだ、とした上で(??)

 おもくそフワッとした解釈をしようと思います。許せ。

 マルチンゲールと局所有界変動は、「制御できない純粋なランダム性」と「大まかな挙動」を表しています。 この内、マルチンゲールが問題です。マルチンゲール微分できません。 先に述べたように、非自明なマルチンゲール有界変動ではありませんから、 どれだけ短い時間で見ても、ずっと確率的に揺らいでいるために微分が定義できないのです。 しかし現実に確率過程で表現したい系は、何らかの発展方程式を持っていて、つまりどういうわけか「微分」できて、 「制御できない純粋なランダム性」つまりマルチンゲールの、「微分」に毎時影響されて発展しているように見えます。

ここでやりたいことはいくつかあります。

手元に別の確率過程や、あるいは過去の観測結果によって現在の系への働きかけをするためのポートフォリオがあるかもしれません。 それによって、このマルチンゲールを変換ないし、相互作用させた結果を知りたいとしましょう。 これは毎時毎時の相互作用、ないし操作ですから、発展方程式を書き換えることになります。 あるいはマルチンゲールによるノイズ源の影響下で、系の発展方程式自体を提案しているという状況かもしれません。 いずれにせよ、ここでは系の発展方程式に現れる、マルチンゲールの「微分」に、 手元にある確率過程を「掛け算」する、という操作をしたいわけです。 いわば標語的には

\phi(t) \frac{d}{dt}M(t)

が意味をもってほしい。しかし\frac{d}{dt}M(t)を得ることができないので、実際にはこの蓄積

\int_0^t \phi(s) \frac{d}{ds}M(s) ds = \int_0^t \phi(s)dM(s)

を定義することで相応のことを実現するのです。これが伊藤積分です。 つまり伊藤積分は、マルチンゲールの「導関数への掛け算」です。

もう一つ、ランダム性は、例えば熱浴の温度のように、「パワー」があります。 言ってしまえばランダム性の強さみたいなものです。これをどうやって測ればいいでしょうか? つまり、マルチンゲールの「微分」係数の大きさ(2乗)がほしいのです。 もっというと、微分」のL2内積がほしいのです。 マルチンゲール微分は、ある瞬間の、「時間あたり系に加わる確率ゆらぎ」のようなものでしょうから、 もし複数のマルチンゲールがあれば、その瞬間の「時間あたり系に加わる確率ゆらぎの相関」みたいなものが計算できてほしいのです。 これを自己相関にとれば、パワーにほかなりません。 しかしここでもやはりマルチンゲール微分できない。 そこで標語的に \int^t_0 dM^2,\int dM_1 dM_2に相当する二次変分過程

\langle M_1, M_2 \rangle(t)

を使います。これは標語的に\int^t_0 dM_1 dM_2と言いましたが、これによって本当に実現したいものの気持ちは

\int_0^t \frac{d}{ds}M_1(s) \frac{d}{ds}M_2(s) ds

です。つまり二次変分過程は、マルチンゲールの「導関数のL2内積です。

それでは、

\langle I_M(\phi),I_N(\psi)\rangle(t) = \int^t_0 \phi(s)\psi(s) d\langle M,N\rangle(s)

という公式は一体なんでしょうか? これは数式の見た目が内積の記法に似ていますね。 この式がtで微分できたら一体どんな式になるでしょうか? ここまでにゴタゴタ抜かした「オハナシ」が成り立っているとしましょう。

左辺の微分

\frac{d}{dt}\langle I_M(\phi),I_N(\psi)\rangle(t)

=\frac{d}{dt} (\int_0^t \phi(s)\frac{d}{ds}M(s) \psi(s)\frac{d}{ds}N(s) ds)

=\phi(t)\frac{d}{dt}M(t) \psi(t)\frac{d}{dt}N(t)

右辺の微分

\frac{d}{dt}\int^t_0 \phi(s)\psi(s) d\langle M,N\rangle(s)

=\frac{d}{dt} \int^t_0 \phi(s)\psi(s) \frac{d}{ds}\langle M,N\rangle(s)ds

=\phi(t)\psi(t) \frac{d}{dt}\langle M,N\rangle (t)

= \phi(t)\psi(t) \frac{d}{dt}M(t)\frac{d}{dt}N(t)

!?

自明では??????????

というわけで確率解析をやりましょう(同志募集中)。

ベクトルバンドルのリー微分

先日 http://www.asahi-net.or.jp/~fu5k-mths/pdf/bundle_lie_and_noether.pdf

を書いたのですが、ベクトルバンドルのリー微分だけ抜粋します。

解析力学は学科ではドチャクソ重要な理論で、それは場のバージョンでもそうなのですが、 物理学では往々にして

「~という議論ができるんですよ(シンプルなコア議論)」

(永遠の開き)

「あの時のコア議論をここで応用します。こんなアナロジーができますね~」

ということが発生するのですが、

そのアナロジー全然自明じゃねえよ

という気持ちになることがあり、場の解析力学はそういう例の一つです。あとグラスマン数の経路積分とか… 基本的なパターンをやっとけば、その任意の変種がいつでもwell-definedでしょみたいな…願望でものを語るのをやめろ… 場のハミルトン形式もアレですよね…まぁあのくらいは汎関数微分とかをきちんと書けばなんとかなるかもですが…

で、長年場のラグランジュ形式の何が不満だったかというと、 Noetherの定理がクソほどもわからない…「場の理論 Noether」とかでググってもらえると、 いろんなのが出てくると思うんですが、だいたい「次の微小変換を考える」とか言ってこんな式が出てきます。

 \displaystyle{
x\mapsto  y = x + dx \\
 \phi(x)\mapsto  \phi(y)=\phi(x)+d\phi
}

は?????????????????

ってなりませんか?僕はなったし、これだから動的型で数式書くやつは何をやっても(ry

物理学者が場の量書くとき、だいたい型書かないじゃないですか、まぁそれは珍しくないんですけど、 場の量が何から何の関数なのかわからんし、xって時空点なのか、座標なのかもわからんし、\phiって成分なのかベクトル値なのかもわからんし、故に変換というのが座標変換なのか幾何的な能動変換なのかもわからないし、 まず\phi(x)って書いたときに、\phi(x)を値まで評価したものが移されるのか、\phi,xって記法が何らかの量化制約を持ってるのかもわからんわけです。 ちなみにわかった今だからいいますけど、これ本当はここで場の量(バンドルセクション)である\phiって記号が登場しちゃいけないんですよ。この変換は一義的にはセクションの変換じゃなくてバンドル自体の変換なので。

それで、これが一体なんなのかわからん限りには、場Noetherがなんであんな形しているのかもわからんわけです。これがベクトルバンドルの自己同型変換の無限小版として完全に幾何的な能動変換として書けることに気づいてブチ切れたので、以上のノートを書きました。

結論からいうと、ベクトルバンドルの自己同型変換生成子みたいなものを定義することができて、それは上のようなものをちゃんと定めるし、Noetherの定理はそこから出てくるものです。

まずベクトルバンドルを定義する必要があるのですが、wikipediaを見て。

ベクトル束 - Wikipedia

各点にベクトル空間がついてて、局所的に成分表示できるようなもの、と認識してください。 ここで「なんや、単なる多成分場やんけ」と思うのはやめてね…多様体がいつでも\mathbb{R}^nの同次元部分集合と思うが如き…

いや実質局所的にはそうなんですが、我々はいま解析力学をやっていて、解析力学座標普遍であることを散々強調するわけです。じゃあちゃんと自明化写像によらないということ、それがどういう意味でかというのをきちんと述べるべきであって、多様体の多の字も出ない教科書は滅ぼすしか無い…

で、バンドルというのは、基本的に底空間への射影\pi:E\rightarrow Mというのも持っています。 なので、ベクトルバンドルの射がこれについての可換図式を満たすことは自然なことです。 底空間の写像にファイバーの行き先が整合的であるということですね。

そして先の謎\mapstoは、まさにこの可換図式なのです。\phiが出てくるのは間違った書き方と言いましたが、正しい書式はこう。

\displaystyle{
g:E_1\rightarrow E_2\\
v\in \pi^{-1}(x)\mapsto g(v)\in\pi^{-1}(f(x))\\
f:M_1\rightarrow M_2\\
x\mapsto f(x)
}

\pi^{-1}(-)は射影の逆なので、各点ファイバーです。これなら秒でわかる。型注釈、所属集合注釈を惜しんではいけない。

ほいで、では場Noetherはなんだったのか、という話になるんですが、要するにリー微分なんですよね。

これは有限次元ラグランジュ理論の時もそうで、自由度空間に対する変換があって、そのリー微分が、 ラグランジュ方程式比例項とNoetherモーメントの微分で書ける、というのがNoetherの定理なのです。

ところで、ベクトルバンドルのリー微分ってなんでしょうか。なんか上手い定義が必要です。 一番馴染みあるベクトルバンドルといえば、ベクトル場、テンソル場、微分形式ですね。 これらには多様体の1パラメータ変換群(の生成子)があれば、リー微分が定義できます。

f:M\rightarrow N多様体の可微分写像としましょう。これの微分がベクトル場のなすベクトルバンドルの射を決めます。それは次のようなものです。

\displaystyle{
df:TM\rightarrow TN\\
v^i\partial_i \in TM_x \mapsto \frac{\partial f^i}{\partial x^j}v^j \partial_i \in TN_{f(x)}
}

これはfを座標空間に引き戻してからそれで微分した微分係数を使いますが、座標によらず定義できます。 これが無限小だとしましょう。十分小さな[tex;\epsilon]を用意してfの座標表示がx^i\mapsto x^i+\epsilon X^iとなります。 X^iはこの変換の生成子です。するとベクトル場の成分変換は

\displaystyle{
df:TM\rightarrow TM\\
v^i\partial_i \in TM_x \mapsto \left(\delta^i_j+\epsilon \frac{\partial X^i}{\partial x^j}\right)v^j  \partial_i \in TM_{x+\epsilon X}
}

これはベクトルバンドルの微小変換が \frac{\partial X^i}{\partial x^j}のような行列で実行されていることを意味します。

しかし、これは変換規則がファイバーの自己変換のようにはなりません。\partial_iがあるせいで、場所に依存する自明化の変換を施すと 変換行列の微分項がでてきます。

逆に言えば、これを組み込んだ変換規則をもつような行列を考えれば良いことになります。ベクトルバンドルの変換なので、 底空間をどれだけ動かすか、という底空間のベクトル場と、ファイバーの成分変換行列の直和で、バンドルの局所自明化ごとに与えられるものを考えます。

\displaystyle{
\{(X,M_a)\}_{a}, X \in \Gamma(TN_{U_a}),M_a\in \Gamma(U\times \mathbb{R}^{n\times n})
}

ここで、a\rightarrow  bのフレーム変換行列:つまりGL(n)値場\Lambda:U_a\cap U_b \rightarrow GL(n)に対して、 次のように振る舞うことを条件に課します。

\displaystyle{
(X,M_b)=(X,(X\Lambda)\Lambda^{-1}+\Lambda M_a \Lambda^{-1})
}

ここでX微分として作用しています。これを課すことで、自明化によらないベクトルバンドルの微小変換を実現します。 では実際にリー微分しましょう。リー微分は、場の量に対して、ある点の値を無限小変換で別の場所に持っていき、行き先にすでにあった量との比較をします。 V\in\Gamma(E)ベクトルバンドルのセクション、つまり場の量としましょう。局所標構(基底ベクトル場)e_iを使って、V=v^i e_iとなっているとします。

\displaystyle{
v^i(x)\mapsto v^i(x)+\epsilon M^i_jv^j(x)
} から \displaystyle{
v^i(x)\mapsto v^i(x+\epsilon X)
} を引いたものなので、一次のオーダーで、 \displaystyle{
-(Xv^i)(x)+M^i_jv^j(x)
}ベクトルバンドルのリー微分となります。実際、Mの変換規則が、これをwell-definedにしています。

あとはノートを参照してください。

やっておいて気になっているのは、物理学者が一体場の量をなんだと思いっているのかということです。 実のところ合意がないような気もします。僕はベクトルバンドルの概念が気に入っているので、それだと思っているのですが、 本気でただの多成分場と思っているのかもしれない。つまり大域的自明化が可能な。

しかしその一方でゲージ場などで自明化によらない云々というのを後付けで導入したりもします。 ただゲージ場はゲージ群なので、一般的なフレーム変換ではないというのはありますが…

ギターキット/Elm/就/...

1.エレキギターを取得しました。

 高品位なオーディオを吐くDAWシーケンサがいくらでも手に入る今、なぜ人は楽器なんて面倒なものをやるのでしょうか??????? 音楽が情動のメディアであるように、楽器も一種のメディアなのかもしれません。肉体と音の間の。 とりあえず人間には可制御な物が増えると精神に良いという経験則があります。リアタイだとなお良い。

 そんな訳で、そこそこ取り回しの良い楽器というのが手慰みでほしくなるのですが、これには様々な制約が存在します。 当然のように集合住宅に住んでいますから、生楽器はアウトです。 僕は相対音感はともかく絶対音感が極限まで壊滅的なので音程がアナログな楽器はダメです。 ほいで音域が辛いのもいやだし、コードも弾きたい。さらに左利きなので鍵盤が全体的に辛い、となるとエレキギターになります。

 というのはこじつけで、単に友達がギターもってて僕も欲しいなーと思っただけです。 このように人は思い出すついでに様々な文脈を捏造できる。

 僕は仕組厨なので自作厨をしばし合併症として発症します。 で、Googlingするとギターキットというのがあり、無塗装ボディにバラバラのパーツがセットになったやつが出てきます。 はい、君に決めた。

ammoon 未完成のDIYエレキギターキット バスウッドボディー ローズウッド指板 メイプルネック特別デザイン ヘッドストックなし

なんかHOSCOとかいうメーカーの作例は結構転がっているのですが、 こっちのメーカーまだ新しいのか全然でてこない... 販売元は深センっぽい? まぁ製造も中国でしょうね。 ちなみに決めた理由はヘッドレス/24フレット/3PUあたりです。 軽い/音域広い/音色広い、といったとこでしょうか。ミーハーですね。で、その結果。

f:id:phykm:20180509203725j:plain

 塗装は...めんどい...今度で...

 新興中華キット(?)ということで、まぁ様々な事象がありました。

 まずボディーにピックアップ3つとブリッジを固定するんですが、 ピックアップ2つとブリッジが入らないんですよね。サイズ的に。 ボディーにこう、くぼみを入れるの、なんか座くりとか呼ぶらしいですが、 座くりのエッジが甘すぎて、四角い形のダブルコイルピックが普通に入らない... シングルコイルピックもなんか妙に膨らんでいて入らない... さらにブリッジもサイズがギリギリ過ぎて入らない... これフローティングブリッジ(バネで弦張力と釣り合わせているだけで固定されていない)の一種なので、 本当は可動範囲だけの隙間があかないといけないんですが...。 まぁそういうのもあるさ、とカッターとナイフとリューターでゴリゴリして入れました。

 しかしブリッジにはもう一つトラップがあり、そのままつけるとなんと弦長が足りない... オクターブチューニングできません。しかたないので、更に座くりを広げて少し下につけました。

f:id:phykm:20180509203742j:plain
道具がないのでカッターとリューターで削ったことによる手作り感

それから、ネック先端に弦をロックするテールピースがぴったりつかない...同等品の

https://www.amazon.com/ammoon-6-string-Headless-Electric-Locking/dp/B01N6C99RU

にまさにそういうトラップによる悲劇が書かれており、とりあえず噛み合うまで削りました。

   回路ボックスのフタがネジ止め式ですが、明らかにネジ穴の位置を間違えている...

f:id:phykm:20180509203755j:plain

 これ、止めてある二箇所には最初穴が空いてなかったんですよ。空いている二箇所はよく見ると穴の向こうが虚空で、 要するにネジが刺さるための土台が無い...。まぁこの程度は別にどうということは...

いやさすがに組み立てればわかる欠陥ばっかやんけ、ちゃんとチェックして、どうぞ。

   ギター組み立てのネックは、いろいろ調べたところ、まさにネックらしいのですが、 キットについてここだけはちゃんとしてました。ボディとネックがめちゃくちゃタイトに刺さる。 ネック角度が甘いと弦が指板から落ちるなどの致命的な欠陥になるのですが、そのようなことは起きませんでした。

 演奏感ですが、ウーン、よくわかりませんね(ギターが弾けるとは言っていない)。 実際Youtubeなど探すと、安ギターと高級ギターの音色比較、みたいな動画も結構あって、 見てみると、たしかに高いやつのほうがくっきり鳴ってる気はするな…?という感じはありますが、 いかんせん楽器の特性上エフェクターとかでいろいろ変わるものだし、 それらと比べてこの素組みギターがどうかというのはよくわからない... というかそもそもエフェクターもアンプももっていないので、 現状オーディオIFでDAWを通してディストーションをかけるという遊び方になっており、単純比較が困難。 塗装したらまた音色変わるかな?

 いまのところ音域広いし、コンパクトで弾きやすいし、不満はないですね。 自分で組み立てたということで、ギターの勝手もわかり、 なんか起きてもまー作った時みたいに改造すればいいやとなる心理的障壁のなさもよい。 エレキギター、もうとにかくただのアナログ回路なんですよね... 要するにアナログ回路わかっていれば無限に改造できるという...

 エレキギター自作勢というのも特に海外などに一定数存在するようで、 Amazon.comとかだと普通にもっといろんなメーカーがバラパーツを売ってたりします。 弦張力に耐えるられる程度にボディとネックをつなげて、 ナットの調整範囲内で弦をまっすぐつければ何でもギターになる。 あとはピックアップだけギター用のやつを買って、出力はアナログ信号処理、という流れなので、 いい感じにアマチュアにも届く技術水準といえます。

   いずれ改造にも手を付けたい。

2.Elmに入門しました。

 以前HasteとかいうHaskellによるAltJS?を触ったのですが、またHaskellっぽいJS?をちょっと前に知りました。 正確にはJSではないのですが...

home

はじめに · プログラミング言語Elmの薄い本

まんまHaskellやんけ。

 いや、ところどころ違うのですが(後述)、一般構文は殆どHaskellとかOCamlのそれですね。REPLすらある。 最大の特徴は、これは汎用プログラミング言語ではなくてDSLで、 The Elm Architectureに従ってWebページを記述するのに特化している点でしょう。 プログラムのエントリポイントの型がそもそも独自のものに決められていて、 それが要求するフィールドを定義する、というスタイルのようです。 コンパイルするとページをまるごと吐くので、HTML/JS/CSSの一石三鳥(ほんとか??????????)

   このThe Elm Architechtureというのがなかなか洗練されており、かなり抽象度の高いことができます。 Hasteは単にJSがHaskellで書けるだけだったので、ページ要素の操作はまんまIOで、 コールバック登録もIOとかで、要するにMVCみたいなことをやろうとすれば全部自分でやる必要があるのですが、 Elmの場合はそのへんも抽象化されており、コールバックの「登録」みたいな操作はしません。定義はしますが...

とりあえずこんなん書いてみました。

http://www.asahi-net.or.jp/~fu5k-mths/elm/elm_block/index.html

入門してみた所感としてThe Elm Architectureの「直観」を描いてみたいと思います。

f:id:phykm:20180509222522p:plain

無理。

なんか紐図( https://arxiv.org/abs/1401.7220 とか)っぽいものができる気がしたが気のせいだったぞ!!!!!!!!

文で書きます。基本的には代数的データ型を駆使して、MsgとModelという型を定義し(これは本当になんでもよい)

init:(Model,Cmd Msg)
update:Msg->Model->(Model,Cmd Msg)
subscription:Model->Sub Msg
view:Model->Html Msg

を定義すれば一丁あがりというものです。

型を適当に解釈できれば、この仕様のイメージがつかめます。

Modelは定義するWebページの内部状態、

Msgは内部のメッセージングです。

Cmd aはメッセージaに基づくコマンド、

Sub aはメッセージaを吐くかもしれないリスナー、Html aも同様にaを吐くかもしれない文書です。

このとき、 定義するフィールドはそれぞれ、 init:初期状態と初期化処理 update:Msgに応じた状態更新と副作用 subscription:Modelに応じたリスナー view:Modelの見え方 と解釈できます。

 Msgはクリックやキーボード、時間経過など、Webページが識別してほしいシグナルを直和などを使って全て書き下し、 ModelはWebページが把握しておいてほしい全ての情報を直積やリスト化などで書き下すことで定義すればよいです。 状態遷移などで把握すべき情報が変わる時はそこを直和にする。オートマトンっぽい。

 Msgがどこかから吐かれるたびに、updateが呼ばれます。updateは起きたことに基づいて状態を更新して、 ついでにCmd Msgで何か仕事をできます。状態は常にviewで表示されます。

上のコードは

github.com

にあります。ていうかゲームプログラム難しすぎるのでは?????????????????

 状態としてReady、または Game (ボール状態とブロック、終了フラグ)、 メッセージとしてクリックとマウス移動を取っています。 描画に用いているCollageというパッケージはCanvasベースらしいので、できること/性能もそれに準じたものと思われます。 あんまり複雑なのをやるとつらそう。ただWebGLのパッケージも存在するっぽい。

Elmの開発環境(?)は結構整っているように思えます。とりあえず公式から処理系をインストールし、

サンプル

examples

をみながらやりたいことを考え、

Elm Packages

で必要なパッケージを調べます。必要なパッケージがわかったら、 elm-pachage install を必要なだけ打って、インポートし、書きます。

 どうも開発ディリクトリに非標準パッケージを直接DLしてくる(elm-stuffというディリクトリができる)っぽいので cabal hellみたいなことは起きにくい? ページ自体はちょっと重め。

 REPLもあるのでこれにロードして関数をチェックすることもできます。 できたページを確認するのにコンパイルしてもいいですが、elm-reactorとかいうドチャクソ便利なものがあり、 これを起動するとローカルサーバーが立ち上がって.elmファイルを直接ブラウザから見れるようになります。ソースファイルを選択すると、 ファイル生成なしに、サーバーがコンパイル後のページを返そうとします。

 エラーがあった場合にはエラー文もブラウザで見えます。地味にコマンドラインよりも見やすいので助かりがあります。 ブラウザをリロードすれば再コンパイルします。

Haskellと微妙に違う、といいましたが、気になった点としては以下です。

  • Cmd Subのような->みたいなカインドはあるが、型クラスはない。
  • ::と:が逆。
  • リスト型は[a]じゃなくてList a
  • 型定義が基本typeかtype aliasだけでスッキリしている。もちろん前者にコンストラクタが要る。
  • 実感は無いが、正格評価らしい?
  • トップレベルのパターンマッチができない(?)。case of で頑張る。

最後のは表現が正しいのかわかりませんが、要は

sum::List Int->Int
sum [] = 0
sum (x:xs) = x + (sum xs)

じゃなくて

sum ls = case ls of
    []     -> 0
    (x:xs)-> x + (sum xs)

としろということです。

感触は結構いいのですが、これ本気でCSSデザインやろうとしたらどうなるのか... 一石三鳥だが要するに三鳥分定義を書かなきゃいけない点は変わらず... あと言語の方向性からして厳しいとは思いますが、他JSやCSSライブラリと連携取れるんだろうか...

なんか来月に日本語の解説書が出るっぽい。

基礎からわかる Elm

当然のごとく予約しました。

3.就をやっている。

就をやっている。助け...

4.論をやらなくていいのか

やばい。

語学嫌いは言語類型論をやれ

 半年たってしまった...

 皆さん、英語(任意の語学)好きですか?

僕は嫌いです。

 人はなぜ、特定の教科/分野/学問を好きになったり嫌いになったりするのでしょうか。 精神論や観念論はよろしくないという立場においては、これは端的に言って 「好き/嫌い」と判定されるような行動をとる傾向性を、 適当なフィードバックで強化されるような環境に置かれたからでしょう(身も蓋もない)。 そのような話として行動分析学があるので興味ある向き、そして教育者各位は読んで僕に教えてください。

行動分析学入門―ヒトの行動の思いがけない理由 (集英社新書)

行動分析学入門―ヒトの行動の思いがけない理由 (集英社新書)

行動分析学入門

行動分析学入門

  • 作者: 杉山尚子,島宗理,佐藤方哉,リチャード・W.マロット,アリア・E・マロット
  • 出版社/メーカー: 産業図書
  • 発売日: 1998/03/30
  • メディア: 単行本(ソフトカバー)
  • 購入: 3人 クリック: 30回
  • この商品を含むブログ (17件) を見る

 思えば語学の成功体験なんも無いですね。僕は理系か文系かというとド理系で、 ここ数年で偏見が緩まったおかげて人文/社会科ももしかしたら面白いかもしれないと思いつつありますが、 語学は銃口を突きつけられないとやらない位にモチベーションがない。 中高大と語学はとにかくもう、

こういう表現がある、こういう語彙がある、 書いて覚えろ、聴いて覚えろ/書き取れ、 (どうでもいい文を)読んで読解しろ、

という話ばかりで、 原理さえ押さえればどんな議論を考えてもよいという高い自由度/正誤判定が一貫していて容易という明快さがある数物に比べて、 なんだこのクソつまらん教科は、教科じゃないんじゃないか?などと思ったりしました。 あと僕は耳も悪いので日本語も英語も文脈抜きで単語や短文をクソ音質で投げられても聞き取れる訳がない。

 今でも「言語学」はともかくとして、「語学」は学問じゃないよな、と思っています。 どちらかというと体育や美術に近い。というのも、それは追求したり分析したりするものではなくて、 習慣化したり、表現したり、交流したりする為のものなので。 しかし体育や美術、つまりトレーニングや表現技法の一種なら、 それはそれでゲーミフィケーションやコミュニティによる動機づけがまるで足りてないのではないか。 なぜ日本の英語話者は日本とかいう環境で英語を学び通せてしまえたのか。 まぁこの教授形態の愚痴は本題でないので置いておきます。 学校教育に期待できないのは今に始まったことではない...

 ともかく語学はクソつまらない。面白いと思っている人には申し訳ないですが、 英語が覇権を握ったが為にどの分野で大成するにもこんなつまらんものと付き合わされる羽目になった歴史を恨みざるを得ない。 なぜ面白くないのかというと、その内容や事実に内的説明が殆ど与えられないからです。 ただ規則と事実が、何故こうなっているのか、なぜこうすると良いのか(何の為なのか)抜きの羅列になる。 これが数物であれば、原理はなるべく一貫性とコンパクトさを保とうとしますし、各種公式や定理にも、 それを考える動機づけ、ないしなぜそれが成り立つかの導出が伴っています。 今にして思えばこれは当たり前で、特定の言語なんていうのは、 歴史/文化的経緯でフワッと決まった側面を持っているわけで、 まったく普遍的でも必然的でもない要素が多分に含まれているのです。 そんなただの偶発的な事象に由来する取り決めに「親しむ」ことを強いられるのが気持ちいいわけがありません。 多様な文化はどんなめちゃくちゃなものも存在は尊重しますが、それは僕に(誰にでも)強制しないという条件があります。

 なんかもっと普遍的で、汎用で、形式的側面から言語をなんとかできないのか... 学部の時に形式言語理論に潜って文脈自由文法とその派生(言語学では句構造文法というようですが) に出会ったときの感動が想像できますでしょうか?英語はもはや何も分からんが、これなら分かる。 なぜ語学教育は近似的でもいいから句構造文法を一番最初に提示しないのか??????? 人を馬鹿にしやがって。許さんぞ。今でも思っています。

 さて、去年に遡りますが、こうして悶々としていたなかで、ある分野に出会います。 普通の教育課程をパスすると英語とかいう憎き覇権言語が外国語の9割になってしまいがちですが、 当然ながら世の中には大量の言語があります。英語や日本語とか似ても似つかない言語もありえます。 しかしwikipediaを眺めていると、ある言語は◯◯的で~とかある言語はこの言語に似ていて~/違って~とか、 あるいは品詞や句や節や諸々の語学概念が、複数の言語にまたがって、あるいは比較されて用いられている事がわかります。

「まてよ、そもそも言語学(?)には、こうした言語によらない概念や語法や道具立てがもっとあるのか?」

と思って調べていくと、どうも言語類型論という分野がある事がわかります。 それらしい読み物や入門書が参考文献として出てきます。

言語のレシピ――多様性にひそむ普遍性をもとめて (岩波現代文庫)

言語のレシピ――多様性にひそむ普遍性をもとめて (岩波現代文庫)

言語類型論入門――言語の普遍性と多様性 (岩波オンデマンドブックス)

言語類型論入門――言語の普遍性と多様性 (岩波オンデマンドブックス)

言語普遍性と言語類型論―統語論と形態論 (言語学翻訳叢書)

言語普遍性と言語類型論―統語論と形態論 (言語学翻訳叢書)

ヴォッッッッッッッッッ

 これは大当たりでした。僕は語学弱者であり、言語学専攻でもないので、誤読の可能性は大いにあるのですが、 ここ数年で最高レベルに分野の存在に感謝を捧げています。

 いいですか?リンクは貼りました。 とりあえずリンゼイの言語類型論入門をカートに入れてください。話はそれからです。僕もこれを今読んでいる。

 何が当たりだったか。この分野には、 「語学がそれ自体面白いものである為には足りないと思われるもの」の大半が入っていたからです。 それは何かというと、言語(特定のものではなく全ての)それ自体に対する説明としての科学です。 リンゼイでは次のように類型論を定めています。

言語の全体像やその構成部分の分類を、それらが共有する形式的特徴に基づいて行うこと。

 言語全体を相手にしているので、自ずと語法は特定の言語を贔屓しない中立的なものを志向します。それから、主に形式的特徴に基づくことで、例えば地理的、歴史的経緯による系統よりは、その言語が言語として持つ性質にフォーカスします。このあたりの傾向を通言語的とか共時的とかいいます。

 リンゼイ本に沿って、具体的に類型論が何を語るか少し見てみます。

 まず品詞はありふれた概念ですが、通言語的に品詞という概念が意味を持つか、という問題があります。 品詞なるラベルは何で決まるのか?それらの判別規準はなにか?というのをあらゆる言語に通じる形で定めようとするのは難しい、という話が延々とされます(誠実ですね)。おそらく大抵の言語に名詞動詞形容詞等etc...といったカテゴリーがあること自体はいいでしょう。そこで、次の普遍性が提出されます。「すべての言語にて、名詞動詞は《開いた》品詞で、形容詞以外の他の品詞は《閉じた》品詞である」。ここで、「開いた」というのは、語彙の追加や削除が容易に起きることを指します。これはちょうどプログラミング言語のコア部分はそうそう変わらないがライブラリは随時追加されるような様子に似ています。

 もう一つ有名な例をだします。それはSVO要素の順序についでです。そもそもSVOに相当する概念が各言語にあるのか/それは何で系統的に識別できるか、という問題がありますが、 ひとまずこれがあるとしましょう。例えば英語はSVO、日本語はSOVです。 理論上あり得るSVO順序6種類のうち、このSVO/SOVを採用する言語が大半であり、VSO/VOS/OVSは稀、OSVは全く無いという統計が存在します。 そしてこれは何故かというのを、認知上の利点、統語的なVO要素の結びつきによって説明します。 例えば、Sは先行した方が認知上メリットがあるだとか、VOは動詞句を構成するのでこれが分割されることは稀、というように。

 それから、これはベイカー本でも紹介されているのですが、多くの文法で、動詞句のVとOの順序は、 それ以外の句、節の構造、修飾詞、冠詞の参照先の順序、前置詞/後置詞の傾向などと相関があるという指摘が入ります。 これに関する説明や概念立てを検討した後で、ドライヤーの方向分岐理論が紹介されます。 方向分岐理論の説明がいまいち飲み込めないのでここはちょっと自分の理解ですが、それは 構文解析木の分岐において、複雑さがバウンドされないカテゴリ(分岐的カテゴリ)を左右どちらに置くかは一貫している」と読めます。 もっと大雑把には、言語の文法は右再帰か左再帰かを統一する傾向にある、と言って良いのではと思います。 VO順の場合は、Oは複雑な構造を持ちえるので、動詞句以外の句などにおいても、左側にそうした複雑な要素を置こうとします。 そして、この理由はなぜかと聞かれれば、もちろん構文解析の容易さを挙げます。

これ滅茶苦茶面白くないですか??????

 他にもいろんな分析例があるのですが、どうも目次をみると、これは言語が果たすべき基本機能やレパートリーが概ね共通で、それをどう実現するかという(制限された)多様性をコンパクトに列挙しているようにも見えます。つまり、類型論は

  • あらゆる言語全体という集合にも、かなり強い制約や共通した性質がある(普遍性)。

  • 言語がある機能を実現する為にとる手段は、限られつつも選択の余地がある(多様性)。

という二点を明らかにするのです。この普遍性と多様性はまさりリンゼイの副題です。

 前者の普遍性は、なんらかの尤もらしい説明が与えられます。  後者の多様性は、限られつつも恣意的であることが了解されます。

 例えば、ある人が新しい言語を学ぶとしましょう。もし十分な類型論的知見があれば、 その言語の文法のうち、どこまでが言語によらない必然的な要素、つまり一貫した説明を与えられる部分で、 どこまでがその言語の恣意的な選択、つまりそうである理由は無いが、その言語「らしさ」を成す部分であるかを了解できるわけです。

 こういう話が学習段階で提示されたらもっと語学が好きになれたろうにと本当に思います。

 大事な違いですが、例えばこれはある語の語源がどうとか、歴史的な語族系統図がどうとか、◯◯語圏の文化と言語の関係がどうとかそういう話では全く無いんですよ。むしろ全く逆で、そうした雑多な要素を一切排除して残る形式的なコア部分のその原理と選択肢は何か、という話なのです。(なんか雑多で非形式的で豊かであればあるほどいい、という文化系特有の傾向(偏見)、はっきり言って大ッ嫌いなんですが、まぁそれはおいとくとして) 個人的な性癖ですが、こう、習うより慣れろというのが本当に無理で、もっというと疑うよりも習えというのも厳しいのですが、こうやって普遍的な部分からスタートして、残りの恣意的な部分は、それこそが◯◯語なんですよ、と言ってくれれば、とりあえず説明の要求は前者に集中して、後者はまぁそれこそが◯◯語なんだから仕方ないよな、と思う余地が生まれるわけです。

 プログラミング言語のような人工言語は、ある種の表現力を実現するためにその構文を考えていると思います。 であれば同様の「この機能を実現するためにどの構文をつかうか」という視点が自然言語にもあって然るべきではないですか。 自然言語の機能のレパートリーは、どうも歴史を通してあまり変わっていないようなので、 各々の言語はそれをどうやって実現するかという、制限された選択肢のなかから、あるやり方を一貫して選んだものだといえるわけです。

 どうですか。ここしばらく類型論のプッシュばかりしています(研究をしろ)が、ちょっとでも興味をもったらリンゼイをポチってください。僕はリンゼイが済んだらコムリーにいきます(研究をしろ)。

   なお申し添えますが、言語類型論をやっても個々の言語が出来るようには全くならないと思います。

環、有界、STモナド

全部話題バラバラです。

1.なぜ物理量は環なのか?

 今ゼミでIsham某量子論本を読んでいたりするのですが、これに限らず、ある文脈において、次のような対比が語られる事があります。 すなわち、

古典力学では物理量のなす環構造が可換であったが、量子論では一般に非可換になる。

 この可換非可換という対比は、単にある種の代数構造の条件開放という意味で「少なくとも数学的には」自然な一般化の発想で それで例えば可換/非可換C*環が、GN双対を通じて普通の幾何(コンパクトハウスドルフ位相空間)/非可換幾何の対比になるだとか、 あるいは量子群だとかいう名称がここに由来するだとかいった話に繋がったり、物理では非可換性によって、物理量の同時測定、同時値付与ができない、不確定性関係につながるとか、そういった風潮や言い回しの背景を提供しているようにに思います。(そうでないならそれは良いことなのでどうでもいいです)

 しかし、ほんとかよ? 毎度のことですが、この手の言説の雑さ加減、ちょっと反省してくれというお気持ちが湧いてきます。  いや、数学的な構造それ自体に興味があるので、可換非可換を対比しますというのは別にいいんですよ。それは自由にやればいいし、 やっていきをした結果として理論物理に有意な構造が手に入ればそれを使うのもいいですが。  問題は、物理学の基礎や定式化において「量子論は物理量環が非可換になったやつ」という言説が目に余るということです。

 まずそもそもですが、

定式化段階で「物理量が可換環である」とみなせる理論、そんなにあるか?

という点です。大体において、こういう状況での可換環というのは力学相空間X上のC(X)のことを指しているはずです。 要するに、「力学的相空間/状態空間があって、物理量がその上の複素数値関数で、各点積による可換環構造をもつ」というビジョンは 古典力学ではありがちだよね?ということを想定して、古典物理は可換C*環だ!といっているのです。

 はー、ちょっと待てよと。例えば学部でやるような以下の古典理論を見てみますよ?

  • 解析力学(L)

    • ラグランジアンTN\mathbb{R}値関数、加法的、\mathbb{R}mod、しかし乗法的でない。
    • Noetherモーメント:リー群が作用しているとき、リー代数からNoetherモーメントの対応はTN\mathbb{R}値関数へ線形、乗法的ではない。
  • 解析力学(H)

    • ハミルトニアンベクトル場:\mathbb{R}mod、乗法をもたない。
    • poisson環:\mathbb{R}mod、乗法を持つが可換ではない。
  • 古典場理論(電磁気,流体含む)

    • 電磁気の各種量:基本変数がベクトル場や微分形式なのでいずれも\mathbb{R}mod、乗法はない。外積はgradeを上げる上に可換ではない。
    • 物理量として、密度関数の領域積分や、あるいはその密度関数自体を取るので、そもそも乗法は限られた状況でしか入らない。(例えばエネルギー密度の計算やポインティングベクトル場など)
  • 熱力学

    • 熱力学関数:状態空間上の実凸関数だが、同次性を持つことを強いられるので、乗法を無制限にとれない。系の拡大と加法が取れるので\mathbb{R}mod。
  • 相対論

    • 古典場の理論に準じる。大体テンソル場およびその領域積分が基本的物理量なので、乗法は無制限にとれない。

 実数値関数ばっかやんけ!というツッコミをおいておいても、殆どが\mathbb{R}modであって、 \mathbb{R}algじゃないわけですよ。algebraっぽい奴だって各点積とは違うし。 いや、それでも解析力学で、任意の物理量としてTN,TN^*上関数環の、poissonではない各点積関数環を考えられるでしょ、 と思うかもしれません。しかしそれにどんな物理的意味がありますか?poissonはハミルトニアンベクトル場の無限小リー微分としての 意味がありますが、各点積はなんですか?ええ?なんもないでしょう?  第一ですよ、環構造を定義する方法なんて、今やいくらでもあるわけです。集合が手に入ったら適当が環を持ってきて関数環、形式的積を定義して自由生成、結合的演算があったらそれで環とか、数学的構造が手に入ったらまぁご自由に作ってくださいと。 そんななかで大事なことは、(物理において)「その積が物理的動機にモチベートされている」かどうかであって、 その意味でいえば相空間複素関数環の各点積構造、ほとんど動機がないわけですよ。 解析力学で各点積関数環を作れるのは、単に「作れてしまう」から計算や試案に便利というだけであって、 それ自体に統一された第一級の物理的な解釈があるわけではないのです。

 こうしてみると、ガッツリ環として最初から宣言しているのは、ハミルトン形式のPoisson環くらいで、 これは最初から非可換なわけですから「量子論では物理量は非可換!」とか「????」じゃないですか。 大体角運動量の議論とかですら、リー代数->正準力学系->ユニタリ表現で、非可換な代数が準同型になることを使っているわけで、 それをスルーして、「非可換性を強調するときだけC(X)、実際の運用の時はpoissonにアナロジーを求める」なんてダブスタもいいとこです。いい加減にしろ。

 これ結構悪影響があって、というのも量子力学では物理量は作用素で表現しますが、 まぁ案の定「作用素」ですから、環になりますよね? そして「量子物理量の環構造の物理的意味が不明」という問題が発生してしまうのです。

 しかしまってくれ、そもそも環構造に物理的意味が最初から憑依していたケースは、そもそも古典物理ですら限られているわけで、 その古典物理の物理量環だって、「相空間があって、値が実数値だから定義できる」という意味しかない。 だからこの意味不明問題は、そもそも定式化がナンセンスであって、積構造に何を期待するかというのは、 ヒルベルト空間の作用素という数学的モデルの実装戦略を採用した我々が最初に動機づけすべきことなのです。 で、それがない? 何も宣言してないんだから無くて当然でしょう。そしてそれで何も困ることはない。

 もう一つの悪影響は、「物理量が実数値である」という思い込みを強めてしまう点です。

 というのも、例えば量子測定では、測定値集合は別に実数に限られてなんかいないし、任意の可測または位相空間が認められます。 これはごく当然のことで、例えば物理量の測定をするときに、僕らは測定器のUIの状態を見るわけじゃないですか。 それは実数ですか? なわけ無いですよね? アナログメーターの針や、デジタル表示器のレジスタ状態をモデル化した某かを 僕らは認識しているわけで、そこまで含めたら測定値集合が実数でなくてはならないなんてことには全くならない。 このメーター系のモデルは、とりあえず確率論の文脈に置くので、可測空間でありさえすればよいのです。 ではどうして古典力学含む物理理論で、大量の実数由来の数学的構造が使われているのか、というのは 単にそれぞれの状況で実数が便利な構造であった、というだけに過ぎません。 なぜなら、個々の理論では実数を使う「動機」がそれぞれ微妙に異なるからです。

 量子力学の測定概念が一気に位相空間や可測空間に一般化できた理由は、 それだけ量子力学古典力学と違って、内部に複雑な構造を備えていない、非常に素朴な理論であることによります。 古典理論のように、個々の系に複雑な構造が入ってしまえば、その系に対する操作はその構造を保つようなインセンティブが働きます。 ところが量子力学は一般論としてはヒルベルト空間を使う以上のことは言っていませんから、その写像もかなり自由に選べます。 量子力学の古典的対応物は、\bf{Top},\bf{Meas}とかの類であって、間違っても\bf{Symp}とかではないのです。 その意味では、量子力学の公理で「物理量を作用素で表す」も本当はおかしいんですよ。最初からPOVMで宣言するのが筋ってもんです。

2.非有界作用素はいつ必要になるのか?

 半分位続きですが、量子力学の数学的にまっとうな処理というのをやろうとすると、関数解析になるのですが、 そこで面倒くさいのが、非有界作用素の扱いです。というのも、正準量子化とかいうクソ論法に量子力学の当初の仕事が頼ってしまったため、数学的定式化の後で、この位置と運動量に相当する掛け算作用素微分作用素をまともに扱うハメになってしまったのです。

 非有界作用素の面倒臭さは何かというと、基本的に定義域が全域ではありません。それでも稠密に定義されるものを扱うので、 「ほぼ全域定義」ではありますが、この「定義域」情報を持ち回す必要性によって、 折角作用素「環」構造を作ってあげたのに、例えば加法や結合が、定義域に対してどういう影響を与えるかがまったく非自明で、 個々の要素にいちいち付き合ってやらないといけなくなります。

 ところでですが、量子力学の測定理論概念でのCPTPとかPOVMとかの話は基本的に可分であれば有界作用素の議論で完結します。 これはCPTP概念がもともと作用素環(したがって有界作用素環)に由来したり、測定理論としてのメソッドを確率分布の獲得としてきちんと定めたために、スペクトルが確率値で有界にバウンドされるおかげです。 となると、(有限自由度)量子力学それ自体の定式化では、非有界作用素の登場する所はないのです。

 それで気になるのは、僕らは「いつ非有界作用素との付き合いを余儀なくされるのか」ということです。ごく原始的な測定にはいりません。位置と運動量については、正準量子化を採用しなければよいのです。 たとえば最初からL^2(\mathbb{R})上の左正則表現をとれば、Stone定理でユニタリ表現を分解できるので、 実質運動量に相当するPVMとそのユニタリ作用の概念をもったまま、難なく議論ができます。PVMですから当然有界です。 ユニタリ表現をちゃんと自覚的に召喚すれば、ユニタリなのですから非有界性はどこにも出てきません。 つまり「物理量を作用素で表す」という呪縛を解除すれば良いという話です。そのスペクトルに「物理量の値」としての意味しかないのならば、 それをわざわざPVM要素にかけて積分してヒルベルト空間にねじ込む理由がありません。最初からPVMで扱えば有界になるし便利。 もし、そのスペクトルに変換群が作用しているとしても、PVMの底集合に群が作用していて、 それが密度行列に対するユニタリ表現との間に繋絡自然性条件が走っているとみなせば良いのですから、群作用も問題ない。

 有限自由度の個々の系に関して言う分には、非有界作用素を別の数学で殴る代用手続きがあるように見えます。

 そこで、複数の系の相互作用なんかを考えてみます。たとえば測定のモデルとしてvNプロトコルというのがあり、 それは次の形をしています。

\exp(itA\otimes P)

 ここでAは測りたい物理量でPはメーター系の変換生成子です。しかし、これも取扱自体は有界作用素の範疇で実行できます。 というのもAをスペクトル分解して、これによる合成系のPVM上でPによるユニタリ変換を直積分すれば良いからです。 ユニタリ変換のPVM積分ですから、有界の範疇です。しかしここにはより興味深いことが起きていて、 ここではAのスペクトルの「値自体」がメーターをどの程度動かすかを決めているのです。 なのでAのスペクトルは「ただの測定値」ではありません。メーター系の変換群としての意味があることになって、 それではこのプロトコルを一般化するとしたらどうなるのか?それを組織化するならどうすればいいか?という疑問が湧きます。

 思いかえせば、古典物理でも「物理量の(各点)積」ってこういう使い方をしていたよな、という気がしますね。 例えば解析力学や古典場などで各点積相互作用項を突っ込むことで両者が両者に従って変換されるのが良い例です。 つまり、いい感じの相互作用やある種の動作を引き起こすために、「積をとってみている」わけです。 より素朴な古典物理の場合は、この相互作用それ自体を物理的イメージに基づいて行っている場合があったわけですが、 (例えば常/偏微分方程式を「発見する」場合のdxなどを用いた投機的計算など:弾性体や曲線の方程式とか) いつしかそうした文脈が忘れ去られて、単なる「積構造」だけが引き継がれるようになったのかもしれません。 量子力学でそうした正当な直観を回復する方法論があるのかについてはまだ謎です。

 脱線しました。非有界作用素に戻ってきますが、唯一これやばいなと思うのがあり、それはフォック空間を作る時のLadderoperatorです。

 自由場の量子化、というか量子化はクソなので、単に多粒子系ですが、相互作用をさしあたって深刻に考えなくていい場合は、とりあえずフォック空間を張る事ができます。これは一種の自由テンソル代数のようなものですが、 量子論でのフォックは対称化や反対称化を行ったり、内積も適切に決めてやる必要があるので、 単なるテンソル代数とは微妙に異なります。

 どういう普遍性で定義するのがベストか不明ですが、とりあえずgraded monoidかな?位に思っています。しかしここに問題点があり、粒子を合流させる積演算、およびそこから造られるLadderoperatorは非有界なのです。統計性処理のために。これは量子的調和振動子の計算ともあいます。

 ウオーここへ来て非有界になってしまった。しかしこれはある意味では自然という見解があります。というのも、例えば素粒子現象のように初っ端から多粒子で、かつ識別不能な場合、可観測量とはなにかというと、一粒子の場合はPOVM要素で成立確率を返す汎関数ですが、 このPOVM要素をLadderoperatorでフォック空間に輸送すると、「POVM要素を満たす粒子数期待値」を返す汎関数になるんですよ。 でもこれは確かに自然な物理量に思えます。だって識別不能なんですから、どれがどの事象を成立させるかわからないわけで。

 すると、こうした状況では、単純な確率論としてのメソッドに基づく定式化がまずい気がしてきます。 確率論は汎関数の評価値として[0,1]値だけを相手にすればいいので、有界になりますが、 粒子数期待値となれば[0,\infty)ですから、どんなつまらない物理量でも対応作用素が非有界になってしまいます。どうすれば…

3.STモナド

 Haskellは、他の言語では副作用とかよんでる振る舞いをきちんと型レベルで捕捉することに成功していますが、 そのためにモナドを振り回す必要があります。まぁそれはよいのですが、 例えばIOモナドはほぼなんでもできますが、純粋な計算をしたいというのに、ちょっとIOの力を借りただけで、 IOに汚染されたままになってしまってはたまりません。

 良くも悪くも、型の表現力と統制力が強力なので、やりたいことに対して丁度よい型による表現を探す事が求められているのだと思います。  そこで破壊的代入や参照や配列更新等ができつつも、最終的に値を純粋に取り出してモナド文脈から戻ってくることの出来るモナドとして STモナドがあります。しかしこのSTモナドの実行関数runSTの型がくせ者で、一見型を見ただけでは、 これが何を意味するのか、これによってどんな利用制限がかかってくるのか、それは何故なのかがピンときません。

runST::forall a.(forall s. (ST s a))-> a

この全称量化こそがSTモナドのキモだったのですが、ようやくそれを了解したのでこれを書いています。

 ところでですが、述語論理において次の証明規則があります。

\forall x. \phi \Rightarrow \phi(t/x)

 これは全称量化の除去規則というやつで、全称量化束縛された変数の具体化に相当します。 このときtは「実質的には」なんでもよいのですが、あくまで推論規則としてこれを見るにはちゃんと制限があります。 それはt\phiに代入されたときに、t中の自由変数が捕獲されてはいけないということです。 「実質的には」なんでもよい、といったのは、論理命題としてなら、 \phi中の束縛変数をアルファ変換などで置き換えても同値になるためです。 しかし推論規則としてはこの制限は無視できません。今それぞれの論理式はただの記号列だからです。 例として

\phi(-)= \forall y.\exists z. (-) + z > 100 + y

などを考えて、t=-zなどとすれば破綻をきたす事がわかります。

 話を戻しますが、型システムと論理がいい感じに対応してそうというお話があります。

カリー=ハワード同型対応 - Wikipedia

 詳しくは理解していませんが、型システムがどういう振る舞いをするかのアナロジーを論理に求めることはできそうです。 そこでrunSTですが、何らかの具体的な値を吐かせるために使うわけですから、型変数のaはいずれ具体化されるはずです。 このとき、先の述語論理のアナロジーで考えれば、aの具体化においてsを含むと、これが捕獲される事がわかります。 したがって、runSTを含んで型検査をするときに、aにsを含む具体化を要求するようなコードは弾かれることになります。

 例えば不正なコードとして、

Haskell/存在量化された型 - Wikibooks

の例を見てみましょう。

v = runST (newSTRef True)

が不正ですが、これはnewSTRefの型が

newSTRef::a' -> ST s (STRef s a')

であることによります。このvの型を導出しようとすると何が起きるか見てみましょう。 ST s (STRef s a')をrunSTに代入するのですから、最終的に具体的なaを導出するには ST s (STRef s a')からrunSTの具体化の前提:forall s.(ST s a)を導く必要があります。 このときaは全称量化されていたのですから、sを含んではいけません。 ここで、forall導入を行ってforall s.ST s (STRef s a')としてもa=(STRef s a')となり、 sに依存したaしか示すことができません。そこでこの型チェックは失敗します。

 証明論的なこの不正の理由は納得できましたが、そもそもこのコードはなぜ弾かれるべきなのでしょうか?

 ここで、あえて型ST s aを「環境sと相互作用する返り値型aの計算」だと解釈してみましょう。 newSTRefの型a' -> ST s (STRef s a')は、参照型について「その参照が意味を持つ環境」sがSTRef s a'として 型に組み込まれている事がわかります。 すると、先のコードについては、「環境s上でしか意味を持たない参照」をs以外に持ち出すことが不正であると考えられます。

newSTRefがa->ST s (STRef s a)の返り値は、型変数sが二度出現し、それは同一です。これは

  • 環境s上のアクションであること

  • 得られる参照値は環境sにおいて有効なこと

  • この2つの環境は同一なこと

を示していると考えられます。  このほかのST文脈を利用する関数も、「ST sの外に出すべきでない」場合は その返り値がsに依存するようになっています。逆に言えばs依存していなければ、外に持ち出す事ができる事になります。

 たとえばSTArrayならfreezeすることによって、immutableArrayになり、これはST sのような文脈を持たないので、 そのまま外に出すことができます。ただし、STArrayをfreezeする動作は配列のコピーを含むので 効率の観点からコピーを省略してそのまま凍結する為の専用関数runSTArrayがあります。 この型は

runSTArray::forall s.ST s (STArray s i e) -> Array i e 

であり、runSTと比べると、あえてSTArray sと、ST sのsが揃えてあります。 すなわち、この配列自体が存在する環境と、それを操作する環境が揃っており、かつ配列の中身には環境sに依存がないことを量化子で強いているのです。

 たとえばこの配列に環境sに依存したインデックスiや要素eが使われていれば弾かれますが、 この配列自体がsに存在することはちょうどぴったり許されるのです。こうすることで、 環境情報について整合的な、環境情報に依存しない要素からなる、環境情報をもつ配列を、 環境情報を持たない純粋な配列として取り出すことが、ぴったり実現できます。

実際にはこのsというのは、実体がありません。実際STのドキュメントを見ると、

Control.Monad.ST

The strict state-transformer monad. A computation of type ST s a transforms an internal state indexed by s, and returns a value of type a. The s parameter is either an uninstantiated type variable (inside invocations of runST), or RealWorld (inside invocations of stToIO).

とあり、RealWorldへ具体化して実質的にIOとなるか、具体化されないままrunSTされるかしかありません。 しかし実体の無いまま全称量化される仮想的な型変数をSTに組み込むことで、 「計算環境」のような文脈と、それに伴う制御を与えていることになります。

測地線 on Canvas と ABCjs on HasteFFI


また一ヶ月がたってしまった。

1.Haste

 ちょこちょこHaskellを触ったりしていますが、Atcoder Begginerで遊ぶだけでなく、
何か作ってみないとなぁという気持ちがありました。そこで調べてみるとHasteとかいうのを見つけます。

haste-lang.org


 HasteはHaskellからJavaScriptへのコンパイラで、どういう訳かHaskellの基本機能が全部使えます。
で、それだけではJavaScriptの代替にはならないので、CanvasやDOM操作用のモジュールが定義されています。

haste-compiler-0.5.5.0: Haskell To ECMAScript compiler


 ごいすー。ところでHaskellのドキュメント、型から大体の情報が得られる良さがありますね。とにかく型がよいということがわかります。
 このHaste、hastec hogehoge.hsで生成される同名jsファイルをHTMLから読むようにすれば終了です。なんということだ。
JavaScriptまったく触ったことがないし、JavaScript1行も書かなくてもJavaScriptが書けます(?)。

 ほいで、やっぱりモチベーション維持のためには、視覚に訴える物を作りたくなります。まるちめでぃあという奴です。
 そこでHaste.Graphics.Canvasを見てみると、簡単な図形・画像描画関数があります。全部モナドっぽい。
なるほどなるほど。しかし表示するだけじゃなくていんたらくてぶなことをしたいなと思えてきます。我々はわがままなので。
 そこでHaste.Eventsを見てみると、たくさんのイベント型が定義されており、コールバック登録関数onEventがあります。
なるほどなるほどなるほど。しかしどんな感じで何を使うか一から試して考えるのは辛いので何か例が欲しくなります。
 そこで公式のExampleからサンプルを落としてコンパイルしてみます。とっても小さなサンプルもあるのでこのくらいなら読めます。大体要素をIDで探してそれに対するアクションをする感じとわかります。
なるほどなるほどなるほどなるほど。

豊かなわかりが得られる事がわかります。Wakari is God.

 で、前から試してみたいと思ってた非ユークリッド平面を作ってみることにしました。二次元リーマン多様体ですが、2次元だと次元が小さいので、曲率テンソルの有意な成分は実質一つになることが知られています。ということで、すくなくとも局所的には曲率が正か負かゼロかという話で尽きます。
 じゃぁ曲率が正、負、ゼロで一定の面とは何かというので、それぞれ球面、双曲面、普通のユークリッド平面が代表的なものとして出てきます。これらにはそれぞれいい感じに自己等長変換リー群が作用できます。SO(3),PSL(2),SO(2)\ltimes \mathbb{R}^2です。
これらの群は全部3次元で、回転と平行移動がいい感じに混ざっていると考えることができます。仮にこうした平面上で「移動」に相当する概念があるとしたら、それが単位元近傍の等長変換であると考えるのは理に適っているでしょう。
 そこでこれらのリー群の指数写像を作用できるようにしましょう。それから、「移動」するならそもそもこの平面に何か物を置かないといけません。これはもう直線にしておきましょう。もちろん測地線のことです。

ここでハッピーなことが3つあります。

  • こうした3「平」面は、簡単な非ユークリッド計量をもった平面として表現できる。

ポアンカレ上半面:ポアンカレ計量、立体射影:フビニ=スタディ計量)

  • それからそこでの測地線が全て見かけ上は円弧か直線である。
  • そしてHaste.Graphics.Canvas円弧が定義されている

大勝利である事がわかります(低級グラフィックだと円弧が無かったりする)。

結果です。

http://www.asahi-net.or.jp/~fu5k-mths/hyper_line.html
http://www.asahi-net.or.jp/~fu5k-mths/sphere_line.html



 良さがありました。しかしこれを書くにあたってHasteモジュール中CanvasとEventsばかり触ることになり、いまだDOMやSocketの操作が全くわからないままであるので、
HasteでJavaScriptライフを満喫するにまだ課題がある事がわかります。ソースは、何処に貼ればいいんだっけ...Canvasの描画、どのくらいまで速度がでるのかわかりません。ミニゲームくらいは作れるのだろうか。

 ところでPSL(2,\mathbb{R})リー代数なのですが、当初計算しやすいからと次の基底でとっていました。

\begin{bmatrix}
1&0\\
0&-1
\end{bmatrix},\begin{bmatrix}
0&1\\
0&0
\end{bmatrix},\begin{bmatrix}
0&0\\
1&0
\end{bmatrix}

 しかしこれ、あんまり自然じゃないんですね。2次元平面のアナロジーで行けば、ある点周りの回転と平行移動が欲しいところですが、このうち、1つめは上半面モデルで垂直方向の移動ですが、残り2つは何物でもない。
 パウリ行列もどきですが、結局次の基底のほうがより素直な変換になる事がわかります。場の量子論ポアンカレ群いじりしていたときを思い出す。

\begin{bmatrix}
1&0\\
0&-1
\end{bmatrix},\begin{bmatrix}
0&-1\\
1&0
\end{bmatrix},\begin{bmatrix}
0&1\\
1&0
\end{bmatrix}


ちなみに2つ目が回転で3つ目が平行移動です。

2.ABCjsとそもそものABC記法

またwebがらみですが、僕は音楽に関してスコア厨ですから、webで楽譜を弄れたら良さみが深まるなぁと思うわけです。
そこでまた調べてみると、ABCjsなるJavaScriptライブラリがあることがわかります。

abcjs.net


 JavaScriptライブラリ以前にそもそもJavaScriptをよく知らないのでどのような位置付けなのかもわかりませんが、とにかくブラウザはHTMLを表示するし、その中でJavaScriptが起動するわけで、
ドキュメント自体がJavaScriptから見える実行環境と思うことにしました。そんなわけで、ドキュメントの先のほうでjsファイルをロードしておけばライブラリとしてはそれで配置終了っぽいというわかりを得ます。
 ABCjsのうちBasicなるライブラリでは、文字列でABC記法(後述)自体と、それを表示する要素IDを投げると、そこで楽譜を描画してくれる関数renderAbcがあり、これで大体用が終わることがわかります。

 Hasteを触ったのですからJavaScriptを回避してみたくなります。HasteはFFIをもっており、js関数をインポートしたり、Haskell関数をjs関数としてエクスポートできます。どういう原理なんだ。
そしてその関数はシンプルにも

ffi::(FFI a)=> JSString -> a

で、JavaScriptの生コードを適当な何者かとして受け付けます。
得られる型aは実質なんでもよく、生コードに期待する型をこっちでつけてしまってよいのです。どういう原理なんだ。
とにかくFFIは謎です。そこで試しに

renderABC::String -> String -> IO()
renderABC = do ((ffi.toJSStr) "(function(a,b){ABCJS.renderAbc(a,b);})")

などとし、

renderABC "note" dat

とかしてやると、なんと表示されてしまう事がわかります。お試しください。どういう原理なんだ。
("note"はHTMLに書いた要素ID、datは別に定義したABC記法のString)

 既にABC記法のスコアがページにある場合は、勝手にその続きに譜面を描画するPluginもあり、簡単な楽譜表示には困らないことがわかります。
 しかしどうもABC記法の検出が雑っぽく、ページ内にごちゃごちゃしたものがあると誤認して変なものが出てくるのでこっちはやめました。

 結局Haskell内にABC譜文字列を埋め込み、ABCjsをFFIロードし、HasteでJavaScriptにするという埋め込み+FFIを行います。以下は去年書いた曲のメロ譜です。

http://www.asahi-net.or.jp/~fu5k-mths/cis_moll_ref.html

http://www.asahi-net.or.jp/~fu5k-mths/f_moll_ref.html


 いい感じですね。スペースを入れるかどうか、ハイフンをつけるかどうかで、スラー/タイの制御や、旗の接続制御ができるので、例えば八分三連や、八分シンコペなどはグルーヴに応じて調整できます。楽譜の整形ができるので見栄えします。


 ところでこのABC記法、構文は単純ではありますが、これ自体を楽譜、もとい演奏ファイルの抽象として考えると不自然な構文があります。一応、「音楽記述言語」を標榜しているのですが、ウーン?
 違和感の例として、音名と記譜が対応していないことがあります。ABCは名の通りABCDEFG(ラ~ソ)で音を書きますが、変化音(Cis,Ces,Dis,Desとか)はありません。
 それから調号をスケール呼称で指定して表示できますが、調号がかかっているときでも、変化なしのABCDEFGでそのスケールの音を指定します。つまりこの記号は音名ではなく、五線上の音符の位置のことです。
 さらに、調号がかかっている時に、変化音を付けた場合、勝手にナチュラルやダブルシャープダブルフラットに変換されるわけではありません。やはりこれも何の音を書いているかではなく、楽譜上その記号があるかどうかなのです。これでは音楽の記述言語ではなく、楽譜の記述言語です。音楽に対して二段離れている。すなわち、音楽にはこういう要素がこういう構造であるよね?というのを書く言語(楽譜とかMIDIとか)ではなく、楽譜にはこういう記号がこういう配置であるよね?というのを書く言語ということです。

 ちょっと音楽周りに関してやってみたい事があり、そのためにABCがいい感じかと思ったのですが、こういう調子だと微妙なことになりますね。僕は音楽それ自体の高級軽量抽象言語がほしいと思っているのですが、伝統的な楽譜はレガシーたっぷりで曖昧なところもあり、それに代替するものが何かないかと思っていましたが、ABC記法は楽譜がセマンティクスになってしまっているので同様の問題をはらんでしまいます。ここでの問題は、例えば意味論(音そのもの)がちゃんと定義されるのかどうかというのを含みます。

 もともと五線楽譜というのは微妙に冗長だったり曖昧だったりする記譜法ではあります。
例えば平均律ゆえの同音異名はその例です。良く書かれた楽譜では、同音異名のうちどれを取るか(調号で沢山シャープしてある音の半音下をナチュラルで書くか、一度下からダブルシャープするか等)
というのは幾つかの理由をもって選択されます。具体的には

  • 記譜上のメロディラインが滑らかかつ見やすくなるようにとる(半音階的メロディや刺繍音など)。
  • モーダルインターチェンジや局所転調で、旋法上の音順序を破壊しないように最近音から変化させる。

等です。このあたりはどういうニュアンスを込めるかは未定義な割にしばしそうしたニュアンスが意味を持ったりするので困りものです。

 旗を接続するかどうか、旗の切断を拍のどこで行うか、というのもそうで、これも慣習に基づきます。グルーヴによらす、4/4の曲は四音程度で旗を切断する傾向にあります。恐らく視認性のためでしょう。また付点8分付点8分8分というのは様々なところで聴くリズムですが、これも二回目の付点8分を16分8分のタイにすることが多いように思えます。不思議ですね。しかもこの場合4音以下でも途中の16分と8分の旗はつなぎません。

 こうしたものは慣習を守らなくても、楽譜として不正になることはありません。しかし見栄えは悪くなります。可読性も落ちます。
 DAWで五線編集機能が無いものが結構あるのですが、そもそも楽譜からMIDIへの変換は比較的曖昧さが無いが、MIDIから楽譜への変換はかなりの曖昧さがあるという問題によるように思います。昔そうしたGUIを触ったことがありますが、MIDIに保存してから立ち上げ直すと、楽譜が崩れていることに大変落胆した覚えがあります。しかしそのソフトは変化音処理や旗接続はかなり自然にできていたので、今思えば優秀な方だったのでしょう。

 ABCが音楽抽象、音楽記述言語というより、楽譜抽象、楽譜記述言語にあえてしたのは、やはり楽譜を取り巻く伝統的エコシステムに乗りたいというのと、新しい音楽抽象を策定して普及される事それ自体が極めて難しいからだろうという予測はできます。
 MIDIは楽器制御というつよい目的があったので、割と思い切った低レベル音楽抽象規格になりましたが、高レベル抽象で、楽譜並の表現力があり、楽譜以上の形式的厳格さを持つものを作れるかどうかというと、ウーン...
 こうした厳格かつ高級な策定自体が、なんらかの非自明な音楽観を反映してしまいざるを得ないことが想像できます。例えば「声部」概念が意味をもつかどうか、というのは例です。
また電子楽器の制御UIをどうするかというのも音源やDAWで微妙に異なる訳で、出来合いの記述変数自体に統一性がありません。
様々な面倒があります。面倒。面倒。面倒。

3.サピエンス全史たのしかった

これです。
www.amazon.co.jp


ジャパリパークの図書館に納め、フレンズが文字を学ぶことにより、かばんちゃんが容易にハブられることがわかる。