8月14日に「スタート表現論」が開催されたのですが、僕は結局お盆帰省で参加できませんでした。8月20日の「CLTT (Categorical Logic and Type Theory)読書会」のご好意により(あるいは僕の無理強い・ゴリ押しにより)、「スタート表現論」の復習ができました。当日の参加者がmaoさん(@maophilia, id:m-a-o)の講義をなぞり、橋本さん(id:yoshitake-h)が親切な解説を付けてくださる、という段取りで、とても面白かったです。ありがとうございました。
以下にとりとめもなく感想を。
文化と精神衛生の問題
なにかの同値な定義があったとき、論理的にはどちらかを優遇する根拠はありません。また、定義した概念にどういう名前を付けるかは自由だし、最適な呼称なんてありません。
でも、文化とか精神衛生の観点からの選択や傾向性はあるよね、といった話が出ました。具体例は「単純」と「既約」。環が非自明なイデアルを持たないとき「単純」と呼びますが、表現に対しては「単純」じゃなくて形容詞「既約」を付けるのは、伝統とか文化の問題らしい。表現を加群とみなせば、既約表現は非自明な部分加群を持たないことですから、「単純」と呼んでもよさそうですが、単純表現とはあまり言わない。論理的な理由はありません。
精神衛生と言っているのは、「心が落ち着く」とか「気持ちいい」という感覚のことです。これは個人差が甚だしいので、ある人の「心が落ち着く」が別な人を「イラつかせる」可能性があります。
量子群という言葉は、イメージが湧かないし定義のゆらぎがあるようです。ホップ代数に条件を付けたものとして量子群を定義できますが、僕の精神衛生の観点からは、「心が落ち着く」「気持ちいい」感じがしません。「量子群とはおおよそブレイド付きテンソル圏」というほうが「心が落ち着く」「気持ちいい」ですね。
動機と背景が分からない -- 少しわかった
スタート表現論のテキストである谷崎俊之・著『リー代数と量子群』は、コンパクトにキッチリと書かれた良い教科書なんだとは思うのですが、動機や背景のオシャベリはごく僅かです。「なんでこんなこと考えなきゃならんの?」とか「それがどうした?」という感じを払拭できません。なにか外的なプレッシャーでもないと、読み続けるモチベーションを維持するのは難しいですね。
例えば、谷崎本の最初のほうに出てくる包絡代数(普遍展開環)ですが、こりゃ何でしょう? 僕は、結合代数の交換子 xy - yx でリー代数のブラケットが書けると計算が楽になるのかな? と想像した程度。確かに計算ができるようになるという面もありますが、橋本さんによると、カシミール作用素の存在、可換な部分を取り出せること、結合代数(あるいはホップ代数)の表現との関係あたりが重要なようです。
よい条件が揃うと、リー代数に非退化計量が入り、計量からカシミール作用素が定義されるんだそうです。カシミール作用素はだいたいラプラシアンみたいな作用素で、包絡代数の2次の部分に生息。リー代数を1階微分の代数とみなせば、カシミール作用素は2階微分作用素となります。1次(1階)の部分だけを考えてる限り、カシミール作用素のような高階の要素には出会えないわけです。
包絡代数の作り方を見ると、xy - yx = [x, y] の形の関係を使いますが、[x, y]をzと置くと、xy - yx = z となります。左辺の xy - yx は変数x, yの2次式ですが、右辺は1次式です。この形から、掛け算の非可換な部分を、次数が1つ下の所に落とすことができます。その結果、多項式の最高次の部分だけを取り出すと(次数が小さい部分を切り落とすと)可換環ができます。
この事実を見ると、「リー代数は非可換なナニカを表してるように思えます(実際にそうでしょう)が、可換代数とそれほどは違わない」気がします。もとのリー代数=1階の部分だけを見てるとよくわかりませんが、高階(高次)の部分まで取り入れた包絡代数の構造はむしろ、可換な計算に非可換なシッポを付けたように見えます。
コンピューティングと表現論
表現論の計算にコンピュータを使う、という話ではなくて、一般的な計算現象の定式化に表現論が関係するのか、という話題です; id:oto-oto-otoさんがそんなことを気にしていました。
計算現象に、リー代数や群の表現論を直接的には適用しにくいと思います。まず、たいていの計算現象は線形代数の構造を持ってません。普通の体を係数に使うことは難しいです。形式的に自由ベクトル空間とか作ってみてもナンダカ意味不明。意味がありそうなのは“体”F1上の線形代数ですが、これは普通ではないですね。
ブール代数を二元体とみなすことはできるので(「古典論理は可換環論なんだよ」参照)、F2上の線形代数には持ち込めます。でも、x + x = 0 という足し算がどうも不自然に感じるときもあります。x + x = x とすると、いつも使っているブール代数になりますが、もはや体ではなく、線形代数のかなりの部分が使えなくなります。
もうひとつ、リー代数などに比べると、計算に出てくる非可換代数は非可換性が激しいのです。例えば、アルファベットAから作った記号列のモノイド M = A* を考えて、適当な係数でモノイド代数を作ります。するとこれは、自由代数で非可換多項式環そのものです。等式的な関係は何もないので、激しく非可換です。
破壊的代入や単一代入は左自明(xy = x)または右自明(xy = y)な積を持つモノイドで定式化できますが、このモノイド/モノイド代数も構造は簡単ですが全くの非可換です。
連接や代入操作を掛け算とする非可換結合代数に対し、普通の交換子を作ってみても何が面白いかわかりません。ただし、複数の要素の集まりに対して、ありとあらゆる組み合わせの和を作るとこれは面白いです。タイムシェアリングシステムのベースになっているインターリービング(シャフリング)です。
プロセッサのインストラクションセットをアルファベットAと考え、モノイド M = A* を作ると、それはプログラム実行の全体です。演算は逐次結合で単位元はNOP(なにもしないプログラム)です。F2やブール代数(どちらも二元の代数系)の係数を付ければ、いちおうベクトル空間(半ベクトル空間)になり、この非可換代数の要素は非決定性のプログラムになります。足し算は選択的実行(OR結合)ですね。たくさんのプロセッサを考えれば、複合系になるので非可換代数の(ベクトル空間/半ベクトル空間としての)テンソル積を取ることになります。
プロセッサ実行はメモリに作用するので、メモリ状態の全体を(これも適当に係数を付けて)Sとすると、ベクトル空間(半ベクトル空間)Sはプログラム実行の非可換代数上の加群になります。プロセッサとメモリの組がたくさんあって、お互いに分離している(相互干渉をしない)なら、全体の複合系はやはりテンソル積で記述できます。共有メモリを持つとそういうわけにはいかなくて、関係が入るので、テンソル代数の(関係による)商代数を作るような話になります。といっても、線形代数が使えない状況で商代数を作るのは難しい…。
複数の分離した「プロセッサ+メモリ」の挙動をインターリービングして、単一の「プロセッサ+メモリ」でエミュレートできることは、非可換代数と加群の文脈でも示せるし、モノイド圏の交替律を使った主張もできます。でも、一般的な共有メモリに起因する関係による商代数を構成して構造を調べること(並列プログラムの解析)はとても難しそうです。
非可換代数だけだと直感が効かないところがあるので、やはり有向ホモトピーのような幾何学的な手段も使わないと厳しいかな、とも思います。
係数体を実数にして、ベクトル空間というよりは、正値で足して1となるような係数による1次結合(重心結合)だけを考えて、単なる足し算の代わりに重み付き和を使う方法も考えられます。これは、プリミティブなプログラムやメモリ状態(生成元)上に確率分布を与えることになるので、非決定性プログラムの連続版である確率プログラム/確率遷移系の話になります。
いずれにしても、生成元と関係とかテンソル積とかの基本的な手段は、プログラムと計算を調べるときにも有効だとは言えます。