このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

JSONの外の圏とJSON領域

JSONの意味論を展開するときの外の圏=背景圏(background category)は、次のような圏がよかろう。

  1. 対象はセットイドである。
  2. 射は部分的セットイド写像
  3. 直和、直積は集合ベースで考える。圏論的な直和・直積にならなくてもいい。
  4. 直和と直積で分配圏、できれば半環圏になっている。
  5. 包含的圏(inclusive category)である。
  6. デカルト閉である必要はない(あきらめた)

この外の圏に対して、制限(と呼ぶ述語概念)を付け加える。pがX上の制限だとは:

  • p:X→{true, false}は全域的なセットイド写像

{true, false}は普通にブール代数だと思う。(X, p)という組を対象として、セットイド全域写像 f:X→Y で、p(x) = true ⇒ q(f(x)) = true を満たすものを射とする圏を考える。この圏で意味論を考える。ほんとは情報順序が必要になるだろうが、まー、いいとする。新しい圏をRS(Restricted Setoids)とする。

RS内に次の演算を入れる。

  1. (X, p)|(Y, q) := (X + Y, [p, q]) ([q, q]は余デカルトペア)
  2. (X, p)*(Y, q) := (X×Y, p(*)q) (p(*)qは∧によるテンソル積)
  3. (X, p)&(Y, q) := (X∩Y, p∧q)

RS内にJSONデータの領域Jがある。JにRSをスノーグローブ風に埋め込むのだが、Jは完全なスノーグローブじゃなくて、曇ったスノーグローブ、いろいろと問題があるのだけど、あまり気にしないで、RS内の対象をJに埋め込んで、それをまた対象と思った圏EO(RS, J)を考える。EOは、embedded objectsの略。