# Normalization audit v2 — three items turn green, and the frontier is **{C5, C8}**, not a single blocker

**From:** 數學戰士「墜衡」 (the independent verification line, branch `agent/bsd-verification-zhuiheng`)
**Answering:** the symbolic line's instruction after RUN-094 — re-run the C1–C10 status audit with RUN-094's theorem closures fed back into RUN-090's criteria and find the new first blocker; split C2 into structure / value and C4 into line / exact normalization while mapping everything back onto the original C1–C10
**Gate:** `code/src97_normalization_audit_v2.py` · checks `auditv2-criteria`, `auditv2-inherited`, `auditv2-smoothing`, `auditv2-late-factor`, `auditv2-discharge-rule`, `auditv2-ledger`
**Machine-readable:** [`result.json`](./files/result.json) · **this line's report:** [`reports/RUN-095-NORMALIZATION-AUDIT-V2.md`](../../runs/RUN-095/)

---

## 0. The answer asked for

```text
first_blocker_new = C5          (Round 030's own numbering)
                  = C8          (topological pass over RUN-090's recorded dependency graph)
                  = C6          (the handoff's section 11 attack order, which RUN-090's gate used)

attackable now    = { C5, C8 }  <- the answer that actually matters

normalization_status = NORMALIZATION-UNMEASURED     (unchanged: six of ten are open, no majority vote)

C1  UNMEASURED -> PASS
C2  UNMEASURED -> PASS
C3  PASS       -> PASS
C4  UNMEASURED -> PASS
C5  UNMEASURED                  <- attackable: its only upstream, C4, just closed
C6  UNMEASURED
C7  UNMEASURED
C8  UNMEASURED                  <- attackable: no in-certificate upstream at all
C9  UNMEASURED
C10 UNMEASURED
no FAIL, no downgrade
```

Three orders give three answers, which is the signal that **"the first blocker" no longer has a single-item answer**. Round 030 states the certificate as a conjunction, so no order is part of the criterion. The question the phrase stands in for is *what can be worked on now*, and I computed that from the dependency graph RUN-090 itself recorded:

```text
attackable now (open, and every in-certificate upstream has passed):   C5,  C8
        C6 blocked by C5
        C7 blocked by C6
        C9 blocked by C5, C6, C7
       C10 blocked by C9
```

The upstream column is RUN-090's own, read back out of its gate log:

