Skip to content

Commit ae94a73

Browse files
hyperpolymathclaude
andcommitted
docs(buchholz): update obstruction doc — Slice 2-bplus landed, only Slice 3 remains
`rank-pow-dominated-by-head-Ω` (Slice 2-bplus) is in fact landed at `Ordinal.Buchholz.RankPowDomination` via PRs #133+#134 2026-05-27, not "remaining" as the doc claimed in three places. Updates: * Per-constructor verdict row for `<ᵇ-+1` — verdict text now reflects that the WfCNF-carrier domination side is COMPLETE and only the headline Slice 3 discharge remains; signature of the headline pinned inline. * Score paragraph — replaces "1 in flight with abstraction + per-marker dominances + inversion lemmas landed (Slice 2-bplus remaining)" with "1 in flight with the domination lemma landed (Slice 3 discharge remaining)"; adds PR #124/#130/#131/#133+#134 stage references. * "What remains open" entry for `<ᵇ-+1` — updates from "Slice 2-bplus remaining only" to "Slice 3 headline remaining only"; notes the `NonBzero` premise turned out unnecessary; pins the headline signature. * Status note — replaces "3 constructors blocked" (stale; `<ᵇ⁺-ψα` and `<ᵇ-ψΩ≤` are both closed) with accurate "11/13 closed + 1 side-cond + 1 head-Ω-route with only Slice 3 remaining". * See-also — adds `RankPowDomination.agda` entry pointing at the domination lemma + the `additive-principal-ω-rank-pow-succ` closure + the `rank-y-bound` atomic-tail helper. No proof / no code change; doc-only sweep aligning the obstruction verdict with on-disk state. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 00f94bd commit ae94a73

1 file changed

Lines changed: 49 additions & 30 deletions

File tree

docs/echo-types/buchholz-rank-obstruction.adoc

