コアージョングラフ

$`\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〉で、結合法則がラックスでやせた高次圏を考えるとよい。