Skip to content

Commit 0133707

Browse files
committed
agda: iterate Buchholz wrapper construction
1 parent 18ba7df commit 0133707

8 files changed

Lines changed: 223 additions & 8 deletions

File tree

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,14 @@ Ordinal/Buchholz track status:
8484
- `Ordinal.Buchholz.VeblenComparisonModel` is now the primary closed Veblen route: it instantiates the Veblen interface without deferred assumptions and exposes `core-wf-from-comparison : WellFounded _<ᵇ_`
8585
- `Ordinal.Buchholz.ExtendedOrder` now packages a closed comparison-induced extension `_ <ᵇ⁺ _` of `BT`: it contains the current core, exposes the historical same-binder principles as lemmas, and is transitive and well-founded
8686
- `Ordinal.Buchholz.LiftedExtendedOrder` now adds the next honest wrapper `_ <ᵇ⁺¹ _`: the blocked self-lift of `_ <ᵇ⁺ _` fails, but same-binder moves from `_ <ᵇ⁺ _` into `_ <ᵇ⁺¹ _` are derivable and `_ <ᵇ⁺¹ _` is well-founded
87+
- `Ordinal.Buchholz.IteratedExtendedOrder` now packages that repair as a finite iteration scheme: `LiftedOrder n` gives the `n`th wrapper layer, same-binder moves lift one level at a time, and exact finite same-binder depth is tracked by `SurfaceDepth n` with an embedding into `LiftedOrder (suc n)`
8788
- `Ordinal.Buchholz.SurfaceOrder` now adds a direct inductive surface `_ <ᵇˢ _` for the two historical same-binder shapes, with an embedding into `_ <ᵇ⁺ _` and inherited well-foundedness
88-
- the exact remaining recursive frontier is now explicit in code as a blocked self-lift: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, but the new `_ <ᵇ⁺¹ _` wrapper shows the right next direction is wrapper iteration rather than self-stability
89+
- the exact remaining recursive frontier is now explicit in code as a blocked self-lift: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, and the surviving route is finite wrapper iteration rather than self-stability
8990
- the Veblen comparison route is now closed for the current admitted constructor core
9091
- the new `_ <ᵇ⁺ _` wrapper advances the full-order line by giving a mediated closed relation on all terms
9192
- the new `_ <ᵇˢ _` surface is the first direct bridge candidate between the current core presentation and that mediated wrapper
92-
- this does not yet internalize the historically blocked shared-binder shapes as actual constructors of `_ <ᵇ _`; the full intended Buchholz order remains open at that step, and the recursive surface route is now known not to be the right intermediate theorem
93+
- the new `LiftedOrder n` / `SurfaceDepth n` family shows that arbitrary finite same-binder depth can already be handled by iterated mediated wrappers
94+
- this still does not internalize the historically blocked shared-binder shapes as actual constructors of `_ <ᵇ _`; the full intended Buchholz order remains open at that step
9395
- remaining live mathematical work is therefore not the current-core WF route, but the mediated internalization of the shared-binder cases back into the real order package
9496

9597
## External Bridge Targets (local workspace)

docs/buchholz-plan.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,11 @@ The order / well-foundedness track now has an explicit staged split:
148148
well-founded wrapper `_ <ᵇ⁺¹ _` lifts same-binder moves out of
149149
`_ <ᵇ⁺ _` and proves the first nested example
150150
`ψν (x + y) < ψν (x + z)` from `y <ᵇ z`.
151+
* WF-1.88 (`Ordinal.Buchholz.IteratedExtendedOrder`): the one-step
152+
repair now scales uniformly to finite depth. `LiftedOrder n`
153+
iterates the wrapper construction over `ℕ`, `LiftedOrder-lift`
154+
embeds each level into the next, and `SurfaceDepth n` records exact
155+
same-binder depth with an embedding into `LiftedOrder (suc n)`.
151156
* WF-2 (completed for mixed-head cases): bridge layer now includes
152157
`bpsi ν α <ᵇ bOmega μ` (under `ν ≤Ω μ`), left-summand bridges into
153158
additive terms (`<ᵇ-Ω+`, `<ᵇ-ψ+`), and additive-target bridges
@@ -178,6 +183,10 @@ Current Veblen-route status after this update:
178183
well-founded wrapper `_ <ᵇ⁺¹ _`, showing that the surviving route is
179184
iterative wrapper lifting rather than a self-stability theorem for
180185
`_ <ᵇ⁺ _`.
186+
* `Ordinal.Buchholz.IteratedExtendedOrder` now packages that route at
187+
arbitrary finite depth: the wrapper construction is iterated over
188+
`ℕ`, and exact finite same-binder nesting is tracked by
189+
`SurfaceDepth`.
181190
* It does *not* yet promote the historically blocked shared-binder
182191
shapes into actual constructors of `_ <ᵇ _`; that remains the
183192
missing step between the current core and the full intended

