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

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

Caty

とりあえず絵(モジュールとデータベース)

原寸大 // -*- coding: utf-8 -*- [ [ [ gv:node --shape=box --label="collection employee" E, gv:node --shape=box --label="collection office" O, ] | gv:cluster --label="database company" DbC, [ gv:node --shape=box --label="collection product"…

最小のletrec式の求め方

x, y, z, f, g などは変数(を表すメタ記号、以下同様の注意を適用)、N, M などの大文字はラムダ式。x = N とか、f x = M とかの形を定義文と呼ぶ。式じゃなくて文なのは、これがある種の副作用(変数とラムダ式の束縛状態)をもたらすから。定義文を単に定…

システムの練習問題

なんかAmazonっぽいヤツ。手作りのフィギュアやアクセサリーのようなもの売るショップを想定。 作品と作者(クリエイター)がいる。 作品は多品種少量(主に単品)で手作り。 作品の共作、集団作成もある。個人・グループ・組織、どれもある。 購買者はファ…

とあるラムダ計算の計算例

「型を値とする」ラムダ計算なのだが、普通のラムダ計算と違う記号を使うと、視認性が悪くなって目で追いかけるのが大変なので、次のようにする。 定数名、関数名は大文字の名前 ラムダ変数名は小文字と数字の組み合わせ それ以外は普通の記法をそのまま使う…

1x1 gif画像のdata URI

"data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEHAAEALAAAAAABAAEAAAICTAEAOw==" "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs="

矢印の形

本編 関係を表す矢印の形をどうしようか? - 檜山正幸のキマイラ飼育記 を描くのに使ったのは、次のコマンド。 // -*- coding: utf-8 -*-/** ロバストネス風の図 */ module g;command arrow { @[default(false)] "total": boolean?, @[default(false)] "inj"…

連想コレクションの絵

連想コレクション(association collection)とは、RDBで関連テーブル(relationship table)とか呼ばれているようなもので、関連(数学用語では関係)だけを保持するためのコレクション。連想コレクションのレコードは参照のタプルとなる。角丸の菱型は使え…

名前付けと名前参照によるサイクルとシェアリングの表現

「letマップ付きグラフ」で、letマップ付きグラフは、結局はサイクルとシェアリングを持つグラフの表現だ、と述べた。逆に、サイクル/シェアリングを持つグラフから出発して、letマップ付きグラフを作ってみる。これにより、ふだん我々が使っている名前機構…

letマップ付きグラフ

式を名前に束縛することは極めてよくある。letマップとは、この束縛機構を表すデータ構造だとする。ラムダ計算のlet式に相当する。再帰(自己言及)向けのletをletrecとして分けることが多いが、ここでは、letのなかにletrecも含めて考える。letマップのひと…

ナビゲーションのときのウォーカーの近傍

ウォーカーの視野(eyesight)と呼んではどうか?

apartness関係

三値論理を入れたので、分離していることを示すapartnessが重要になる。 http://en.wikipedia.org/wiki/Apartness_relation

Functors as Types とラムダ計算とカン拡張

Sをスキーマとか指標と呼ばれる圏(または圏の表示)として、型は関手圏 [S, C] の対象となる。Sが含まれる圏の圏(ドクトリン)をDとする。x:S→X in D が部分関手として、E:S→C も部分関手(部分的に定義された、Cに値を取る意味)として、この状況自体を λ…

Sets as Types と Functors as Types

Functors as Types については、Functors as Types - 檜山正幸のキマイラ飼育記 メモ編 に書いた。素朴な Sets as Types と、Functors as Types との関係はどうなるか? 対象と射を関手と自然変換に格上げする方法 - 檜山正幸のキマイラ飼育記 ↑がヒントにな…

ハイパーオブジェクト

