Skip to content

Commit 18ba7df

Browse files
committed
agda: add one-level lifted Buchholz wrapper
1 parent 611e068 commit 18ba7df

6 files changed

Lines changed: 147 additions & 2 deletions

File tree

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,9 @@ Ordinal/Buchholz track status:
8383
- `Ordinal.Buchholz.VeblenComparisonTarget` adds a second concrete target: a lexicographic order on `BT × Payload` with recursive `ψ`-compatibility on the first coordinate and tagged payload descent for the same-binder follow-up cases
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
86+
- `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
8687
- `Ordinal.Buchholz.SurfaceOrder` now adds a direct inductive surface `_ <ᵇˢ _` for the two historical same-binder shapes, with an embedding into `_ <ᵇ⁺ _` and inherited well-foundedness
87-
- the exact remaining recursive frontier is now explicit in code as a blocked candidate: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, so the genuinely recursive surface order `_ <ᵇʳ _` does not follow from the current wrapper
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
8889
- the Veblen comparison route is now closed for the current admitted constructor core
8990
- the new `_ <ᵇ⁺ _` wrapper advances the full-order line by giving a mediated closed relation on all terms
9091
- the new `_ <ᵇˢ _` surface is the first direct bridge candidate between the current core presentation and that mediated wrapper

docs/buchholz-plan.adoc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,11 @@ The order / well-foundedness track now has an explicit staged split:
143143
recursive surface route is not the right intermediate theorem.
144144
The direct surface bridge `_ <ᵇˢ _` remains the proved bridge
145145
candidate.
146+
* WF-1.87 (`Ordinal.Buchholz.LiftedExtendedOrder`): the next honest
147+
step is wrapper iteration rather than wrapper self-lift. A new
148+
well-founded wrapper `_ <ᵇ⁺¹ _` lifts same-binder moves out of
149+
`_ <ᵇ⁺ _` and proves the first nested example
150+
`ψν (x + y) < ψν (x + z)` from `y <ᵇ z`.
146151
* WF-2 (completed for mixed-head cases): bridge layer now includes
147152
`bpsi ν α <ᵇ bOmega μ` (under `ν ≤Ω μ`), left-summand bridges into
148153
additive terms (`<ᵇ-Ω+`, `<ᵇ-ψ+`), and additive-target bridges
@@ -169,6 +174,10 @@ Current Veblen-route status after this update:
169174
* The attempted recursive surface lift is now explicitly blocked by a
170175
counterexample theorem in `Ordinal.Buchholz.SurfaceOrder`; the
171176
proved bridge remains `_ <ᵇˢ _`.
177+
* `Ordinal.Buchholz.LiftedExtendedOrder` now supplies the next
178+
well-founded wrapper `_ <ᵇ⁺¹ _`, showing that the surviving route is
179+
iterative wrapper lifting rather than a self-stability theorem for
180+
`_ <ᵇ⁺ _`.
172181
* It does *not* yet promote the historically blocked shared-binder
173182
shapes into actual constructors of `_ <ᵇ _`; that remains the
174183
missing step between the current core and the full intended

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ open import Ordinal.Buchholz.VeblenProjectionMeasure
4646
open import Ordinal.Buchholz.VeblenComparisonTarget
4747
open import Ordinal.Buchholz.VeblenComparisonModel
4848
open import Ordinal.Buchholz.ExtendedOrder
49+
open import Ordinal.Buchholz.LiftedExtendedOrder
4950
open import Ordinal.Buchholz.SurfaceOrder
5051
open import Ordinal.Buchholz.VeblenObligations
5152
open import Ordinal.Buchholz.Smoke
Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,123 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- One-level lift of the closed comparison wrapper.
4+
--
5+
-- `_<ᵇ⁺_` is too weak to be stable under the recursive same-binder
6+
-- lifts needed for a self-contained surface recursion. This module
7+
-- records the next honest step: lift those same-binder moves from the
8+
-- current wrapper into a new well-founded wrapper one level up.
9+
10+
module Ordinal.Buchholz.LiftedExtendedOrder where
11+
12+
open import Data.Product.Base using (_×_; _,_)
13+
open import Data.Product.Relation.Binary.Lex.Strict using (×-Lex; ×-wellFounded; ×-wellFounded')
14+
open import Data.Sum.Base using (inj₁; inj₂)
15+
open import Function.Base using (_on_)
16+
open import Induction.WellFounded using (WellFounded; wf⇒asym; module Subrelation)
17+
open import Relation.Nullary using (¬_)
18+
open import Relation.Binary.Core using (Rel; _⇒_)
19+
open import Relation.Binary.Construct.On as On using (wellFounded)
20+
open import Relation.Binary.Definitions using (Transitive)
21+
open import Relation.Binary.PropositionalEquality.Core using (_≡_; refl)
22+
23+
open import Ordinal.Buchholz.Syntax using (BT; bzero; bplus; bpsi)
24+
open import Ordinal.Buchholz.Order using (_<ᵇ_; <ᵇ-trans)
25+
open import Ordinal.Buchholz.WellFounded using (wf-<ᵇ)
26+
open import Ordinal.Buchholz.ExtendedOrder using
27+
( _<ᵇ⁺_
28+
; <ᵇ⇒<ᵇ⁺
29+
; <ᵇ⁺-+2
30+
; <ᵇ⁺-trans
31+
; wf-<ᵇ⁺
32+
)
33+
open import Ordinal.Buchholz.VeblenComparisonTarget using
34+
( Payload
35+
; payload-neutral
36+
; payload-psi
37+
; payload-plus
38+
; _≈ᶜ_
39+
; _≺P_
40+
; pPsiPsi
41+
; pPsiPlus
42+
; pPlusPlus
43+
; ≈ᶜ-+
44+
; ≈ᶜ-ψ
45+
; ≈ᶜ-trans
46+
; <ᵇ-respʳ-≈ᶜ
47+
; <ᵇ-chain-≈ᶜ
48+
)
49+
open import Ordinal.Buchholz.VeblenComparisonModel using (cmp-measure)
50+
51+
infix 4 _≺P⁺¹_ _≺C⁺¹_ _<ᵇ⁺¹_
52+
53+
data _≺P⁺¹_ : Payload Payload Set where
54+
pPsiPsi⁺¹ : {α β} α <ᵇ⁺ β payload-psi α ≺P⁺¹ payload-psi β
55+
pPsiPlus⁺¹ : {α β y} α <ᵇ⁺ β payload-psi α ≺P⁺¹ payload-plus β y
56+
pPlusPlus⁺¹ : {a y z} y <ᵇ⁺ z payload-plus a y ≺P⁺¹ payload-plus a z
57+
58+
payload-rank : Payload BT × BT
59+
payload-rank payload-neutral = bzero , bzero
60+
payload-rank (payload-psi α) = α , bzero
61+
payload-rank (payload-plus a y) = a , y
62+
63+
_≺PL⁺¹_ : Rel (BT × BT) _
64+
_≺PL⁺¹_ = ×-Lex _≡_ _<ᵇ⁺_ _<ᵇ⁺_
65+
66+
payload-embed⁺¹ : _≺P⁺¹_ ⇒ (_≺PL⁺¹_ on payload-rank)
67+
payload-embed⁺¹ (pPsiPsi⁺¹ α<β) = inj₁ α<β
68+
payload-embed⁺¹ (pPsiPlus⁺¹ α<β) = inj₁ α<β
69+
payload-embed⁺¹ (pPlusPlus⁺¹ y<z) = inj₂ (refl , y<z)
70+
71+
≺PL⁺¹-wf : WellFounded _≺PL⁺¹_
72+
≺PL⁺¹-wf = ×-wellFounded wf-<ᵇ⁺ wf-<ᵇ⁺
73+
74+
≺P⁺¹-wf : WellFounded _≺P⁺¹_
75+
≺P⁺¹-wf =
76+
let module SR = Subrelation payload-embed⁺¹
77+
in SR.wellFounded (wellFounded payload-rank ≺PL⁺¹-wf)
78+
79+
≺P⁺¹-trans : Transitive _≺P⁺¹_
80+
≺P⁺¹-trans (pPsiPsi⁺¹ α<β) (pPsiPsi⁺¹ β<γ) = pPsiPsi⁺¹ (<ᵇ⁺-trans α<β β<γ)
81+
≺P⁺¹-trans (pPsiPsi⁺¹ α<β) (pPsiPlus⁺¹ β<γ) = pPsiPlus⁺¹ (<ᵇ⁺-trans α<β β<γ)
82+
≺P⁺¹-trans (pPsiPlus⁺¹ α<β) (pPlusPlus⁺¹ _) = pPsiPlus⁺¹ α<β
83+
≺P⁺¹-trans (pPlusPlus⁺¹ y<z) (pPlusPlus⁺¹ z<w) = pPlusPlus⁺¹ (<ᵇ⁺-trans y<z z<w)
84+
85+
_≺C⁺¹_ : Rel (BT × Payload) _
86+
_≺C⁺¹_ = ×-Lex _≈ᶜ_ _<ᵇ_ _≺P⁺¹_
87+
88+
≺C⁺¹-trans : Transitive _≺C⁺¹_
89+
≺C⁺¹-trans (inj₁ x<y) (inj₁ y<z) = inj₁ (<ᵇ-trans x<y y<z)
90+
≺C⁺¹-trans (inj₁ x<y) (inj₂ (y≈z , _)) = inj₁ (<ᵇ-respʳ-≈ᶜ y≈z x<y)
91+
≺C⁺¹-trans (inj₂ (x≈y , _)) (inj₁ y<z) = inj₁ (<ᵇ-chain-≈ᶜ x≈y y<z)
92+
≺C⁺¹-trans (inj₂ (x≈y , px<qy)) (inj₂ (y≈z , qy<rz)) =
93+
inj₂ (≈ᶜ-trans x≈y y≈z , ≺P⁺¹-trans px<qy qy<rz)
94+
95+
≺C⁺¹-wf : WellFounded _≺C⁺¹_
96+
≺C⁺¹-wf = ×-wellFounded' ≈ᶜ-trans <ᵇ-respʳ-≈ᶜ wf-<ᵇ ≺P⁺¹-wf
97+
98+
_<ᵇ⁺¹_ : Rel BT _
99+
_<ᵇ⁺¹_ = _≺C⁺¹_ on cmp-measure
100+
101+
payload-lift⁺¹ : _≺P_ ⇒ _≺P⁺¹_
102+
payload-lift⁺¹ (pPsiPsi α<β) = pPsiPsi⁺¹ (<ᵇ⇒<ᵇ⁺ α<β)
103+
payload-lift⁺¹ (pPsiPlus α<β) = pPsiPlus⁺¹ (<ᵇ⇒<ᵇ⁺ α<β)
104+
payload-lift⁺¹ (pPlusPlus y<z) = pPlusPlus⁺¹ (<ᵇ⇒<ᵇ⁺ y<z)
105+
106+
<ᵇ⁺⇒<ᵇ⁺¹ : _<ᵇ⁺_ ⇒ _<ᵇ⁺¹_
107+
<ᵇ⁺⇒<ᵇ⁺¹ (inj₁ x<y) = inj₁ x<y
108+
<ᵇ⁺⇒<ᵇ⁺¹ (inj₂ (x≈y , p)) = inj₂ (x≈y , payload-lift⁺¹ p)
109+
110+
<ᵇ⁺¹-ψα : {ν α β} α <ᵇ⁺ β bpsi ν α <ᵇ⁺¹ bpsi ν β
111+
<ᵇ⁺¹-ψα α<β = inj₂ (≈ᶜ-ψ , pPsiPsi⁺¹ α<β)
112+
113+
<ᵇ⁺¹-+2 : {x y z} y <ᵇ⁺ z bplus x y <ᵇ⁺¹ bplus x z
114+
<ᵇ⁺¹-+2 y<z = inj₂ (≈ᶜ-+ , pPlusPlus⁺¹ y<z)
115+
116+
<ᵇ⁺¹-ψ+2 : {ν x y z} y <ᵇ z bpsi ν (bplus x y) <ᵇ⁺¹ bpsi ν (bplus x z)
117+
<ᵇ⁺¹-ψ+2 y<z = <ᵇ⁺¹-ψα (<ᵇ⁺-+2 y<z)
118+
119+
wf-<ᵇ⁺¹ : WellFounded _<ᵇ⁺¹_
120+
wf-<ᵇ⁺¹ = On.wellFounded cmp-measure ≺C⁺¹-wf
121+
122+
<ᵇ⁺¹-irreflexive : {x} ¬ (x <ᵇ⁺¹ x)
123+
<ᵇ⁺¹-irreflexive {x} x<x = wf⇒asym wf-<ᵇ⁺¹ x<x x<x

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,16 @@ open import Ordinal.Buchholz.ExtendedOrder using
178178
; <ᵇ⁺-irreflexive
179179
)
180180

181+
open import Ordinal.Buchholz.LiftedExtendedOrder using
182+
( _<ᵇ⁺¹_
183+
; <ᵇ⁺⇒<ᵇ⁺¹
184+
; <ᵇ⁺¹-ψα
185+
; <ᵇ⁺¹-+2
186+
; <ᵇ⁺¹-ψ+2
187+
; wf-<ᵇ⁺¹
188+
; <ᵇ⁺¹-irreflexive
189+
)
190+
181191
open import Ordinal.Buchholz.SurfaceOrder using
182192
( _<ᵇˢ_
183193
; <ᵇˢ-core

readme.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,9 @@ Ordinal/Buchholz track status:
9393
* `Ordinal.Buchholz.VeblenComparisonTarget` adds a second concrete target: a lexicographic order on `BT × Payload` whose first coordinate is relaxed by recursive `ψ`-compatibility, and whose tagged payload order handles the same-binder descent cases without introducing unstable extra comparisons.
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.
96+
* `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.
9697
* `Ordinal.Buchholz.SurfaceOrder` now adds a direct inductive surface `_ <ᵇˢ _` for the two historical same-binder shapes, with an embedding into `_ <ᵇ⁺ _` and inherited well-foundedness.
97-
* The exact remaining recursive frontier is now explicit in code as a blocked candidate: `SurfaceLiftInterface` is refuted by a concrete same-left `bplus` counterexample, so the genuinely recursive surface order `_ <ᵇʳ _` does not follow from the current wrapper.
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.
9899
* `Ordinal.Buchholz.VeblenObligations` advances the hard-obligation discharge track with concrete projection-model lemmas for both same-binder shapes:
99100
** `dec-+2-plus-right`
100101
** `dec-ψα-psi-arg`

0 commit comments

Comments
 (0)