docs/echo-types/overview.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,9 @@ maps can admit different echo types.
9797
parallel, syntactic development; its relationship to Echo Types
9898
via `EchoOrdinal.agda` is a bridge, not a reduction. At present,
9999
the current admitted Buchholz core has a closed well-foundedness
100-
route, while the full intended order remains open at the
101-
shared-binder internalization step.
100+
route, and finite same-binder depth is now handled by iterated
101+
mediated wrappers, while the full intended order remains open at
102+
the shared-binder internalization step.
102103
- **Not a completed categorical semantics.** See
103104
`docs/assessment.adoc` for the current M5 verdict.
104105

docs/echo-types/roadmap.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ For current cross-repo progress snapshots, see
1111
the historically blocked shared-binder shapes in `_<ᵇ_`.
1212
`wf-<ᵇ` is landed for the currently admitted core, but promoting
1313
those shapes back into the real order package still needs a
14-
K-free mediated internalization.
14+
K-free mediated internalization. Finite same-binder depth is now
15+
handled by iterated mediated wrappers, but that does not yet close
16+
the real order package itself.
1517
- **Bottleneck B2.** Tool-scope limitations on adjacent repos
1618
(`maa-framework/absolute-zero`, `januskey`,
1719
`tropical-resource-typing`). Blocks end-to-end bridge audits.
@@ -114,7 +116,8 @@ Paths marked **[unblocked]** can proceed today. Paths marked
114116
- **[gated on B1]** Internalize the missing shared-binder shapes as
115117
actual constructors/comparison principles of the real Buchholz
116118
order. The current route closes well-foundedness for the admitted
117-
core, but not yet for the full intended constructor package.
119+
core and handles arbitrary finite same-binder depth via iterated
120+
wrappers, but not yet for the full intended constructor package.
118121
- **[gated on B1]** Re-close totality/inversion/transitivity and
119122
well-foundedness for the enlarged order after that internalization,
120123
including shared-binder cases such as `<ᵇ-ψα` and `<ᵇ-+2`.

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ open import Ordinal.Buchholz.VeblenComparisonTarget
4747
open import Ordinal.Buchholz.VeblenComparisonModel
4848
open import Ordinal.Buchholz.ExtendedOrder
4949
open import Ordinal.Buchholz.LiftedExtendedOrder
50+
open import Ordinal.Buchholz.IteratedExtendedOrder
5051
open import Ordinal.Buchholz.SurfaceOrder
5152
open import Ordinal.Buchholz.VeblenObligations
5253
open import Ordinal.Buchholz.Smoke
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- Systematic finite iteration of the comparison-induced wrapper.
4+
--
5+
-- The self-lift theorem for `_<ᵇ⁺_` is false, but the wrapper pattern
6+
-- itself survives finite iteration. This module packages that pattern
7+
-- through an explicit step operator on closed wrappers and a finite
8+
-- depth family of surface derivations embedding into the iterated
9+
-- wrappers.
10+
11+
module Ordinal.Buchholz.IteratedExtendedOrder where
12+
13+
open import Data.Nat.Base using (ℕ; zero; suc)
14+
open import Data.Product.Base using (_×_; _,_)
15+
open import Data.Product.Relation.Binary.Lex.Strict using (×-Lex; ×-wellFounded; ×-wellFounded')
16+
open import Data.Sum.Base using (inj₁; inj₂)
17+
open import Function.Base using (_on_)
18+
open import Induction.WellFounded using (WellFounded; wf⇒asym; module Subrelation)
19+
open import Relation.Binary.Construct.On as On using (wellFounded)
20+
open import Relation.Binary.Core using (Rel; _⇒_)
21+
open import Relation.Binary.Definitions using (Transitive)
22+
open import Relation.Binary.PropositionalEquality.Core using (_≡_; refl)
23+
open import Relation.Nullary using (¬_)
24+
25+
open import Ordinal.Buchholz.Syntax using (BT; bzero; bplus; bpsi)
26+
open import Ordinal.Buchholz.Order using (_<ᵇ_; <ᵇ-trans)
27+
open import Ordinal.Buchholz.WellFounded using (wf-<ᵇ)
28+
open import Ordinal.Buchholz.VeblenComparisonTarget using
29+
( Payload
30+
; payload-neutral
31+
; payload-psi
32+
; payload-plus
33+
; _≈ᶜ_
34+
; ≈ᶜ-+
35+
; ≈ᶜ-ψ
36+
; ≈ᶜ-trans
37+
; <ᵇ-respʳ-≈ᶜ
38+
; <ᵇ-chain-≈ᶜ
39+
)
40+
open import Ordinal.Buchholz.VeblenComparisonModel using (cmp-measure)
41+
42+
record Wrapper : Set₁ where
43+
field
44+
rel : Rel BT _
45+
wf : WellFounded rel
46+
trans : Transitive rel
47+
48+
open Wrapper
49+
50+
coreWrapper : Wrapper
51+
coreWrapper = record
52+
{ rel = _<ᵇ_
53+
; wf = wf-<ᵇ
54+
; trans = <ᵇ-trans
55+
}
56+
57+
module Step (W : Wrapper) where
58+
open Wrapper W renaming (rel to _<W_; wf to wfW; trans to transW)
59+
60+
data PayloadOrder : Payload Payload Set where
61+
pPsiPsi : {α β} α <W β PayloadOrder (payload-psi α) (payload-psi β)
62+
pPsiPlus : {α β y} α <W β PayloadOrder (payload-psi α) (payload-plus β y)
63+
pPlusPlus : {a y z} y <W z PayloadOrder (payload-plus a y) (payload-plus a z)
64+
65+
payload-rank : Payload BT × BT
66+
payload-rank payload-neutral = bzero , bzero
67+
payload-rank (payload-psi α) = α , bzero
68+
payload-rank (payload-plus a y) = a , y
69+
70+
PayloadRankOrder : Rel (BT × BT) _
71+
PayloadRankOrder = ×-Lex _≡_ _<W_ _<W_
72+
73+
payload-embed : PayloadOrder ⇒ (PayloadRankOrder on payload-rank)
74+
payload-embed (pPsiPsi α<β) = inj₁ α<β
75+
payload-embed (pPsiPlus α<β) = inj₁ α<β
76+
payload-embed (pPlusPlus y<z) = inj₂ (refl , y<z)
77+
78+
payload-wf : WellFounded PayloadOrder
79+
payload-wf =
80+
let module SR = Subrelation payload-embed
81+
in SR.wellFounded (wellFounded payload-rank (×-wellFounded wfW wfW))
82+
83+
payload-trans : Transitive PayloadOrder
84+
payload-trans (pPsiPsi α<β) (pPsiPsi β<γ) = pPsiPsi (transW α<β β<γ)
85+
payload-trans (pPsiPsi α<β) (pPsiPlus β<γ) = pPsiPlus (transW α<β β<γ)
86+
payload-trans (pPsiPlus α<β) (pPlusPlus _) = pPsiPlus α<β
87+
payload-trans (pPlusPlus y<z) (pPlusPlus z<w) = pPlusPlus (transW y<z z<w)
88+
89+
ComparisonOrder : Rel (BT × Payload) _
90+
ComparisonOrder = ×-Lex _≈ᶜ_ _<ᵇ_ PayloadOrder
91+
92+
comparison-trans : Transitive ComparisonOrder
93+
comparison-trans (inj₁ x<y) (inj₁ y<z) = inj₁ (<ᵇ-trans x<y y<z)
94+
comparison-trans (inj₁ x<y) (inj₂ (y≈z , _)) = inj₁ (<ᵇ-respʳ-≈ᶜ y≈z x<y)
95+
comparison-trans (inj₂ (x≈y , _)) (inj₁ y<z) = inj₁ (<ᵇ-chain-≈ᶜ x≈y y<z)
96+
comparison-trans (inj₂ (x≈y , px<qy)) (inj₂ (y≈z , qy<rz)) =
97+
inj₂ (≈ᶜ-trans x≈y y≈z , payload-trans px<qy qy<rz)
98+
99+
comparison-wf : WellFounded ComparisonOrder
100+
comparison-wf = ×-wellFounded' ≈ᶜ-trans <ᵇ-respʳ-≈ᶜ wf-<ᵇ payload-wf
101+
102+
_<step_ : Rel BT _
103+
_<step_ = ComparisonOrder on cmp-measure
104+
105+
wf-step : WellFounded _<step_
106+
wf-step = On.wellFounded cmp-measure comparison-wf
107+
108+
ψ-step : {ν α β} α <W β bpsi ν α <step bpsi ν β
109+
ψ-step α<β = inj₂ (≈ᶜ-ψ , pPsiPsi α<β)
110+
111+
+2-step : {x y z} y <W z bplus x y <step bplus x z
112+
+2-step y<z = inj₂ (≈ᶜ-+ , pPlusPlus y<z)
113+
114+
stepWrapper : Wrapper Wrapper
115+
stepWrapper W =
116+
let module S = Step W
117+
in record
118+
{ rel = S._<step_
119+
; wf = S.wf-step
120+
; trans = S.comparison-trans
121+
}
122+
123+
IterWrapper : Wrapper
124+
IterWrapper zero = coreWrapper
125+
IterWrapper (suc n) = stepWrapper (IterWrapper n)
126+
127+
LiftedOrder : Rel BT _
128+
LiftedOrder n = rel (IterWrapper n)
129+
130+
LiftedOrder-wf : (n : ℕ) WellFounded (LiftedOrder n)
131+
LiftedOrder-wf n = wf (IterWrapper n)
132+
133+
LiftedOrder-trans : (n : ℕ) Transitive (LiftedOrder n)
134+
LiftedOrder-trans n = trans (IterWrapper n)
135+
136+
mutual
137+
138+
payload-lift
139+
: (n : ℕ)
140+
{p q}
141+
Step.PayloadOrder (IterWrapper n) p q
142+
Step.PayloadOrder (IterWrapper (suc n)) p q
143+
payload-lift n (Step.pPsiPsi α<β) = Step.pPsiPsi (LiftedOrder-lift n α<β)
144+
payload-lift n (Step.pPsiPlus α<β) = Step.pPsiPlus (LiftedOrder-lift n α<β)
145+
payload-lift n (Step.pPlusPlus y<z) = Step.pPlusPlus (LiftedOrder-lift n y<z)
146+
147+
LiftedOrder-lift : (n : ℕ) LiftedOrder n ⇒ LiftedOrder (suc n)
148+
LiftedOrder-lift zero x<y = inj₁ x<y
149+
LiftedOrder-lift (suc n) (inj₁ x<y) = inj₁ x<y
150+
LiftedOrder-lift (suc n) (inj₂ (x≈y , p)) = inj₂ (x≈y , payload-lift n p)
151+
152+
lift-ψα : (n : ℕ) {ν α β} LiftedOrder n α β LiftedOrder (suc n) (bpsi ν α) (bpsi ν β)
153+
lift-ψα n α<β =
154+
let module S = Step (IterWrapper n)
155+
in S.ψ-step α<β
156+
157+
lift-+2 : (n : ℕ) {x y z} LiftedOrder n y z LiftedOrder (suc n) (bplus x y) (bplus x z)
158+
lift-+2 n y<z =
159+
let module S = Step (IterWrapper n)
160+
in S.+2-step y<z
161+
162+
lift-ψ+2 : (n : ℕ) {ν x y z} LiftedOrder n y z LiftedOrder (suc (suc n)) (bpsi ν (bplus x y)) (bpsi ν (bplus x z))
163+
lift-ψ+2 n y<z = lift-ψα (suc n) (lift-+2 n y<z)
164+
165+
LiftedOrder-irreflexive : (n : ℕ) {x} ¬ (LiftedOrder n x x)
166+
LiftedOrder-irreflexive n {x} x<x = wf⇒asym (LiftedOrder-wf n) x<x x<x
167+
168+
-- Exact same-binder depth, measured above the current Buchholz core.
169+
data SurfaceDepth : BT BT Set where
170+
surf-core : {x y} x <ᵇ y SurfaceDepth zero x y
171+
surf-ψα : {n ν α β} SurfaceDepth n α β SurfaceDepth (suc n) (bpsi ν α) (bpsi ν β)
172+
surf-+2 : {n x y z} SurfaceDepth n y z SurfaceDepth (suc n) (bplus x y) (bplus x z)
173+
174+
surface⇒lifted : {n x y} SurfaceDepth n x y LiftedOrder (suc n) x y
175+
surface⇒lifted (surf-core x<y) = LiftedOrder-lift zero x<y
176+
surface⇒lifted {n = suc n} (surf-ψα p) = lift-ψα (suc n) (surface⇒lifted p)
177+
surface⇒lifted {n = suc n} (surf-+2 p) = lift-+2 (suc n) (surface⇒lifted p)
178+
179+
SurfaceDepth-irreflexive : {n x} ¬ (SurfaceDepth n x x)
180+
SurfaceDepth-irreflexive {n} {x} p = LiftedOrder-irreflexive (suc n) (surface⇒lifted p)

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,23 @@ open import Ordinal.Buchholz.LiftedExtendedOrder using
188188
; <ᵇ⁺¹-irreflexive
189189
)
190190

