これは何か
MysticIR Federation v0.8.5 はプロトタイプ検証デモです — 完全な形式的証明ではなく、完成システムでもありません。3つの代表的な失敗ケースを対象に、1つの主張を確認することを目的としています。
現在の実装は、ScatLang 風および SeaIR 風の両方のトークンを受け付け、同じ Core AST ノードにマッピングする共有正規化パーサーを使用しています。v0.8.5 において「2つの独立したフロントエンドが収束する」と表現するのは過大評価です。これは v0.9 の課題です。
地下パイプライン = Core AST + CEK machine + error signature と定義します。
安全な主張:「共有正規化パーサー上で、異なる表面記号を同じ Core AST に写し、frontend ラベルを除いた CEK trace / error signature が一致することを、代表的3ケースで確認した。」
💩 と 🌊 は表面マーカーであり、意味論的なプリミティブではありません。MysticIR で重要なのはどの記号を使うかではなく、その記号が同一の Core AST ノードに射影されるかどうかです。A でも B でも同様に機能します。地下パイプラインは表面記法に無関心です。
地下パイプライン構造
表面記号は2方向から入力されます。共有正規化パーサーがそれらを単一の Core AST に統合します。そこから先の実行は完全に同一です — 同じ継続、同じ環境、同じエラー。
💩ScatLang / 🌊SeaIR のフロントエンドラベルはトレース記録に保持されるため、表面の違いは証拠として残りつつ、内部の実行は同一となります。
3つの失敗ケース、全て確認済み
以下は Python スクリプト実行の実際の出力です。3つの代表的ケース全てで ast_equal、trace_equal、error_equal = true かつ surface_diff = true を確認しました。
| ケース | エラー種別 | ast_equal | trace_equal | error_equal | surface_diff | ステップ数 |
|---|---|---|---|---|---|---|
|
mod by zero
💩×3 ⊛ 💩₀ → ゼロ除算
|
ScatError | ✓ true | ✓ true | ✓ true | ✓ true | 12 == 12 |
|
unbound variable
未定義変数 "missing" への参照
|
ScatError | ✓ true | ✓ true | ✓ true | ✓ true | 2 == 2 |
|
step limit / infinite loop
0 ≠ succ(0) が常に true → ステップ40で停止
|
StepLimitError | ✓ true | ✓ true | ✓ true | ✓ true | 40 == 40 |
*ステップ数が一致するのは、両方の表面記法が同一の Core AST に正規化されるため、CEK マシンが同じステップ数だけ進むからです。
4つの検証指標の意味
各ケースに4つのフラグが記録されます。全て true であることが、そのケースにおける Federation の主張確認を意味します。
パース後の Core AST を構造的同等性で比較: parse(scat_src) == parse(sea_src)。true は実行開始前に両記法が同一の内部ツリーを生成することを意味します。
CEK マシンが生成したステップ列記録をフロントエンドラベルを除いて比較。true は両者が同一の実行パスをたどったことを示します。
エラー発生時点の状態フィンガープリントをフロントエンドラベルを除いて比較。true は同一ポイントで同一シグネチャの失敗が発生したことの証拠です。
⚠️ 現シグネチャは error_message テキストを含む — 将来は安定した error_code へ分離推奨。
フロントエンドラベルを含めた比較では不一致が期待されます。true は表面の違いが記録に保持されていることを意味します。
アンダーフロー:意図的な非エラー
pred(💩₀) は MysticIR においてエラーを発生させません。実行を停止させるのではなく、Underflow 値(💩∅)を返し、値として静かに伝播します。
アンダーフローは v0.8.5 の Error Federation ケースから意図的に除外されています。これは値として扱われるため、フェデレートすべきエラーシグネチャを持ちません。将来のバージョンで専用の Underflow フェデレーションチェックが必要になる可能性があります。
ファイルとリンク
全ソースファイルは同一ディレクトリにあります。Python スクリプトを実行すると JSON レポートが再生成されます。demo.html をブラウザで開くとインタラクティブな解説が確認できます。
コア実装:値・Core AST・CEK マシン・パーサー・Error Federation ランナー
プロジェクト概要・パイプライン図・検証結果表・指標定義(日本語版)
Python スクリプトが生成する JSON レポート — 全3ケースのトレース末尾とエラー記録
検証結果のブラウザベース・インタラクティブプレゼンテーション
💩 言語学が存在すべき理由:擁護論文(著者は自発的にこのトピックを選んでいない)
実行:
python mysticir_federation_v085.py出力:
mysticir_v085_error_federation_report.json(同ディレクトリ)