|
| 1 | +{-# OPTIONS --safe --without-K #-} |
| 2 | +-- SPDX-License-Identifier: MPL-2.0 |
| 3 | +-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 4 | + |
| 5 | +-- Veblen φ-hierarchy over Brouwer ordinals — RUNG 3 (slice 2) of the |
| 6 | +-- target-side climb toward ψ₀(Ω_ω) (BH order-type fidelity, open problem |
| 7 | +-- D-2026-06-14). 2026-06-18. |
| 8 | +-- |
| 9 | +-- ## This slice: φ₁ — the enumeration of ε-numbers |
| 10 | +-- |
| 11 | +-- The ε-numbers are the fixed points of ω-exponentiation (`ω^^ ε ≃ ε`). |
| 12 | +-- φ₁ enumerates them in increasing order: |
| 13 | +-- |
| 14 | +-- * `next-ε β` — the least ε-number STRICTLY above β: the supremum of |
| 15 | +-- the ω^^-tower started at `osuc β`. It is a fixed |
| 16 | +-- point by the same shifted-tower argument as ε₀, but |
| 17 | +-- its base index `osuc β` now uses the rung-3.1 |
| 18 | +-- inflationary law `ω^^-infl (osuc β)` (ε₀'s `oz` base |
| 19 | +-- only needed `ω^^-pos`). |
| 20 | +-- * `φ₁` — `φ₁ 0 = ε₀`, `φ₁ (α+1) = next-ε (φ₁ α)`, |
| 21 | +-- `φ₁ (lim f) = sup`. |
| 22 | +-- * `φ₁-ε-number`— EVERY value of φ₁ is an ε-number (bi-`≤′`). |
| 23 | +-- |
| 24 | +-- ## Honest scope (rung 3 of a long climb) |
| 25 | +-- |
| 26 | +-- φ₁ is the FIRST transfinite Veblen level (φ₀ = ω^^ itself). The |
| 27 | +-- Feferman–Schütte ordinal Γ₀ needs the full binary φ_α hierarchy + its |
| 28 | +-- diagonal fixed point; ψ₀(Ω_ω) sits far above even Γ₀ and additionally |
| 29 | +-- needs the ordinal-collapsing layer. Order-type fidelity (ψ₀(Ω_ω)) |
| 30 | +-- therefore REMAINS OPEN (D-2026-06-14); this slice neither reaches Γ₀ |
| 31 | +-- nor plugs `Fidelity.AtHeight`. bi-`≤′` (not `≡`) throughout, because |
| 32 | +-- Brouwer `olim`s of different ℕ-indexings of one supremum are not |
| 33 | +-- definitionally equal. |
| 34 | + |
| 35 | +module Ordinal.Brouwer.VeblenPhi where |
| 36 | + |
| 37 | +open import Data.Nat.Base using (ℕ; zero; suc) |
| 38 | +open import Data.Product.Base using (_×_; _,_; proj₁; proj₂) |
| 39 | + |
| 40 | +open import Ordinal.Brouwer using (Ord; oz; osuc; olim) |
| 41 | +open import Ordinal.Brouwer.Phase13 using (_≤′_; f-in-lim′; ≤′-refl; ≤′-trans) |
| 42 | +open import Ordinal.Brouwer.OrdinalExp using (ω^^_; ε₀; ε₀-ε-number; ω^^-infl) |
| 43 | + |
| 44 | +---------------------------------------------------------------------- |
| 45 | +-- next-ε : the least ε-number strictly above β |
| 46 | +---------------------------------------------------------------------- |
| 47 | + |
| 48 | +-- The ω^^-tower started at an arbitrary base. |
| 49 | +tower-from : Ord → ℕ → Ord |
| 50 | +tower-from x zero = x |
| 51 | +tower-from x (suc n) = ω^^ (tower-from x n) |
| 52 | + |
| 53 | +-- The supremum of the tower from `osuc β` (so it lies above β). |
| 54 | +next-ε : Ord → Ord |
| 55 | +next-ε β = olim (tower-from (osuc β)) |
| 56 | + |
| 57 | +-- `next-ε β` is a fixed point of ω^^ (bi-`≤′`). Mirrors the ε₀ proof: |
| 58 | +-- `ω^^ (next-ε β)` is definitionally the supremum of the tower shifted |
| 59 | +-- by one, so each direction is a one-step `f-in-lim′` — except the base |
| 60 | +-- index of the ≥ direction, which uses `ω^^-infl (osuc β)`. |
| 61 | +ω^^-next-ε-≤ : ∀ β → ω^^ (next-ε β) ≤′ next-ε β |
| 62 | +ω^^-next-ε-≤ β n = f-in-lim′ (tower-from (osuc β)) (suc n) |
| 63 | + |
| 64 | +next-ε-≤-ω^^ : ∀ β → next-ε β ≤′ ω^^ (next-ε β) |
| 65 | +next-ε-≤-ω^^ β zero = |
| 66 | + ≤′-trans {osuc β} {ω^^ (osuc β)} {olim (λ k → ω^^ (tower-from (osuc β) k))} |
| 67 | + (ω^^-infl (osuc β)) (f-in-lim′ (λ k → ω^^ (tower-from (osuc β) k)) 0) |
| 68 | +next-ε-≤-ω^^ β (suc m) = |
| 69 | + f-in-lim′ (λ k → ω^^ (tower-from (osuc β) k)) m |
| 70 | + |
| 71 | +-- `next-ε β` lies strictly above β (witness: tower index 0 = `osuc β`). |
| 72 | +β<next-ε : ∀ β → osuc β ≤′ next-ε β |
| 73 | +β<next-ε β = 0 , ≤′-refl {β} |
| 74 | + |
| 75 | +---------------------------------------------------------------------- |
| 76 | +-- φ₁ : the ε-number enumeration |
| 77 | +---------------------------------------------------------------------- |
| 78 | + |
| 79 | +φ₁ : Ord → Ord |
| 80 | +φ₁ oz = ε₀ |
| 81 | +φ₁ (osuc α) = next-ε (φ₁ α) |
| 82 | +φ₁ (olim f) = olim (λ n → φ₁ (f n)) |
| 83 | + |
| 84 | +-- Headline: every value of φ₁ is an ε-number (fixed point of ω^^), bi-`≤′`. |
| 85 | +-- oz reuses `ε₀-ε-number`; osuc is `next-ε`'s fixed-point pair for ANY |
| 86 | +-- base (no IH); the limit case lifts the per-branch IH through `olim` |
| 87 | +-- via `f-in-lim′` (pointwise `≤′` ⇒ `olim`-bounded). |
| 88 | +φ₁-ε-number : ∀ α → (ω^^ (φ₁ α) ≤′ φ₁ α) × (φ₁ α ≤′ ω^^ (φ₁ α)) |
| 89 | +φ₁-ε-number oz = ε₀-ε-number |
| 90 | +φ₁-ε-number (osuc α) = ω^^-next-ε-≤ (φ₁ α) , next-ε-≤-ω^^ (φ₁ α) |
| 91 | +φ₁-ε-number (olim f) = |
| 92 | + (λ n → ≤′-trans {ω^^ (φ₁ (f n))} {φ₁ (f n)} {olim (λ k → φ₁ (f k))} |
| 93 | + (proj₁ (φ₁-ε-number (f n))) (f-in-lim′ (λ k → φ₁ (f k)) n)) |
| 94 | + , (λ n → ≤′-trans {φ₁ (f n)} {ω^^ (φ₁ (f n))} {olim (λ k → ω^^ (φ₁ (f k)))} |
| 95 | + (proj₂ (φ₁-ε-number (f n))) (f-in-lim′ (λ k → ω^^ (φ₁ (f k))) n)) |
0 commit comments