ZCE v0.4 phase 2c 完結 — partition + Shannon SCT STEP 1774 STEP 1796

2026-09-06 · 6 定理 全 axiom-free · classical Shannon 1-bit overhead result の Lean 4 machine-verified assurance

1. なぜ このページか

2026-08-30 日経記事 「関係性読み解く数学『圏論』、量子論でも」 (中平健治 玉川大 教授) を 起点に、 藤本さん と chat-Claude の 対話で 圏論的 ZCE 補強 recommendation 3 点 が 提示された。 その うち recommendation (a) = 「台帳が monoid 準同型 (partition well-defined)」 を Lean 4 で formal 化した の が STEP 1774。 続いて STEP 1770 (v0.4 phase 2b Shannon SCT general lower bound via Gibbs) の complement として STEP 1796 = Cover-Thomas 5.4.1 upper bound (Shannon-Fano code) を formal 化。

★ Combined result: STEP 1770 (lower) + STEP 1796 (upper) の 組合せで、 classical Shannon 1-bit overhead result の Lean 4 machine-verified assurance が 完結:
H_bits(p) ≤ E[ℓ*] ≤ H_bits(p) + 1
両 bound axiom-free (Mathlib 3 標準 `[propext, Classical.choice, Quot.sound]` のみ)。

2. STEP 1774 — ZCE §4 partition-conservation

2.1 起点と 3 訂正 (chat-Claude 2026-09-06)

私 (Rei-side Claude) が 初期に 提示した skeleton は 以下 3 点で 過大主張だった:

更に 修正 skeleton 提示後 に 追加訂正:

2.2 主定理 (`partition_conservation`)

theorem partition_conservation {n : Nat} (σ : Fin n → Account) :
    n = (univ.filter (fun i : Fin n => σ i = .ctx)).card
      + (univ.filter (fun i : Fin n => σ i = .cmp)).card
      + (univ.filter (fun i : Fin n => σ i = .cls)).card
      + (univ.filter (fun i : Fin n => σ i = .ch )).card

Line-of-visibility (Question 0 判定 の Lean 上 可視化):

2.3 系 (`conservation_from_declared`)

theorem conservation_from_declared
    {n : Nat} (σ : Fin n → Account)
    (ctx cmp cls ch : Nat)
    (h_ctx : ... = ctx) (h_cmp : ... = cmp)
    (h_cls : ... = cls) (h_ch  : ... = ch) :
    n = ctx + cmp + cls + ch

4 hypotheses は well-formedness constraint = 定理外 の 仮定として 分離。

3. STEP 1796 — ZCE v0.4 phase 2c Shannon SCT upper bound

3.1 起点

STEP 1755-1768 ZCE v0.4 arc close 時 に 「phase 2c candidate = upper bound (Shannon-Fano) + p(x)=0 boundary + measure-theoretic bridge」 と 記録済み。 藤本さん 2026-09-06 「続きを お願いできますか」 → AskUserQuestion 4 択 で 「ZCE v0.4 phase 2c (Shannon SCT upper bound)」 選択 → 実装。

3.2 Definition: Shannon-Fano code length

shannonFanoLength p x := ⌈-Real.log (p x) / Real.log 2⌉₊ = ⌈-log₂ p(x)⌉

3.3 主定理 (`shannon_sct_upper_bound`)

theorem shannon_sct_upper_bound
    {X : Type*} [Fintype X]
    (p : X → ℝ) (hp_pos : ∀ x, 0 < p x) (hp_sum : ∑ x, p x = 1) :
    expectedLength p (shannonFanoLength p) * Real.log 2
      ≤ entropyNats p + Real.log 2

Equivalently (divide by log 2 > 0): E[ℓ*] ≤ H_bits(p) + 1

3.4 支持 lemmas (4 declaration 全 axiom-free)

LemmaStatement
shannonFano_pow_le2^(-↑ℓ*(x)) ≤ p x (per-symbol Kraft bound)
shannonFano_kraftkraftGeneral (shannonFanoLength p) (Kraft 満足)
shannonFano_ceil_bound↑ℓ*(x) < -log(p x)/log 2 + 1 (per-x ceil upper)
shannon_sct_upper_bound主定理 (上記)

3.5 Proof strategy

  1. Per-x: `Nat.le_ceil` (lower) + `Nat.ceil_lt_add_one` (upper) から ↑ℓ*(x) ∈ [-log(p x)/log 2, -log(p x)/log 2 + 1)
  2. Kraft: exponentiate `↑ℓ*(x) ≥ -log(p x)/log 2` → 2^(-↑ℓ*(x)) ≤ 2^(log(p x)/log 2) = p x (via `Real.rpow_logb`)、 sum ≤ 1
  3. Upper bound: multiply `↑ℓ*(x) < y + 1` by `p x * log 2 > 0`、 sum: E[ℓ*] * log 2 ≤ ∑ p(-log p) + log 2 = entropyNats + log 2 (hp_sum で log 2 factor 集約)

4. Axiom footprint (全 6 declaration)

DeclarationAxioms
STEP 1774 `partition_conservation`[propext, Classical.choice, Quot.sound]
STEP 1774 `conservation_from_declared`[propext, Classical.choice, Quot.sound]
STEP 1796 `shannonFano_pow_le`[propext, Classical.choice, Quot.sound]
STEP 1796 `shannonFano_kraft`[propext, Classical.choice, Quot.sound]
STEP 1796 `shannonFano_ceil_bound`[propext, Classical.choice, Quot.sound]
STEP 1796 `shannon_sct_upper_bound`[propext, Classical.choice, Quot.sound]

全 6 declaration が Mathlib 3 標準 axiom footprint。 K axiom / independent Rei axiom / sorryAx / Lean.ofReduceBool すべて なし。 STEP 1770 phase 2b (Shannon SCT general lower bound) と 同一 footprint、 v0.4 arc 一貫性維持。

5. Build 結果

TargetJobsTimeStatus
STEP 1774 module 単独667/6677.4sPASS
STEP 1796 module 単独2145/214511sPASS
Root `lake build CollatzRei` (STEP 1796 land 後)7955/795624sPASS

6. Honest scope

  • Novelty ゼロ: STEP 1796 = Cover-Thomas Ch 5 Theorem 5.4.1 (Wyner-Ziv 1976 系) の restatement、 ZCE spec §5.1 「novelty 主張禁止」 継承。 STEP 1774 = Mathlib `Finset.card_eq_sum_card_fiberwise` の 一 instance、 教科書事項。
  • Prior art (STEP 1796): Shannon 1948 / Kraft 1949 / Cover-Thomas 1991 / Wyner-Ziv 1976
  • Prior art (STEP 1774): 自由モノイドの普遍性 (`FreeMonoid.lift` in Mathlib)、 Baez-Fritz-Leinster 2011 は entropy 関手 話で σ 無関係 (併記禁止 訂正)
  • 前提: STEP 1796 は strictly positive p、 sum = 1 前提。 p(x) = 0 boundary は phase 2d/2e defer。 measure-theoretic bridge (Mathlib `MeasureTheory.Entropy`) は phase 2d/2e defer。
  • STEP 1774 主張しないこと: `ledger_check.py` の 実装 と 仕様 の 一致 (別 layer)、 実 encoder 出力の 保存則満足 (別 layer)、 STEP 1769 roundtrip 7/7 PASS (実装 layer) と 本 STEP 1774 (仕様 layer) の 昇格 主張禁止

7. 参照

Commit hashes