---
title: "SRBC Theory Validation Program — Round 07：Closure Graph / Reopen Automation"
author: "Neo.K with Aletheia (GPT-5.6 Sol)"
institution: "EveMissLab / 一言諾科技有限公司"
version: "v0.1"
date: "2026-09-23"
language: "zh-TW"
document_type: "Closure Graph / Incremental Reopen Validation Report"
status: "Round 07 completed"
---

# SRBC Theory Validation Program — Round 07

## Closure Graph / Reopen Automation：最小受影響子圖、局部重算與 dependency integrity

**作者：** Neo.K with Aletheia (GPT-5.6 Sol)  
**機構：** EveMissLab / 一言諾科技有限公司  
**日期：** 2026-09-23  
**版本：** v0.1  

---

## Canonical Source Note

本報告以 UTF-8 Markdown 保存；數學 source 僅使用 ` $...$ ` 與 `$$...$$`。本輪直接使用 Round 06 的 14 張 v0.6.1 certificates，建立 typed closure DAG，並執行 graph mutation、cycle、edge-consistency、local reopen 與 scaled routing stress。

Round 06 沒有保存 canonical source / query / completion-family content bytes，因此本輪無法補造真實 content hash。所有 root digest routing 測試使用 **ID-surrogate digest**，只驗 reopen algorithm，不冒充 content-integrity proof。

---

# 0. 本輪目的

Round 06 已能判斷單張 certificate 被 mutation 後該：

- invalidate；
- downgrade；
- reissue；
- reverify。

Round 07 改問：

$$
\boxed{
\text{如果整個研究系統有很多互相依賴的 certificate，改一個節點後究竟要重開哪些？}
}
$$

真正的要求是：

$$
\boxed{
\text{不全量重算}
\quad\land\quad
\text{不漏掉依賴者}.
}
$$

---

# 1. 第一個 artifact bug：v0.6.1 dependency pin 沒跟 digest split 同步

v0.6.1 已經拆出：

$$
h_S
$$

與：

$$
h_E.
$$

但四條 derivational dependency 仍保存舊 v0.6 core digest。

和 parent 的新：

```yaml
semantic_digest
```

比較：

| child | parent | stored pin matches parent semantic digest? |
|---|---|---|
| BER-C2 | BER-C1 | NO |
| MH-C2 | MH-C1 | NO |
| MH-C3 | MH-C1 | NO |
| MH-C4 | MH-C1 | NO |

結果：

$$
\boxed{
0/4
}
$$

對齊。

所以 v0.6.1 雖然「有 semantic digest」，dependency pin 還沒真正使用它。

v0.7 遷移後：

$$
\boxed{
4/4
}
$$

改為 `parent_semantic_digest`。

---

# 2. 第二個 artifact gap：root 只有 ID，沒有 canonical content digest

14 張 Round 06 certificates 中，有完整：

- source content digest；
- query content digest；
- completion-family content digest；

的數量是：

$$
\boxed{
0/14.
}
$$

這代表：

```text
MH-STANDARD-v1
```

若內容被原地改寫，但 ID 不變，舊 certificate 無法靠自身判斷 root stale。

所以：

$$
\boxed{
\text{version label}
\neq
\text{content identity}.
}
$$

這是 v0.7 新增 root content integrity gate 的原因。

---

# 3. v0.7 Closure Graph

本輪 graph：

- source nodes：**13**
- query nodes：**8**
- completion-family nodes：**13**
- certificates：**14**
- total graph nodes：**90**
- total edges：**89**

節點還包括每張 certificate 的：

- semantic digest；
- evidence digest；
- nuisance control node。

graph artifact：

```text
closure_graph_v07.json
```

以及：

```text
closure_graph_v07.dot
```

---

# 4. Propagation rule

只沿 propagating edge 做 reopen。

核心：

$$
S,Q,F
\rightarrow
SD(C)
\rightarrow
C
$$

及：

$$
SD(C_p)
\rightarrow
ED(C_c)
\rightarrow
C_c
$$

對 derivational child 傳播。

而：

$$
\text{contextual reference}
$$

與：

$$
\text{nuisance}
$$

不傳播。

---

# 5. 76 種 mutation routing

測試所有：

- 13 source nodes；
- 8 query nodes；
- 13 family nodes；
- 14 semantic-digest nodes；
- 14 evidence-digest nodes；
- 14 nuisance controls。

總共：

$$
\boxed{
76
}
$$

種 mutation seeds。

