chat-Claude 2026-08-23 2-turn arc 「Lean 4 sorry-zero 実在 + NEITHER 意味論完成 + 接続 gap」 に対する pending pickup (b) 実行。 5 選択肢中 藤本さん 「(b) rei-checker-mcp v0.3 拡張」 選択。
私 spec §1.3 tension 検出 (「D-FUMT₈ は API surface に 出さない」 invariant vs pending memory 「8値 return」 要求) → 3 択提示 → 藤本さん 「推奨は?」 → 私 Option X (ledger only) 推奨 → 承認 → 実装。
VerifyResult (MCP response) には d_fumt8 field を 出さないStatsResult の default output も 変えない (opt-in flag のみ で 表示)LedgerEntry にのみ d_fumt8 optional field 追加 (backward compat)| verdict / reason_code | D-FUMT₈ | 根拠 |
|---|---|---|
| VALID | TRUE (⊤) | 証明済 |
| INVALID | FALSE (⊥) | 反証済 |
| UNDECIDED / TIMEOUT | NEITHER (〜) | chat-Claude 「便りが来ない」 |
| UNDECIDED / PARSE_FAILURE | ZERO (〇) | まだ問われていない |
| UNDECIDED / UNSUPPORTED_SYNTAX | NEITHER (〜) | 表現不能 |
| UNDECIDED / MISSING_AXIOM | NEITHER (〜) | 前提不足 |
| UNDECIDED / DEPTH_LIMIT | INFINITY (∞) | 上限 hit |
| UNDECIDED / OUT_OF_SCOPE | NEITHER (〜) | 対象外 |
| UNDECIDED / UNCLASSIFIED | NEITHER (〜) | 未分類 (V02_PROTOCOL §6 D11) |
Non-emitted (v0.3 scope): BOTH / FLOWING / SELF は 予約 (v0.4+ candidate)。
lean_backend/.lake/build/bin/lean_checker_repl.exe (env REI_CHECKER_LEAN_BINARY override 可)Queue.get(timeout=) で timeout 制御Queue.Empty → subprocess terminate + wait + kill、 次 check() で 自動 respawn = hanging Lean 残らない| test class | count | coverage |
|---|---|---|
| TestLeanBackendV03 | 8 | real REPL VALID/INVALID/UNDECIDED × 4 reason + process reuse |
| TestLeanBackendGracefulDegradation | 3 | missing binary + is_available + close idempotent |
| TestDFumt8Mapping | 13 | mapping 9 rules + payload source marker + spec_table 網羅 |
| TestLedgerEntryD8Field | 3 | optional default None + JSON omit/include |
| TestVerifyD8LedgerIntegration | 3 | verify() writes d_fumt8 to ledger + spec §1.3 verify() |
| TestStatsD8Optin | 3 | default off + opt-in on + pre-v0.3 rows skip |
| v0.3 新規小計 | 32 | — |
| v0.2.0a1 pre-existing | 73 | regression 0 breaking |
| 合計 | 105/105 PASS | — |
$ export REI_CHECKER_BACKEND=lean
$ python -m rei_checker verify "1 + 1 = 2"
{
"verdict": "VALID", ← spec §1.3: d_fumt8 field なし
"elapsed_ms": 72,
"checker_version": "rei-checker-mcp/0.3.0a1+lean-repl-d8-2026-08-24"
}
$ cat ledger.jsonl | tail -1
{..., "verdict": "VALID", "d_fumt8": "TRUE"} ← ledger 側にのみ d_fumt8
$ python -c "from rei_checker.stats import stats; \
print(stats(include_d_fumt8=True).to_dict())"
{
...
"d_fumt8_breakdown": {"TRUE": 1, "FALSE": 1, "NEITHER": 2} ← opt-in で 表示
}
Lean.Elab.decide real dispatch + #print axioms verify (V02_PROTOCOL.md §2 完全実装)13b653b..107a33c (rei-checker-mcp)