File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -24,5 +24,9 @@ open import Ordinal.Base
2424open import Ordinal.Closure
2525open import Ordinal.CNF
2626open import Ordinal.PsiSimple
27+ open import Ordinal.OmegaMarkers
28+ open import Ordinal.Buchholz.Syntax
29+ open import Ordinal.Buchholz.Closure
30+ open import Ordinal.Buchholz.Psi
2731
2832open import Smoke
Original file line number Diff line number Diff line change 1+ {-# OPTIONS --safe --without-K #-}
2+
3+ -- Stage S1/S2 scaffolding for docs/buchholz-plan.adoc.
4+ --
5+ -- `Cν ν m t` is the ν-indexed closure family at stage `m` for term
6+ -- `t`. This is the Buchholz-shaped generalisation of Ordinal.Closure:
7+ -- closure is still staged by ℕ while carrying an explicit Ω-index
8+ -- parameter `ν` for future side conditions.
9+
10+ module Ordinal.Buchholz.Closure where
11+
12+ open import Data.Nat.Base using (ℕ; _≤_; _<_)
13+ open import Data.Nat.Properties using (≤-trans)
14+
15+ open import Ordinal.OmegaMarkers using (OmegaIndex)
16+ open import Ordinal.Buchholz.Syntax using (BT; bzero; bOmega; bplus; bpsi)
17+
18+ data Cν (ν : OmegaIndex) : ℕ → BT → Set where
19+ cν-zero : ∀ {m} → Cν ν m bzero
20+ cν-omega : ∀ {m μ} → Cν ν m (bOmega μ)
21+ cν-plus : ∀ {m x y} → Cν ν m x → Cν ν m y → Cν ν m (bplus x y)
22+ cν-psi : ∀ {m k μ β} → k < m → Cν ν k β → Cν ν m (bpsi μ β)
23+
24+ -- Headline E5 structural lemma: raising the stage keeps derivability.
25+
26+ Cν-monotone : ∀ {ν m n t} → m ≤ n → Cν ν m t → Cν ν n t
27+ Cν-monotone _ cν-zero = cν-zero
28+ Cν-monotone _ cν-omega = cν-omega
29+ Cν-monotone m≤n (cν-plus cx cy) = cν-plus (Cν-monotone m≤n cx) (Cν-monotone m≤n cy)
30+ Cν-monotone m≤n (cν-psi k<m ck) = cν-psi (≤-trans k<m m≤n) ck
Original file line number Diff line number Diff line change 1+ {-# OPTIONS --safe --without-K #-}
2+
3+ -- Stage S1/S2 scaffolding for docs/buchholz-plan.adoc.
4+ --
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.
8+
9+ module Ordinal.Buchholz.Psi where
10+
11+ open import Data.Nat.Base using (_≤_; z≤n; s≤s)
12+ open import Data.Nat.Properties using (≤-trans)
13+ open import Relation.Nullary using (¬_)
14+
15+ open import Ordinal.OmegaMarkers using (OmegaIndex)
16+ open import Ordinal.Buchholz.Syntax using (BT; bpsi)
17+ open import Ordinal.Buchholz.Closure using (Cν; cν-psi)
18+
19+ psiν-notin-Cν : ∀ {ν μ β} → ¬ Cν ν 0 (bpsi μ β)
20+ psiν-notin-Cν (cν-psi () _)
21+
22+ -- Useful companion: any derivation of `ψ_μ β` lives at stage at least 1.
23+
24+ psiν-stage-lb : ∀ {ν μ β m} → Cν ν m (bpsi μ β) → 1 ≤ m
25+ psiν-stage-lb (cν-psi k<m _) = ≤-trans (s≤s z≤n) k<m
Original file line number Diff line number Diff line change 1+ {-# OPTIONS --safe --without-K #-}
2+
3+ -- Stage S1/S2 scaffolding for docs/buchholz-plan.adoc.
4+ --
5+ -- Pure Buchholz-style term syntax over Ω-indices. This module is only
6+ -- structural syntax; ordering, normal forms, and semantics are staged
7+ -- in later milestones.
8+
9+ module Ordinal.Buchholz.Syntax where
10+
11+ open import Ordinal.OmegaMarkers using (OmegaIndex; Omega0)
12+
13+ data BT : Set where
14+ bzero : BT
15+ bOmega : OmegaIndex → BT
16+ bplus : BT → BT → BT
17+ bpsi : OmegaIndex → BT → BT
18+
19+ -- The common ψ₀ abbreviation.
20+
21+ psi0 : BT → BT
22+ psi0 α = bpsi Omega0 α
Original file line number Diff line number Diff line change 1+ {-# OPTIONS --safe --without-K #-}
2+
3+ -- Stage S1/S2 scaffolding for docs/buchholz-plan.adoc.
4+ --
5+ -- Formal Ω-index markers only; no ordinal semantics is claimed here.
6+ -- Finite markers are represented by `fin n`, and `ω` is the first
7+ -- limit marker used later by Buchholz syntax.
8+
9+ module Ordinal.OmegaMarkers where
10+
11+ open import Data.Nat.Base using (ℕ; zero; suc)
12+
13+ data OmegaIndex : Set where
14+ fin : ℕ → OmegaIndex
15+ ω : OmegaIndex
16+
17+ Omega0 : OmegaIndex
18+ Omega0 = fin zero
19+
20+ Omega1 : OmegaIndex
21+ Omega1 = fin (suc zero)
22+
23+ Omegaω : OmegaIndex
24+ Omegaω = ω
Original file line number Diff line number Diff line change @@ -97,3 +97,34 @@ open import Ordinal.PsiSimple using
9797 ( psi-notin-C
9898 ; psi-least
9999 )
100+
101+ open import Ordinal.OmegaMarkers using
102+ ( OmegaIndex
103+ ; fin
104+ ; ω
105+ ; Omega0
106+ ; Omega1
107+ ; Omegaω
108+ )
109+
110+ open import Ordinal.Buchholz.Syntax using
111+ ( BT
112+ ; bzero
113+ ; bOmega
114+ ; bplus
115+ ; bpsi
116+ ; psi0
117+ )
118+
119+ open import Ordinal.Buchholz.Closure using
120+ ( Cν
121+ ; cν-zero
122+ ; cν-omega
123+ ; cν-plus
124+ ; cν-psi
125+ ; Cν-monotone
126+ )
127+
128+ open import Ordinal.Buchholz.Psi using
129+ ( psiν-notin-Cν
130+ )
You can’t perform that action at this time.
0 commit comments