Skip to content

Commit 8f21cb0

Browse files
committed
agda: add concrete Veblen measure target scaffold
1 parent 2111d0f commit 8f21cb0

5 files changed

Lines changed: 57 additions & 5 deletions

File tree

docs/buchholz-plan.adoc

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ The order / well-foundedness track now has an explicit staged split:
110110
* WF-1.6 (`Ordinal.Buchholz.VeblenIdentityModel`): first concrete
111111
instantiation of the interface (identity-measure bootstrap), keeping
112112
`dec-ψα` and `dec-+2` as explicit assumptions.
113+
* WF-1.65 (`Ordinal.Buchholz.VeblenMeasureTarget`): first concrete
114+
measure target fixed as a lexicographic order on `OmegaIndex × BT`,
115+
with well-foundedness reduced to `×-wellFounded <Ω-wf wf-<ᵇ`.
113116
* WF-1.7 (`Ordinal.Buchholz.VeblenObligations`): discharge
114117
same-binder obligation shapes in projection-model form; landed lemmas:
115118
`dec-+2-plus-right`, `dec-ψα-psi-arg`.
@@ -118,11 +121,12 @@ The order / well-foundedness track now has an explicit staged split:
118121
additive terms (`<ᵇ-Ω+`, `<ᵇ-ψ+`), and additive-target bridges
119122
(`<ᵇ-+Ω`, `<ᵇ-+ψ`) with inversions.
120123

121-
Remaining open comparison work after this update:
124+
Remaining open Veblen-route work after this update:
122125

123-
* Shared-binder same-index/same-left sub-cases in a K-free style
124-
(do not return to the blocked direct reflexive-equation elimination
125-
route).
126+
* Define the concrete measure into `OmegaIndex × BT`.
127+
* Discharge the shared-binder same-index/same-left sub-cases in that
128+
target, in a K-free style.
129+
* Instantiate the Veblen interface without deferred assumptions.
126130

127131
Risk-gated bridge currently admitted:
128132

proofs/agda/All.agda

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ open import Ordinal.Buchholz.WellFormed
4141
open import Ordinal.Buchholz.WellFounded
4242
open import Ordinal.Buchholz.VeblenInterface
4343
open import Ordinal.Buchholz.VeblenIdentityModel
44+
open import Ordinal.Buchholz.VeblenMeasureTarget
4445
open import Ordinal.Buchholz.VeblenObligations
4546
open import Ordinal.Buchholz.Smoke
4647

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,14 @@ open import Ordinal.Buchholz.VeblenIdentityModel using
124124
; core-wf-from-identity
125125
)
126126

127+
open import Ordinal.Buchholz.VeblenMeasureTarget using
128+
( Measure
129+
; _≺M_
130+
; by-index
131+
; by-term
132+
; ≺M-wf
133+
)
134+
127135
open import Ordinal.Buchholz.VeblenObligations using
128136
( plus-right
129137
; psi-arg
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{-# OPTIONS --safe --without-K #-}
2+
3+
-- First concrete target carrier for the Veblen-route measure work.
4+
--
5+
-- This module only fixes the target order. The remaining Veblen work is
6+
-- then about defining a measure into this carrier and proving the
7+
-- deferred same-binder obligations there.
8+
9+
module Ordinal.Buchholz.VeblenMeasureTarget where
10+
11+
open import Data.Product.Base using (_×_; _,_)
12+
open import Data.Product.Relation.Binary.Lex.Strict using (×-Lex; ×-wellFounded)
13+
open import Data.Sum.Base using (inj₁; inj₂)
14+
open import Induction.WellFounded using (WellFounded)
15+
open import Relation.Binary.Core using (Rel)
16+
open import Relation.Binary.PropositionalEquality.Core using (_≡_; refl)
17+
18+
open import Ordinal.OmegaMarkers using (OmegaIndex; _<Ω_)
19+
open import Ordinal.Buchholz.Syntax using (BT)
20+
open import Ordinal.Buchholz.Order using (_<ᵇ_)
21+
open import Ordinal.Buchholz.WellFounded using (<Ω-wf; wf-<ᵇ)
22+
23+
Measure : Set
24+
Measure = OmegaIndex × BT
25+
26+
infix 4 _≺M_
27+
28+
_≺M_ : Rel Measure _
29+
_≺M_ = ×-Lex _≡_ _<Ω_ _<ᵇ_
30+
31+
by-index : {ν μ α β} ν <Ω μ (ν , α) ≺M (μ , β)
32+
by-index = inj₁
33+
34+
by-term : {ν α β} α <ᵇ β (ν , α) ≺M (ν , β)
35+
by-term α<β = inj₂ (refl , α<β)
36+
37+
≺M-wf : WellFounded _≺M_
38+
≺M-wf = ×-wellFounded <Ω-wf wf-<ᵇ

readme.adoc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,11 @@ Ordinal/Buchholz track status:
8888
** `<ᵇ-inv-+Ω`, `<ᵇ-inv-+ψ`
8989
* `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.
9090
* `Ordinal.Buchholz.VeblenIdentityModel` provides a first concrete instantiation of that interface (identity measure bootstrap), with `dec-ψα` / `dec-+2` kept as explicit parameters.
91+
* `Ordinal.Buchholz.VeblenMeasureTarget` now fixes the first concrete target carrier for the Veblen route: a lexicographic order on `OmegaIndex × BT`, with `≺M-wf` proved from the existing `Ω` and Buchholz well-foundedness results.
9192
* `Ordinal.Buchholz.VeblenObligations` advances the hard-obligation discharge track with concrete projection-model lemmas for both same-binder shapes:
9293
** `dec-+2-plus-right`
9394
** `dec-ψα-psi-arg`
94-
* Open work is now concentrated in the shared-binder cases (`<ᵇ-ψα`, `<ᵇ-+2`) and their discharge into a `--without-K`-compatible measure model.
95+
* Open work is now concentrated in defining the actual measure into that target and discharging the shared-binder cases (`<ᵇ-ψα`, `<ᵇ-+2`) there in a `--without-K`-compatible way.
9596

9697
== External Bridge Targets (local workspace)
9798

0 commit comments

Comments
 (0)