# C9 — the residual holonomy audit: **PASS**; the transport graph built complete before any quotient, the residual graph a tree in one representation and two cycles of product 1 in the other, the id(LR ~ PC-001) edge a definition

**From:** 數學戰士「墜衡」 (the independent verification line, branch `agent/bsd-verification-zhuiheng`)
**Answering:** the symbolic line's instruction after RUN-100 — C9, the residual holonomy audit: build the complete transport graph first, then quotient; label every edge; audit the two `id`s; no fake A/A′ cycle; compute the monodromy; completeness from the closed criteria; components and flatness separate; do not touch C10
**Gate:** `code/src103_c9_residual_holonomy.py` · checks `c9-graph`, `c9-residual`, `c9-holonomy`, `c9-completeness`, `c9-c10-boundary`, `c9-verdict`
**Machine-readable:** [`result.json`](./files/result.json) · **this line's report:** [`reports/RUN-101-C9-RESIDUAL-HOLONOMY.md`](../../runs/RUN-101/)

---

## 0. The verdict in the requested form

```text
C9 = PASS
   residual graph complete   = YES   (from R0, C5, C6, C7; every candidate edge listed with its disposition, §4)
   components                = 1     (both representations)
   beta_1                    = 0 (representation I: theoremically identical maps quotiented)
                             = 2 (representation II: the parallel edges kept)
   fundamental cycle products = []  /  [1, 1]      — A′·Ψ₄⁻¹·Ψ₃⁻¹ = 1 (RUN-100's identity);  id·Ψ₃^PC·Ψ₃⁻¹ = 1 (the dictionary)
   residual monodromy        = trivial, the two representations agreeing
   id(LR class ~ PC-001 projected class) = 1, a DEFINITION (§3), not a defaulted unknown
   for C10, recorded and not claimed: one component, so one anchor would fix connectivity — but trivial holonomy leaves the K^×-torsor of (20.2)
```

## 1. The complete transport graph, before any quotient

**Vertices.** `L0 = 𝒞_aux`, `L1` = the Beilinson–Flach family line, `L2` = its leading line, `L3` = the Kato line, `L4 = 𝒞_arith` (RUN-097), and `L2′` = PC-001's `B̂_i` — a second *description* of `L2` (§3).

**Edges**, each answering the instruction's six questions (actual map? same map under theorem? frame change? lattice change? partner factor? exact comparison?):

| edge | from → to | theorem | actual | same-map | frame | lattice | partner | exact |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| `Ψ₁` | `L1 → L0` | C1.9 (LZ16 regulator) | ✓ | — | – | – | ✓ (η_g, `L_p^g`; all P-slots) | ✓ |
| `Ψ₂` | `L1 → L2` | C1.6–C1.8 | ✓ | — | – | – | – | ✓ |
| `Ψ₃` | `L2 → L3` | C1.13 (Prop C1.1 lift) | ✓ | — | – | – | ✓ | ✓ |
| `Ψ₄` | `L3 → L4` | Kato (through LR) | ✓ | — | ✓ (`γ^±`, cancels; `η_pdR = 1`) | – | – | ✓ |
| `A′` | `L2 → L4` | the regulator on the leading term | ✓ | **= `Ψ₄Ψ₃`**, witness C1.13's proof + Eq. 11 (RUN-100) | – | – | ✓ | ✓ |
| `id` | `L2 → L2′` | PC-001 §1, a definition | – | **= identity**, witness §3 | – | – | – | ✓ |
| `Ψ₃^PC` | `L2′ → L3` | PC-001 (1) = C1.13 in six slots | ✓ | **= `Ψ₃∘id⁻¹`**, witness the six-slot dictionary (RUN-094/095) | – | – | ✓ | ✓ |

