憲法的進化
daitai は進化してよい。しかし daitai は侵食されてはならない。
本書は、daitai の憲法、言語、代数、ランタイム・モデル、AI 協働ルールが、システムの同一性を保ったままどのように変更されうるかを定義する。進化は、隠れた意味論的エントロピーを増やすことなく表現力を増す場合にのみ許される。
中核原則
変更が有効なのは、人間と AI が同じ明示的ルールからシステムを推論できる能力を保つ場合に限る。変更が daitai をシミュレート、検証、変換、説明しにくくするなら、その変更は疑わしい。
肯定的憲法
daitai は次を保持しなければならない:
- 既定での決定性
- 明示的な非決定性
- 値の意味論
- コアでの不変性
- 純粋関数と変換
- 明示的な静的型
- 代数的合成
- 局所的推論
- 書き換え互換性
- バックエンド非依存
- 利便性より意味論的明晰さ
- エスケープハッチの前に制約
これらは憲法的不変条件である。一般化はできるが、暗黙のうちに弱めることはできない。
免疫系
次を導入する提案は却下しなければならない:
- 隠れた可変状態
- 暗黙の副作用または非決定性
- 大域状態
- 型なしまたは弱型の挙動
- 意味論的曖昧さ
- 実装固有の事項のコアへの漏出
- 制御されていないリフレクションやメタプログラミング
- 制御フローとしての例外
- ライフサイクル挙動
- 構文に現れない順序依存の意味論
- 局所的に推論できない機能
- 決定論的にテストできない機能
- 検証ではなく信頼を要求する機能
許容性テスト
提案された変更 C が許容されるのは、以下の七つの試験すべてを通過する場合に限る:
- 決定性 — 同入力 → 同出力 を保つ(あるいは非決定性を明示・型付け・隔離する)。
- 局所的推論 — 大域的文脈や隠れたライフサイクルを調べずに、読み手が挙動を理解できる。
- 還元 — 既存のコア意味論に還元できる、あるいは法則を伴った新しいプリミティブを明確に導入する。
- 書き換え — 意味を変えずに書き換え規則に参加する。
- バックエンド非依存 — TypeScript・Swift・WASM・CUDA・JAX・ブラウザ API・OS・ベンダーランタイムから独立に定義される。
- AI 整合性 — 人間と AI の双方が、好みや非公開のプロジェクト知識に頼ることなく、書かれたルールから
Cを適用できる。 - エントロピー — 意味論的エントロピーを減らすか保つ。エントロピーを増やす変更は却下するか、コアの外へ移す。
変更の層
| 層 | 範囲 | 頻度 |
|---|---|---|
| 0 — アイデンティティ | 決定性、明示性、値の意味論、代数的推論、局所的推論、意味論と実行の分離 | ほぼ皆無 |
| 1 — コア代数 | 型、式、関数、積型としてのクラス、和型としてのインターフェース、Result、Optional、Step、Time、Constraint、Rewrite | 緩慢に、形式法則を伴って |
| 2 — 派生構造 | 構文糖、派生演算子、標準ライブラリ、共通パターン | 通常通り。ただし層 1 に還元できなければならない |
| 3 — ツールとバックエンド | コンパイラ、レンダラー、IDE、AI ツール、GPU/WASM/Swift/TypeScript バックエンド、保存形式 | 自由に。ただしコア意味論を再定義してはならない |
版管理規則
- パッチ — 意味論的変更なし(文言、診断、文書、コンパイラのバグ修正)。
- マイナー — 既存の意味を壊さずに表現力を追加する。
- メジャー — コア意味論を変更する、または以前は有効だった構造を取り除く。移行経路、明示的根拠、不変条件分析、互換性宣言、却下された代替案を要する。
最終法則
疑わしいときは、より単純な規則を選べ。なお疑わしいときは、変更を却下せよ。機能の欠如は、汚染されたコアより優れている。daitai はより寛容になることではなく、より精確になることによって進化する。