Skip to content

Commit b721472

Browse files
committed
Scaffold WF-1 accessibility proof for Buchholz core
1 parent 8fd2d50 commit b721472

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
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

Comments
 (0)