|
| 1 | +// SPDX-License-Identifier: PMPL-1.0-or-later |
| 2 | += Buchholz `_<ᵇ_` rank-embedding obstruction |
| 3 | +:date: 2026-05-20 |
| 4 | +:toc: |
| 5 | + |
| 6 | +This note records why the natural rank-embedding route to unbudgeted |
| 7 | +`WellFounded _<ᵇʳᶠ_` (and to `WellFounded _<ᵇ⁺_`) is *structurally |
| 8 | +impossible* for the `Ordinal.Buchholz.Order._<ᵇ_` relation as |
| 9 | +currently defined. The relation is well-founded — `Ordinal.Buchholz. |
| 10 | +WellFounded.wf-<ᵇ` proves it — but it is *not ordinally sound*, so no |
| 11 | +rank function `BT → Ord` can be strict-monotone on every constructor. |
| 12 | + |
| 13 | +This note supersedes the "Route B (recommended next attempt)" framing |
| 14 | +in `docs/echo-types/buchholz-extended-wf.md` and the "Phase 2.2 open |
| 15 | +lemma" framing in `Ordinal.Buchholz.RankBrouwer.agda`. Both are |
| 16 | +historical now; the rank-embedding route is closed. |
| 17 | + |
| 18 | +== The obstruction in one counterexample |
| 19 | + |
| 20 | +The constructor `<ᵇ-Ω+` of `_<ᵇ_`: |
| 21 | + |
| 22 | +[source,agda] |
| 23 | +---- |
| 24 | +<ᵇ-+Ω : ∀ {x y μ} → x <ᵇ bOmega μ → bplus x y <ᵇ bOmega μ |
| 25 | +---- |
| 26 | + |
| 27 | +(`Ordinal.Buchholz.Order.agda`, line 82.) |
| 28 | + |
| 29 | +This says: if `x` is `<ᵇ`-below the Ω-marker, then so is `bplus x y` |
| 30 | +*for any `y`*. Concretely, instantiate `μ = fin 0`, `x = bzero`, |
| 31 | +`y = bOmega (fin 1)`: |
| 32 | + |
| 33 | +[source,agda] |
| 34 | +---- |
| 35 | +witness : bplus bzero (bOmega (fin 1)) <ᵇ bOmega (fin 0) |
| 36 | +witness = <ᵇ-+Ω <ᵇ-0-Ω |
| 37 | +---- |
| 38 | + |
| 39 | +The premise `<ᵇ-0-Ω : bzero <ᵇ bOmega (fin 0)` is a constructor of |
| 40 | +`_<ᵇ_`. So the witness is derivable. |
| 41 | + |
| 42 | +Any additive rank `rank : BT → Ord` of the SA-recommended shape |
| 43 | +(`Ordinal.Buchholz.RankBrouwer.agda`): |
| 44 | + |
| 45 | +[source,agda] |
| 46 | +---- |
| 47 | +rank bzero = oz |
| 48 | +rank (bOmega ν) = ω-rank ν |
| 49 | +rank (bplus x y) = rank x ⊕ rank y |
| 50 | +rank (bpsi ν α) = psi-rank ν (rank α) |
| 51 | +---- |
| 52 | + |
| 53 | +computes the LHS of the witness to `oz ⊕ ω-rank (fin 1) = two` and |
| 54 | +the RHS to `ω-rank (fin 0) = one` (in Brouwer notation). The required |
| 55 | +`rank-mono` would force `two <′ one`, which is `osuc (osuc oz) ≤′ |
| 56 | +osuc oz` — reducing to `osuc oz ≤′ oz`, which is `⊥`. So `rank-mono` |
| 57 | +is refuted at a checked counterexample. |
| 58 | + |
| 59 | +== Per-constructor verdict (2026-05-20 deepening) |
| 60 | + |
| 61 | +Per-constructor analysis of `_<ᵇ_`'s 13 constructors against the |
| 62 | +SA-recommended additive rank `rank (bplus x y) = rank x ⊕ rank y` |
| 63 | +and `rank (bpsi ν α) = osuc (ω-rank ν ⊕ rank α)`: |
| 64 | + |
| 65 | +[cols="2,1,4", options="header"] |
| 66 | +|=== |
| 67 | +| Constructor | Verdict | Reason |
| 68 | + |
| 69 | +| `<ᵇ-0-Ω` | ✓ provable | `oz <′ ω-rank μ` for any μ (osuc-stack or limit). |
| 70 | +| `<ᵇ-0-ψ` | ✓ provable | `oz <′ osuc _` definitionally. |
| 71 | +| `<ᵇ-ΩΩ` | ✓ provable | `ω-rank` strict-monotone under `_<Ω_`. |
| 72 | +| `<ᵇ-Ωψ` | ✓ provable | Chain: `ω-rank μ <′ ω-rank ν ≤′ ω-rank ν ⊕ rank α <′ osuc(…)`. |
| 73 | +| `<ᵇ-0-+` | ✗ unsound | `bplus bzero bzero` has rank `oz ⊕ oz = oz`; need `oz <′ oz` (false). |
| 74 | +| `<ᵇ-ψΩ` | ✗ unsound | `α` can outsize `ν−μ`; counterexample at μ=fin 0, ν=fin 1, α=bOmega ω. |
| 75 | +| `<ᵇ-ψΩ≤` | ✗ unsound | At ν=μ: `osuc(ω-rank ν ⊕ rank α) < ω-rank ν` fails for nonzero α. |
| 76 | +| `<ᵇ-Ω+` | ✗ unsound | `Ω<x` doesn't bound `Ω<x⊕y` (y unconstrained). |
| 77 | +| `<ᵇ-ψ+` | ✗ unsound | Same shape as `<ᵇ-Ω+` with ψ instead of Ω. |
| 78 | +| `<ᵇ-+Ω` | ✗ unsound | The flagship counterexample (`<ᵇ-+Ω <ᵇ-0-Ω`). |
| 79 | +| `<ᵇ-+ψ` | ✗ unsound | Same as `<ᵇ-+Ω` with ψ-target. |
| 80 | +| `<ᵇ-+1` | ✗ unsound | `x₁<y₁` doesn't bound the right summands. |
| 81 | +| `<ᵇ-0-+` (degenerate) | ✗ | Sub-case of `<ᵇ-0-+`; flagged separately because the rest of `<ᵇ-0-+` would be salvageable if `bplus bzero bzero` is excluded by a CNF tail constraint. |
| 82 | +|=== |
| 83 | + |
| 84 | +**Score: 4/13 constructors admit additive rank-mono; 9/13 require |
| 85 | +restriction or a non-additive measure.** |
| 86 | + |
| 87 | +The four passing cases are formalised as a partial Agda artifact |
| 88 | +in `proofs/agda/Ordinal/Buchholz/RankPartial.agda` (2026-05-20): |
| 89 | + |
| 90 | +* `ω-rank-mono-<Ω` — the supporting lemma, isolated for the first |
| 91 | + time. |
| 92 | +* `rank-mono-<ᵇ-0-Ω`, `rank-mono-<ᵇ-0-ψ`, `rank-mono-<ᵇ-ΩΩ`, |
| 93 | + `rank-mono-<ᵇ-Ωψ` — the four per-constructor lemmas. |
| 94 | +* `rank-mono-partial-{0-Ω, 0-ψ, ΩΩ, Ωψ}` — the dispatch functions |
| 95 | + that match exactly the four supported `_<ᵇ_` constructor heads. |
| 96 | + |
| 97 | +This is a *stepping stone*: the four lemmas are reusable for both |
| 98 | +unblock paths. Path 1 (WF-restriction) needs to additionally |
| 99 | +discharge the nine failing cases under a CNF tail-constraint; |
| 100 | +the four passing cases survive the restriction unchanged. Path 2 |
| 101 | +(non-additive denotational measure) needs to replace the rank |
| 102 | +shape entirely; the four passing cases serve as sanity checks |
| 103 | +that the new shape doesn't regress. |
| 104 | + |
| 105 | +== Why no rank shape rescues it |
| 106 | + |
| 107 | +Sufficient conditions per `_<ᵇ_` constructor on a candidate |
| 108 | +`rank-+ : BT → BT → Ord` for the `bplus` head: |
| 109 | + |
| 110 | +* `<ᵇ-+Ω x<Ω`: need `rank-+ x y <′ rank-Ω μ` given `rank x <′ rank-Ω |
| 111 | + μ`. *The right summand `y` is arbitrary*, so `rank-+ x y` must be |
| 112 | + bounded by something that doesn't grow with `y`. Equivalently: |
| 113 | + `rank-+ x y` cannot depend on `y` in any unbounded way. |
| 114 | +* `<ᵇʳᶠ-+2` (and `<ᵇ⁺-+2`): need `rank-+ x y <′ rank-+ x z` given |
| 115 | + `rank y <′ rank z`. So `rank-+ x y` *must* be strict-monotone in |
| 116 | + `y`. |
| 117 | + |
| 118 | +These two requirements are jointly incompatible: monotone-in-`y` |
| 119 | +forces `rank-+ x y` to grow with `y`; the `<ᵇ-+Ω` bound forces it not |
| 120 | +to. The same tension appears for `<ᵇ-Ω+`/`<ᵇ-ψ+` versus `<ᵇ-+1`. |
| 121 | + |
| 122 | +No additive, multiplicative, or constructive ordinal arithmetic on |
| 123 | +`rank x` and `rank y` resolves this. Constant-in-`y` shapes (e.g. |
| 124 | +`rank-+ x y = rank x`) lose `<ᵇʳᶠ-+2`; bounded-in-`y` shapes (e.g. |
| 125 | +`rank-+ x y = max (rank x) (rank y) + 1`) fail `<ᵇ-+Ω` when `y` is |
| 126 | +ordinally above `μ`. |
| 127 | + |
| 128 | +The structural root cause is that `<ᵇ-+Ω` (and its companion |
| 129 | +constructors) make `_<ᵇ_` a *syntactic* order, not the genuine |
| 130 | +ordinal `<` on Cantor normal forms — they are sound only when both |
| 131 | +summands are constrained to be `<ᵇ`-below `μ`, which is exactly the |
| 132 | +constraint that `Ordinal.Buchholz.WellFormed` would add on top. |
| 133 | +`_<ᵇ_` itself does not require well-formedness, so the rank route |
| 134 | +cannot succeed at the level of `_<ᵇ_` alone. |
| 135 | + |
| 136 | +== Other routes attempted and walled |
| 137 | + |
| 138 | +[cols="1,4,2"] |
| 139 | +|=== |
| 140 | +| # | Route | Status |
| 141 | + |
| 142 | +| 1 |
| 143 | +| Rank-into-Brouwer (`rank-mono-<ᵇ`) per SA blueprint in |
| 144 | + `docs/echidna-design-search-2026-04-28.adoc`. The SA validated |
| 145 | + only the `<ᵇʳᶠ-ψα`/`<ᵇʳᶠ-+2` blockers; the 13-constructor `_<ᵇ_` |
| 146 | + interior was not actually checked. |
| 147 | +| Refuted by the worked counterexample above. |
| 148 | + |
| 149 | +| 2 |
| 150 | +| Direct mutual structural recursion mirroring `wf-<ᵇ` in |
| 151 | + `Ordinal.Buchholz.WellFounded`, extending the bundle with |
| 152 | + `<ᵇʳᶠ-ψα`/`<ᵇʳᶠ-+2` cases. |
| 153 | +| **Walled by Agda's termination checker.** The `<ᵇ-+1` |
| 154 | + predecessor of `bplus α β` is `bplus x₁ x₂` with `x₂` a fresh |
| 155 | + BT from the constructor field. The `<ᵇʳᶠ-+2` extension forces |
| 156 | + us to construct `Acc _<ᵇʳᶠ_ x₂`; the only available source is |
| 157 | + `wf-<ᵇʳᶠ x₂`, but `x₂` is not a structural subterm of the |
| 158 | + outer input `bplus α β`. Verbatim error: `Termination |
| 159 | + checking failed... Problematic calls: wf-<ᵇʳᶠ x₂`. Attempt |
| 160 | + preserved on the abandoned branch `session-2026-05-20/buchholz- |
| 161 | + mutual-wf` (no compiling file landed). |
| 162 | + |
| 163 | +| 3 |
| 164 | +| Tower-stratification through `Σ ℕ (λ n → LiftedOrder n x y)`. |
| 165 | + Predicated on `LiftedOrder-lift` (monotone upward in `n`) and |
| 166 | + per-level WF (`LiftedOrder-wf`). |
| 167 | +| **Walled.** WF of the union of an upward-increasing chain of |
| 168 | + WF relations is not generally WF; here, the derivation depth |
| 169 | + carried by `<ᵇʳᶠ⇒lifted` is *tight* (one ψ-step = one tower |
| 170 | + level, by `surfaceLiftBlocked : ¬ SurfaceLiftInterface` in |
| 171 | + `Ordinal.Buchholz.SurfaceOrder`). Descending chains can grow |
| 172 | + `n` unboundedly, so no uniform bound discharges the Σ. |
| 173 | + |
| 174 | +| 4 |
| 175 | +| Lex measure into `ℕ` (or `ℕ × ℕ`) via |
| 176 | + `Induction.WellFounded.<-rec`. |
| 177 | +| **Walled** by the same `<ᵇ-+Ω` shape as route 1: no positional |
| 178 | + measure on BT dominates the right-summand-unboundedness of |
| 179 | + `<ᵇ-+Ω`'s predecessor. |
| 180 | + |
| 181 | +| 5 |
| 182 | +| Inverse image into `_<ᵇʳᶠᵇ_` via a chosen embedding `BT → |
| 183 | + BudgetedBT`. |
| 184 | +| **Walled.** `_<ᵇʳᶠᵇ_`'s `spend` constructor fixes the budget |
| 185 | + arithmetic by derivation depth; no embedding gives a uniform |
| 186 | + starting budget that absorbs every derivation. |
| 187 | + |
| 188 | +| 6 |
| 189 | +| Sized types. |
| 190 | +| Likely viable but violates the repo's `--safe`-purity policy |
| 191 | + (sized types break decidable type-checking in some settings; |
| 192 | + the repo has avoided them throughout). Out of scope. |
| 193 | +|=== |
| 194 | + |
| 195 | +== What `_<ᵇ_` is and isn't |
| 196 | + |
| 197 | +`_<ᵇ_` is a *syntactic* strict order on raw `BT` terms, chosen so |
| 198 | +that the constructor-by-constructor pattern of `wf-<ᵇ` |
| 199 | +(`Ordinal.Buchholz.WellFounded`) closes by direct accessibility. |
| 200 | +`wf-<ᵇ` doesn't need ordinal soundness — it only needs every |
| 201 | +predecessor chain to ground out structurally, which it does via |
| 202 | +the Ω-bundle and bzero-base-case structure. |
| 203 | + |
| 204 | +`_<ᵇ_` is *not* the ordinal order on Cantor normal forms. The |
| 205 | +constructors `<ᵇ-+Ω`/`<ᵇ-Ω+`/`<ᵇ-+ψ`/`<ᵇ-ψ+` admit derivations |
| 206 | +whose ordinal semantics is the reverse (or unrelated). To recover |
| 207 | +ordinal soundness one would have to restrict to *well-formed* BT |
| 208 | +terms (the predicate stubbed in `Ordinal.Buchholz.WellFormed`), |
| 209 | +where `bplus α β` is constrained to be a CNF tail with `β ≤ α`. |
| 210 | + |
| 211 | +Under that restriction `<ᵇ-+Ω` becomes sound: `x <ᵇ Ω_μ` with `y ≤ |
| 212 | +x` gives `y <ᵇ Ω_μ` and therefore `x + y <ᵇ Ω_μ`. But the |
| 213 | +restriction propagates: `<ᵇ-trans (<ᵇ-+1 _) (<ᵇ-+Ω _)` no longer |
| 214 | +type-checks at raw BT, because the conclusion's predecessor |
| 215 | +`bplus x₁ x₂` would need its own WF constraint that the chain |
| 216 | +doesn't currently supply. The full re-ordering on WF-restricted BT |
| 217 | +is *substantially* larger work than the rank-embedding route the |
| 218 | +roadmap originally framed. |
| 219 | + |
| 220 | +== Concrete landing this session |
| 221 | + |
| 222 | +The shared-binder shapes `<ᵇ⁺-ψα`/`<ᵇ⁺-+2` now have a *budgeted* |
| 223 | +WF carrier `_<ᵇ⁺ᵇ_` in `Ordinal.Buchholz.OrderExtendedBudget`, |
| 224 | +mirroring `_<ᵇʳᶠᵇ_` in `Ordinal.Buchholz.RecursiveSurfaceBudget`. |
| 225 | +Downstream consumers can switch to the budgeted relation without |
| 226 | +losing well-foundedness. Pinned in `Smoke.agda`; wired into |
| 227 | +`All.agda`. |
| 228 | + |
| 229 | +== Recommended next moves (each is substantial) |
| 230 | + |
| 231 | +1. *Promote `_<ᵇ_` to a WF-restricted relation*. Re-state every |
| 232 | + constructor with explicit `WellFormed` premises, re-prove |
| 233 | + transitivity and `wf-<ᵇ` under the restriction, and then rank |
| 234 | + into Brouwer or directly. Substantial: the 13-constructor |
| 235 | + matrix + the inversion lemmas all need restating. Likely 2–3 |
| 236 | + weeks of disciplined proof work. |
| 237 | + |
| 238 | +2. *Non-additive denotational measure*. Replace the Brouwer-rank |
| 239 | + shape with a function `BT → α` for some target `α` whose order |
| 240 | + respects all of `_<ᵇ_`'s admitted constructors including the |
| 241 | + syntactic `<ᵇ-+Ω` bridge. This is essentially "give a |
| 242 | + denotational semantics to `_<ᵇ_` that respects its syntactic |
| 243 | + quirks", which is at least as hard as the original Buchholz WF |
| 244 | + problem. |
| 245 | + |
| 246 | +3. *Accept the budgeted form as canonical* and document. The |
| 247 | + downstream consumers (`VeblenComparisonModel`, |
| 248 | + `IteratedExtendedOrder`) already work with the depth-stratified |
| 249 | + tower; the budgeted `_<ᵇʳᶠᵇ_` and `_<ᵇ⁺ᵇ_` are sufficient for |
| 250 | + every existing client. The "eliminate the ℕ budget" goal in |
| 251 | + `roadmap.md` should be retired or recast. |
| 252 | + |
| 253 | +== Slices 1–5 of the ω-power unblock (2026-05-20 evening) |
| 254 | + |
| 255 | +After the analysis above was written, an explicit five-slice |
| 256 | +infrastructure was landed that closes 9 of the 13 constructors' rank- |
| 257 | +mono cases via the WfCNF-restricted Buchholz order `_<ᵇ⁻_` |
| 258 | +(`Ordinal.Buchholz.OrderRestricted`). This is the path-1 "WF- |
| 259 | +restriction" route from the recommended-next-moves table, narrowed |
| 260 | +to a *limit-shaped* rank target so the previously-failing plus-side |
| 261 | +constructors discharge by additive-principal closure. |
| 262 | + |
| 263 | +=== What landed |
| 264 | + |
| 265 | +* *Slice 1* (`Ordinal.Brouwer.OmegaPow`) — definitions: finite |
| 266 | + iterated product `_·ℕ_`, ω-powers `ω^_`, basic identification |
| 267 | + lemmas, one-step strict-monotonicity `ω^-strict-mono-suc`. |
| 268 | +* *Slice 2* — left-monotonicity of `_⊕_` (`⊕-mono-≤-left` in |
| 269 | + `Ordinal.Brouwer.Phase13`), `·ℕ-mono-≤-left`, and the general gap |
| 270 | + strict-mono `ω^-strict-mono : m < n → ω^ m <′ ω^ n`. |
| 271 | +* *Slice 3* — ⊕-associativity (`⊕-assoc-≤` / `⊕-assoc-≥` in |
| 272 | + Phase13; both directions, funext-free `≤′` form), the bridge |
| 273 | + `·ℕ-add-≤ : α·ℕk ⊕ α·ℕm ≤′ α·ℕ(m+k)`, and the keystone |
| 274 | + *additive-principal* lemma `α <′ ω^(suc n) → β <′ ω^(suc n) → |
| 275 | + α ⊕ β <′ ω^(suc n)`. |
| 276 | +* *Slice 4* (`Ordinal.Buchholz.RankPow`) — `ω-rank-pow : OmegaIndex |
| 277 | + → Ord` (limit-shaped: `fin n ↦ ω^(suc n)`), `rank-pow : BT → Ord` |
| 278 | + using `ω-rank-pow`, positivity `ω-rank-pow-pos`, monotonicity |
| 279 | + `ω-rank-pow-mono`, and reusable compositional primitives |
| 280 | + `rank-pow-bplus-right-mono` / `rank-pow-via-left` / |
| 281 | + `rank-pow-bplus-into-ω-rank-pow`. |
| 282 | +* *Slice 5* — 9 of 13 per-constructor rank-mono lemmas exposed |
| 283 | + *relation-agnostically* in `Ordinal.Buchholz.RankPow`: |
| 284 | + `rank-mono-<ᵇ-0-Ω`, `rank-mono-<ᵇ-0-ψ`, `rank-mono-<ᵇ-ΩΩ`, |
| 285 | + `rank-mono-<ᵇ-Ωψ`, `rank-mono-<ᵇ-ψΩ`, `rank-mono-<ᵇ-Ω+`, |
| 286 | + `rank-mono-<ᵇ-ψ+`, `rank-mono-<ᵇ-+Ω`, `rank-mono-<ᵇ-+ψ`. Each |
| 287 | + states a pure rank inequality conclusion from pure rank-inequality |
| 288 | + hypotheses; consumers (whether `_<ᵇ⁻_` or `_<ᵇʳᶠ_`) recurse on |
| 289 | + their relation's constructor and apply the matching primitive. |
| 290 | + |
| 291 | +=== Updated per-constructor verdict |
| 292 | + |
| 293 | +[cols="2,1,4", options="header"] |
| 294 | +|=== |
| 295 | +| Constructor | Verdict | Closure path |
| 296 | + |
| 297 | +| `<ᵇ-0-Ω` | ✓ closed | `ω-rank-pow-pos μ` (Slice 4). |
| 298 | +| `<ᵇ-0-ψ` | ✓ closed | `ω-rank-pow-pos ν` via `rank-pow (bpsi ν _) = ω-rank-pow ν`. |
| 299 | +| `<ᵇ-ΩΩ` | ✓ closed | `ω-rank-pow-mono` from `μ <Ω ν`. |
| 300 | +| `<ᵇ-Ωψ` | ✓ closed | `ω-rank-pow-mono` (target = `ω-rank-pow ν`). |
| 301 | +| `<ᵇ-ψΩ` | ✓ closed | `ω-rank-pow-mono` from `μ <Ω ν`. |
| 302 | +| `<ᵇ-Ω+` | ✓ closed | `rank-pow-via-left` plus the IH on `bOmega μ <ᵇ x`. |
| 303 | +| `<ᵇ-ψ+` | ✓ closed | `rank-pow-via-left` plus the IH. |
| 304 | +| `<ᵇ-+Ω` | ✓ closed | `rank-pow-bplus-into-ω-rank-pow` (additive-principal at the target) plus the WfCNF tail bound `y ≤ᵇ x` (caller-provided). |
| 305 | +| `<ᵇ-+ψ` | ✓ closed | Same as `<ᵇ-+Ω` since `rank-pow (bpsi ν _) = ω-rank-pow ν`. |
| 306 | +| `<ᵇ-ψα` | ⏳ admissibility | `rank-pow (bpsi ν α) = ω-rank-pow ν` doesn't discriminate on α. Refining the rank to `ω-rank-pow ν ⊕ rank-pow α` works iff `α ∈ C_ν` (ψ-admissibility predicate); deferred to a follow-on slice. |
| 307 | +| `<ᵇ-ψΩ≤` | ⏳ admissibility | Same blocker at `ν = μ`: provisional shape gives `ω-rank-pow μ <′ ω-rank-pow μ`, which is false. |
| 308 | +| `<ᵇ-+1` | ⏳ joint-bplus | `rank-pow (bplus z₁ z₂)` is not additive principal in general (it's a sum of additive principals). Discharging requires a coarser bound (e.g., dominate by `ω-rank-pow` of the leading subterm's Ω-index) or a structurally richer rank. |
| 309 | +| `<ᵇ-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). |
| 310 | +|=== |
| 311 | + |
| 312 | +*Score: 9/13 constructors closed; 3 deferred under explicit blockers; |
| 313 | +1 closed conditionally with documented side condition.* |
| 314 | + |
| 315 | +=== What remains open |
| 316 | + |
| 317 | +* *ψ-admissibility predicate* (`WellFormedAdmissible.agda`, ~80 lines). |
| 318 | + Refines `WfCNF` with the constraint that ψ-arguments live in their |
| 319 | + binder's Ω-closure `C_ν`. Closes `<ᵇ-ψα` and `<ᵇ-ψΩ≤` once the |
| 320 | + rank-pow on `bpsi ν α` is refined to `ω-rank-pow ν ⊕ rank-pow α` |
| 321 | + under the admissibility carrier. |
| 322 | +* *`<ᵇ-+1` joint-bplus*. Needs either a coarser dominator (e.g., a |
| 323 | + function `BT → OmegaIndex` returning the leading Ω-index, then |
| 324 | + rank into `ω-rank-pow ∘ leading-index`) or a richer rank shape. |
| 325 | + The remaining challenge in this constructor is the structural |
| 326 | + asymmetry: `rank-pow (bplus z₁ z₂)` lives "outside" the additive- |
| 327 | + principal closure, so the standard ω-power closure argument |
| 328 | + doesn't apply directly. |
| 329 | +* *Mutual recursion for `rank-pow-mono-<ᵇ⁻`*. The case-specific |
| 330 | + primitives above are individually proven, but the umbrella theorem |
| 331 | + `x <ᵇ⁻ y → rank-pow x <′ rank-pow y` needs a mutual `<ᵇ` / `≤ᵇ` |
| 332 | + recursion that pattern-matches on the source's WfCNF carrier to |
| 333 | + derive the tail bound `y ≤ᵇ x → rank-pow y ≤′ rank-pow x`. This |
| 334 | + is a structural argument; the primitives are already in place to |
| 335 | + feed it. Deferred pending the `<ᵇ-+1` resolution since that |
| 336 | + constructor is required for the case-completeness of the umbrella. |
| 337 | + |
| 338 | +=== Status note |
| 339 | + |
| 340 | +The "rank-embedding route is closed" framing from this document's |
| 341 | +introduction is *narrowed*: it remains true for the unrestricted |
| 342 | +`_<ᵇ_`, but the WfCNF restriction `_<ᵇ⁻_` together with the limit- |
| 343 | +shaped rank-pow discharges 9 of the 13 constructor cases. The |
| 344 | +remaining 3 constructors have well-understood structural blockers |
| 345 | +(ψ-admissibility for two; joint-bplus structural-rank for one) |
| 346 | +rather than the fundamental obstruction the original counterexample |
| 347 | +exhibited. |
| 348 | + |
| 349 | +== See also |
| 350 | + |
| 351 | +* `proofs/agda/Ordinal/Buchholz/Order.agda` — the K-free core; the |
| 352 | + 13 constructors that pin the syntactic order. |
| 353 | +* `proofs/agda/Ordinal/Buchholz/WellFounded.agda` — the direct |
| 354 | + accessibility proof of `wf-<ᵇ`; structural, no rank. |
| 355 | +* `proofs/agda/Ordinal/Buchholz/RecursiveSurfaceBudget.agda` — |
| 356 | + budgeted `wf-<ᵇʳᶠᵇ`, the existing model. |
| 357 | +* `proofs/agda/Ordinal/Buchholz/OrderExtendedBudget.agda` — new in |
| 358 | + this session; budgeted `wf-<ᵇ⁺ᵇ` for shared-binder shapes. |
| 359 | +* `proofs/agda/Ordinal/Buchholz/RankBrouwer.agda` — historical |
| 360 | + rank-shape; preamble updated to record that the transport |
| 361 | + theorem is impossible. |
| 362 | +* `docs/echo-types/buchholz-extended-wf.md` — historical Route A / |
| 363 | + Route B design note; updated to record Route B's closure. |
| 364 | +* `docs/echidna-design-search-2026-04-28.adoc` — historical SA |
| 365 | + blueprint; its `rank-mono-<ᵇ` blocker is the unprovable lemma. |
0 commit comments