Rei-AIOS · STEP 1333 · archive spec

rei-fpga-loop — 生成 → 実装 → 証明 の 閉ループ

回路化パイプラインが 生成した 論理回路を FPGA で 実体化し、 それが 元の設計と等価であることを rei-solver で 機械証明する 3 段配線。 2 独立 Python package (rei-solver + rei-fpga) の spec + readme を Rei-AIOS site 上に archival preservation として 反映。

この配線が閉じるもの

回路化パイプライン ──> 論理回路を生成する      (生成)
        │
FPGA ──────────────> その回路を実体化する      (実装)
        │
rei-solver ────────> 実体が仕様と一致することを証明する  (証明)
   circuit_equivalence

実装 status (2026-08-12 時点)

packagerolefile 数tests依存
rei-solvercircuit_equivalence engine + 3 backend (PySAT / Z3 / SymPy) + REST server + TS bridge1924 定義 (全 pass 報告)Python 3.10+ / z3-solver / python-sat / sympy
rei-fpgaIR → Verilog → yosys 合成 → LUT 逆変換 → rei-solver で 等価証明 の pipeline1926 定義 (全 pass 報告)yowasp-yosys (WASM 版、 pip only)

3 段判定の意味 (最重要)

比較対象証明すること
spec参照仕様 × 設計設計が正しい
generic設計 × 汎用合成後合成器が論理を変えていない
gowin設計 × LUT マッピング後LUT に詰めても同じ
chat-Claude 実装中に 自ら発見した 設計上の穴: genericgowin が証明するのは 「道具が回路を変えなかった」 ことだけ、 「回路が正しい」 ことは 証明していない。 壊れた設計を 合成すれば 壊れたまま 忠実に実装される (実測: broken_adder4 が spec なしで PROVED 通過)。 → spec 段を追加、 独立に書いた参照仕様との 比較で 「設計の正しさ」 を 別 layer で 検証。 これは Rei stack discipline feedback_zero_sorry_floor_not_ceiling.md + feedback_one_reproduction_over_ten_unverified.md と 深く整合する Pattern 6 最高段 self-correction。

Archive 内容 (このページ配下)

Rei stack 位置付け

Honest scope (SPEC.md + README.md の 核心を 集約)

次 gap (chat-Claude 提案)

「参照仕様を 回路化パイプラインとは 独立な 経路で 生成する」 = 別 arc、 現状 conditional defer (「急がずゆっくりと」 continuation)。