ハイパーオブジェクトとは、しみじみ難しい概念だ。オブジェクト指向パラダイムでも関数型パラダイムでも、うまく説明できない。むしろ、そういった既存のパラダイムは理解や解釈の邪魔になるだけだ。ハイパーオブジェクトはリモートメソッド(ハイパーリン…

アプリケーション領域

ドクトリン、アンビエント圏、derivatorにより構成される構造をアプリケーション領域と呼ぶことにする。基本的なことは、次に書いてある。 一般関手モデル:インスティチューションとの関係 - 檜山正幸のキマイラ飼育記 D⊆Cat と、圏Presがあって、D(Cat(P),…

アプリケーション・モデルインスタンスの基本

関手モデルでは、圏Sがデータベーススキーマで、関手 F:S→Partial がデータベースインスタンス。関手指向アプリケーションプランニングでは、圏Sがアプリケーションスキーマで、関手F:S→Partial がアプリケーションインスタンス。って何も差がない。そう、差…

スピヴァックのアナロジー

感じとしては、こうだと思う。スキーマは空間だと思う。だから、ドクトリンは空間と連続写像の圏。空間Xの点の集合は|X|、Xは繋がり具合いも含めた情報を持つのでまー位相空間。ただし、今のところ1-複体のようなもので、高次セルは持たない(いずれは高次化…

スピヴァックのクエリーの圏と切断集合関手

Fがデータベースインスタンスで、Fのスキーマを S = Sch(F) とする。スピヴァックのリフティングクエリーの理論だと、Fのクエリーの圏 Query(F) が定義できる。Query(F) の対象は、四角形の図式だが、その一辺は、p:R→S という形をしている。このpがプローブ…

型定義も制約述語もインスタンスも問い合わせも区別する必然性はない

ということを、またしてもスピヴァックから教わった。最近、gv:draw-data というコマンドを作ったのだが、データ(XJSONインスタンス)をグラフに描く。例えば、[@userNum 123, , "hello"] だと、次のようになる。もっと簡単な {"x":2, "y":2} だと次。gv:dr…

色気に惑わされる

これは象徴的、あるいは比喩的な絵だ。以下の話も比喩的だ。ノードと辺(矢印)からなるグラフを色塗りしている。各ノードは別な色にして、辺も塗り分けてある。二通りのルールで、辺を彩色している。どのようなルールかは簡単に推測できるだろう。色の選び…

RPCの関手モデル的定式化

記法を今までと変える。 スキーマは斜体ではなくて普通書体とする。 スキーマの対象は小文字 a, b, cなど。 スキーマの射は小文字 u, v, wなど。 スキーマ射はf, g など。 モデルインスタンスはF, Gなど。 ドクトリンは斜体 D など。 S, Tがスキーマ、FがT上…

RPCのreturn

RPCのcallには、2つの部分デカルト閉構造(評価構造とか適用構造と言ってもいい)が絡むのでけっこう複雑。しかしreturnは簡単。CとDが圏で(C = D でもよい)、F:C→D が関手(あるいは部分関手)とする。別に、埋め込み関手 I:C→D があるとして、return::F⇒…

RPCが良い理由

圏論バイアスによる発言ではあるが、RPCが他の方法に比べて格段に優れているのは、圏論との相性が良いからだ。手続きや状態のキー化(コード化)やマーシャリングは、部分デカルト閉構造で記述できる。同じ圏に複数の部分デカルト閉構造が載るのだが(それは…

スケッチ

スピヴァックもスケッチには言及しているので、ほんのちょっとだけ調べてみた。次の論文を斜め読みした。 http://www.cwru.edu/artsci/math/wells/pub/pdf/sketch.pdf これは短くよくまとまっていると思う。 スケッチは、60年代末にシャルル・エーレスマン(…

関手とシリンダー圏

「カンシュチュウケン(関手柱圏)」って口頭で言いにくい、シリンダー圏にした。んで、次のように考えている; 関手 F:C→D を記述するのはどうも難しい、つうか煩雑。そこで、Fのシリンダー圏を定義することによって関手の記述に代える。関手とそのシリンダ…

メタオブジェクを勘定する

/* 一時的 */ module t;command count-mos [string app] :: void -> object { %1 > app; sreif:list-modules %app | mpl:fullnames > mods | {"mods": list:length} > c1; %mods | each { pass > mod; do { sreif:list-types %mod | list:length >: "types",…

関手柱圏

F:C→D が関手のとき、関手Fの関手柱圏(functor cylinder category)というものを定義する。図形的な雰囲気が、CとDを上面と下面(底面)として、Fが母線群を形成する柱体を連想させるのでこの名前にした。Cylinder(F)、より詳しくは Cylinder(F:C→D) と書く…

ピグマリオン症候群、標準化、関手嫌悪

記憶が曖昧だが、ブルーバックスのJ.L.シンジ・著『相対性理論の考え方』のなかで、著者はピグマリオン症候群という言葉を使っていたと思う。戯曲に出てくるピグマリオンは、自分の作ったビーナス像に恋をしてしまったとか。物理の文脈だと、理論的モデルに…

関手と圏の拡張とRPC

Gが圏の表示、Cat(G) = C だとする。関手 F:C→D は、Φ:G→D で表示できる。(正確には、Dに忘却関手を働かせるが。)Fの代わりにΦを使えば記述はだいぶ楽になるのだが、そもそも「関手」という意識を薄めたい。グラフの操作として直和 D' := D + G を作って、…

名前の意義と恐ろしさ

『千と千尋の神隠し』では、名前を奪われたり忘れてしまう事が、自己が喪失する事にように描かれていた(たぶん)。どこぞの民族だか部族だかで、本名は家族親族くらいしか知らず(教えず)、俗名というかあだ名みたいな呼び名を常用するという話を読んだ記…