図式順テキスト記法(DOTN)

檜山正幸 (HIYAMA Masayuki)
Tue Apr 25 2006:start
Thu Apr 27 2006:draft

圏論の計算のために、テキストエディタとキーボードだけでも容易に入力可 能な記法を提案し、計算を実行してみる。この記法は、図式順(diagrammatic order)に左から右に向かって書き記す方式である。

目次

1. はじめに

圏論の計算のために、テキストエディタとキーボードだけでも容易に入力可 能な記法を案出しようと何度か試みて、何度か(試みと同じ回数)挫折した。 それで得た教訓は、あまり高望みせず(所詮、テキスト表現では限度があるから)、 できることだけをチマチマとやっていくほうがよさそうだ、ということ。それ で、自然変換の計算にしぼって、アスキー文字+ギリシャ文字(*注1)で書け る記法を提案し、計算を実行してみる。

注1

英字に対する太字、下線など修飾が使えれば、それをギリシャ文字の代わり に使える。

テキストによる式は、diagrammatic order、つまり左から右に読めること に拘った。この特徴を強調して、ここで述べる記法を‘図式順テキスト記法 (Diagrammatic-Order Text Notation; DOTN)’と呼ぶことにする。左から右 の記法を使う人は多くはない。 Juergen Koslowskiが使って いるのを見たことがあるが、どうも違和感がある。一方、 Roland Backhouseは右から左を徹 底している(図式も右から左を使う)が、これはこれで読みにくい。DOTNも当 然に違和感をまぬがれないだろうが、表記と計算の機能性はなかなか優れてい る。とりあえず、自然変換の縦結合と横結合の交替律(interchange law)を DOTNで示すことをこの記事の目標とする。

2. 基本的な記号の約束

記号を次のように使い分ける。まったく厳密密性に欠ける規則だが、人間の “常識”で理解可能ならよいとする(コンピュータ処理は度外視)。

特に断りがなくても、a∈Cは、aがCの対象であることを示す。上の規約から、 aのタイプは圏の対象だから紛れることはないだろう。また、f∈Cは、fがCの 射であることを示し、f:a→b in C は、f∈C で f:a→b であることを示す。

fとgの(この順での)結合(composition;合成)はf;gと書く。対象aの恒等 射はa^で示す。f:a→b, g:b→c, h:c→d in C として次が成立する。

  1. (f;g);h = f;(g;h) : a→d in C
  2. a^;f = f;b^ = f : a→b in C

3. 関手の適用/結合、自然変換の縦結合

f:a→b in C、F:C→D、G:D→E のとき、

記法の約束からただちに次が従う:

   a.F -[f.F]→b.F
 a.α|          |b.α
    |          |      in D
    v          v
   a.G -[f.G]→b.G

自然変換α::F⇒G:C→D、β::G⇒H:C→Dに対して、自然変換 (α|β)::F⇒ H:C→Dを次のように定義する

(α|β)を、αとβの‘縦結合’と呼ぶ。 (α|β)が、F⇒H:C→Dの自然変換になることは、次を示せばよい(下図参照)。

        in D

   a.F -[f.F]→b.F
 a.α|          |b.α
    |    (1)   | 
    v          v
   a.G -[f.G]→b.G
 a.β|          |b.β
    |    (2)   | 
    v          v
   a.H -[f.H]→b.H

これは次のように計算できる。

αとβの自然性を仮定する。
(1) a.α;f.G = f.F;b.α 
(2) a.β;f.H = f.G;b.β

  a.(α|β);f.H    //↓ |の定義
= (a.α;a.β);f.H  //↓ ;の結合律
= a.α;(a.β;f.H)  //↓ 仮定(2)
= a.α;(f.G;b.β)  //↓ ;の結合律
= a.α;f.G;b.β

  f.F;b.(α|β)    //↓ |の定義
= f.F;(b.α;b.β)  //↓ ;の結合律
= (f.F;b.α);b.β  //↓ 仮定(1)
= (a.α;f.G);b.β  //↓ 括弧をはずして書いただけ
= a.α;f.G;b.β

4. 関手と自然変換の圏

関手F:C→Dに対して、自然変換ι::F⇒F:C→Dを次のように定義する

ここで、(a.F)^はa.Fのid射を示す。ιが自然変換であ る条件は、f:a→b in Cに対して a.ι;f.F = f.F;b.ι in D である(下図参照)。
   a.F -[f.F]→b.F
 a.ι|          |b.ι
    |          |      in D
    v          v
   a.F -[f.F]→b.F
これは次のように計算できる。
  a.ι;f.F   //↓ ιの定義
= (a.F)^;f.F //↓ idの性質
= f.F

  f.F;b.ι   //↓ ιの定義
= f.F;(b.F)^ //↓ idの性質
= f.F

以上で定義したιはF:C→Dごとに決まるので、これをF^を書く。この記号で改めて定義を書くと:

α::F⇒G:C→D のとき:

次のように計算できる。

  f:a→b in C

  a.(F^|α)    //↓ |の定義