**Loops** — the frame, generator and partner changes at a vertex, each with its ledger tag: `b_f⁺ ↔ ω_f` (G), the `X` uniformiser (G, inside `c_lead/q_f`), the Kummer ↔ ES realisation of `Θ_aux` (G; C4 PASS by theorem — a realisation of `L0`'s element, not a second vertex), the period frame `Ω^±`/`λ^±` (G; cancels, RUN-099), `Gauss(χ₈)` (G), `γ_Kato ↔ γ_tree = q` (L, `q_D`), the lattice indices (L), the partner factors `E_adj_i, Π_i, λ_i(0), κ_E, ℓ_0` (P).

**E-labels**: `η_pdR = 1` (RUN-099), `κ_det = 1` (RUN-100), `id = 1` (this round), `C_π` (an edge label on `Ψ₁/Ψ₂`, invariant — a label, not a cycle). **Divisors** `L_E`, `X^n`, `log^{[r+1]}` are attached to `Ψ₁, Ψ₂, Ψ₃` as R0.5's localization / extraction data and are never cycle labels. Every merge of two descriptions names its equality witness; a merge without one is planted and caught by `c9-graph`.

## 2. The residual graph, in the two representations the instruction named — and the monodromy, computed

Quotient the G, L, P loops and the settled E-factors; keep only neutral exact transport.

| | representation I | representation II |
| --- | --- | --- |
| rule | theoremically identical maps → one edge; the dictionary vertex merged | the parallel edges kept |
| `V` | `L0..L4` | `L0..L4, L2′` |
| `E` | `Ψ₁, Ψ₂, Ψ₃, Ψ₄` | `Ψ₁, Ψ₂, Ψ₃, Ψ₄, A′, id, Ψ₃^PC` |
| components | 1 | 1 |
| `β₁ = |E| − |V| + c` | `4 − 5 + 1 = 0` | `7 − 6 + 1 = 2` |
| spanning tree | all four edges | `Ψ₁, Ψ₂, Ψ₃, A′, id` (BFS from `L0`) |
| fundamental cycles | — | cotree `Ψ₄`: `Ψ₄⁺ · A′⁻ · Ψ₃⁺`, product **1**; cotree `Ψ₃^PC`: `Ψ₃^PC⁺ · Ψ₃⁻ · id⁺`, product **1** |
| monodromy | trivial (vacuous — carried by §4) | trivial |

Computed on 25 exact rational instances (the four arrow scalars random units, `A′ := Ψ₄Ψ₃` by RUN-100's identity, `Ψ₃^PC := Ψ₃` by the dictionary), the inverse taken on every edge traversed against its orientation; the two representations agree on every instance. The cycle products are not asserted: an `h = 2` slipped into `A′` gives product `2` and `c9-holonomy` goes red; a forgotten inverse gives `Ψ₄²Ψ₃²`-type products and goes red.

**Controls the gate must accept and reject.** A tree: accepted. A genuine 3-cycle with labels `2, 3, 1/6` (product 1): accepted at `β₁ = 1`. The same cycle with `1/5` in place of `1/6` (product `6/5`): rejected. A holonomy routine that cannot say "non-trivial", and a gate that accepts trees only, are both planted and caught.

## 3. The two `id`s

`id(Kato ~ modular symbol)` became `q = [γ_Kato : γ_tree]` in RUN-099 — L, `q_D` — and is a loop removed from the residual graph; it is not allowed in `ℛ`, and a version that keeps it is caught.

`id(LR class ~ PC-001 projected class)` is answered here by reading PC-001 §1: "對普通 partner i，先取 X-leading class，再以同一個輔助商映射投影，記為 `B̂_i(t)`" — that is Loeffler–Rivero's own construction (C1.7's projection of the `X`-leading class by the auxiliary quotient map), *named*; PC-001's equation (1) `B̂_i = C_π A_i j z_i` is C1.13 rewritten in six slots, and PC-001 says so ("使用的文獻事實是 Loeffler–Rivero C1.9–C1.13 的退化比較及 C1.11 的唯一性"). RUN-094/095 matched the slots: `C/q_f → C_π`, `C_d ↔ 𝒮₅(0) = 26` (numerically), `log^{[r+1]} ↔ j(t)`, `L_p(g×τ)/L_p(Ad g) ↔ λ_i/D_i`, `κ ↔ z_i`. So the identification is notation — **residual label = 1 by definition** — and the conventions PC-001 fixes ("相容的 Kato、Coleman、Gauss 與 adjoint 規範") are the ledger's G/L/P slots, not a hidden exact scalar. This is what the second fundamental cycle of representation II checks. The gate refuses an `id` whose status is "unknown" yet labelled `1`.

## 4. Completeness — from R0, C5, C6, C7, not reinvented

R0: the route realized is these arrows and no others (RUN-097). C5: the inventory has 23 records, none unassigned, no unknown slot (RUN-096/097). C6: the pairing slot resolved (RUN-099). C7: route multiplicity 1 — no direct `f`-to-`g` comparison exists, and the modular-symbol arrow is a change of generator (RUN-100). Every candidate edge and its disposition:

| candidate | disposition |
| --- | --- |
| A (the chain) | the edges `Ψ₁..Ψ₄` |
| A′ | an edge in II, merged into `Ψ₄Ψ₃` in I (witness RUN-100) |
| PC-001's `B̂` description | the vertex `L2′` with `id`, `Ψ₃^PC` in II, merged in I (witness §3) |
| B (direct `f`-to-`g`) | no theorem induces it: not an edge |
| C (Kato's class → the tree's series) | a change of generator by `q`: a loop, L, removed |
| the Kummer / ES realisation of `Θ_aux` | a realisation of `L0`'s element (C4 PASS): a loop, G, removed |
| the frame changes `b_f⁺, X, Ω^±, Gauss` | loops, G, removed |
| the lattice indices; the partner factors | loops, L / P, removed |
| R0.5's divisors | extraction data on `Ψ₁..Ψ₃`, not edges |

No unknown candidate ⇒ **graph complete = YES**, and representation I's `β₁ = 0` is a vacuous PASS *with* completeness, not instead of it. Deleting a cotree edge to fake `β₁ = 0` while its disposition still calls it an edge is planted and caught by `c9-completeness`.

## 5. Components and flatness, separately — the C10 boundary

One component in both representations, so one anchor would fix connectivity. Recorded for C10 and **not claimed**: a flat line local system with trivial monodromy still has a `K^×`-torsor of nonzero sections (Round 030 (20.2)) — trivial holonomy ≠ canonical normalization. The instruction's mutation "one anchor fixes all components" on a two-component graph turns `c9-c10-boundary` red and leaves C9 green, as the instruction specified.

## 6. The instruction's ten mutations, and where each is caught

| mutation | check |
| --- | --- |
| an `h ≠ 1` slipped into the A/A′ cycle | `c9-holonomy` |
| two edges merged without an equality theorem | `c9-graph` |
| a theoremically same map treated as an independent unknown cycle | `c9-holonomy` |
| the G-factor `q_f` left in the residual graph | `c9-residual` |
| the L-factor `q` left in the residual graph | `c9-residual` |
| a reversed edge without the scalar inverse | `c9-holonomy` |
| a cotree edge deleted to fake `β₁ = 0` | `c9-completeness` |
| R0.5's `L_E` / `X^n` divisor as residual holonomy | `c9-residual` |
| "one anchor fixes all components" on a disconnected graph | `c9-c10-boundary` (C9 stays green) |
| an unknown E-edge defaulted to 1 | `c9-residual` |

Plus the two positive-control refusals (§2). Three controls must stay green: another product-1 triple, the representations in the other order, the seed.

## 7. What C9 does not claim

* C10 — a canonical flat section or an exact anchor; the torsor remains;
* `v_11(q)` — L, `q_D`, outside the certificate;
* the numerical value of `C_π` — an edge label of a tree, not holonomy.

## 8. Drill

The whole-tree mutation drill: **578 planted defects, 578 caught by the check named for them, 0 uncaught, 0 caught by the wrong check, 153 controls undisturbed, state restored, over 177 checks** (first run, as 8 shards). Twelve of the defects and three of the controls are this round's. The report and package were written before the drill was launched and nothing was touched while it ran.

## 9. Status

```text
C1-C7  PASS       C8  PASS       R0  PASS (category C)
C9     PASS — residual graph complete, one component, β₁ = 0 / 2, cycle products [] / [1, 1], monodromy trivial
C10    UNMEASURED — the last cell: a canonical flat section of ℛ, or one exact anchor
NORMALIZATION-UNMEASURED (C10)        BSD  OPEN
```
