ZENREI :: 禅麗 t => t
読み方:あなたの仕事がどんな形をとっても、それがひとつにまとまっているかぎり、ZENREI はその形になる。
なぜ、壊れないのか。
AI は提案します。決めるのは、Haskell で書かれた決定的なコアです。コアがすでにあるすべてと照らし合わせるまで、何もあなたのデータに届きません。
流れ
最後に決めるのは、AI ではない。
言語モデルは、あなたの意図を理解するのが得意です。しかし、何が正しいかを決めることは許されていません。この二つは別の仕事で、別のものが担います。
- あなた仕事を話す
自分の言葉で、例外も含めて。
- AI が提案ZENREI-lang で書く
あなたの決まりのプログラムと、起きるべきことの例。
- Haskell が決めるプログラムを検査する
すべての項目、すべての空の値、すべての未決定の場合。足りないものがあれば、どこで何がなぜ足りないかを返します。
- Haskell が決めるひとつのエンジンで動かす
書き込みを受け付け、決まりを適用し、不変条件を確かめてから確定します。そうでなければ、何も変わりません。
- あなたアプリか、質問が返る
動くアプリと、あなたが決めていなかった箇所への具体的な質問「この場合はどうしますか?」。
構造
あなたのアプリのために、コードは生成しない。
多くの AI ツールは、アプリごとに新しいコードを書き、変更のたびに継ぎ足します。壊れる原因はそこにあります。ZENREI では、あなたのアプリは定義であり、ひとつのエンジンがすべての定義を動かします。
ZENREI-lang
AI が書くために発明した言語。
小さく、型があり、必ず止まる言語です。あなたが書くことも、読む必要もありません。大事なのは、この言語で何が言えて、何が言えないかです。
- 金額と単位は型である
税抜の円、税込の円、グラム、個数。混ぜると型の誤りになるので、気づかないうちに混ざることはありません。
- 不変条件は、毎回の確定で守られる
常に成り立つべき性質は一度だけ書かれ、人の書き込みにも決まりによる書き込みにも、毎回強制されます。
- 空には意味を与える
欠けているかもしれない値は、欠けている場合の意味をプログラムが述べるまで、順序の比較にも計算にも使えません。等しいかどうかの判定はできます。欠けている値は、何とも等しくありません。
- 拒否には理由がつく
決まりが拒否するときは、作り手の言葉で理由も述べます。
型が排除するもの
書きようのない誤りがある。
これは、忘れずに実行する検査ではありません。この言語に、そもそも言葉がないのです。
副作用なし決まりは、あなたの知らないところで何かをできない。純粋な式には、書く・送るための構文がありません。作用は、別の見える手順です。
再帰なしどの決まりも、必ず終わる。終わらない繰り返しを書く構文がなく、評価ごとに手数の上限があります。上限を超えたら、何も書き込まれません。
'Open ≠ 'Closed未決定の問いは、出荷できない。未決定の判断を含むプログラムは、リリース済みプログラムの型を持てません。コンパイラが拒否します。
refuse_tie同順位は、推測せず決める。二つの記録が同じ順位なら、プログラムはどちらが先かを述べるか、理由をつけて拒否しなければなりません。エンジンが黙って選ぶことはありません。
曖昧さは、AI の自己申告ではなく、機械が見つけます。あなたの言葉に二通りの読み方があり、結果が変わる場合、検査器はその違いが現れる状況を見つけて、あなたに尋ねます。
証拠
わざと、十一通りに壊した。
変異のひとつひとつが、言語の実装の一か所を壊します。良いテストは、そのすべてに気づきます。
11/ 11 を阻止
言語の設計記録(2026 年 11 月)より。最初に生き残った 2 件を載せているのは、設計が主張していながらテストが確かめていなかった性質を示したからです。
正直な限界
これが証明しないこと。
- 正しいプログラムが、間違ったプログラムであることはある。
型が示すのは、プログラムに矛盾がないことです。あなたの意図どおりであることは示しません。そのために、確認済みの具体例があります。設計では、あなたが確認した例を保持し、変更のたびに再実行します。あなたの元の言葉を一緒に保持する機能は、まだありません。
- エンジン自体も、ソフトウェアである。
その意味は、型だけでなく、性質テストと変異テストで守っています。
- 会話からアプリまでの一本道は、まだ開発中。
言語、検査器、エンジン、データを保つ保存は存在し、つながっています。会話から完成したアプリまでの全体は、まだ誰にでも開かれてはいません。
技術構成
決めるのは Haskell。届けるのは BEAM。
二つの実行環境を、それぞれ得意なことに使います。あいだの決まりはひとつ。意味は Haskell にしか置かない。
- Haskell言語、検査器、エンジン、保存の判断、結果の確認。業務上の判断は、すべてここで行われます。
- ZENREI-lang業務の決まりを、検査済みのデータとして。すべてのアプリを、ひとつのインタプリタが動かします。
- BEAM 上の Elixir画面は Phoenix LiveView が受け持ちます。開いている画面ひとつひとつが独立した軽量プロセスなので、ある画面の障害がほかを巻き込みません。変更は再読み込みなしで届きます。業務ロジックは持たず、HTML は Haskell が描きます。
- SQLite と PostgreSQLトランザクションによる保存。配置に応じてどちらかのデータベースを使います。結果は、確定の前と、開き直したあとにもう一度、照合します。
壊れないから、育てられる。
最初のひとりになる