|
| 1 | +{-# OPTIONS --safe --without-K #-} |
| 2 | + |
| 3 | +-- WF-1 skeleton: prove accessibility by term constructor, with |
| 4 | +-- predecessor inversion lemmas separated out. The two recursive bridge |
| 5 | +-- lemmas are intentionally left as the remaining obligations. |
| 6 | + |
| 7 | +module Ordinal.Buchholz.WellFounded where |
| 8 | + |
| 9 | +open import Data.Empty using (⊥; ⊥-elim) |
| 10 | +open import Relation.Nullary using (¬_) |
| 11 | +open import Induction.WellFounded using (Acc; acc; WellFounded; wf⇒asym) |
| 12 | + |
| 13 | +open import Ordinal.OmegaMarkers using (OmegaIndex) |
| 14 | +open import Ordinal.Buchholz.Syntax using (BT; bzero; bOmega; bplus; bpsi) |
| 15 | +open import Ordinal.Buchholz.Order using |
| 16 | + ( _<Ω_ |
| 17 | + ; _<ᵇ_ |
| 18 | + ; <ᵇ-0Ω |
| 19 | + ; <ᵇ-0+ |
| 20 | + ; <ᵇ-0ψ |
| 21 | + ; <ᵇ-Ω+ |
| 22 | + ; <ᵇ-Ωψ |
| 23 | + ; <ᵇ-+1 |
| 24 | + ; <ᵇ-ψν |
| 25 | + ) |
| 26 | + |
| 27 | +<ᵇ-inv-bzero : ∀ {x} → x <ᵇ bzero → ⊥ |
| 28 | +<ᵇ-inv-bzero () |
| 29 | + |
| 30 | +<ᵇ-pred-bzero : ∀ {x} → x <ᵇ bzero → Acc _<ᵇ_ x |
| 31 | +<ᵇ-pred-bzero x<0 = ⊥-elim (<ᵇ-inv-bzero x<0) |
| 32 | + |
| 33 | +<ᵇ-rec-+1 : ∀ {α β γ} → α <ᵇ β → Acc _<ᵇ_ (bplus α γ) |
| 34 | +<ᵇ-rec-+1 α<β = {!!} |
| 35 | + |
| 36 | +<ᵇ-rec-ψν : ∀ {μ ν α} → μ <Ω ν → Acc _<ᵇ_ (bpsi μ α) |
| 37 | +<ᵇ-rec-ψν μ<ν = {!!} |
| 38 | + |
| 39 | +<ᵇ-acc-bzero : Acc _<ᵇ_ bzero |
| 40 | +<ᵇ-acc-bzero = acc <ᵇ-pred-bzero |
| 41 | + |
| 42 | +<ᵇ-pred-bOmega : ∀ {μ x} → x <ᵇ bOmega μ → Acc _<ᵇ_ x |
| 43 | +<ᵇ-pred-bOmega <ᵇ-0Ω = <ᵇ-acc-bzero |
| 44 | + |
| 45 | +<ᵇ-acc-bOmega : (μ : OmegaIndex) → Acc _<ᵇ_ (bOmega μ) |
| 46 | +<ᵇ-acc-bOmega μ = acc <ᵇ-pred-bOmega |
| 47 | + |
| 48 | +<ᵇ-pred-bplus : ∀ {α β x} → x <ᵇ bplus α β → Acc _<ᵇ_ x |
| 49 | +<ᵇ-pred-bplus <ᵇ-0+ = <ᵇ-acc-bzero |
| 50 | +<ᵇ-pred-bplus (<ᵇ-Ω+ {κ = κ}) = <ᵇ-acc-bOmega κ |
| 51 | +<ᵇ-pred-bplus (<ᵇ-+1 α<β) = <ᵇ-rec-+1 α<β |
| 52 | + |
| 53 | +<ᵇ-pred-bpsi : ∀ {μ α x} → x <ᵇ bpsi μ α → Acc _<ᵇ_ x |
| 54 | +<ᵇ-pred-bpsi <ᵇ-0ψ = <ᵇ-acc-bzero |
| 55 | +<ᵇ-pred-bpsi (<ᵇ-Ωψ {κ = κ}) = <ᵇ-acc-bOmega κ |
| 56 | +<ᵇ-pred-bpsi (<ᵇ-ψν μ<ν) = <ᵇ-rec-ψν μ<ν |
| 57 | + |
| 58 | +<ᵇ-acc-bplus : (α β : BT) → Acc _<ᵇ_ (bplus α β) |
| 59 | +<ᵇ-acc-bplus α β = acc <ᵇ-pred-bplus |
| 60 | + |
| 61 | +<ᵇ-acc-bpsi : (μ : OmegaIndex) (α : BT) → Acc _<ᵇ_ (bpsi μ α) |
| 62 | +<ᵇ-acc-bpsi μ α = acc <ᵇ-pred-bpsi |
| 63 | + |
| 64 | +wf-<ᵇ : WellFounded _<ᵇ_ |
| 65 | +wf-<ᵇ bzero = <ᵇ-acc-bzero |
| 66 | +wf-<ᵇ (bOmega μ) = <ᵇ-acc-bOmega μ |
| 67 | +wf-<ᵇ (bplus α β) = <ᵇ-acc-bplus α β |
| 68 | +wf-<ᵇ (bpsi μ α) = <ᵇ-acc-bpsi μ α |
| 69 | + |
| 70 | +<ᵇ-irreflexive : ∀ {x} → ¬ (x <ᵇ x) |
| 71 | +<ᵇ-irreflexive {x} x<x = wf⇒asym wf-<ᵇ x<x x<x |
0 commit comments