Skip to content

Commit 1d68671

Browse files
committed
agda: add Veblen WF interface obligations for Buchholz
1 parent 7523319 commit 1d68671

5 files changed

Lines changed: 89 additions & 0 deletions

File tree

docs/buchholz-plan.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ The order / well-foundedness track now has an explicit staged split:
103103
current core, with irreflexivity recovered as a corollary
104104
(`<ᵇ-irreflexive`) instead of a direct shared-binder elimination
105105
proof.
106+
* WF-1.5 (`Ordinal.Buchholz.VeblenInterface`): measure-route interface
107+
pinning constructor-by-constructor decrease obligations and explicit
108+
deferred same-binder obligations (`dec-ψα`, `dec-+2`) for the Veblen
109+
follow-up.
106110
* WF-2 (in progress): explicit inversion lemmas for the still-open
107111
mixed head cases (`Ω/+`, `ψ/+`) and the newly admitted comparison
108112
bridge `bpsi ν α <ᵇ bOmega μ` under `ν ≤Ω μ`.

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ open import Ordinal.Buchholz.Psi
3939
open import Ordinal.Buchholz.Examples
4040
open import Ordinal.Buchholz.WellFormed
4141
open import Ordinal.Buchholz.WellFounded
42+
open import Ordinal.Buchholz.VeblenInterface
4243
open import Ordinal.Buchholz.Smoke
4344

4445
open import Smoke

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,7 @@ open import Ordinal.Buchholz.WellFormed using
108108
; psi-OmegaOmega
109109
; psi-OmegaOmega-wf
110110
)
111+
112+
open import Ordinal.Buchholz.VeblenInterface using
113+
( VeblenWFInterface
114+
)
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- Veblen-route interface for Buchholz WF follow-up work.
4+
--
5+
-- This module is intentionally small: it does not implement a concrete
6+
-- measure. Instead it states, in one place, the obligations required
7+
-- to prove `WellFounded _<ᵇ_` via a measure into a well-founded target.
8+
--
9+
-- The final two fields (`dec-ψα`, `dec-+2`) are the deferred same-binder
10+
-- obligations corresponding to the blocked shared-binder shapes.
11+
12+
module Ordinal.Buchholz.VeblenInterface where
13+
14+
open import Agda.Primitive using (Level; lsuc; _⊔_)
15+
open import Function.Base using (_on_)
16+
open import Relation.Binary.Core using (Rel; _⇒_)
17+
open import Induction.WellFounded as WF using (WellFounded; module Subrelation)
18+
open import Relation.Binary.Construct.On as On using (wellFounded)
19+
20+
open import Ordinal.OmegaMarkers using (OmegaIndex; _<Ω_; _≤Ω_; ω)
21+
open import Ordinal.Buchholz.Syntax using (BT; bzero; bOmega; bplus; bpsi)
22+
open import Ordinal.Buchholz.Order using
23+
( _<ᵇ_
24+
; <ᵇ-0-Ω
25+
; <ᵇ-0-+
26+
; <ᵇ-0-ψ
27+
; <ᵇ-ΩΩ
28+
; <ᵇ-Ωψ
29+
; <ᵇ-ψΩ
30+
; <ᵇ-ψΩ≤
31+
; <ᵇ-+ω
32+
; <ᵇ-+ψω
33+
; <ᵇ-+1
34+
)
35+
36+
record VeblenWFInterface {ℓm ℓr : Level}
37+
(M : Set ℓm)
38+
(_≺_ : Rel M ℓr)
39+
: Set (lsuc (ℓm ⊔ ℓr)) where
40+
field
41+
measure : BT M
42+
≺-wf : WellFounded _≺_
43+
44+
-- Constructor-by-constructor decrease obligations for the current core.
45+
dec-0-Ω : {μ} measure bzero ≺ measure (bOmega μ)
46+
dec-0-+ : {x y} measure bzero ≺ measure (bplus x y)
47+
dec-0-ψ : {ν α} measure bzero ≺ measure (bpsi ν α)
48+
49+
dec-ΩΩ : {μ ν} μ <Ω ν measure (bOmega μ) ≺ measure (bOmega ν)
50+
dec-Ωψ : {μ ν α} μ <Ω ν measure (bOmega μ) ≺ measure (bpsi ν α)
51+
dec-ψΩ : {μ ν α β} μ <Ω ν measure (bpsi μ α) ≺ measure (bpsi ν β)
52+
dec-ψΩ≤ : {ν μ α} ν ≤Ω μ measure (bpsi ν α) ≺ measure (bOmega μ)
53+
54+
dec-+ω : {x y} x <ᵇ bOmega ω measure (bplus x y) ≺ measure (bOmega ω)
55+
dec-+ψω : {x y α} x <ᵇ bpsi ω α measure (bplus x y) ≺ measure (bpsi ω α)
56+
dec-+1 : {x₁ x₂ y₁ y₂} x₁ <ᵇ y₁ measure (bplus x₁ x₂) ≺ measure (bplus y₁ y₂)
57+
58+
-- Deferred same-binder obligations for the extended comparison layer.
59+
dec-ψα : {ν α β} α <ᵇ β measure (bpsi ν α) ≺ measure (bpsi ν β)
60+
dec-+2 : {x y₂ z₂} y₂ <ᵇ z₂ measure (bplus x y₂) ≺ measure (bplus x z₂)
61+
62+
core-monotone : _<ᵇ_ ⇒ (_≺_ on measure)
63+
core-monotone <ᵇ-0-Ω = dec-0-Ω
64+
core-monotone <ᵇ-0-+ = dec-0-+
65+
core-monotone <ᵇ-0-ψ = dec-0-ψ
66+
core-monotone (<ᵇ-ΩΩ μ<ν) = dec-ΩΩ μ<ν
67+
core-monotone (<ᵇ-Ωψ μ<ν) = dec-Ωψ μ<ν
68+
core-monotone (<ᵇ-ψΩ μ<ν) = dec-ψΩ μ<ν
69+
core-monotone (<ᵇ-ψΩ≤ ν≤μ) = dec-ψΩ≤ ν≤μ
70+
core-monotone (<ᵇ-+ω x<ω) = dec-+ω x<ω
71+
core-monotone (<ᵇ-+ψω x<ψω) = dec-+ψω x<ψω
72+
core-monotone (<ᵇ-+1 x₁<y₁) = dec-+1 x₁<y₁
73+
74+
-- Generic derivation route: well-founded target + constructor monotonicity
75+
-- gives well-foundedness of the current `_ <ᵇ _` core via subrelation.
76+
core-wf : WellFounded _<ᵇ_
77+
core-wf =
78+
let module SR = Subrelation core-monotone
79+
in SR.wellFounded (wellFounded measure ≺-wf)

readme.adoc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ Ordinal/Buchholz track status:
8080
* Top-marker `bplus` bridges are now admitted and inverted:
8181
** `<ᵇ-+ω`, `<ᵇ-+ψω`
8282
** `<ᵇ-inv-+Ωω`, `<ᵇ-inv-+ψω`
83+
* `Ordinal.Buchholz.VeblenInterface` now pins a measure-based WF interface with explicit constructor obligations and deferred same-binder obligations (`dec-ψα`, `dec-+2`) for the Veblen-route follow-up.
8384
* Open work remains for general `Ω/+` and `ψ/+` comparisons and for the shared-binder cases (`<ᵇ-ψα`, `<ᵇ-+2`) in a `--without-K`-compatible style.
8485

8586
== External Bridge Targets (local workspace)

0 commit comments

Comments
 (0)