ステップ意味論を 5 分で
daitai 代数には、正準的な状態遷移関係が一つあります:
Step : State × Lens × Rate -> State
こう読みます — 状態を進めるには、状態のどの部分を更新するつもりかを示すレンズと、どれだけ進めるかを示すレートを与えよ。
daitai-lang のあらゆる効果 — UI 更新、訓練ステップ、市場イベント、センサー読取値、AI 推論出力 — は Step 呼出しに脱糖されます。状態を進める方法は他にありません。
なぜ一つの関係か?
法則について書く対象の関係が一つしかないとき、法則は単純になるからです。単一の Step のもとで、二つの短い公理と一つの定理を公開でき、それらをすべてのプログラムが無償で継承します。
合成則
∀ q L₁ L₂ η. Step(Step(q, L₁, η), L₂, η)
= Step(q, L₁ ∘ L₂, η)
同じレートでの連続する二つのステップは、合成されたレンズによる一つのステップに常に融合できます。コンパイラはこれを更新の併合に使い、証明器は証明義務の削減に使います。
情報単調性
∀ q L η. H(Step(q, L, η)) ≤ H(q)
ステップは、自らが触れるレンズに関するシステムのエントロピーを増やすことはできません。これは「有用な仕事は不確実性を減らす」という代数による言い換えであり、型検査時に強制されます。
実務的含意
訓練ループが Step 呼出しの列として書かれているなら、コンパイラは:
- レンズが可換な隣接ステップを融合でき、
- レンズが交わらないステップを並列化でき、
- 合成ステップが単調性に違反するループのコンパイルを拒否できる。
これらに注釈を書く必要はありません。証明義務は代数が担い、コンパイラがそれを読みます。
次に読むもの
- bra-ket プリミティブ — 代数の最小にして興味深い断片。
- 原則 —
Stepが憲法のどこに位置するか。