191+
open import Ordinal.Buchholz.IteratedExtendedOrder using
192+
( LiftedOrder
193+
; LiftedOrder-wf
194+
; LiftedOrder-trans
195+
; LiftedOrder-lift
196+
; lift-ψα
197+
; lift-+2
198+
; lift-ψ+2
199+
; LiftedOrder-irreflexive
200+
; SurfaceDepth
201+
; surf-core
202+
; surf-ψα
203+
; surf-+2
204+
; surface⇒lifted
205+
; SurfaceDepth-irreflexive
206+
)
207+
191208
open import Ordinal.Buchholz.SurfaceOrder using
192209
( _<ᵇˢ_
193210
; <ᵇˢ-core

readme.adoc

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,15 +94,17 @@ Ordinal/Buchholz track status:
9494
* `Ordinal.Buchholz.VeblenComparisonModel` is now the primary closed Veblen route: it packages that target into an assumption-free Veblen interface instantiation in which the original deferred obligations `dec-ψα` and `dec-+2`, and the lifted same-index `ψ`-to-`+` comparison, are all discharged internally.
9595
* `Ordinal.Buchholz.ExtendedOrder` now packages a closed comparison-induced extension `_ <ᵇ⁺ _` of `BT`: it contains the current core, exposes the historical same-binder principles as lemmas, and is transitive and well-founded.
9696
* `Ordinal.Buchholz.LiftedExtendedOrder` now adds the next honest wrapper `_ <ᵇ⁺¹ _`: the blocked self-lift of `_ <ᵇ⁺ _` fails, but same-binder moves from `_ <ᵇ⁺ _` into `_ <ᵇ⁺¹ _` are derivable and `_ <ᵇ⁺¹ _` is well-founded.
97+
* `Ordinal.Buchholz.IteratedExtendedOrder` now packages that repair as a finite iteration scheme: `LiftedOrder n` gives the `n`th wrapper layer, same-binder moves lift one level at a time, and exact finite same-binder depth is tracked by `SurfaceDepth n` with an embedding into `LiftedOrder (suc n)`.
9798
* `Ordinal.Buchholz.SurfaceOrder` now adds a direct inductive surface `_ <ᵇˢ _` for the two historical same-binder shapes, with an embedding into `_ <ᵇ⁺ _` and inherited well-foundedness.
98-
* The exact remaining recursive frontier is now explicit in code as a blocked self-lift: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, but the new `_ <ᵇ⁺¹ _` wrapper shows the right next direction is wrapper iteration rather than self-stability.
99+
* The exact remaining recursive frontier is now explicit in code as a blocked self-lift: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, and the surviving route is finite wrapper iteration rather than self-stability.
99100
* `Ordinal.Buchholz.VeblenObligations` advances the hard-obligation discharge track with concrete projection-model lemmas for both same-binder shapes:
100101
** `dec-+2-plus-right`
101102
** `dec-ψα-psi-arg`
102103
* The Veblen comparison route is now closed for the current admitted constructor core.
103104
* The new `_ <ᵇ⁺ _` wrapper advances the full-order line by giving a mediated closed relation on all terms.
104105
* The new `_ <ᵇˢ _` surface is the first direct bridge candidate between the current core presentation and that mediated wrapper.
105-
* This does not yet internalize the historically blocked shared-binder shapes as actual constructors of `_ <ᵇ _`; the full intended Buchholz order remains open at that step, and the recursive surface route is now known not to be the right intermediate theorem.
106+
* The new `LiftedOrder n` / `SurfaceDepth n` family shows that arbitrary finite same-binder depth can already be handled by iterated mediated wrappers.
107+
* This still does not internalize the historically blocked shared-binder shapes as actual constructors of `_ <ᵇ _`; the full intended Buchholz order remains open at that step.
106108
* The remaining live mathematical gap is therefore not current-core well-foundedness, but mediated internalization of the shared-binder cases back into the real order package.
107109

108110
== External Bridge Targets (local workspace)

0 commit comments

Comments
 (0)