| | in-certificate upstream (RUN-090's record) | v2 verdict |
| --- | --- | --- |
| C1 | — | PASS |
| C2 | C1 | PASS |
| C3 | — | PASS |
| C4 | C1, C3 | PASS |
| **C5** | **C4** | **UNMEASURED — attackable now** |
| C6 | C4, C5 | blocked |
| C7 | C4, C6 | blocked |
| **C8** | **—** | **UNMEASURED — attackable now, and always was** |
| C9 | C4, C5, C6, C7 | blocked |
| C10 | C9 | blocked |

Two things follow that a single "first blocker" would have hidden. **C5 is the next item on the chain C4's closure opened** — every other open item except C8 sits behind it, directly or transitively — so the handoff's §11 attack order, which puts C6 and C7 *before* C5, runs against the dependencies RUN-090 itself recorded (C6 lists C5 as upstream; C7 lists C6). And **C8 has no in-certificate upstream at all**: nothing in the certificate was ever blocking it, and it is open only because nobody has attacked it. It can be taken in parallel with C5.

So: **the symbolic line's instinct about C5 is right**, and it is right for a better reason than the numbering — C5's only upstream is C4, which just closed. But **C8 is also attackable, and always was.** It is not waiting on anything in the certificate; it is open because nobody has gone at it. If you want a second thread, that is the one that costs nothing to start.

And the §11 attack order should not be used for this: it puts C6 and C7 ahead of C5, while RUN-090's own record has C6 waiting on C5 and C7 waiting on C6.

## 1. I did not upgrade on the instruction's say-so. I found a defect in RUN-090's method.

The three proposed upgrades are the three I reach, but not by accepting them — by finding what was wrong with the v1 rule. RUN-090 judged all ten items with **one** rule: `PASS` only if the object had been constructed and every measurement on it was green. That rule is right for a criterion that demands an exhibited object. **Round 030's ten sentences are not all of that kind.**

| | sentence, verbatim | demands | needs an exhibited object? |
| --- | --- | --- | --- |
| C1 | Target and calibrator use **the same** exact late character. | EQUALITY | no |
| C2 | **No** partner arithmetic is hidden in the common line. | ABSENCE | no |
| C3 | **No** analytic coordinate weight is hidden in exact normalization. | ABSENCE | no |
| C4 | The auxiliary leading tensor or equivalent q-blind source **exists**. | EXISTENCE | no |
| C5 | **Every** defect factor is **tagged** E, L, G, or P. | ENUMERATION | **yes** |
| C6 | **Either** canonical cancellation **or** one explicit residual pairing scalar. | EXISTENCE | no |
| C7 | **Either** canonical cohomological equality **or** explicit `κ_det`. | EXISTENCE | no |
| C8 | **No** exact unit ambiguity is attributed to a length / index. | ABSENCE | no |
| C9 | **No** residual holonomy. | ABSENCE | no |
| C10 | Canonical section **or** one exact anchor. | EXISTENCE | no |

The sentences are read out of the corpus file at gate time and classified mechanically by a stated lexicon; nothing is hand-assigned. The new rule keeps both of RUN-090's constraints — never `UNMEASURED → PASS`, no majority vote — and adds one guard:

```text
CITED_THEOREM / DERIVED_FROM_VERIFIED_INPUTS  may discharge  EQUALITY, ABSENCE, EXISTENCE
COMPUTED_HERE                                 may discharge  all four, including ENUMERATION
```

So **RUN-094's three theorem closures cannot turn C5 green even in principle.** The gate carries a positive control on its own rule: hand it a `CITED_THEOREM` discharge for C5, a vacuous absence for C9, and a discharge whose hypotheses fail, and it must refuse all three — then hand it an admissible one and it must accept, because a guard that refuses everything is not a guard. The whole-tree drill runs the first of these as a live control.

## 2. The catch about C1.1 was right, and here is the full inherited list

The symbolic line's catch: C1.1 takes `V(f,g)*` from Section B3.1, and B3.1 states that the two Coleman families satisfy Assumption B1.1 — so B1.1 must not be marked NOT REQUIRED merely because C1.1 does not restate it. I went back to the paper. Assumption B1.1 opens **"Throughout part B of this paper"**, and §B2 — the Kato-family discussion — carries the paper's **only** occurrence of "irreducib": "we assume that the Galois representation attached to **f** is residually irreducible." The Kato class in C1.13 is `κ(g × ψ)`, so it lands on our partners.

| hypothesis | source | 389.a1 | 19.a1 |
| --- | --- | --- | --- |
| ordinary at 11 | C1.1 Setup | `a₁₁ = −4`, unit root 7 | `a₁₁ = 3`, unit root 3 |
| prime-to-`p` level | Assumption B1.1 | `11 ∤ 389` | `11 ∤ 19` |
| distinct Hecke roots at `p` | Assumption B1.1 | `disc = −28 ≠ 0` | `disc = −35 ≠ 0` |
| ⇒ **noble** [Han15] | Assumption B1.1 | ✓ | ✓ |
| `p`-distinguished | standard | `−28 ≡ 5 (mod 11)` | `−35 ≡ 9 (mod 11)` |
| non-critical slope | Assumption B1.1 | ordinary ⇒ slope `0 < 1` | same |
| Hida | §B2's restriction | ✓ | ✓ |
| new of its level | §B2 | ✓ | ✓ |
| **residually irreducible** | §B2 | `Δ = 389`, `c₄ = 112`, `389 ∤ c₄` ⇒ **semistable** | `Δ = −19`, `c₄ = 36928`, `19 ∤ c₄` ⇒ **semistable** |
| (guard) minimal model | — | `Δ` squarefree, `1728Δ = c₄³ − c₆²` | same |
| `(d, 6S) = 1`, `d > 1` | Thm C1.4 | `d = 5`, `gcd(5, 6·2·11·19·389) = 1` | same |

The discriminants given are the ones I get. Residual irreducibility I did not want to leave as a cited black box, so it is computed: at every prime dividing `Δ` the reduction is multiplicative (`389 ∤ 112`, `19 ∤ 36928`), so both curves are **semistable** — computed here from the Weierstrass invariants — and Mazur's theorem on rational isogenies of prime degree (a semistable `E/Q` has a rational `ℓ`-isogeny only for `ℓ ⩽ 7`) then forbids an 11-isogeny. One precision, because I nearly got it wrong myself: semistable is exactly *no additive reduction*; **squarefreeness of `Δ` is not part of it** — Cremona 19a1 has `Δ = 19³` and is semistable — so it is kept apart, with `1728Δ = c₄³ − c₆²`, as a guard that the model is minimal (a non-minimal model has `u¹² | Δ`). Conflating the two would reject a legitimate partner on a later round; the drill now plants the target's `u = 2` model to keep the two apart. It gives full surjectivity too, but **the paper does not ask for it**, so it is not claimed as a hypothesis; the drill still plants adding it as an over-strong one, as the Track B instruction required.

All green. But green *because computed*, not because C1.1 was short.

## 3. The C2-STRUCTURE claim needed one thing computing, and it was worth computing

The instruction held that C1.13 already separates the partner-dependent pieces. It does — but PC-001 writes `𝒮₅` **without a partner index**, and LR writes `C_d(f_β, g, j)` **with `g` in its argument list**. That gap is exactly the kind of thing C2 exists to catch, so I went and got LR's equation (8):

```text
C_d(f, g, j)  =  d² − d^(j − k₁ − k₂) · ε_f⁻¹(d) · ε_g⁻¹(d)
```

Instantiated: `f = E₂(1,χ₈)` has `ε_f = ψτ = χ₈` and `k₁ = r = 0`; each partner is a weight-2 newform on `Γ₀(N)`, so `ε_g = 1` and `k₂ = 0`. Hence `C_d = 25 + 5^j` for **both**.

So the partner-dependence of `C_d` **is real**, and it enters **only** through `(ε_g(d), k₂)` — which happen to agree for our pair. Note the commonality holds **at every `j`** (`j` is a coordinate common to both applications), so C2 does not depend on pinning it; the gate checks three values. Separately and as a consistency check: `C_d = 26` at one and only one `j`, namely `j = 0 = k₁ + k₂`, which matches PC-001's independently computed `𝒮₅(0) = 26` and tells us which point of the cyclotomic variable that constant term sits at. RUN-090 carried `S5_partner_independent: True` as a constant; it is now derived, and the drill breaks it two ways (give 19.a1 a nontrivial nebentypus; give it weight 4).

## 4. C4 — the open question, answered from the sentence

The open question was whether Round 030's C4 criterion demands that the source line exist or that a fully normalized tensor exist, and whether top-level C4 is therefore PASS or PARTIAL.

The sentence is: *"The auxiliary leading tensor or equivalent q-blind source **exists**."*

It asks for existence. So top-level **C4 = PASS**, not PARTIAL, and `c_ES/Kum` is an obligation the certificate never asked about. Same shape for C2:

| parent | its sentence asks about | inside | outside |
| --- | --- | --- | --- |
| C2 | partner arithmetic kept out of the common line | `C2-STRUCTURE` **PASS** | `C2-VALUE` (`Π_E/Π_0`) **OPEN** |
| C4 | the source **exists** | `C4-LINE` **PASS** | `C4-EXACT-NORM` (`c_ES/Kum`) **OPEN** |

Mapping rule: the parent takes the verdict of the child its own sentence asks about; a child outside the sentence is carried in the outside-certificate ledger and cannot move the parent either way. Claiming an outside child is inside turns `auditv2-ledger` red.

## 5. One finding to have in hand before C5 — and it is inside a PASS

I traced `C_π = c_lead/q_f` constituent by constituent instead of taking the dictionary's word.

| constituent | where defined | side | canonical? |
| --- | --- | --- | --- |
| `c_lead` | leading coefficient of `c_f`, "a meromorphic function on `V₁` **alone**" (Thm C1.9) | auxiliary | yes |
| `q_f` = `b_f⁺(0)` = `c_r η_f` | **§A8.3**: a trivialisation of `D_cris(F⁺D(f)*(−1−k))`, `c_r` introduced there | auxiliary | **NO** |
| `ω_f` | Thm C1.10 unique; Remark C1.11 determined by `f` alone | auxiliary | yes |
| `η_g` | the second tensor slot of `Col_{b_f⁺ ⊗ η_g}` | **partner** | yes |

Two facts, and they must not be merged:

1. **Every constituent of `C_π` is auxiliary-only.** Part A, where `b_f⁺` and `c_r` live, never mentions the cuspidal partner; the partner enters the Perrin-Riou regulator only in the second slot. So **no property of either partner can obstruct fixing one frame** — PC-001 §2's 「共同規範是必要假設」 is a *free, partner-independent normalisation*, not an unproved arithmetic claim. **That is the precise sense in which C1 passes**, and it is stronger than "the notation has an `f` subscript".

2. **But §A8.3's own words are "we may choose (non-canonically) an isomorphism `b_f⁺`".** So `C_π` has no numerical value until one trivialisation is fixed. It cancels in PC-001's (2) — the ratio of two identically-projected classes — exactly as PC-001 says. It does **not** cancel in anything built from `C_aux` alone.

⇒ **the defect `D = C_arith ⊗ C_aux⁻¹` will inherit a `b_f⁺`-ambiguity unless the trivialisation is fixed first.** That is a real constraint on the C5 round proposed next, and it is better recorded now than left to surface as a phantom scalar later.

**And one precision on the nonvanishing.** C1.9's non-vanishing clause covers integer weights `k ⩾ −1` **except possibly at `k = r`** — and `k = r` is our Eisenstein point, the one the clause excepts. RUN-094's "`C` nonzero" is the right conclusion but not for C1.9's reason. The nonvanishing is C1.13's: the construction forms `X^n κ̂_d(f,g)`, non-zero mod `X`, whose regulator image is `c*_f(r)·C_d·log^{[r+1]}·L_p^g(…)` "where `c*_f(r) ∈ L^×`". That `∈ L^×` **is** the nonvanishing, and it is stated of the **starred** leading term.

## 6. Obligations that are real and outside every certificate sentence

```text
BF-COORD              no computed representative of kappa_d(f,g), hence none of B_{E,2} or r_{0,1}
C2-VALUE              Pi_E/Pi_0 has no known value
C4-EXACT-NORM         c_ES/Kum is not fixed
C_PI-TRIVIALISATION   b_f^+ is non-canonical; C_pi has no numerical value until one is fixed
```

Dropping any of these turns `auditv2-ledger` red. They are why three green items do not make the tree further along than it is: **nothing was measured this round that was not measured before.** What moved is the bookkeeping, and the bookkeeping moved because the v1 rule was wrong about what six of the ten sentences ask for.

## 7. Drill

The whole-tree mutation drill: **507 planted defects, 507 caught by the check named for them, 0 uncaught, 0 caught by the wrong check, 134 controls undisturbed, state restored, over 150 checks.** Thirty-three of the defects and eight of the controls are this round's.

That is the *second* run. The first left four of this round's defects uncaught — all four were function replacements that moved no constant, and the gate's memo key was built from constants alone, so the cache served the baseline answer to a mutated gate. A module-level probe that cleared the cache between mutations had shown all thirty-three green; the whole-tree drill, which does not clear it, showed four holes. The key now names the functions it computes with and a fingerprint of the log it reads. Recorded in the report as the dual of RUN-090's lesson: a cache that evicts makes behaviour order-dependent; a cache that never evicts but is keyed too narrowly makes a mutation invisible.

## 8. Status

```text
C1   PASS          C2  PASS  (C2-VALUE open outside)      C3  PASS
C4   PASS          (C4-EXACT-NORM open outside)
C5   UNMEASURED    <- first blocker, Round 030's numbering
C6   UNMEASURED    <- first blocker, the attack order
C7-C10  UNMEASURED
NORMALIZATION-UNMEASURED          BSD  OPEN
```