graph reachability 與獨立 oracle affected-set 比較：

$$
\boxed{
76/76
}
$$

完全一致。

---

# 6. 真正 active mutation 的局部成本

排除 14 個 nuisance no-op，剩：

$$
\boxed{
62
}
$$

種 semantic / evidence mutations。

單次平均需重驗：

$$
\boxed{
1.290
}
$$

張 certificate。

中位數：

$$
\boxed{
1.0.
}
$$

最大：

$$
\boxed{
4.
}
$$

而整個 registry 是：

$$
14
$$

張。

因此相較每次全量重算，平均節省：

$$
\boxed{
90.78\%
}
$$

certificate revalidation work。

---

# 7. Global rebuild：安全，但嚴重 over-invalidation

每一次 mutation 都重算：

$$
14
$$

張 certificate。

而真實平均 affected：

$$
1.290.
$$

因此每次平均多算：

$$
\boxed{
12.710
}
$$

張。

這在 14 張小圖還不嚴重。

但 long-horizon SREG / SRBC runtime 若有數萬 certificates，會變成主要成本。

---

# 8. Direct-only：便宜，但真的 under-invalidate

只重驗直接使用 mutated node 的 certificates，而不追 derivational descendants。

62 種 active mutations 中，有：

$$
\boxed{
4
}
$$

種會漏重開。

總共漏掉：

$$
\boxed{
10
}
$$

次 descendant reopen。

案例：

| mutation seed | missed descendants | count |
|---|---|---:|
| `S::MH-PARADE-STYLE-v1` | MH-C2, MH-C3, MH-C4 | 3 |
| `F::MH-LIKELIHOOD-KERNEL-v1` | MH-C2, MH-C3, MH-C4 | 3 |
| `SD::BER-C1` | BER-C2 | 1 |
| `SD::MH-C1` | MH-C2, MH-C3, MH-C4 | 3 |

最典型：

$$
MH\text{-}C1
$$

semantic identity 改變時，如果只重驗 MH-C1，就會漏掉：

$$
MH\text{-}C2,
MH\text{-}C3,
MH\text{-}C4.
$$

---

# 9. Contextual reference 不應造成 proof cascade

TE-C3 對 TE-C1 是 contextual reference，不是 derivational proof edge。

mutation：

$$
SD(TE\text{-}C1)
$$

後，closure routing 不包含 TE-C3。

結果：

$$
\boxed{
\text{PASS}.
}
$$

這和 Round 06 的 certificate mutation 結果一致。

---

# 10. Graph / Registry consistency

基線：

$$
\boxed{
\text{graph derivational edges}
=
\text{registry derivational dependencies}.
}
$$

通過。

接著攻擊：

## Delete one real edge

刪掉：

```text
SD::BER-C1 → ED::BER-C2
```

checker 偵測：

$$
\boxed{
\operatorname{GRAPH\_SCHEMA\_MISMATCH}.
}
$$

## Add one spurious edge

加入：

```text
SD::TE-C1 → ED::TE-C3
```

checker 同樣偵測 mismatch。

因此 graph 不能自己偷偷變成第二套 truth source。

---

# 11. Cycle attack

基線 derivational certificate graph：

$$
\boxed{
\operatorname{acyclic}.
}
$$

注入：

$$
MH\text{-}C2
\rightarrow
MH\text{-}C1
$$

後，和既有：

$$
MH\text{-}C1
\rightarrow
MH\text{-}C2
$$

形成 cycle。

cycle detector：

$$
\boxed{
\text{detected}.
}
$$

因此第一代 certificate graph 應拒絕 ordinary cyclic derivation。

---

# 12. Scale stress

把整個 closure graph 複製：

$$
\boxed{
200
}
$$

份相互獨立 replicas。

對所有 replica mutation routes 共測：

$$
\boxed{
15200
}
$$

次。

incremental graph routing 對 oracle：

$$
\boxed{
15200/15200
}
$$

一致。

這只是 dependency-routing scale test，不是大規模 theorem-prover benchmark；但至少證明 algorithm 沒有因 graph namespace 擴張而出現 cross-component contamination。

---

# 13. Minimal Reopen 的真正定義

本輪最重要的 runtime 結果可以壓成：

$$
\boxed{
\operatorname{Aff}(v)
=
\operatorname{Reach}_{E_{\mathrm{prop}}}^{+}(v)
\cap
V_C.
}
$$

也就是：