= a.F^;a.α    //↓ F^の定義
= (a.F)^; a.α //↓ idの性質
= a.α

  a.(α|G^)    //↓ |の定義
= a.α;a.G^    //↓ G^の定義
= a.α;(a.G)^  //↓ idの性質
= a.α

α::F⇒G:C→D、β::G⇒H:C→D、γ::H→K::C→Dに対して、次の結合律も簡 単に示せる。

  a.((α|β)|γ)       //↓ |の定義
= a.(α|β) ; a.γ     //↓ |の定義
= (a.α ; a.β) ; a.γ //↓ ;の結合律
= a.α ; (a.β ; a.γ) //↓ |の定義
= a.α ; (a.(β|γ))   //↓ |の定義
= a.(α|(β|γ))

いままでの結果から、F:C→Dの形の関手を対象として、α::F⇒G:C→Dの形の 自然変換をFからGへの射とする圏が定義できた。対象F(実体は関手)に対す る恒等射(実体は自然変換)はF^、圏の結合(合成)演算は|(自然変換の縦 結合)で与えられる。

5. 関手と自然変換の結合

F:A→B、β::G⇒H:B→C、K:C→Dだとする。このとき、F;;β :: F;;G⇒F;;H : A→C と β;;K :: G;;K⇒H;;K : B→D を次のように定義する。a∈A、b∈ Bとして:

F;;α、β;;K を‘関手と自然変換の結合’と呼ぶ。これは、関手どおしの結 合とも、自然変換の縦結合とも異なる。F;;βとβ;;Kが自然変換であることは 確認が必要である。g;x→y in Bに対してx.β;g.H = g.G;y.β を仮定して次 を示す。

次の計算で示せる。

  a.(F;;β);f.(F;;H) //↓ F;;βとF;;Hの定義
= a.F.β;f.F.H       //↓ 括弧を付ける
= (a.F).β;(f.F).H   //↓ 仮定 -- βが自然変換
= (f.F).G;(b.F).β   //↓ F;;GとF;;βの定義
= f.(F;;G);b.(F;;β)

  x.(β;;K);g.(H;;K)  //↓ β;;Kと H;;Kの定義
= (x.β.K);(g.H.K)    //↓ Kの関手性
= (x.β;g.H).K        //↓ 仮定 -- βが自然変換
= (g.G;y.β).K        //↓ Kの関手性
= g.G.K;y.β.K        //↓ G;;Kとβ;;Kの定義
= g.(G;;K);y.(β;;K)

