口で言うより、こ~どで示せ。

研究途中で終わっちゃったコードをおいておこう。

Drinfeld-Sokolov reduction (DS red.)

F4のW代数を出そうを思って計算したら、膨大な計算量で死にました。

ある条件に合うように場を組み合わせて項を作り、それにたいしてOPEを計算するんだけど、組み合わせの数って爆発的に増えていくから、無理なのさ。

でも置いておく。

内容

  • F4/
  • F4-Str/
  • F4.csv
  • F4-root.csv

  • Out/

  • DS_red.nb

  • grade.nb

  • makeStrCst.nb

  • str_const.xlsx

使い方

まず、Chevalley basisの構造定数(N_{\alpha \beta})の表を用意する。表というのはこのプレプリのTable 2みたいなものだ。F4, E6, E7, E8についてはzipの中のstrconst.xlsxに記述してある(確かSome representations of exceptional Lie algebrasの表を使った)。それをF4\F4-Str\F4.csvのようなファイルにする。あと、F4\F4-Str\F4-root.csvのようなファイルと作る。表には正ルートに対応した構造定数(N{\alpha \beta})しか載ってないが上のプレプリの§14の公式を使えば、負ルートに対応する部分も求まる。それをやってくれるコードがmakeStrCst.nbだ。これを考えている代数に合わせてちょこちょこと弄ればおk。その後、DS red.に使えるように、grade.nbを走らして構造定数を変換する。

とここまでは上記zipのファイルだけで出来るんだけど、OPEを使うためにはOPEdefs.mというパッケージが必要。

Dr Kris Thielemansにアレくれって言うとくれる。

OPEdefs.mを手に入れたら、DS_red.nbを走らせる。するとメモリ切れで終わる。

プログラム自体が間違っている可能性もあるので気をつけて。

文献

AGT relation

内容

  • Nekrasov.nb
  • Shapovalov.nb
  • W3algebra.m
  • W3albebra.nb
  • Young.m
  • Young.nb

W4代数でもAGT関係式は成り立っとんのかい?と思ったら死んでました。

こちらは頑張れば確認できるかもだけど、やるにしてもまだまだ先が長い。

Shapovalov.nb

Shapovalov.nbはW3代数のShapovalov行列を求めるプログラム。もちろんVirasoro代数のShapobalov行列も計算できるよ。Young.mとW3algebra.mが同じフォルダに入っている必要あり(パッケージとしてインストールしてもいいかも)。Shift + Enterを繰り返して

[text]ShapovalovMatrix[2, 3, state[Δ, w]][/text]

と打つとレベル3のW3代数のShapovalov行列を求める。2を1にするとVirasoro代数の部分のみを求める。3を入れるとW4代数のShapovalov行列を求めようなプログラムを作りたかったが途中で断念。

結果は

S[L[-3], L[-3]] == 2 (c + 3 [CapitalDelta])

という形で出てくるけど代入されているわけではありません。代入したい場合は結果が出た後


% /. Equal -> Set

とすると代入される。

ちなみにW4代数は[口で言うより、こ~どで示せ。

研究途中で終わっちゃったコードをおいておこう。

Drinfeld-Sokolov reduction (DS red.)

F4のW代数を出そうを思って計算したら、膨大な計算量で死にました。

ある条件に合うように場を組み合わせて項を作り、それにたいしてOPEを計算するんだけど、組み合わせの数って爆発的に増えていくから、無理なのさ。

でも置いておく。

内容

  • F4/
  • F4-Str/
  • F4.csv
  • F4-root.csv

  • Out/

  • DS_red.nb

  • grade.nb

  • makeStrCst.nb

  • str_const.xlsx

使い方

まず、Chevalley basisの構造定数(N_{\alpha \beta})の表を用意する。表というのはこのプレプリのTable 2みたいなものだ。F4, E6, E7, E8についてはzipの中のstrconst.xlsxに記述してある(確かSome representations of exceptional Lie algebrasの表を使った)。それをF4\F4-Str\F4.csvのようなファイルにする。あと、F4\F4-Str\F4-root.csvのようなファイルと作る。表には正ルートに対応した構造定数(N{\alpha \beta})しか載ってないが上のプレプリの§14の公式を使えば、負ルートに対応する部分も求まる。それをやってくれるコードがmakeStrCst.nbだ。これを考えている代数に合わせてちょこちょこと弄ればおk。その後、DS red.に使えるように、grade.nbを走らして構造定数を変換する。

とここまでは上記zipのファイルだけで出来るんだけど、OPEを使うためにはOPEdefs.mというパッケージが必要。

Dr Kris Thielemansにアレくれって言うとくれる。

OPEdefs.mを手に入れたら、DS_red.nbを走らせる。するとメモリ切れで終わる。

プログラム自体が間違っている可能性もあるので気をつけて。

文献

AGT relation

内容

  • Nekrasov.nb
  • Shapovalov.nb
  • W3algebra.m
  • W3albebra.nb
  • Young.m
  • Young.nb

W4代数でもAGT関係式は成り立っとんのかい?と思ったら死んでました。

こちらは頑張れば確認できるかもだけど、やるにしてもまだまだ先が長い。

Shapovalov.nb

Shapovalov.nbはW3代数のShapovalov行列を求めるプログラム。もちろんVirasoro代数のShapobalov行列も計算できるよ。Young.mとW3algebra.mが同じフォルダに入っている必要あり(パッケージとしてインストールしてもいいかも)。Shift + Enterを繰り返して

[text]ShapovalovMatrix[2, 3, state[Δ, w]][/text]

と打つとレベル3のW3代数のShapovalov行列を求める。2を1にするとVirasoro代数の部分のみを求める。3を入れるとW4代数のShapovalov行列を求めようなプログラムを作りたかったが途中で断念。

結果は

S[L[-3], L[-3]] == 2 (c + 3 [CapitalDelta])

という形で出てくるけど代入されているわけではありません。代入したい場合は結果が出た後


% /. Equal -> Set

とすると代入される。

ちなみにW4代数は]9JoséM. Figueroa-O’Farrill, “On the homological construction of Casimir algebras”を見ると載っていたはず。

