|
| 1 | +{-# OPTIONS --safe --without-K #-} |
| 2 | + |
| 3 | +-- Direct-order candidate sitting between the current Buchholz core and |
| 4 | +-- the comparison-induced wrapper `_<ᵇ⁺_`. |
| 5 | +-- |
| 6 | +-- This relation keeps the current core packaged as one constructor and |
| 7 | +-- adds the two historically blocked same-binder shapes as explicit |
| 8 | +-- constructors whose premises are still stated in the current core. |
| 9 | +-- |
| 10 | +-- It is not yet the final direct internalization of the full intended |
| 11 | +-- order. Its purpose is narrower: give those shapes a direct inductive |
| 12 | +-- surface and embed that surface into the already closed wrapper. |
| 13 | + |
| 14 | +module Ordinal.Buchholz.SurfaceOrder where |
| 15 | + |
| 16 | +open import Relation.Nullary using (¬_) |
| 17 | +open import Relation.Binary.Core using (_⇒_) |
| 18 | +open import Induction.WellFounded using (WellFounded; wf⇒asym; module Subrelation) |
| 19 | + |
| 20 | +open import Ordinal.Buchholz.Syntax using (BT; bplus; bpsi) |
| 21 | +open import Ordinal.Buchholz.Order using (_<ᵇ_) |
| 22 | +open import Ordinal.Buchholz.ExtendedOrder using (_<ᵇ⁺_; <ᵇ⇒<ᵇ⁺; <ᵇ⁺-ψα; <ᵇ⁺-+2; wf-<ᵇ⁺) |
| 23 | + |
| 24 | +infix 4 _<ᵇˢ_ |
| 25 | + |
| 26 | +data _<ᵇˢ_ : BT → BT → Set where |
| 27 | + <ᵇˢ-core : ∀ {x y} → x <ᵇ y → x <ᵇˢ y |
| 28 | + <ᵇˢ-ψα : ∀ {ν α β} → α <ᵇ β → bpsi ν α <ᵇˢ bpsi ν β |
| 29 | + <ᵇˢ-+2 : ∀ {x y₂ z₂} → y₂ <ᵇ z₂ → bplus x y₂ <ᵇˢ bplus x z₂ |
| 30 | + |
| 31 | +<ᵇˢ⇒<ᵇ⁺ : _<ᵇˢ_ ⇒ _<ᵇ⁺_ |
| 32 | +<ᵇˢ⇒<ᵇ⁺ (<ᵇˢ-core x<y) = <ᵇ⇒<ᵇ⁺ x<y |
| 33 | +<ᵇˢ⇒<ᵇ⁺ (<ᵇˢ-ψα α<β) = <ᵇ⁺-ψα α<β |
| 34 | +<ᵇˢ⇒<ᵇ⁺ (<ᵇˢ-+2 y<z) = <ᵇ⁺-+2 y<z |
| 35 | + |
| 36 | +wf-<ᵇˢ : WellFounded _<ᵇˢ_ |
| 37 | +wf-<ᵇˢ = |
| 38 | + let module SR = Subrelation <ᵇˢ⇒<ᵇ⁺ |
| 39 | + in SR.wellFounded wf-<ᵇ⁺ |
| 40 | + |
| 41 | +<ᵇˢ-irreflexive : ∀ {x} → ¬ (x <ᵇˢ x) |
| 42 | +<ᵇˢ-irreflexive {x} x<x = wf⇒asym wf-<ᵇˢ x<x x<x |
0 commit comments