次の形の分配律が成立する。F:C→D、β::G⇒G':D→E、β'::G'⇒G :D→E ; α::F⇒F':C→D、α'::F'⇒F :C→D として:

  a.(F;;(β|β'))       //↓ ;;の定義
= a.F.(β|β')          //↓ |の定義
= a.F.β ; a.F.β'      //↓ ;;の定義
= a.(F;;F) ; a.(F;;β') //↓ |の定義
= a.((F;;F)|(F;;β'))
  a.((α|α');;G)     //↓ ;;の定義
= a.(α|α').G        //↓ |の定義
= (a.α ; a.α').G    //↓ Gの関手性
= a.α.G ; a.α'.G    //↓ ;;の定義
= a.(α;;G) ; a.(α';;G)  //↓ |の定義
= a.((α;;G)|(α';;G))

6. 自然変換の横結合

α:: F⇒F' :A→B、β:: G⇒G' :B→Cという2つの自然変換を考える。 これらに対して、‘横結合’(スター積)α*βを次のように定義する

この定義がαとβに対して“対称性”を持つこと: (α;;G)|(F';;β) = (F;;β)|(α;;G') を示したい。そのための補題を得るため、a.α:a.F→a.F' in B に対してβ::G⇒G':B→Cを適用する。

     a.F.G  -[a.α.G]→a.F'.G
 a.F.β |                |a.F'.β
       ↓                ↓
     a.F.G' -[a.α.G']→a.F'.G'
これより、a.F.β ; a.α.G' = a.α.G ; a.F'.β。これを使って目的の等式 を示す。
  a.((α;;G)|(F';;β)) //↓ |の定義
= a.(α;;G);a.(F';;β) //↓ ;;の定義
= a.α.G ; a.F'.β

  a.((F;;β)|(α;;G')) //↓ |の定義
= a.(F;;β);a.(α;;G') //↓ ;;の定義
= a.F.β ; a.α.G'     //↓ 上の補題
= a.α.G ; a.F'.β

よって、α*βは次のように定義してもよい。

実際には、次の形の定義が有効である。

以下の計算では、上の定義を用いる(別な定義を採用したほうが簡単になる こともあるが)。

7. 横結合のいろいろな性質

ここでも、α:: F⇒F' :A→B、β:: G⇒G' :B→C、γ:: H⇒H' :C→D とする。 関手A^:A→Aに対応する恒等自然変換をA^^::A^⇒A^:A→A とする。^の定義より。

A^^ をA~と略記することもある。つまり:

横結合に関して、次が成立する。

  1. (α*β)*γ = α*(β*γ) ::F;;G;;H⇒F';;G';;H' :A→D
  2. A~*α = α ::F⇒F':A→B
  3. α*B~ = α ::F⇒F':A→B
  4. F^*β = F;;β ::F;;G⇒F;;G':A→C
  5. α*G^ = α;;G ::F;;G⇒F';;G:A→C
  6. (F;;G)^ = F^*G^ ::F;;G⇒F;;G:A→C

・ (α*β)*γ = α*(β*γ)

定義:a.(α*β) = a.α.G ; a.F'.β を使う。ブラケットは丸括弧と同じ。

  a.((α*β)*γ)                 //↓ *の定義
= a.(α*β).H ; a.(F';;G').γ    //↓ 括弧を付ける
= [a.(α*β)].H ; a.(F';;G').γ  //↓ *の定義
= [a.α.G ; a.F'.β].H ; a.(F';;G').γ //↓ 括弧をはずす
= a.α.G.H ; a.F'.β.H ; a.F'.G'.γ

  a.(α*(β*γ))                 //↓ *の定義
= a.α.(G;;H) ; a.F'.(β*γ)     //↓ 括弧の付け替え
= a.α.(G;;H) ; [(a.F').(β*γ)] //↓ *の定義
= a.α.(G;;H) ; [(a.F').β.H ; (a.F').G'.γ] //↓ 括弧をはずす
= a.α.G.H ; a.F'.β.H ; a.F'.G'.γ

・ A~*α = α

定義:a.(α*β) = a.α.G ; a.F'.β を使う。

  a.(A~*α)        //↓ *の定義
= a.A~.F ; a.A^.α //↓ A~の定義
= a^.F ; a.A^.α   //↓ A^の定義
= (a.F)^ ; a.α    //↓ idの性質
= a.α

・ α*B~ = α

定義:a.(α*β) = a.α.G ; a.F'.β を使う。

  a.(α*B^)         //↓ *の定義
= a.α.B ; a.F'.B~  //↓ B~の定義
= a.α.B ; (a.F')^  //↓ Bの定義
= a.α ; (a.F')^    //↓ idの性質
= a.α

・ F^*β = F;;β

定義:a.(α*β) = a.α.G ; a.F'.β を使う。

  a.(F^*β)         //↓ *の定義
= a.F^.G ; a.F.β   //↓ F^の定義
= (a.F)^.G ; a.F.β //↓ Gの関手性
= (a.F.G)^ ; a.F.β //↓ idの性質
= a.F.β            //↓ ;;の定義
= a.(F;;β)

・ α*G^ = α;;G

定義:a.(α*β) = a.α.G ; a.F'.β を使う。

  a.(α*G^)         //↓ *の定義
= a.α.G ; a.F'.G^  //↓ G^の定義
= a.α.G ; (a.F')^  //↓ idの性質
= a.α.G            //↓ ;;の定義
= a.(α;;G)

・ (F;;G)^ = F^*G^

定義:a.(α*β) = a.α.G ; a.F'.β を使う。

  a.(F;;G)^         //↓ 関手の^の定義
= (a.(F;;G))^       //↓ ;;の定義
= (a.F.G)^ 

  a.(F^*G^)         //↓ *の定義
= a.F^.G ; a.F.G^   //↓ F^、G^の定義
= (a.F)^.G ; (a.F)^ //↓ Gの関手性
= (a.F.G)^ ; (a.F)^ //↓ idの性質
= (a.F.G)^

8. 交替律(Interchange Law)

α::F⇒F':A→B、α'::F'⇒F :A→B、β::G⇒G':B→C、 β'::G'⇒G :B→C に対して次が成立する。

これを‘交替律’と呼ぶ。

先に次の等式を示しておく。

次の可換図式から得られる。
a.α': a.F'→a.F'' in B に β::G⇒G':B→Cを適用すると:

     a.F'.G  -[a.α'.G]→ a.F''.G
a.F'.β |                   |a.F''.β
       ↓                   ↓
     a.F'.G' -[a.α'.G']→ a.F''.G'

交替律は次のように計算される。

(*) a.α'.G;a.F''.β = a.F'.β;a.α'.G' in C を使う。

  a.((α|α')*(β|β'))         //↓ *の定義
= a.(α|α').G ; a.F''.(β|β') //↓ |の定義
= (a.α;a.α').G ; (a.F''.β;a.F''.β')   //↓ Gの関手性
= (a.α.G;a.α'.G) ; (a.F''.β;a.F''.β') //↓ 括弧の付け替え
= a.α.G;(a.α'.G;a.F''.β); a.F''.β'    //↓ (*)を使う
= a.α.G;a.F'.β;a.α'.G';a.F''.β'

  a.((α*β)|(α'*β'))         //↓ |の定義
= a.(α*β) ; a.(α'*β')       //↓ *の定義
= (a.α.G;a.F'.β);(a.α'.G';a.F''.β')    //↓ 括弧をはずす
= a.α.G;a.F'.β;a.α'.G';a.F''.β'