こちらのプログラムはKanno-Matsuo-ShibaMironov-Morozovの結果と一致していたので安心してお使いください(2,3個違った部分もあったけど、多分タイポ)。

W3algebra.m

W3代数の定義とか非可換積の並び替えをする関数NCSortByの定義とか。


SetDirectory[NotebookDirectory[]];
<< W3algebra.m
(_固有値_)
state /: L[0] ** state[Δ, w\___] :=Δ state[Δ, w];
state /: W[0, m\_] ** state[Δ\_, w\___] := {w}[[ m &#8211; 2]] state[Δ, w];

NCSortBy[L[-2] \*\* L[-1] \*\* W[-1, 3] \*\* W[-3, 3] \*\* state,NCOrderedQ,commutator]

こんな感じで使う。

NCSortByは第1引数の非可換積の隣り合う演算子をNCOrderedQで比較し、NCOrderedQがFalseを返したら、commutatorを使って交換する関数。

W3algebra.nbのNCOrderedQとcommutatorを変えたら、どこかで使えるかも。

こちらに詳しい説明書きました。

Young.m

ヤング図をインデックスの成分とするSum、YoungSumとヤング図をインデックスの成分とするTable、YoungTableが定義されてるパッケージ。

YoungTableはShapovalov.nbで使った。

以下はYoungSumの説明。

例えば(\prod_{k=1}^n SU(d_k)) linear quiver gauge theoryを考える。インスタントン分配関数は以下のとおり(Kanno-Matsuo-Shibaから抜粋)。

$$

\newcommand{\nt}{\nonumber\}

\newcommand{\bp}{{\bar p}}

\newcommand{\bmu}{{\bar\mu}}

\newcommand{\tx}{\text}

\newcommand{\vY}{{\vec Y}}

\newcommand{\vha}{{\vec{\hat a}}}

\begin{align_}

Z_\text{inst}

&=\sum_{{\vY_1,\cdots,\vY_n}} \left(\prod_{k=1}^n q_k^{|\vY_k|}z_\tx{vec}(\vha_k,\vY_k)\right)

\left(\prod_{\bp=1}^{d_1} z_\tx{afd}(\vha_1,\vY_1,\bmu_\bp)\right)

\nt&\times

\left(\prod_{k=1}^{n-1} z_\tx{bfd}(\vha_k,\vY_k;\vha_{k+1},\vY_{k+1};m_k)\right)

\left(\prod_{p=1}^{d_n} z_\tx{fd}(\vha_n,\vY_n,\mu_p)\right)

\end{align_}

$$

ここで(\vec Y_k=(Y_{k,1},\cdots,Y_{k,d_k}))はヤング図のセット、(|\vec Y_k|)はヤング図(Y_{k,i} (i=1,\cdots,d_k))の箱の数の合計である。

(\sum_{{\vY_1,\cdots,\vY_n}})の部分を箱の数の合計を増やしていく部分と、箱の数を固定して、ヤング図の形を変える部分に分けて

$$\sum_{{l_1,l_2,\cdots,l_n}} \sum_{{|\vec Y_1|=l_1,|\vec Y_2|=l_2,\cdots,|\vec Y_n|=l_n}}$$

とする。この後ろの部分の和を計算するのが、ナウでヤングなYoungSum。足さないで配列を返すのがYoungTable。

そもそもヤング図の足し上げの説明をしてないので説明すると、例えば(\sum_{|\vec Y_1|=2})で(d_1=2)とすると、(\vec Y_1=(Y_{1,1},Y_{1,2}))は(日, 0), (□□, 0), (□, □), (0, 日), (0, □□)の5通りあり、これを足し上げることになる。

(n=3)のとき、YoungSumを使って(Z_\text{inst})を計算するには(最初の和は省略)


SetDirectory[NotebookDirectory[]];
<< Young.m
YoungSum[Hold[Product[q[k]^l[k] zvec[avec[k], Yvec[k]] ,{k, 3}]
Product[zafd[avec[1], Yvec[1], mubar[pbar]], {pbar, d[1]}]
Product[zbfd[avec[k], Yvec[k], avec[k+1], Yvec[k+1], m[k], {k, 2}]
Product[zfd[avec[3], Yvec[3], mu[p], {p, d[3]}] ,{Yvec[1], d[1], l[1]}, {Yvec[2], d[2], l[2]}, {Yvec[3], d[3], l[3]}]

と書けば良い。YoungSumしたい対象全体をHoldで囲むことをお忘れなく(引数1の部分)。Holdしないと、Mathematicaは引数をまず計算して結果をYoungSumに渡そうとする。しかし、まだ、Yvec[k]は値を持っていないのでエラーがでる。HoldはYoungSumの内部でReleaseHoldされる。

Yvec[k]の値は”ヤング図”のセットだが、計算機で図を入れるわけにもいかないので、数字の配列が入っている。上の5通りのヤング図のセットの場合は


{{2},{0}},{{1,1},{0}},{{1},{1}},{{0},{2}},{{0},{1,1}}

となる。

zvec[avec[k],Yvec[k]]など関数の書き方はNekrasov.nbを御覧ください(そこではYoungSumを使ってないだけど)。