ポリ行列の導入
http://d.hatena.ne.jp/m-hiyama-memo/20160209/1454977682に書いたように、伝統的古典テンソル計算(古式テンソル計算)では、コンパクト閉圏の表現が出来ないことが分かった。
ポリ行列という概念を導入する。
- 極性なしポリ行列 ←→ 極性なしスパイダー
- 極性付きポリ行列 ←→ 極性付きスパイダー
極性なしポリ行列は、添字表現が a[J←I] または a[I→J] の形で、IとJはカンマ区切りのマルチインデックスである。Iが入力の脚の列(空列もある)、Jが出力の脚の列になる。インデック名は脚に付けられた名前である。ただし、名前は便宜上なのでリネーム(アルファ変換)が可能。
インデックスが動く範囲を指定するために、(a[k←i,j] | i:3, j:3, k:2) のように書く。i:3 は i∈{1, 2, 3} と同じ。a[k:2←i:3, j:3] でもいいだろう。λ(i:3, j:3, k:2).a[k←i,j] でもいい -- アルファ変換が自然に出来る。
極性付きポリ行列では、各インデックスに+か-が付く。(a[k+←i-,j+] | i:3, j:3, k:2)。プラスをup、マイナスをdownとすると、(a[k↑←i↓,j↑] | i:3, j:3, k:2)。さらに↑を実際に上に、↓を実際に下に書くと古典テンソル項に近くなる。ただし、上下を揃えて書くことはしない。上付き添字の下は空けて、下付き添字の上も空ける。a[k ← ij]。
2脚のスパイダーに対応するポリ行列は:
- a[j+←i+]
- a[j+←i-]
- a[j-←i+]
- a[j-←i-]
- a[j+,i+←]
- a[j+,i-←]
- a[j-,i+←]
- a[j-,i-←]
- a[i+,j+←]
- a[i+,j-←]
- a[i-,j+←]
- a[i-,j-←]
- a[←i+,j+]
- a[←i+,j-]
- a[←i-,j+]
- a[←i-,j-]
- a[←j+,i+]
- a[←j+,i-]
- a[←j-,i+]
- a[←j-,i-]
インデックス名i, jの順序も区別した。インデックスのラベル割り当ての差を無視すればシェイプとなる。脚のベンディング(曲げ加工)のときは、インデックスの順序も関係する。対称(またはブレイディング)で入れ替えるかどうかで順序が変わる。