> mutation 從哪個 typed node 出發，就沿真正會傳播 staleness 的 edge 找 certificate descendants。

這個集合就是目前 graph semantics 下的 minimal affected certificate set。

---

# 14. 為什麼它比 full rebuild 好？

full rebuild：

$$
\operatorname{Aff}_{\mathrm{all}}(v)
=
V_C.
$$

一定不漏，但 over-invalidate。

direct-only：

$$
\operatorname{Aff}_{\mathrm{direct}}(v)
$$

成本低，但會漏 derivational descendant。

typed DAG：

$$
\operatorname{Aff}_{\mathrm{DAG}}(v)
$$

本輪 76/76 routing cases 都和 oracle 一致。

---

# 15. 但「minimal」仍然是 frame-relative

如果 dependency graph 本身漏 edge：

$$
G_{\mathrm{declared}}
\neq
G_{\mathrm{true}},
$$

再完美的 BFS 也會漏算。

所以：

$$
\boxed{
\text{incremental correctness}
=
\text{routing correctness}
+
\text{graph completeness}.
}
$$

這使 graph completeness 本身變成新的 certificate object。

---

# 16. Round 07 修正 QRSRC

QRSRC 不再只是一組 certificates。

更精確：

$$
\boxed{
\operatorname{QRSRC}
=
(
G_C,
\mathcal C,
H_R,
\mathcal R
)
}
$$

其中：

- $G_C$：closure dependency graph；
- $\mathcal C$：certificates；
- $H_R$：root content hashes；
- $\mathcal R$：reopen rules。

---

# 17. Reopen reason

每個 mutation seed 現在可以直接產：

```yaml
reopen_reason: query_change
affected:
  - ...
```

或：

```yaml
reopen_reason: semantic_reissue
affected:
  - ...
```

這可以讓 agent 不只是知道「要重開」，還知道：

> 為什麼重開、從哪裡開始、哪些不用碰。

---

# 18. 本輪對 SRBC 的支持

得到直接支持：

1. typed dependency graph 可精確做局部 reopen；
2. derivational / contextual 分型有實際必要；
3. semantic / evidence digest split 可映射到不同 propagation route；
4. full rebuild 的 over-invalidation 很大；
5. direct-only 有可構造的 under-invalidation；
6. dependency cycle / missing edge / spurious edge 都應被 graph checker 阻止；
7. root content hash 是 incremental freshness 的必要條件。

---

# 19. 本輪又修正了什麼？

## Patch 1

v0.6.1 dependency pin 必須改成 `parent_semantic_digest`。

## Patch 2

source/query/family 不能只有 ID，必須有 canonical content hash。

## Patch 3

closure graph 本身必須有 schema consistency certificate。

## Patch 4

derivational graph 預設 acyclic。

## Patch 5

reopen 用 typed reachability，不是 global reset。

---

# 20. 下一輪

Round 08 最有價值的是：

$$
\boxed{
\text{Incremental Recompute Runtime}
}
$$

不只算 affected set，而是真的：

1. mutation root；
2. mark stale；
3. topological schedule；
4. 只重算 affected certificates；
5. 更新 semantic / evidence digests；
6. 重新驗證 descendants；
7. commit 新 closure snapshot；
8. 和 full rebuild 結果做 differential comparison。

也就是開始真正建立：

$$
\boxed{
\text{incremental QRSRC engine}.
}
$$

---

# 附錄 A：Dependency pin audit

| child | parent | v0.6.1 pin matches parent semantic digest? |
|---|---|---|
| BER-C2 | BER-C1 | NO |
| MH-C2 | MH-C1 | NO |
| MH-C3 | MH-C1 | NO |
| MH-C4 | MH-C1 | NO |

---

# 附錄 B：Machine summary