Lines changed: 49 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -305,22 +305,23 @@ constructors discharge by additive-principal closure.
305305
| `<ᵇ-+ψ` | ✓ closed | Same as `<ᵇ-+Ω` since `rank-pow (bpsi ν _) = ω-rank-pow ν`.
306306
| `<ᵇ⁺-ψα` | ✓ closed (Lane 3, 2026-05-26) | `rank-adm (bpsi ν α) = ω-rank-pow ν ⊕ rank-pow α`; `⊕-mono-<-right` closes the shared-Ω-index lex case from `rank-pow α <′ rank-pow β` (which the existing `_<ᵇ⁰_` umbrella discharges). Primitive `rank-mono-<ᵇ⁺-ψα-from-pow` in `Ordinal.Buchholz.RankAdm`.
307307
| `<ᵇ-ψΩ≤` | ✓ closed (Lane 3 follow-on, 2026-05-27) | Lex-pair rank `rank-lex : BT → RankLex` in `Ordinal.Buchholz.RankLex`, with `rank-lex (bOmega ν) = mkLex (ω-rank-pow ν) (ω-rank-pow ν)` and `rank-lex (bpsi ν α) = mkLex (ω-rank-pow ν) (rank-pow α)`. Both sub-cases close via `rank-mono-<ᵇ-ψΩ≤-lex`: ν<μ via `<lex-first` + `ω-rank-pow-mono`; ν=μ via `<lex-second` + the admissibility bound `rank-pow α <′ ω-rank-pow ν`. The "structurally impossible under any rank shape with `ω-rank-pow ν ≤ rank-adm (bpsi ν α)`" verdict from `RankAdm.agda` was scoped to *scalar* ranks; option (A) lex-pair sidesteps it cleanly.
308-
| `<ᵇ-+1` | ⏳ joint-bplus, head-Ω route in flight | The dominator-function unblock (option A from `RankPow.agda`'s preamble) is now partially landed: `head-Ω : BT → OmegaIndex` (Slice 1, `Ordinal.Buchholz.HeadOmega`), `ω-rank-pow-succ` + per-marker strict dominance at *both* branches (Slice 2 + Slice 2-omega, `Ordinal.Buchholz.RankPow`), the unified `ω-rank-pow-<-succ`, and the option-(b) head-Ω inversion lemmas `head-Ω-inv-{bOmega,bpsi}` (`Ordinal.Buchholz.HeadOmegaInversion`). Remaining: the WfCNF-carrier structural recursion `rank-pow-dominated-by-head-Ω` (Slice 2-bplus) + the headline `rank-mono-<ᵇ-+1-via-head-Ω` discharge. No further rank-mono dependency in the bplus case — option (b) bought independence from the still-open `rank-pow-mono-≤ᵇ`.
308+
| `<ᵇ-+1` | ⏳ joint-bplus, headline `rank-mono-<ᵇ-+1-via-head-Ω` remaining (Slice 3) | The dominator-function unblock (option A from `RankPow.agda`'s preamble) is now COMPLETE on the WfCNF-carrier domination side: `head-Ω : BT → OmegaIndex` (Slice 1, `Ordinal.Buchholz.HeadOmega`), `ω-rank-pow-succ` + per-marker strict dominance at *both* branches (Slice 2 + Slice 2-omega, `Ordinal.Buchholz.RankPow`), the unified `ω-rank-pow-<-succ`, the option-(b) head-Ω inversion lemmas `head-Ω-inv-{bOmega,bpsi}` (`Ordinal.Buchholz.HeadOmegaInversion`), AND the WfCNF-carrier structural recursion `rank-pow-dominated-by-head-Ω : ∀ {t} → WfCNF t → rank-pow t <′ ω-rank-pow-succ (head-Ω t)` (Slice 2-bplus, `Ordinal.Buchholz.RankPowDomination` — landed via PRs #133+#134 2026-05-27). Remaining: the headline `rank-mono-<ᵇ-+1-via-head-Ω` discharge (Slice 3), consuming the domination lemma plus a head-Ω lower-bound + strict-jump bridge. No further rank-mono dependency anywhere in the chain — option (b) bought independence from the still-open `rank-pow-mono-≤ᵇ`.
309309
| `<ᵇ-0-+` | ✓ closed* | `rank-pow bzero = oz`, and `rank-pow (bplus x y) ≥′ oz` strictly when *either* `x` or `y` is non-`bzero` and the term is WfCNF. The degenerate `bplus bzero bzero` is excluded by WfCNF (atomic-right ≤ left forces both `bzero` and then the sum reduces to a `bzero`-shaped equivalent that doesn't pattern-match as a `bplus` under CNF normalisation — covered as a side-condition).
310310
|===
311311

312312
*Score: 11/13 constructors closed (9 under the original `rank-pow`
313313
umbrella + 1 under the `rank-adm` slice + 1 under the `rank-lex`
314-
slice); 1 in flight under the head-Ω route with abstraction +
315-
per-marker dominances + inversion lemmas landed (`<ᵇ-+1` joint-bplus,
316-
Slice 2-bplus remaining); 1 closed conditionally with documented side
317-
condition. The Lane-3 active-push slice on 2026-05-26 closed `<ᵇ⁺-ψα`
318-
(rank-adm) and re-classified `<ᵇ-ψΩ≤` to "encoding mismatch"; the
319-
Lane-3 follow-on slice on 2026-05-27 closed `<ᵇ-ψΩ≤` via option (A)
320-
(lex pair); the head-Ω route landed in stages across 2026-05-27 (Slice 1,
321-
session-night PR #130 closing Slice 2, PR #131 closing Slice 2-omega +
322-
option (b) inversion). Only `<ᵇ-+1` joint-bplus remains in the
323-
per-constructor matrix.*
314+
slice); 1 in flight under the head-Ω route with the WfCNF-carrier
315+
domination lemma `rank-pow-dominated-by-head-Ω` landed (the headline
316+
`rank-mono-<ᵇ-+1-via-head-Ω` Slice 3 discharge remaining); 1 closed
317+
conditionally with documented side condition. The Lane-3 active-push
318+
slice on 2026-05-26 closed `<ᵇ⁺-ψα` (rank-adm) and re-classified
319+
`<ᵇ-ψΩ≤` to "encoding mismatch"; the Lane-3 follow-on slice on
320+
2026-05-27 closed `<ᵇ-ψΩ≤` via option (A) (lex pair); the head-Ω
321+
route landed in stages across 2026-05-27 (Slice 1 PR #124, Slice 2
322+
PR #130, Slice 2-omega + option (b) inversion PR #131, Slice 2-bplus
323+
domination PRs #133+#134). Only the headline `rank-mono-<ᵇ-+1-via-head-Ω`
324+
discharge (Slice 3) remains in the per-constructor matrix.*
324325

325326
=== What remains open
326327

@@ -335,22 +336,29 @@ per-constructor matrix.*
335336
case ν=μ no longer needs the additive-principal closure; the
336337
admissibility bound `rank-pow α <′ ω-rank-pow ν` discharges it
337338
directly on the second component of the lex pair.
338-
* *`<ᵇ-+1` joint-bplus* — *Slice 2-bplus remaining only.* The
339+
* *`<ᵇ-+1` joint-bplus* — *Slice 3 headline remaining only.* The
339340
head-Ω route's prerequisite slices are all landed: `head-Ω`
340341
(Slice 1), `ω-rank-pow-succ` + per-marker strict dominance at
341-
both branches (Slice 2 + Slice 2-omega), and the option-(b)
342-
head-Ω inversion lemmas (preserving the dependency-graph
343-
invariant that the eventual `rank-pow-dominated-by-head-Ω`
344-
doesn't depend on the still-open `rank-pow-mono-≤ᵇ`).
345-
Slice 2-bplus proves the WfCNF-carrier structural recursion
346-
`rank-pow-dominated-by-head-Ω : (t : BT) → NonBzero t → WfCNF t
347-
→ rank-pow t <′ ω-rank-pow-succ (head-Ω t)` and the headline
348-
`rank-mono-<ᵇ-+1-via-head-Ω`. The `Slice 2-omega` historical
349-
hazard (the originally-proposed `ω-rank-pow-succ ω` shape
350-
`olim (λ n → ω^(suc(suc n)))` is equi-ordinal with `ω-rank-pow ω`,
351-
so doesn't strictly dominate) is resolved by the revised shape
352-
`olim (λ n → ω-rank-pow ω ·ℕ n)` (denoting `ω^(ω+1)`) — see
353-
`RankPow.agda`'s "History note" comment block for the full record.
342+
both branches (Slice 2 + Slice 2-omega), the option-(b) head-Ω
343+
inversion lemmas (preserving the dependency-graph invariant
344+
that `rank-pow-dominated-by-head-Ω` doesn't depend on the
345+
still-open `rank-pow-mono-≤ᵇ`), AND the WfCNF-carrier structural
346+
recursion `rank-pow-dominated-by-head-Ω : ∀ {t} → WfCNF t →
347+
rank-pow t <′ ω-rank-pow-succ (head-Ω t)` itself
348+
(`Ordinal.Buchholz.RankPowDomination`, Slice 2-bplus, PRs
349+
#133+#134 2026-05-27 — the `NonBzero` premise turned out
350+
unnecessary: `rank-pow bzero = oz` is strictly below
351+
`ω-rank-pow-succ (fin 0) = ω^2` via `ω^_-pos 2`). Slice 3
352+
consumes the domination lemma plus a head-Ω lower-bound
353+
+ strict-jump bridge to derive the headline
354+
`rank-mono-<ᵇ-+1-via-head-Ω : ∀ {x₁ x₂ y₁ y₂} → WfCNF (bplus x₁ x₂)
355+
→ WfCNF (bplus y₁ y₂) → x₁ <ᵇ y₁ → rank-pow (bplus x₁ x₂) <′
356+
rank-pow (bplus y₁ y₂)`. The `Slice 2-omega` historical hazard
357+
(the originally-proposed `ω-rank-pow-succ ω` shape `olim (λ n
358+
→ ω^(suc(suc n)))` is equi-ordinal with `ω-rank-pow ω`, so doesn't
359+
strictly dominate) is resolved by the revised shape `olim (λ n →
360+
ω-rank-pow ω ·ℕ n)` (denoting `ω^(ω+1)`) — see `RankPow.agda`'s
361+
"History note" comment block for the full record.
354362
* *Mutual recursion for `rank-pow-mono-<ᵇ⁻`*. The case-specific
355363
primitives above are individually proven, but the umbrella theorem
356364
`x <ᵇ⁻ y → rank-pow x <′ rank-pow y` needs a mutual `<ᵇ` / `≤ᵇ`
@@ -365,11 +373,17 @@ per-constructor matrix.*
365373
The "rank-embedding route is closed" framing from this document's
366374
introduction is *narrowed*: it remains true for the unrestricted
367375
`_<ᵇ_`, but the WfCNF restriction `_<ᵇ⁻_` together with the limit-
368-
shaped rank-pow discharges 9 of the 13 constructor cases. The
369-
remaining 3 constructors have well-understood structural blockers
370-
(ψ-admissibility for two; joint-bplus structural-rank for one)
371-
rather than the fundamental obstruction the original counterexample
372-
exhibited.
376+
shaped rank-pow discharges 11 of the 13 constructor cases (9 under
377+
the original `rank-pow` umbrella + `<ᵇ⁺-ψα` via `rank-adm` + `<ᵇ-ψΩ≤`
378+
via `rank-lex`) plus 1 under documented side-condition (`<ᵇ-0-+`).
379+
The remaining `<ᵇ-+1` joint-bplus case has its head-Ω domination
380+
prerequisites all landed (Slice 1 + Slice 2 + Slice 2-omega + option-(b)
381+
inversion + Slice 2-bplus); only the headline Slice 3 discharge
382+
`rank-mono-<ᵇ-+1-via-head-Ω` remains. The original "fundamental
383+
obstruction" verdict was scoped to unrestricted `_<ᵇ_` with scalar
384+
rank — the per-case closures all sidestep it via either WfCNF
385+
restriction (rank-pow + admissibility), lex-pair refinement
386+
(rank-lex), or head-Ω domination (the next slice).
373387

374388
== See also
375389

@@ -383,6 +397,11 @@ exhibited.
383397
* `proofs/agda/Ordinal/Buchholz/RankPow.agda` — Slice 2 + Slice 2-omega;
384398
`ω-rank-pow-succ` + per-marker strict dominance at both branches +
385399
the unified `ω-rank-pow-<-succ`.
400+
* `proofs/agda/Ordinal/Buchholz/RankPowDomination.agda` — Slice 2-bplus;
401+
the WfCNF-carrier structural recursion `rank-pow-dominated-by-head-Ω`
402+
+ the `additive-principal-ω-rank-pow-succ` closure + the `rank-y-bound`
403+
atomic-tail helper. Consumed by the (still open) Slice 3 headline
404+
`rank-mono-<ᵇ-+1-via-head-Ω`.
386405
* `proofs/agda/Ordinal/Buchholz/Order.agda` — the K-free core; the
387406
13 constructors that pin the syntactic order.
388407
* `proofs/agda/Ordinal/Buchholz/WellFounded.agda` — the direct

0 commit comments

Comments
 (0)