$`\newcommand{\cat}[1]{ \mathcal{#1}}
%`$<<圏 $`\cat{C}`$ があるとき、集合 $`|\cat{C}|`$ の部分写像を頂点集合として、射で辺ラベルされた[/単純有向グラフ]を[+コアージョングラフ]と呼ぶ。>>コアージョングラフは、有向グラフとしての $`\cat{C}`$ の[/単純/な/部分グラフ]である。
コアージョングラフ $`G`$ は単純グラフなので、射の両端 $`X, Y`$ が決まれば、射があればそれは一意的に決まる。その射を $`[X, Y]_G`$ と書く。さらに、
- <(convention)<$`(:\!Y\; x) := [X, Y]_G(x)`$ と約束する。>>
※ グロッサリーレコードと、型conventionのアイテムが拾えるようにマークアップしている。コンベンションは、記法の約束になっているから、型notationにタイピングするのがいいのかも知れない。Writing is Programming.
<<コアージョングラフの辺である射を[+コアージョン]と呼ぶ。>>コアージョンは、`(:Y -)` の形で記述可能。オーバーロードになるが、引数の型が違えば違うコアージョンになる。
コアージョングラフの例:
- ノードは、null, boolean, number, string
- (:boolean null:null) := false
- (:boolean s:string) = true if !isEmptyString(s)
- (:boolean "":string) = false
- (:number true:boolean) = 1;
- (:number false:boolean) = 0;
- (:boolean n:number) = true if n ≠ 0
- (:boolean 0:number) = false
- (:string null:null) := "null"
- (:string true:boolean) := "true"
- (:string true:false) := "false"
- (:string n:number) := toString(n)
digraph { null boolean number string null -> boolean null -> string null -> number boolean -> number boolean -> string number -> boolean number -> string string -> boolean }
順序豊穣圏での定式化
コアージョングラフの対象〈頂点〉 A, B, C に対して、
- [A, B];[B, C] ⊆ [A, C]
ならば、トリプル (A, B, C) は[+合理的〈rational〉]と呼ぶことにする。合理的なトリプルが多いほど合理的なコアージョングラフになる。EPペアも定義できる。
結合が部分的に定義された圏〈partial category〉で、結合法則がラックスでやせた高次圏を考えるとよい。