```json
{
  "round": "SRBC Theory Validation Round 07",
  "input_certificate_count": 14,
  "v061_dependency_pin_audit": {
    "derivational_edge_count": 4,
    "pins_matching_parent_semantic_digest": 0,
    "all_records": [
      {
        "child": "BER-C2",
        "parent": "BER-C1",
        "stored_digest": "3ed59acb4b73c6c26baa8e8e47ec8fb20b893f65b1542248f8150a583eb58b76",
        "parent_semantic_digest": "c0dcc76443f984da379facd6bf38bd725ee4b38f76fb867e97f9a5885230d50f",
        "matches_parent_semantic_digest": false
      },
      {
        "child": "MH-C2",
        "parent": "MH-C1",
        "stored_digest": "af06eb1f098413059fa7cbc9d81f863e263ad930bba102e0ceac331a64b4b123",
        "parent_semantic_digest": "23414a2aa184bba06f5104e7c2bf7e241682ea3805a235f53eab1c1bc223067e",
        "matches_parent_semantic_digest": false
      },
      {
        "child": "MH-C3",
        "parent": "MH-C1",
        "stored_digest": "af06eb1f098413059fa7cbc9d81f863e263ad930bba102e0ceac331a64b4b123",
        "parent_semantic_digest": "23414a2aa184bba06f5104e7c2bf7e241682ea3805a235f53eab1c1bc223067e",
        "matches_parent_semantic_digest": false
      },
      {
        "child": "MH-C4",
        "parent": "MH-C1",
        "stored_digest": "af06eb1f098413059fa7cbc9d81f863e263ad930bba102e0ceac331a64b4b123",
        "parent_semantic_digest": "23414a2aa184bba06f5104e7c2bf7e241682ea3805a235f53eab1c1bc223067e",
        "matches_parent_semantic_digest": false
      }
    ]
  },
  "root_content_digest_audit": {
    "certificate_count": 14,
    "certificates_with_all_source_query_family_content_digests": 0,
    "note": "Round-06 certificates stored IDs but not canonical source/query/family content digests. Round-07 graph uses ID-surrogate digests only for routing tests."
  },
  "v07_migration": {
    "derivational_pins_matching_parent_semantic_digest": "4/4",
    "graph_nodes": 90,
    "graph_edges": 89,
    "source_nodes": 13,
    "query_nodes": 8,
    "family_nodes": 13,
    "certificate_nodes": 14
  },
  "routing_test": {
    "mutation_seed_count": 76,
    "exact_matches": 76,
    "failed": 0,
    "active_mutation_seed_count": 62,
    "average_affected_certificates": 1.2903225806451613,
    "median_affected_certificates": 1.0,
    "max_affected_certificates": 4,
    "average_fraction_saved_vs_full_recompute": 0.9078341013824885
  },
  "naive_strategies": {
    "global_recompute": {
      "certificates_per_mutation": 14,
      "average_excess_certificates_recomputed": 12.709677419354838
    },
    "direct_only": {
      "mutations_with_underinvalidation": 4,
      "active_mutation_count": 62,
      "missed_descendant_reopen_events": 10,
      "examples": [
        {
          "seed": "S::MH-PARADE-STYLE-v1",
          "missed": [
            "MH-C2",
            "MH-C3",
            "MH-C4"
          ],
          "missed_count": 3,
          "underinvalidates": true
        },
        {
          "seed": "F::MH-LIKELIHOOD-KERNEL-v1",
          "missed": [
            "MH-C2",
            "MH-C3",
            "MH-C4"
          ],
          "missed_count": 3,
          "underinvalidates": true
        },
        {
          "seed": "SD::BER-C1",
          "missed": [
            "BER-C2"
          ],
          "missed_count": 1,
          "underinvalidates": true
        },
        {
          "seed": "SD::MH-C1",
          "missed": [
            "MH-C2",
            "MH-C3",
            "MH-C4"
          ],
          "missed_count": 3,
          "underinvalidates": true
        }
      ]
    }
  },
  "graph_integrity": {
    "base_derivational_cycle": false,
    "injected_cycle_detected": true,
    "base_graph_registry_consistent": true,
    "deleted_edge_detected": true,
    "spurious_edge_detected": true,
    "contextual_reference_nonpropagation_ok": true,
    "spurious_edge_example": [
      "SD::TE-C1",
      "ED::TE-C3"
    ],
    "deleted_edge_example": [
      "SD::BER-C1",
      "ED::BER-C2"
    ]
  },
  "scaled_stress": {
    "replicas": 200,
    "mutation_routes_tested": 15200,
    "exact_matches": 15200,
    "failed": 0,
    "average_affected_certificates_per_replica_mutation": 1.0526315789473684
  }
}
```

---

# 附錄 C：Artifacts

- `SRBC_Theory_Validation_Round07_Report_v0.1_2026-09-23.md`
- `SRBC_Core_Patch_v0.7_2026-09-23.md`
- `closure_graph_v07.json`
- `closure_graph_v07.dot`
- `certificates_v07/*.json`
- `results_round07.json`
- `reopen_routes_round07.jsonl`
- `reopen_reasons_round07.jsonl`
- `round07_replay.py`
- `validation.json`
