comparison ordinal.agda @ 423:9984cdd88da3

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 01 Aug 2020 18:05:23 +0900
parents 44a484f17f26
children cc7909f86841
comparison
equal deleted inserted replaced
422:44a484f17f26 423:9984cdd88da3
1 open import Level 1 open import Level
2 module ordinal where 2 module ordinal where
3 3
4 open import zf 4 open import logic
5 5 open import nat
6 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ ) 6 open import Data.Nat renaming ( zero to Zero ; suc to Suc ; ℕ to Nat ; _⊔_ to _n⊔_ )
7 open import Data.Empty 7 open import Data.Empty
8 open import Relation.Binary.PropositionalEquality 8 open import Relation.Binary.PropositionalEquality
9 open import logic 9 open import Data.Nat.Properties
10 open import nat 10 open import Relation.Nullary
11 open import Relation.Binary.Core
12
11 13
12 data OrdinalD {n : Level} : (lv : Nat) → Set n where 14 data OrdinalD {n : Level} : (lv : Nat) → Set n where
13 Φ : (lv : Nat) → OrdinalD lv 15 Φ : (lv : Nat) → OrdinalD lv
14 OSuc : (lv : Nat) → OrdinalD {n} lv → OrdinalD lv 16 OSuc : (lv : Nat) → OrdinalD {n} lv → OrdinalD lv
15 17
37 trio<> {n} {lx} {.(OSuc lx _)} {.(Φ lx)} Φ< () 39 trio<> {n} {lx} {.(OSuc lx _)} {.(Φ lx)} Φ< ()
38 40
39 d<→lv : {n : Level} {x y : Ordinal {n}} → ord x d< ord y → lv x ≡ lv y 41 d<→lv : {n : Level} {x y : Ordinal {n}} → ord x d< ord y → lv x ≡ lv y
40 d<→lv Φ< = refl 42 d<→lv Φ< = refl
41 d<→lv (s< lt) = refl 43 d<→lv (s< lt) = refl
42
43 o<-subst : {n : Level } {Z X z x : Ordinal {n}} → Z o< X → Z ≡ z → X ≡ x → z o< x
44 o<-subst df refl refl = df
45
46 open import Data.Nat.Properties
47 open import Data.Unit using ( ⊤ )
48 open import Relation.Nullary
49
50 open import Relation.Binary
51 open import Relation.Binary.Core
52 44
53 o∅ : {n : Level} → Ordinal {n} 45 o∅ : {n : Level} → Ordinal {n}
54 o∅ = record { lv = Zero ; ord = Φ Zero } 46 o∅ = record { lv = Zero ; ord = Φ Zero }
55 47
56 open import Relation.Binary.HeterogeneousEquality using (_≅_;refl) 48 open import Relation.Binary.HeterogeneousEquality using (_≅_;refl)
205 197
206 open import Ordinals 198 open import Ordinals
207 199
208 C-Ordinal : {n : Level} → Ordinals {suc n} 200 C-Ordinal : {n : Level} → Ordinals {suc n}
209 C-Ordinal {n} = record { 201 C-Ordinal {n} = record {
210 ord = Ordinal {suc n} 202 Ordinal = Ordinal {suc n}
211 ; o∅ = o∅ 203 ; o∅ = o∅
212 ; osuc = osuc 204 ; osuc = osuc
213 ; _o<_ = _o<_ 205 ; _o<_ = _o<_
214 ; next = next 206 ; next = next
215 ; isOrdinal = record { 207 ; isOrdinal = record {
216 Otrans = ordtrans 208 ordtrans = ordtrans
217 ; OTri = trio< 209 ; trio< = trio<
218 ; ¬x<0 = ¬x<0 210 ; ¬x<0 = ¬x<0
219 ; <-osuc = <-osuc 211 ; <-osuc = <-osuc
220 ; osuc-≡< = osuc-≡< 212 ; osuc-≡< = osuc-≡<
221 ; TransFinite = TransFinite1 213 ; TransFinite = TransFinite1
222 ; TransFinite1 = TransFinite2 214 ; TransFinite1 = TransFinite2