|
| 1 | +{-# OPTIONS --safe --without-K #-} |
| 2 | + |
| 3 | +-- Stage S0 / Milestone E4 of docs/buchholz-plan.adoc. |
| 4 | +-- |
| 5 | +-- Pedagogical least-gap shape for the toy ψ constructor over the |
| 6 | +-- ℕ-staged closure family `C` from Ordinal.Closure. |
| 7 | +-- |
| 8 | +-- `psi-notin-C` captures the exclusion side at stage 0: |
| 9 | +-- no ψ-term is generable at stage 0 because `c-psi` requires an |
| 10 | +-- earlier stage `k < m`. |
| 11 | +-- |
| 12 | +-- `psi-least` captures the minimal-stage side: |
| 13 | +-- whenever `psi β` is generable at stage `m`, we must have `1 ≤ m`. |
| 14 | +-- Together with `psi-at-1` (from a stage-0 witness for β), this gives |
| 15 | +-- the expected "first appears at stage 1" pattern. |
| 16 | + |
| 17 | +module Ordinal.PsiSimple where |
| 18 | + |
| 19 | +open import Data.Nat.Base using (ℕ; _≤_; z≤n; s≤s) |
| 20 | +open import Data.Nat.Properties using (≤-trans) |
| 21 | +open import Relation.Nullary using (¬_) |
| 22 | + |
| 23 | +open import Ordinal.Base using (OT; psi) |
| 24 | +open import Ordinal.Closure using (C; c-psi) |
| 25 | + |
| 26 | +-- Exclusion side: no ψ-term can be in stage 0. |
| 27 | + |
| 28 | +psi-notin-C : ∀ {β} → ¬ C 0 (psi β) |
| 29 | +psi-notin-C (c-psi () _) |
| 30 | + |
| 31 | +-- Construction side at the first non-zero stage, assuming β is already |
| 32 | +-- in stage 0. |
| 33 | + |
| 34 | +psi-at-1 : ∀ {β} → C 0 β → C 1 (psi β) |
| 35 | +psi-at-1 cβ = c-psi (s≤s z≤n) cβ |
| 36 | + |
| 37 | +-- Minimality side: any stage that contains `psi β` is at least 1. |
| 38 | + |
| 39 | +psi-least : ∀ {β m} → C 0 β → C m (psi β) → 1 ≤ m |
| 40 | +psi-least _ (c-psi k<m _) = ≤-trans (s≤s z≤n) k<m |
0 commit comments