DOTNとは、Diagrammatic-Order Text Notation のアクロニムで、モノイド圏や2-圏の射を表現するための表記法です。DOTNをブログで最初に紹介したのは2006年です。
- 図式順テキスト記法(DOTN)(別なページへのリンク)
2013年にリバイスして、DOTN二号〈Version 2〉としています。とは言っても、ハッキリした言語仕様があるわけじゃないですが(苦笑)。
2020年の今、また少しリバイスしてDOTN三号にしようかな、と思っています。
DOTNは、もともと上付き下付き添字や書体の変更を使わずに、テキストエディタでも書けるプレーンテキスト記法として設計しています。この制約をはずして、ストリング図により近く、それでいて従来型の計算(等式の変形など)にも向いている記法が欲しくなりました。そんな記法がないと「ちょっとやってられん」と感じるのです。なので、新記法*1を考えてみます。CatPictって名前にします(categorical pictgram language の短縮)。
内容:
DOTN三号
DOTNは、非アスキー文字の使用を最小限(ギリシャ文字など)にして、可能な限りアスキー文字を使用する方針でした。この方針、もうやめようと思います。例えば、アスタリスクにアスキー文字(ベイシック・ラテン、いわゆる半角)を使うと、上付きっぽく見えてしまいます(レンダリング環境に依存しますが)。いわゆる全角のアスタリスクのほうが視認性が良いようです。
「上付き下付き添字や書体の変更は使わない」方針は維持しますが、Unicodeのレパートリーにある文字は、遠慮せずに使います。
文字 | 名前 | 番号 | 使用目的 |
---|---|---|---|
* | FULLWIDTH ASTERISK | U+FF0A | 図式順横結合 |
⊗ | CIRCLED TIMES | U+2297 | モノイド積 |
⦿ | CIRCLED BULLET | U+29BF | 別なモノイド積 |
・ | KATAKANA MIDDLE DOT | U+30FB | 反図式順横結合 |
· | MIDDLE DOT | U+00B7 | 反図式順横結合 |
∘ | RING OPERATOR | U+2218 | 反図式順縦結合 |
〈 | LEFT ANGLE BRACKET | U+3008 | ブラ |
〉 | RIGHT ANGLE BRACKET | U+3009 | ケット |
DOTN三号は、HTMLタグやTeXコマンド(コントロールシーケンス)の使用は避けますが、Unicode文字はドンドン使ってしまえ、と方針変更したDOTNです。
CatPict
DOTNでは表現力が不足したり見栄えが悪いことはママあります。そこで、HTMLタグやTeXコマンドを使うことも許容しましょう。そうしてみても、やはりストリング図をエンコードする目的には不満を感じます。そこで、HTMLタグやTeXコマンドを超えた機能も想定してみます。(こういう機能が欲しい理由は「双対や随伴に強くなるためのトレーニング」参照。)
- 文字・記号に対して、90度単位での回転と鏡映が施せる*2。
- 文字・記号やその塊(2次元の配置)に対して、丸/三角/四角などで囲むことが出来て、上下左右、右上下、左上下の位置に飾りを付けることも出来る。(飾りとその位置については「関手と飾り文字」参照。)
- 書字方向として、左から右だけではなく、右から左、上から下、下から上のすべての方向をサポートし、それらの書字方向を自由にミックスできる。
これらの機能は、現状のテキストエディタ/ワープロソフト/組版ソフトなどのソフトウェアでは完全には実現出来てない(実現されていたら教えて)ので、絵図言語文書をデジタルテキストとして生成することはできません*3。手書きでしか書けません。デジタルにしたいなら、残念ながらスキャン画像データしかないです。それでも無意味とは思いません。
横方向と縦方向にレイアウトできることで、演算子記号の省略〈omitting〉が2つの演算まで可能になります。例えば、A, B, C がモノイド圏の対象で、a, b, c, d がモノイド圏の射のとき、次のような表現を書けます。
a A b c d B C e B
横割りに区切ってから通常の記法にシリアライズすれば:
結合(縦に上から下)に反図式順記法を使えば:
最初から結合方向が下から上なら:
縦割りに区切ってからシリアライズするなら:
横割り表示と縦割り表示が等しいことは、モノイド圏の交替律〈interchage law〉で保証されます。
等式計算など
通常の数式のなかに絵図言語を混ぜ込んでしまう記法は、一部の人は昔から使っています。次は、「ペンローズとカウフマンのヒエログリフ」で紹介したカウフマンによる計算です。
そして、「バードトラック -- 群論的なファインマン図」で取り上げた、ツビタノビッチのバードトラック:
僕も、自己流泥縄式の記法で計算をしてました。下の画像は「3点テンパリー/リーブ代数の行列表現の作り方」(2008年)のなかの計算(の一部)です。カウフマンやツビタノビッチに比べれば絵が控えめですけどね。
とりあえず、ベクトル空間の圏で豊穣化されたコンパクト閉圏〈線形コンパクト閉圏〉の計算を目標に、絵図言語 CatPict を設計しようと思います。
最初の設計判断は、基準とする描画方向(「絵算(ストリング図)における池袋駅問題の真相」参照)です。これは、どれを選んでも同じという意味で根拠なき選択になります。僕の好みの描画方向は ↓→ ですが、↑→ にするかも知れません。その理由は、ボブ・クック達(オックスフォード量子組)と同じ流儀でブラ・ケット記法を取り入れたいからです。全面的にブラ・ケットで書くわけではなくて、基底として指定された射だけブラ・ケット(絵では三角形)で書きます。
去年、「テンソル記法の決定版は(たぶん)これだ!」という記事を書いたのですが、実際は、この記事に書いた記法は決定版ではなくて、叩き台程度です。去年のこの記事を発展させた「決定版」を、CatPict自体の構文/シリアライズ用構文に使うつもりです。
CatPictは、ストリング図やストライプ図のような絵図と、従来のテキスト記法を橋渡しするフォーマットになるだろうと期待できます。
以下は、CatPictの試案〈プロトタイプ〉で、幾つかの等式や定義を書いてみた例です。なんか、上記の2008年当時の記法とあんまり変わってませんが、同じ人(檜山)が考えてるもんで、まーしょうがない。
*1:新しいかどうかは疑問。以前から使っていた記法を整理拡充する感じです。
*2:使える回転機能がないので僕は、例えば文字'Y'の+90度回転を'>-'、-90度回転を'-<'、180度回転を'Δ'で代用しています。Y, ∇の使用例は「モノイド対象と単体的対象 // モノイドの指標のローヴェア圏」参照。