Skip to content

Commit 30dc931

Browse files
committed
proof(ordinal): doubled-ladder rank rank2 + equal-Ω discharge (Slice 2)
Builds the doubled-ladder rank on top of the Slice-1 foundation and lands the actual equal-Ω boundary discharge — the case the single ω-power ladder could not close. Key simplification: the doubled ladder is just the EXISTING `ω-rank-pow` / `ω-rank-pow-succ` on a DOUBLED OmegaIndex. With `double (fin n) = fin (n + n)`, `double ω = ω`: ω-rank-pow (double (fin n)) = ω^(suc (n+n)) = ω^(2n+1) -- ψ-block ω-rank-pow-succ (double (fin n)) = ω^(suc (suc (n+n))) = ω^(2n+2) -- Ω-block both DEFINITIONALLY. So the whole Brouwer machinery (additive- principal closure, the room fact `ω-rank-pow-⊕-below-succ`, strict- mono) transfers to the doubled ladder for free by instantiating its index at `double ν`. Lands: * `double : OmegaIndex → OmegaIndex` * `rank2 : BT → Ord` (bzero→oz, bOmega ν→ω-rank-pow-succ (double ν), bpsi ν α→ω-rank-pow (double ν) ⊕ rank2 α, bplus→⊕) * `rank2-{bzero,bOmega,bpsi,bplus}` definitional sanity * `rank2-bpsi-below-bOmega` — THE equal-Ω discharge: rank2 α <′ ω-rank-pow (double ν) → rank2 (bpsi ν α) <′ rank2 (bOmega ν) proved as `ω-rank-pow-⊕-below-succ {double ν}` — covering the fin AND the limit (ω) marker, since that lemma is total over OmegaIndex. This is exactly the boundary rank-pow (collapses ψ_ν/Ω_ν) and rank-adm (ranks ψ ABOVE Ω) could not discharge. Honest scope: Slice 2 lands the rank + the equal-Ω discharge under a rank2-level admissibility hypothesis. Follow-on slices: the WfAdm bridge supplying that hypothesis; the cross-index `<ᵇ-Ωψ` discharge (consumes Slice-1's `Ω-block-below-next-ψ` + its ω-marker analogue); the remaining per-constructor rank-mono; the wf-<′ transport. - `rank2`, `rank2-bpsi-below-bOmega` pinned in `Ordinal/Buchholz/Smoke.agda`. - `Smoke.agda` + `All.agda` exit 0 under `--safe --without-K`; zero postulates, no escape pragmas, no funext. https://claude.ai/code/session_017t53M7W7ubmXpwymveLcCE
1 parent 1cd486a commit 30dc931

2 files changed

Lines changed: 78 additions & 2 deletions

File tree

proofs/agda/Ordinal/Buchholz/RankDoubledLadder.agda

Lines changed: 76 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,9 @@ module Ordinal.Buchholz.RankDoubledLadder where
7676

7777
open import Data.Nat using (ℕ; suc; _+_; _<_; _≤_; s≤s)
7878
open import Data.Nat.Properties using (+-suc; +-mono-≤)
79-
open import Relation.Binary.PropositionalEquality using (_≡_; subst; cong)
79+
open import Relation.Binary.PropositionalEquality using (_≡_; refl; subst; cong)
8080

81-
open import Ordinal.Brouwer using (Ord; osuc)
81+
open import Ordinal.Brouwer using (Ord; osuc; oz)
8282
open import Ordinal.Brouwer.Phase13 using
8383
( _≤′_
8484
; _<′_
@@ -92,6 +92,10 @@ open import Ordinal.Brouwer.OmegaPow using
9292
; ω^-strict-mono-suc
9393
; additive-principal
9494
)
95+
open import Ordinal.OmegaMarkers using (OmegaIndex; fin; ω)
96+
open import Ordinal.Buchholz.Syntax using (BT; bzero; bOmega; bpsi; bplus)
97+
open import Ordinal.Buchholz.RankPow using (ω-rank-pow; ω-rank-pow-succ)
98+
open import Ordinal.Buchholz.RankPowDomination using (ω-rank-pow-⊕-below-succ)
9599

96100
----------------------------------------------------------------------
97101
-- Local strict transitivity (Phase13 exports only ≤′-trans)
@@ -160,3 +164,73 @@ open import Ordinal.Brouwer.OmegaPow using
160164
-- 2m+2 < 2n+1
161165
Ωexp-m<ψexp-n : Ωexp m < ψexp n
162166
Ωexp-m<ψexp-n = s≤s Ωexp-m≤n+n
167+
168+
----------------------------------------------------------------------
169+
-- Slice 2 — the doubled-ladder rank `rank2 : BT → Ord`
170+
----------------------------------------------------------------------
171+
172+
-- The doubled ladder is just the EXISTING `ω-rank-pow` /
173+
-- `ω-rank-pow-succ` on a DOUBLED OmegaIndex. Doubling the fin index
174+
-- by `n ↦ n + n` lands the ψ-block on `ω-rank-pow (fin (n+n)) =
175+
-- ω^(suc (n+n)) = ω^(2n+1) = ω^(ψexp n)` and the Ω-block on
176+
-- `ω-rank-pow-succ (fin (n+n)) = ω^(2n+2) = ω^(Ωexp n)`, both
177+
-- DEFINITIONALLY (no transport). So the whole `Ordinal.Brouwer`
178+
-- machinery — additive-principal closure, the room fact
179+
-- `RankPowDomination.ω-rank-pow-⊕-below-succ` (which is ∀ OmegaIndex,
180+
-- so it covers the limit `ω` marker too), strict-mono — transfers to
181+
-- the doubled ladder for free, by instantiating its index at
182+
-- `double ν`.
183+
184+
double : OmegaIndex OmegaIndex
185+
double (fin n) = fin (n + n)
186+
double ω = ω
187+
188+
-- `rank2 : BT → Ord` — ψ_ν(α) into the 2ν+1 block (offset by the
189+
-- α-rank), Ω_ν at the 2ν+2 block, bplus by ordinal sum, bzero at oz.
190+
rank2 : BT Ord
191+
rank2 bzero = oz
192+
rank2 (bOmega ν) = ω-rank-pow-succ (double ν)
193+
rank2 (bpsi ν α) = ω-rank-pow (double ν) ⊕ rank2 α
194+
rank2 (bplus x y) = rank2 x ⊕ rank2 y
195+
196+
----------------------------------------------------------------------
197+
-- Definitional sanity
198+
----------------------------------------------------------------------
199+
200+
rank2-bzero : rank2 bzero ≡ oz
201+
rank2-bzero = refl
202+
203+
rank2-bOmega : ν rank2 (bOmega ν) ≡ ω-rank-pow-succ (double ν)
204+
rank2-bOmega _ = refl
205+
206+
rank2-bpsi : ν α rank2 (bpsi ν α) ≡ ω-rank-pow (double ν) ⊕ rank2 α
207+
rank2-bpsi _ _ = refl
208+
209+
rank2-bplus : x y rank2 (bplus x y) ≡ rank2 x ⊕ rank2 y
210+
rank2-bplus _ _ = refl
211+
212+
----------------------------------------------------------------------
213+
-- Headline: the equal-Ω boundary discharge at `rank2`
214+
----------------------------------------------------------------------
215+
216+
-- The payoff of the doubled ladder. At the SAME leading marker ν, an
217+
-- admissibility-bounded ψ_ν(α) ranks strictly below Ω_ν:
218+
--
219+
-- rank2 (bpsi ν α) = ω-rank-pow (double ν) ⊕ rank2 α
220+
-- <′ ω-rank-pow-succ (double ν) = rank2 (bOmega ν)
221+
--
222+
-- given `rank2 α <′ ω-rank-pow (double ν)` (the rank2-level
223+
-- admissibility bound — the WfAdm bridge that supplies it from
224+
-- `WfAdm`'s `rank-pow α <′ ω-rank-pow ν` field is the follow-on).
225+
--
226+
-- This is EXACTLY `RankPowDomination.ω-rank-pow-⊕-below-succ`
227+
-- instantiated at the doubled index `double ν` — covering both the
228+
-- fin AND the limit (`ω`) marker, since that lemma is total over
229+
-- OmegaIndex. This is the case the single-ladder rank-pow/rank-adm
230+
-- could not discharge (rank-pow collapses ψ_ν/Ω_ν; rank-adm ranks
231+
-- ψ ABOVE Ω); the doubled ladder closes it directly.
232+
rank2-bpsi-below-bOmega : {ν α}
233+
rank2 α <′ ω-rank-pow (double ν)
234+
rank2 (bpsi ν α) <′ rank2 (bOmega ν)
235+
rank2-bpsi-below-bOmega {ν} {α} adm =
236+
ω-rank-pow-⊕-below-succ {double ν} {rank2 α} adm

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,8 @@ open import Ordinal.Buchholz.RankPowDomination using
469469
open import Ordinal.Buchholz.RankDoubledLadder using
470470
( ψ-block-below-Ω-block
471471
; Ω-block-below-next-ψ
472+
; rank2
473+
; rank2-bpsi-below-bOmega
472474
)
473475

474476
-- Slice 3 prerequisites (own block per CLAUDE.md Working rules):

0 commit comments

Comments
 (0)