このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Globularで古典テンソル計算

冗談ではないよ、マジ、マジ。

絵算の起源(のひとつ)は、ペンローズテンソル計算の代替に使っていたペンローズ・ヒエログリフなのだから、古典テンソル計算が絵算で出来るのは当然なのだ。絵算の電卓ソフトとしてGlobularを使う。

問題点は、Globularがラベルを描けないこと。マウスホバーでラベルがポップアップするけど、描画としてはラベルが描けないので、いちいち色とラベルの対応を照合しなくてはならない。実用性がない。

ラベル=文字列は可変長なので、実はレイアウトがとても難しい。また、ラベルの対象物とラベル文字列の位置関係も難しい。GraphVizは頑張っているが、それでも見づらいことがある。

この話は、「dots-and-wires図 vs. boxes-and-wires図」にも関連する。幾何学ポアンカレ双対の図示としては、dots-and-wiresが正しい。だが、ラベルを入れる矩形をboxで表すなら、boxes-and-wiresに軍配が上がる。Globularの弱点/機能不足のひとつはbox(一般的には大きさをもつノード)がまったく描けないことだろう。

たかがお絵描き、されどお絵描きなのだ。とりあえず、ラベル描画の問題は諦めて、対話的にラベルを見ることにする。


基本は、コンパクト閉圏だが、明示的なスターオペレーション(A |-> A*)を導入する代わりに、ベント(双対の単位)とコベント(双対の余単位)と準備して、必要に応じて射のメイト(共軛)を作る方針にする。ただし、セルの名前付けコンベンションとして、A と A* のようにして、AとA*をブリッジするベント/コベントを準備する。

例えば、AとBの2つから生成される指標(図形パレット)は、次のものからなる。ラベルはアスキー文字しか使えないので、アスキーで書く。テンソル積はカンマ。

Classical Tensor Calculus:

  1. I (モノイド単位対象)
  2. A
  3. B
  4. A* (名前のコンベンション、スター・オペレーションではない!)
  5. B*
  6. ev_A:A,A* -> I
  7. coev_A:I -> A*,A
  8. ev_B:B,B* -> I
  9. coev_B:I -> B*,B
  10. SNAKE-1_A
  11. SNAME-2_A
  12. SNAKE-1_B
  13. SNAME-2_B

これで、2つのベクトル空間AとBから生成したコンパクト閉圏の計算が出来るはずだ。実験してみるべ。