とりあえず、記号の使い方を決めます。が、使っているうちに変更される可能性があります。決めた記法により、いくつかの定義もします。
用語のバリエーションの書き方は「用語のバリエーション記述のための正規表現」を参照。
内容:
基本的な記法
記法の決め方の方針:
- 誤解をしにくい。
- 視認性が良い。
- 手早く書ける。
上の項目ほど優先順位が高い。計算に使う記法では、統一性は重要ではないのでかなり不統一。
- グラフAの頂点集合は A(0) とも書く。|A| = A(0) 。
- グラフAの辺集合は A(1) とも書く。
- s, t:A(1)→A(0) は、それぞれ、辺の始点と終点。
- グラフ射〈準同型写像〉f:A→B の頂点部分は f(0):A(0)→B(0), 辺部分は f(1):A(1)→B(1) と書く。単純グラフでは、頂点部分が決まれば、辺部分は自動的に決まる(任意性がない)。
- a, a'∈|A| として、辺は a→a' と書く。単純グラフでは、両端が決まれば、辺は自動的に決まる(任意性がない)。
- 辺は両端で決まるので、名前を付ける必要性は少ないが、i:a→a' in A のようにも書く。i は辺の名前。単純グラフなので、i:a→a' ⇔ i = (a→a') 。
- f, gがホムグラフの頂点(i.e. グラフ射)のとき、ホムグラフ(後述)の辺を α:f⇒g のようにも書く。ただし、α:f→g でもよい。「⇒」は、ホムグラフの辺であることを強調する/注記する記法。単純グラフなので、α:f⇒g ⇔ α = (f⇒g) = (f→g)
- a ∈0 A :⇔ a ∈ A(0)
- i ∈1 A :⇔ i ∈ A(1)
記法に慣れるために、幾つかの定義と等式を書いておく。
- s(a→b) = a, t(a→b) = b
- For a, b ∈0 A, A(a, b) := {i∈A(1) | s(i) = a ∧ t(i) = b}
- For f:A→B in SG
- f(0)(s(i)) = s(f(1)(i))
- f(0)(t(i)) = t(f(1)(i))
- i∈A(a, b) ⇒ f(1)(i)∈B(f(0)(a), f(0)(b)) (ここの「⇒」は「ならば」)
記号の乱用
f(0)もf(1)も区別せずに単にfと書くことが多い。f(0) から f(1) が決まってしまうので、乱用しても弊害は少ないと思われる。
- For f:A→B in SG
- f(s(i)) = s(f(i))
- f(t(i)) = t(f(i))
- i∈A(a, b) ⇒ f(i)∈B(f(a), f(b))
文字の使い方の目安
あくまで目安。守らないことも、変更することもあり得る。
文字 | 種別 | 用途・意味 | 備考 |
---|---|---|---|
a, b, c, d | 変数 | グラフの頂点 | a', b' なども |
f, g, h | 変数 | グラフ射 | SGの射、ホムグラフの頂点 |
i, j, k | 変数 | グラフの辺 | あまり使わない |
s, t | 構成素名 | 辺の始点と終点 | |
u, v, w | 変数 | グラフ射 | 主にホムグラフの頂点 |
x, y, z | 変数 | グラフの頂点 | x', y' なども |
A, B, C, D | 変数 | 単純グラフ | SGの対象 |
F, G | 変数 | ホムグラフへのグラフ射 | 高階グラフ射 |
1 | 固有名 | 単頂点離散グラフ | 太字のイチ |
X, Y, Z | 変数 | 単純グラフ | SGの対象 |
α, β, γ | 変数 | 変形 | ホムグラフの辺 |
γ | 構成素名 | 内部結合 | 変数とかぶり |
α | 構成素名 | 結合律子 | 変数とかぶり |
ε | 構成素名 | 随伴の余単位 | ev とも書く |
η | 構成素名 | 随伴の単位 | ins とも書く |
φ | 構成素名 | 内部カリー化 | ホムグラフ間の射 |
ψ | 構成素名 | 内部反カリー化 | ホムグラフ間の射 |
λ | 構成素名 | 左単位律子 | |
λ | メタ記号 | ラムダ記号 | 左単位律子とかぶり |
ρ | 構成素名 | 右単位律子 | |
σ | 構成素名 | 対称〈スワップ〉 | |
ι | 構成素名 | 内部恒等 | |
Φ | 構成素名 | {右}?カリー化 | ホムセット間写像、通常はΛ |
Ψ | 構成素名 | 反{右}?カリー化 | ホムセット間写像、通常はΓ |
グラフ射を部分に分ける
f:A→B in SG を f = (f(0), f(1)) と書く。Aの辺集合 A(1) が直和で A(1) = A(1)1 + A(1)2 と書けるとき、
- f(1)1 := (fの、A(1)1 への制限)
- f(1)2 := (fの、A(1)2 への制限)
として、次の書き方をする。
- f = (f(0), f(1)1 | f(1)2)
この書き方では、「,」より「|」のほうが優先度(結合の強度)が高い。
「,」、「|」では視認性が悪いときは、ALSO, OR を使う。
- f = (f(0) ALSO f(1)1 OR f(1)2)
ラムダ記法
通常のインフォーマルな型付きラムダ記法を用いるが、'λ'の肩に 0, 1 を付けることがある。
- λ0x∈X.( ... ) は、λx∈0X.( ... ) 、あるいは、λx∈X(0).( ... ) と同じ。グラフ射の頂点部分を表す。
- λ1x∈X.( ... ) は、λx∈1X.( ... ) 、あるいは、λx∈X(1).( ... ) と同じ。グラフ射の辺部分を表す。
- 式の値の型は、「∈ B」のような書き方で示すが、このとき「∈1B」や「∈B(1)」とは書かない。頂点・辺の区別(要素の次元)は文脈から読み取る。
- 前節の区切りキーワード ALSO, OR を使って組み合わせる。
同語反復だが、
f:A→B = ( λ0a∈A.(f(0)(a) ∈B) ALSO λ1a→a'∈A.(f(1)(a→a') ∈B) )
または、
f:A→B = ( λ0a∈A.(f(0)(a) ∈B) ALSO λ1a→a'∈A.(f(0)(a)→f(0)(a') ∈B) )
f:A→B, g:C→D に対する f×g の定義:
f×g:A×C→B×D := ( λ0(a, c)∈A×C.( (f(a), g(c)) ∈B×D ) ALSO λ1(a, c)→(a', c')∈A×C.( (f(a→a'), g(c→c')) ∈B×D ) )
ボックス積
- (A□B)(0) := A(0)×B(0)
- (A□B)(1) := A(1)×B(0) + A(0)×B(1)
s, t の定義は(通常のラムダ記法で示す):
s:(A□B)(1)→(A□B)(0) := ( λ(a→a', b)∈A(1)×B(0).( (a, b) ∈A(0)×B(0) ) OR λ(a, b→b')∈A(0)×B(1).( (a, b) ∈A(0)×B(0) ) ) t:(A□B)(1)→(A□B)(0) := ( λ(a→a', b)∈A(1)×B(0).( (a', b) ∈A(0)×B(0) ) OR λ(a, b→b')∈A(0)×B(1).( (a, b') ∈A(0)×B(0) ) )
1 に関して、1(0) = {0}, 1(1) = {} = 空集合。1□B を計算してみる。
- (1□B)(0) := 1(0)×B(0) B(0)
- (1□B)(1) := 1(1)×B(0) + 1(0)×B(1) = 1(0)×B(1) B(1)
s, t の定義は(通常のラムダ記法で示す):
s:(1□B)(1)→(1□B)(0) := ( λ(a, b→b')∈1(0)×B(1).( (0, b) ∈1(0)×B(0) ) ) λb→b'∈B(1).( b ∈B(0) ) t:(1□B)(1)→(1□B)(0) := ( λ(a, b→b')∈1(0)×B(1).( (0, b') ∈1(0)×B(0) ) ) λb→b'∈B(1).( b' ∈B(0) )
以上で、1□B B が示せた。より直接的な λB:1□B→B in SG の表示は('λ'がかぶっていて、困ったことだが):
λB:1□B→B := ( λ0(0, b)∈1□B.( b ∈B) /* 頂点部分 */ ALSO λ1(0, b→b')∈1□B.( b→b' ∈B) /* 辺部分 */ )
この定義に対して、次が可換になるので、λB はグラフ射。
射のボックス積
f:A→B, g:C→D in SG に対して、f□g を定義する。
f□g:A□C→B□D := ( λ0(a, c)∈A□C.( (f(a), g(c)) ∈B□D) /* 頂点部分 */ ALSO λ1(a→a', c)∈A□C.( (f(a→a'), g(c)) ∈B□D) /* 辺部分 その1 */ OR λ1(a, c→c')∈A□C.( (f(a), g(c→c')) ∈B□D) /* 辺部分 その2 */ )
実際には、次の可換図式が必要になる。
変形
A, B∈|SG| として、A(0) から B(1) の写像を変形〈deformation〉と呼ぶことにする(一般的な用語ではない)。変形を次の形のラムダ記法で書く。
- λ01a∈A.( ... ∈B)
「...」の部分には、Bの辺を表す式が入る。Aが反射的なとき、頂点にその自己ループ辺を対応させる変形は:
λ01a∈A.( a→a ∈A)
αが A(0)→B(1) の形の変形であることを α:A (0→1) B と書く。ぎごちない記法だが、どうせたいして使わないからいいとする。
α:A (0→1) B に対して、写像 α;s, α;t :A(0)→B(0) が決まる。α;s, α;t は、単なる頂点集合間の写像なので、それがグラフ射を定義するとは限らない。が、もし次の条件が成立しているなら、αをfからgへの変形と呼ぶ。
- α;s = f :A→B かつ α;t = g :A→B
このとき、α:f⇒g と書く。AとBの情報を添えたいときは、α:f⇒g: A (0→1) B と書く(が、面倒だからほとんど書かない)。今後、考える変形は、両端がグラフ射になっているようなものである。
- グラフ A : A(0) = {1, 2}, A(1) = {1→2}
- グラフ B : B(0) = {1, 2, 3, 4}, B(1) = {1→3, 2→4}
- 変形 α : α(1) = 1→3, α(2) = 2→4
変形αの両端を f, g とすると:
- ソース側 : f(1) = 1, f(2) = 2
- ターゲット側 : g(1) = 3, g(2) = 4
fもgもグラフ射にはなってない。Aの辺 1→2 の送り先が存在しない。
[/補足]
ホムグラフ
圏はSGしか考えないので、次の略記をする。
- Hom(A, B) = HomSG(A, B) = SG(A, B)
2つの単純グラフ A, B に対して、そのホムグラフ hom(A, B) を次のように定義する。
- |hom(A, B)| = hom(A, B)(0) := Hom(A, B)
- For f, g∈|hom(A, B)|,
hom(A, B)(f, g) := {α | α:f⇒g という変形}
この定義から、ただちに hom(A, B) が単純グラフだと言えるわけではないが、容易に次は分かる。
- A, B∈|SG| ⇒ hom(A, B)∈|SG|
つまり、
- hom(A, B)(f, g) は空集合か単元集合
hom(A, B) は正確に言えば内部ホムグラフで、Hom(A, B) とは次の点で違う。
- Hom(A, B) は外部ホムセット=普通のホムセットで、単なる集合、グラフ構造は持たない。SGの対象とも考えない。
- hom(A, B) は内部ホム対象で、グラフ構造を持ち、SGの対象と考える。
エバル〈評価射〉
A, B∈|SG| に対して、evA,B:hom(A, B)□A→B を次のように定義する。
evA,B:hom(A, B)□A→B := ( λ0(f, a)∈hom(A, B)□A.( f(a) ∈B) ALSO λ1(f⇒f', a)∈hom(A, B)□A.( f(a)→f'(a) ∈B) OR λ1(f, a→a')∈hom(A, B)□A.( f(a→a') ∈B) )
evA,Bは、上記のラムダ記法で定義されるSGの射である。実際には、次の可換図式が必要になる。
カリー化〈随伴転置〉
カリー化〈随伴転置〉は、ホムセット(外部ホムセット)のあいだの写像であり、グラフ射ではない。Hom(A□B, C) の要素 f に対して、A から hom(B, C) へのグラフ射を対応させる。値であるグラフ射の頂点部分は「頂点→グラフ射」で、辺部分は「辺→変形」となる。
ΦA,B,C:Hom(A□B, C)→Hom(A, hom(B, C)) := λf∈Hom(A□B, C).( λ0a∈A.( (λ0b∈B.( f(a, b) ∈C) ALSO λ1b→b'∈B.( f(a, b→b') ∈C) ) ∈hom(B, C) ) ALSO λ1a→a'∈A.( (λ01b∈B.( f(a→a', b) ∈C)) ∈hom(B, C) ) )
コメント付き:
ΦA,B,C:Hom(A□B, C)→Hom(A, hom(B, C)) := λf∈Hom(A□B, C).( /* グラフ射 f:A□B→C が与えられる */ /* ここから下に、 f に対する値である高階グラフ射 F:A→hom(B, C) を記述する */ /* 高階グラフ射 F の頂点部分 */ λ0a∈A.( /* a∈A(0) に対して、 F(a) はグラフ射 F(a):B→C */ (λ0b∈B.( f(a, b) ∈C) /* F(a)(b) := f(a, b) */ ALSO λ1b→b'∈B.( f(a, b→b') ∈C) /* F(a)(b→b') := f(a, b→b') */ ) ∈hom(B, C) /* end of グラフ射 F(a) */ ) : A→hom(B, C) /* end of F の頂点部分 */ ALSO /* 高階グラフ射 F の辺部分 */ λ1a→a'∈A.( /* 辺 a→a' が与えられる */ /* F(a→a') は変形 F(a→a'):B (0→1) C */ ( /* 変形は、Bの頂点 b にCの辺を対応させる */ λ01b∈B.( f(a→a', b) ∈C) ) ∈hom(B, C) /* end of 変形 F(a→a') */ ) : A→hom(B, C) /* end of F の辺部分 */ )