Skip to content

Commit 19637f2

Browse files
hyperpolymathclaude
andcommitted
agda: add psiν-at-succ + psiν-least-gap, closing E5
Lands the two missing Buchholz-ν analogues of `psi-at-1` / `psi-least` from `Ordinal.PsiSimple`: * `psiν-at-succ {ν μ β k} : μ ≤Ω ν → Cν ν k β → Cν ν (suc k) (bpsi μ β)` — constructive entry: once `β` is generable at stage `k` with the Ω-index side-condition met, `bpsi μ β` enters closure exactly one stage later. * `psiν-least-gap {ν μ β m} : Cν ν m (bpsi μ β) → Σ k, suc k ≤ m × Cν ν k β` — least-gap decomposition. Delegates to the existing `cν-psi-decompose` but under the least-gap name matching the roadmap plan. Paired, these pin the minimal entry stage of `bpsi μ β` at exactly one above the minimal entry stage of its argument. Pinned in both `Ordinal.Buchholz.Smoke` and the top-level `Smoke`. Roadmap E5 flipped PARTIAL → DONE. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 52f2e7d commit 19637f2

4 files changed

Lines changed: 31 additions & 14 deletions

File tree

proofs/agda/Ordinal/Buchholz/Psi.agda

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,20 @@
22

33
-- Stage S1/S2 scaffolding for docs/buchholz-plan.adoc.
44
--
5-
-- First ψ_ν-side exclusion statement over the ν-indexed closure:
6-
-- no ψ-term can be generated at stage 0 because `cν-psi` requires
7-
-- a strictly earlier stage witness.
5+
-- Least-gap shape for the Buchholz ψ_ν constructor, mirroring the
6+
-- pedagogical `psi-notin-C` / `psi-at-1` / `psi-least` triple in
7+
-- `Ordinal.PsiSimple` but parameterised by the Ω-index ν.
88

99
module Ordinal.Buchholz.Psi where
1010

11-
open import Data.Nat.Base using (_≤_; z≤n; s≤s)
12-
open import Data.Nat.Properties using (≤-trans)
11+
open import Data.Nat.Base using (ℕ; suc; _≤_; _<_; z≤n; s≤s)
12+
open import Data.Nat.Properties using (≤-refl; ≤-trans)
13+
open import Data.Product.Base using (Σ; _,_; _×_)
1314
open import Relation.Nullary using (¬_)
1415

1516
open import Ordinal.OmegaMarkers using (OmegaIndex; _≤Ω_)
1617
open import Ordinal.Buchholz.Syntax using (BT; bpsi)
17-
open import Ordinal.Buchholz.Closure using (Cν; cν-psi; cν-psi-index)
18+
open import Ordinal.Buchholz.Closure using (Cν; cν-psi; cν-psi-index; cν-psi-decompose)
1819

1920
psiν-notin-Cν : {ν μ β} ¬ Cν ν 0 (bpsi μ β)
2021
psiν-notin-Cν (cν-psi _ () _)
@@ -26,3 +27,19 @@ psiν-stage-lb (cν-psi _ k<m _) = ≤-trans (s≤s z≤n) k<m
2627

2728
psiν-index-bound : {ν μ β m} Cν ν m (bpsi μ β) μ ≤Ω ν
2829
psiν-index-bound = cν-psi-index
30+
31+
-- Constructive entry (analogue of `psi-at-1`): once `β` is generable
32+
-- at stage `k` and the Ω-index side-condition `μ ≤Ω ν` holds,
33+
-- `bpsi μ β` enters the closure one stage later.
34+
35+
psiν-at-succ : {ν μ β k} μ ≤Ω ν Cν ν k β Cν ν (suc k) (bpsi μ β)
36+
psiν-at-succ μ≤ν ck = cν-psi μ≤ν ≤-refl ck
37+
38+
-- Least-gap shape (analogue of `psi-least`): any stage `m` that
39+
-- derives `bpsi μ β` decomposes into a strictly earlier stage `k`
40+
-- (i.e. `suc k ≤ m`) at which `β` was already derivable. Paired with
41+
-- `psiν-at-succ` this pins the minimal entry stage of `bpsi μ β` at
42+
-- exactly one above the minimal entry stage of its argument.
43+
44+
psiν-least-gap : {ν μ β m} Cν ν m (bpsi μ β) Σ ℕ (λ k (suc k ≤ m) × Cν ν k β)
45+
psiν-least-gap = cν-psi-decompose

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ open import Ordinal.Buchholz.Psi using
7878
( psiν-notin-Cν
7979
; psiν-stage-lb
8080
; psiν-index-bound
81+
; psiν-at-succ
82+
; psiν-least-gap
8183
)
8284

8385
open import Ordinal.Buchholz.Examples using

proofs/agda/Smoke.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,8 @@ open import Ordinal.Buchholz.Psi using
213213
( psiν-notin-Cν
214214
; psiν-stage-lb
215215
; psiν-index-bound
216+
; psiν-at-succ
217+
; psiν-least-gap
216218
)
217219

218220
open import Ordinal.Buchholz.Examples using

roadmap.adoc

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -393,18 +393,14 @@ E5. Buchholz fragment (ν ≤ ω):
393393
* add `proofs/agda/Ordinal/Buchholz/{Syntax,Closure,Psi}.agda`
394394
* prove `Cν-monotone`, `psiν-notin-Cν`, `psiν-least-gap`
395395

396-
Status: PARTIAL (2026-04-24)
396+
Status: DONE (2026-04-24)
397397

398-
Delivered:
398+
Delivered in `proofs/agda/Ordinal/Buchholz/{Closure, Psi}.agda`:
399399

400-
* `Ordinal/Buchholz/Syntax.agda`, `Closure.agda`, `Psi.agda` all compile
401400
* `Cν-monotone`, `Cν-index-monotone`, `Cν-monotone-both`
402401
* `psiν-notin-Cν`, `psiν-stage-lb`, `psiν-index-bound`
403-
404-
Still open:
405-
406-
* `psiν-least-gap` — the stronger least-gap theorem (stage-lb gives `1 ≤ m`;
407-
least-gap gives the sharper minimal-stage side).
402+
* `psiν-at-succ` — constructive entry at stage `suc k` from `Cν ν k β`
403+
* `psiν-least-gap` — least-gap decomposition `(k, suc k ≤ m, Cν ν k β)`
408404

409405
E6. Target expressibility:
410406

0 commit comments

Comments
 (0)