Skip to content

Commit aede1fc

Browse files
committed
agda: add transitivity lemmas for comparison target
1 parent 877b31e commit aede1fc

3 files changed

Lines changed: 35 additions & 1 deletion

File tree

docs/buchholz-plan.adoc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,9 @@ Current Veblen-route status after this update:
148148
Buchholz order.
149149
* `VeblenIdentityModel` and `VeblenProjectionMeasure` remain in-tree
150150
as explanatory scaffolds, not as live proof gaps.
151+
* `VeblenComparisonTarget` now also exposes target-side transitivity
152+
lemmas (`≺P-trans`, `≺C-trans`) as preparation for any later
153+
recursive/shared-binder internalization of the full order.
151154
* So there are two distinct follow-ups:
152155
** editorial cleanup: decide which older intermediate scaffolds stay
153156
as explanatory stages and which can be demoted

proofs/agda/Ordinal/Buchholz/Smoke.agda

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,8 @@ open import Ordinal.Buchholz.VeblenComparisonTarget using
151151
; ≈ᶜ-+
152152
; ≈ᶜ-ψ
153153
; ≈ᶜ-ψ+
154+
; ≺P-trans
155+
; ≺C-trans
154156
; by-first
155157
; by-second
156158
; ≺C-wf

proofs/agda/Ordinal/Buchholz/VeblenComparisonTarget.agda

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ open import Function.Base using (_on_)
1414
open import Induction.WellFounded using (WellFounded; module Subrelation)
1515
open import Relation.Binary.Core using (Rel; _⇒_)
1616
open import Relation.Binary.Construct.On as On using (wellFounded)
17-
open import Relation.Binary.Definitions using (_Respectsʳ_)
17+
open import Relation.Binary.Definitions using (_Respectsʳ_; Transitive)
1818
open import Relation.Binary.PropositionalEquality.Core using (_≡_; refl)
1919

2020
open import Ordinal.OmegaMarkers using (OmegaIndex)
@@ -27,8 +27,11 @@ open import Ordinal.Buchholz.Order using
2727
; <ᵇ-Ωψ
2828
; <ᵇ-ψ+
2929
; <ᵇ-ψΩ
30+
; <ᵇ-ψΩ≤
3031
; <ᵇ-+1
32+
; <ᵇ-+Ω
3133
; <ᵇ-+ψ
34+
; <ᵇ-trans
3235
; <ᵇ-inv-+Ω
3336
; <ᵇ-inv-+ψ
3437
)
@@ -114,6 +117,19 @@ payload-embed (pPlusPlus y<z) = inj₂ (refl , y<z)
114117
<ᵇ-respʳ-≈ᶜ ≈ᶜ-ψ (<ᵇ-+ψ x<ψ) = <ᵇ-+ψ (<ᵇ-respʳ-≈ᶜ ≈ᶜ-ψ x<ψ)
115118
<ᵇ-respʳ-≈ᶜ (≈ᶜ-ψ+ ψ≈x) x<ψ = <ᵇ-lift-plus (<ᵇ-respʳ-≈ᶜ ψ≈x x<ψ)
116119

120+
<ᵇ-chain-≈ᶜ : {x y z} x ≈ᶜ y y <ᵇ z x <ᵇ z
121+
<ᵇ-chain-≈ᶜ ≈ᶜ-zero y<z = y<z
122+
<ᵇ-chain-≈ᶜ ≈ᶜ-Ω y<z = y<z
123+
<ᵇ-chain-≈ᶜ ≈ᶜ-+ (<ᵇ-+1 x<y) = <ᵇ-+1 x<y
124+
<ᵇ-chain-≈ᶜ ≈ᶜ-+ (<ᵇ-+Ω x<Ω) = <ᵇ-+Ω x<Ω
125+
<ᵇ-chain-≈ᶜ ≈ᶜ-+ (<ᵇ-+ψ x<ψ) = <ᵇ-+ψ x<ψ
126+
<ᵇ-chain-≈ᶜ ≈ᶜ-ψ (<ᵇ-ψΩ μ<ν) = <ᵇ-ψΩ μ<ν
127+
<ᵇ-chain-≈ᶜ ≈ᶜ-ψ (<ᵇ-ψΩ≤ ν≤μ) = <ᵇ-ψΩ≤ ν≤μ
128+
<ᵇ-chain-≈ᶜ ≈ᶜ-ψ (<ᵇ-ψ+ ψ<z) = <ᵇ-ψ+ (<ᵇ-chain-≈ᶜ ≈ᶜ-ψ ψ<z)
129+
<ᵇ-chain-≈ᶜ (≈ᶜ-ψ+ ψ≈x) (<ᵇ-+1 x<y) = <ᵇ-lift-plus (<ᵇ-chain-≈ᶜ ψ≈x x<y)
130+
<ᵇ-chain-≈ᶜ (≈ᶜ-ψ+ ψ≈x) (<ᵇ-+Ω x<Ω) = <ᵇ-chain-≈ᶜ ψ≈x x<Ω
131+
<ᵇ-chain-≈ᶜ (≈ᶜ-ψ+ ψ≈x) (<ᵇ-+ψ x<ψ) = <ᵇ-chain-≈ᶜ ψ≈x x<ψ
132+
117133
_≺C_ : Rel ComparisonMeasure _
118134
_≺C_ = ×-Lex _≈ᶜ_ _<ᵇ_ _≺P_
119135

@@ -132,5 +148,18 @@ by-payload-ψ+ = pPsiPlus
132148
by-payload-++ : {a y z} y <ᵇ z payload-plus a y ≺P payload-plus a z
133149
by-payload-++ = pPlusPlus
134150

151+
≺P-trans : Transitive _≺P_
152+
≺P-trans (pPsiPsi α<β) (pPsiPsi β<γ) = pPsiPsi (<ᵇ-trans α<β β<γ)
153+
≺P-trans (pPsiPsi α<β) (pPsiPlus β<γ) = pPsiPlus (<ᵇ-trans α<β β<γ)
154+
≺P-trans (pPsiPlus α<β) (pPlusPlus _) = pPsiPlus α<β
155+
≺P-trans (pPlusPlus y<z) (pPlusPlus z<w) = pPlusPlus (<ᵇ-trans y<z z<w)
156+
157+
≺C-trans : Transitive _≺C_
158+
≺C-trans (inj₁ x<y) (inj₁ y<z) = inj₁ (<ᵇ-trans x<y y<z)
159+
≺C-trans (inj₁ x<y) (inj₂ (y≈z , py<qz)) = inj₁ (<ᵇ-respʳ-≈ᶜ y≈z x<y)
160+
≺C-trans (inj₂ (x≈y , px<qy)) (inj₁ y<z) = inj₁ (<ᵇ-chain-≈ᶜ x≈y y<z)
161+
≺C-trans (inj₂ (x≈y , px<qy)) (inj₂ (y≈z , qy<rz)) =
162+
inj₂ (≈ᶜ-trans x≈y y≈z , ≺P-trans px<qy qy<rz)
163+
135164
≺C-wf : WellFounded _≺C_
136165
≺C-wf = ×-wellFounded' ≈ᶜ-trans <ᵇ-respʳ-≈ᶜ wf-<ᵇ ≺P-wf

0 commit comments

Comments
 (0)