
人類最初の約束
10万年前、誰かが指で何かを指し示しながら声を発した。 その声を聞いた別の誰かが同じものを思い浮かべた。
これが言語の始まりである。
「あれ」を「ライオン」と呼ぶことにした約束。 この約束がなければ、二人は同じ世界に生きながら異なる世界を見る。 約束があれば、一人の経験が別の人へと伝わる。
言語は人類最初の契約である。
文字は時間を超える契約である
5千年前、メソポタミアの誰かが湿った粘土板に楔形の印を押した。 穀物の在庫を記録するためだった。
言葉は消えるが、記録は残る。 記録が残れば官僚制が可能になり、法が可能になり、国家が可能になる。
文字は現在の約束を未来へと伝える装置だ。 今日作った契約が明日も有効であるためには、文字が必要だ。
言葉が部族を作った。 文字が国家を作った。
法の支配:血で書いた約束
人間社会は密度の問題だ。
150人の部族では互いの顔を知っている。 約束を破れば全員が知る。 社会的圧力だけで秩序が維持される。
1万人の都市では顔を知らない。 約束を破っても誰も知らない。 社会的圧力が機能しない。
だから法が必要だった。
法は約束を文書化したものだ。 「これをすればこういう結果が伴う。」 すべての人が同じルールのもとにある。 ルールは機械的に検証可能だ。 違反は定義されている。 違反には結果が伴う。
このシステムが機能するまでに数千年かかった。 革命、戦争、虐殺、妥協。 人類は血でこの約束を書いた。
その結果、80億の人間が一つの惑星の上で共存する。 完璧ではない。しかし機能する。 法の支配がなければこの密度は不可能だった。
法の支配の三つの条件
法の支配が機能する理由は、法が賢いからではない。 三つの条件を満たすからだ。
1. 検証可能である。 法を破ったかどうかを判定できる。 裁判官の直感ではなく、条文と証拠で判定する。 判定の手続きが定義されている。
2. 違反が定義されている。 何が許可され、何が禁止されるかが明示的だ。 「悪い行いをするな」ではなく 「第50条第1項に該当する行為をするな」だ。 離散的だ。違反であるかないかだ。
3. 強制できる。 違反には結果が伴う。 結果のない約束は約束ではなく希望だ。
この三つの条件は驚くほど普遍的だ。
同じパターン、異なるドメイン
| ドメイン | 約束 | 検証 | 違反の定義 | 強制 |
|---|---|---|---|---|
| 人間社会 | 法律 | 裁判 | 条文 | 刑罰/賠償 |
| プログラミング | type system | compiler | type error | コンパイル拒否 |
| コードフォーマット | gofmt | gofmt -d | フォーマット不一致 | CI 失敗 |
| コード構造 | filefunc | validate | 22個のルール違反 | ERROR |
| 知識表現 | GEUL spec | mechanical verification | spec 不一致 | context 進入拒否 |
機能するすべてのシステムには約束がある。 約束は検証可能であり、違反が定義されており、強制できる。
これがないシステムは——混沌だ。
LLMに約束がない
2026年現在、AI コードエージェントに「コードを改善せよ」と指示すると エージェントは何かを変える。
しかし:
- いつ終わるのか?わからない。
- 結果は十分か?判定基準がない。
- 再実行すると同じ結果か?そうではない。
これは法のない社会と同じだ。 各自の判断で行動し、結果の基準がなく、毎回異なる。
「コード品質」はスペクトラムだ。 スペクトラムには終了条件がない。 終了条件がなければ収束が保証されない。
これは人治主義だ。 賢明な王(賢いモデル)に依存することだ。 王が賢ければうまくいき、そうでなければうまくいかない。
制約が収束させる
filefunc は22個の約束を定義した。
1ファイル1関数。深さ2以下。annotation 必須。 control は sequence、selection、iteration のいずれか。
この約束は:
- 検証可能である。
filefunc validateが機械的に判定する。LLM 不要。 - 違反が定義されている。 ERROR または通過。スペクトラムではない。
- 強制できる。 ERROR が0になるまでコードを修正しなければならない。
この三つの条件を満たせば、LLM は while ERROR > 0: fix ループだけで
任意のコードベースを約束が守られた状態へと収束させることができる。
LLM の役割は判断者ではない。実行者だ。 何が違反かは約束(validate)が言い、 違反が解消されたかも約束(validate)が言う。 LLM は約束が指摘した違反を修正することだけをする。
王ではなく法が支配する。 これが法の支配だ。
混沌と秩序の黄金比
約束がなければ混沌だ。 コードに構造がなく、関数が入り混じり、深さが際限なく深くなる。 AI エージェントは毎回全体を読み、毎回異なる結果を出す。
約束が過ぎれば抑圧だ。 すべてを規定すれば柔軟性が失われる。 3行の関数に10行の annotation を強制すれば本末転倒になる。
filefunc の22個のルールはその間を見つけた。 十分に制約しつつ過度ではない地点。
その証拠:1,275個の関数が三つの制御構造へと収束する。 sequence、selection、iteration。Böhm-Jacopiniが1966年に証明した三つ。 22個の約束が数学的分類へと収束するということは 約束が過ぎても不足してもいないという証拠だ。
混沌でも抑圧でもない状態。 十分な自由の中の十分な秩序。 これが黄金比だ。
三番目の言語
言葉が部族を作った。人間と人間の間の約束。 文字が国家を作った。現在と未来の間の約束。
三番目の言語は何を作るのか。
GEUL は人工知能と人工知能の間の約束だ。 そして人工知能と人間の間の検証可能な約束だ。
SIDX は意味の約束だ。同じbit patternは同じ意味を持つ。 16bit streamは形式の約束だ。ネットワーク、ストレージ、AI が同じ単位を共有する。 source、confidence、time は信頼の約束だ。メタデータが構造に組み込まれ省略が不可能だ。 mechanical verification は約束の履行検証だ。spec に違反した情報は context に入れない。
自然言語には「無効な文」という概念がない。 GEUL にはある。 無効が定義されているということが、約束が存在するという証拠だ。
コードで先に証明する
同じ原理がコードと知識の両方に適用される。
しかしコードが先だ。
コードには compiler がある。AST がある。type system がある。 「有効なコード」と「無効なコード」の境界がすでに存在する。 この上に22個の約束を追加することは自然だ。
自然言語の知識にはこの基盤がない。 「有効な文」という概念そのものがない。 GEUL はこの基盤を最初から作らなければならない。
容易な場所で先に証明し、困難な場所へと拡張する。 filefunc がコードで証明し、GEUL が知識へと拡張する。
これが工学だ。
人類に思い出させること
問題はシンプルだ。
私たちはすでに法の支配を発明した。 血で書いた約束だ。 その約束のおかげで80億の人間がこの驚異的な密度にもかかわらず共存する。
LLM も変わらない。
合理的な制約は約束だ。 約束があってこそ混沌と秩序が黄金比をなす。 約束が検証可能であり、違反が定義されており、強制できれば どんなシステムでも収束する。
人間社会がそうであったように。 コードがそうであったように。 知識がそうなるように。
新しい発明が必要なのではない。 すでに発明したものを新しいドメインに適用することだ。
約束を設計せよ。 そうすれば収束する。