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

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

2009-01-01から1年間の記事一覧

思いついた遊び小物

10桁×10行のテキストファイルに、空白文字と星印('*')で描いたアスキーアートを、13バイトのファイルにエンコード/デコードするプログラムを書け。

続・型の意味

背景圏としては、Posetoidを使うが、次のような組 (X, p)を考える。 Xはposetoid pはXからΩ={true, false, ⊥}への射 スライス圏を考えるわけではない。射はPosetoidと同じ。ただし、次のような演算を考えることができる。 (X, p) | (Y, q) = (X+Y, [p, q]) (…

型の意味

JcentricTSのような簡単な型システムでも、型の意味はけっこう複雑で、Uをアンビエント対象=JSON領域だとして: 台型の表現空間R、これはposetoid 台型の表現空間上で定義された3値述語p、⊥付きbooleanへのposetoid射 台型の値空間V Q(R)と同型だが同じとは…

Setoid, Posetoidの部分対象

Setoid, Posetoidもトポスにはならない。部分対象に関して: 充満である -- 埋め込みを関手とみなして充満 推移的である -- x∈D, x〜y ⇒ y∈D 完全である -- 充満かつ推移的 計算可能な述語で定義される部分対象を定義可能と呼べば、定義可能なら完全である。…

スキーマモジュールの種類

provide/require方式だから、requireがあるか・ないかで分類できる。開いたモジュール、閉じたモジュールとでも言えばいいのか。 Mが閉じたモジュール ⇔ モジュールを射とする圏で dom(M) = 1

JcentricTS, 現状わかったこと

Jcentric型システムの宣言スタイル・スキーマ構文 - 檜山正幸のキマイラ飼育記 (はてなBlog)の意味論のほうの話。 Posetoidの導入は避けられない。Posetoid自体はデカルト閉っぽい。 Posetoidの圏の変種は、必ずしもデカルト閉にはならない。 category with …

posetoid

順序を≦、同値関係を〜とすると、条件は: a≦b, a〜a' ⇒ a' ≦ b a≦b, b〜b' ⇒ a ≦ b' くらいかな。Aの商Q(A)にも「≦が落とせる」と言えばいいのか。

一般的なIO代数

集合圏かCPOの圏で考えるとして(デカルト閉圏ならいい)、ωは自然数(順序付き)か似たようなモンだとして、Aは勝手な対象。 in:Aω→A out:A→Aω とすると、ストリームIOの雰囲気がする。inとoutの間には通常はなにかしら関係があるが、特に関係は考えないと…

面白い双対性

I = [0, 1] を単位区間とする。Xの柱体Cyl(X)は、X×I として定義される。一方、Yのパス空間Path(Y)は YI として定義される。例えば位相空間の圏Topで考えて、 Top(X×I, Y) = Top(X, YI) という随伴があるんで、Cyl(X)とPath(Y)が相関しているのは明か。だが…

継承方式と見やすさ

hacker's /* test-inher-3-hacker.js */ // コンストラクタ var Point = function (x, y) { this.x = x; this.y = y; }; var PointPrototype = function () { this.moveTo = function (x, y) { this.x = x; this.y = y; }; this.toString = function () { re…

秘密を持った点

/* PointWithSecret.js */ var Point = function (x, y, secret_) { this.x = x; this.y = y; var secret = (secret_ || "confidence"); this.getSecret = function() { return secret; }; }; Point.prototype = { moveTo : function (x, y) { this.x = x; t…

たかだか可算の部分圏

集合圏Setに対して、埋め込み(対象上で単射な忠実関手)が指定されているような圏Cを考える。要するに標準的な忘却関手を持っているので、Cは集合・写像ベースの圏と言える。Cの対象の濃度をその台集合(忘却関手の値)の濃度とする。すると、濃度がたかだ…

「後で書く」のメモ

「Aという性質を持つものに注目し調べましょう」は、「Aという性質を持たないものは意味がない」とか「Aという性質を持たないものを調べる価値がない」とかを含意しない。 Vを固定して、V値関手コボルディズムの圏を作る アロー図で見ると、fとgからf;gを作…

親のものを乗っ取ることは、継承とは言わないかもね

/* test-inher-1.js */ // コンストラクタ function Point(x, y) { this.x = x; this.y = y; } Point.prototype.moveTo = function (x, y) { this.x = x; this.y = y; }; Point.prototype.toString = function () { return "(" + this.x + ", " + this.y + "…

型のタグ集合と排他的ユニオン

Tが型表現、またはその意味であるインスタンス領域だとして、tags(T) は、Tのインスタンスに付いている可能性のあるタグの集合。次のことを保証したい。 tags(T) は空ではない。 x∈T ならば tag(x) ∈ tags(T) そうなれば、S|T に対して、tags(S)∩tags(T) = 空…

ホーア加群

ホーア論理を加群/余加群の枠組みで定式化できないかと考えて、ホーア加群というものをひねり出した。ただし、このままでは現実性がない、やたらに理想的な状況でしか意味を持たない構造。だがそれでも、より先を考えるための道具とはなるはず。いずれ書く…

あやとり公式の一例

「双モノイド法則の一般化」の状況の別な定式化。まー、本質的には同じだと思うのだが。「あやとり」についてはあやとり公式 - 檜山正幸のキマイラ飼育記 メモ編参照。コモノイドの圏、あるいは対角付き圏のなかで考えるので、すべての対象XにΔXは付いている…

あやとり公式

双モノイド法則(双代数法則)は、モノイド積を+、恒等を1で書くと ∇;Δ = (Δ+Δ);(1+X+1);(∇+∇) と書けて一番見た目がきれいだろう。+も省略すると: ∇;Δ = (Δ Δ);(1 X 1);(∇ ∇) 縦書きすると: ∇ Δ ‖Δ Δ 1 X 1 ∇ ∇オオー、素晴らしい。それはそうとして、こ…

絵図不等式

双方向の(可逆な)変形が絵図等式なんだから、片方向(不可逆)の変形は絵図不等式だよね。OCat内では、絵図不等式が意味を持つ。射が証明のとき、証明の変形を2セルと考えたりすると、絵図不等式が使えそうだが。あるいは、非決定性関数の圏とか。

Jsonic型システム:ユーザー定義のスカラー型

※ 後で本編に移す。JSONのスカラー型には、日付時刻や金額などの型がありません。将来的に仕様に導入される可能性はありますが、当面は必要な型をーザー定義して利用することになります。型をユーザー定義できるメカニズムが必要です。ここでは、スカラー型…

双モノイド法則の一般化

まず、双モノイド法則(双代数法則)、Δが余乗法でmが乗法だとする。 m;Δ = (ΔA×ΔA);(A×τA,A×A);(m×m) τはスワッパー。対称性が高いし、絵に描くと綺麗な模様になる。これを一般化するのに、次の状況を考える。 Mはモノイド Vはコモノイド Sは左M加群 作用m …

昔のお友達

ボグディンとJJ(ジョセフ・ジロー)とか、あと、ライフの上のマンションにいた子は?アキちゃんだ。マーヤちゃん、ナオキ君、ゆいちゃん(妹はりなちゃん)、レン君、ヒロキ君、お下げ髪の床屋さんの娘さんは誰だっけ? メガネかけていた彼?

待ち合わせ

午後2:30から3:00

代数と加群と双対が混じった用語法

阿部さんのホップ代数の本をペラペラめくっていた(読んでいたのではない)。kが体で、Kはk上の双代数のとき、次のような概念が出てくる。 右K余加群k代数 右K加群k余代数 右K加群k双代数 左も同様に存在する。これらはいったい何かというと: すべてはk上の…

レシピ

材料:豚肉とトウモロコシ 豚肉を、比率 酢1:ケチャップ1 量は適当のタレに付けておく。 フライパンに油を引き、つぶしたニンイクも入れる。 豚肉をタレから出して炒める。 トウモロコシを包丁でそぎ落としてばらまく。 トウモロコシは事前に処理しておいて…

偏見、誤解、曲解など

「Basic, Basic, Basic! なこと」の続きみたいな。次のような傾向がある。困ったことだとも言えるが、だいたいは致し方ないこと。 プログラミング言語を通してしか概念や現象を見られない。 ハードウェアとしてのコンピュータや、大粒度コンポネントからなる…

タートル・モナド

<html> <head> <title>Turtle Monad</title> <script src="TurtleMonad.js" ></script> <script> var _canvas = null; var _ctx = null; function initCanvas() { _canvas = document.getElementById("canvas"); _ctx = _canvas.getContext('2d'); } </script> <style> #canvas {border: 1px sol…</head></html>

サイクリック・カウンター・モナド

/* CyclicCounterMonad.js */ // オペレーション・モノイド var CounterOp = { // モノイド単位 unit : function() { return 0; }, // モノイド乗法 mult : function(x, y) { return x + y; } }; // カウンター・オブジェクト(シングルトン) var Counter =…

カウンター・モナド

<html> <head> <title>Counter Monad</title> <script src="CounterMonad.js" ></script> </head> <body> <h1>Counter Monad</h1> </body> </html> /* CounterMonad.js */ // オペレーション・モノイド var CounterOp = { // 定数 UP : 117, // 'u' = upオペレーション DOWN : 100, // 'd' = downオペレーション // モノイド単位 u…

双モノイド法則

双モノイドを考えると、次の8つの法則候補がある。 乗法は余乗法を保つ。 乗法は余単位を保つ。 単位は余乗法を保つ。 単位は余単位を保つ。 余乗法は乗法を保つ。 余乗法は単位を保つ。 余単位は乗法を保つ。 余単位は単位を保つ。 これらが2つずつペアにな…