comparison ordinal-definable.agda @ 44:fcac01485f32

od→lv : {n : Level} → OD {n} → Nat does not worked
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 25 May 2019 04:12:30 +0900
parents 0d9b9db14361
children 33860eb44e47
comparison
equal deleted inserted replaced
43:0d9b9db14361 44:fcac01485f32
22 def : (x : Ordinal {n} ) → Set n 22 def : (x : Ordinal {n} ) → Set n
23 23
24 open OD 24 open OD
25 open import Data.Unit 25 open import Data.Unit
26 26
27 open Ordinal
28
27 postulate 29 postulate
28 od→ord : {n : Level} → OD {n} → Ordinal {n} 30 od→lv : {n : Level} → OD {n} → Nat
31 od→d : {n : Level} → (x : OD {n}) → OrdinalD {n} (od→lv x )
29 ord→od : {n : Level} → Ordinal {n} → OD {n} 32 ord→od : {n : Level} → Ordinal {n} → OD {n}
33
34 od→ord : {n : Level} → OD {n} → Ordinal {n}
35 od→ord x = record { lv = od→lv x ; ord = od→d x }
30 36
31 _∋_ : { n : Level } → ( a x : OD {n} ) → Set n 37 _∋_ : { n : Level } → ( a x : OD {n} ) → Set n
32 _∋_ {n} a x = def a ( od→ord x ) 38 _∋_ {n} a x = def a ( od→ord x )
33 39
34 _c<_ : { n : Level } → ( a x : OD {n} ) → Set n 40 _c<_ : { n : Level } → ( a x : OD {n} ) → Set n
124 ominimal {n} record { lv = Zero ; ord = (OSuc .0 ord) } (case2 Φ<) = record { mino = record { lv = Zero ; ord = Φ 0 } ; min<x = case2 Φ< } 130 ominimal {n} record { lv = Zero ; ord = (OSuc .0 ord) } (case2 Φ<) = record { mino = record { lv = Zero ; ord = Φ 0 } ; min<x = case2 Φ< }
125 ominimal {n} record { lv = (Suc lv) ; ord = (Φ .(Suc lv)) } (case1 (s≤s x)) = record { mino = record { lv = lv ; ord = Φ lv } ; min<x = case1 (s≤s ≤-refl)} 131 ominimal {n} record { lv = (Suc lv) ; ord = (Φ .(Suc lv)) } (case1 (s≤s x)) = record { mino = record { lv = lv ; ord = Φ lv } ; min<x = case1 (s≤s ≤-refl)}
126 ominimal {n} record { lv = (Suc lv) ; ord = (Φ .(Suc lv)) } (case2 ()) 132 ominimal {n} record { lv = (Suc lv) ; ord = (Φ .(Suc lv)) } (case2 ())
127 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case1 (s≤s x)) = record { mino = record { lv = (Suc lv) ; ord = ord } ; min<x = case2 s<refl} 133 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case1 (s≤s x)) = record { mino = record { lv = (Suc lv) ; ord = ord } ; min<x = case2 s<refl}
128 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case2 ()) 134 ominimal {n} record { lv = (Suc lv) ; ord = (OSuc .(Suc lv) ord) } (case2 ())
129 ominimal {n} record { lv = (Suc lv) ; ord = (ℵ .lv) } (case1 (s≤s z≤n)) = record { mino = record { lv = Suc lv ; ord = Φ (Suc lv) } ; min<x = case2 ℵΦ< } 135 ominimal {n} record { lv = (Suc lx) ; ord = (ℵ .lx) } (case1 (s≤s z≤n)) = record { mino = record { lv = Suc lx ; ord = Φ (Suc lx) } ; min<x = case2 ℵΦ< }
130 ominimal {n} record { lv = (Suc lv) ; ord = (ℵ .lv) } (case2 ()) 136 ominimal {n} record { lv = (Suc lx) ; ord = (ℵ .lx) } (case2 ())
131 137
132 ∅4 : {n : Level} → ( x : OD {n} ) → x ≡ od∅ {n} → od→ord x ≡ o∅ {n} 138 ∅4 : {n : Level} → ( x : OD {n} ) → x ≡ od∅ {n} → od→ord x ≡ o∅ {n}
133 ∅4 {n} x refl = ∅3 lemma1 where 139 ∅4 {n} x refl = ∅3 lemma1 where
134 lemma0 : (y : Ordinal {n}) → def ( od∅ {n} ) y → ⊥ 140 lemma0 : (y : Ordinal {n}) → def ( od∅ {n} ) y → ⊥
135 lemma0 y (lift ()) 141 lemma0 y (lift ())
154 ∅8 {n} x (case2 ()) 160 ∅8 {n} x (case2 ())
155 161
156 -- ∅10 : {n : Level} → (x : OD {n} ) → ¬ ( ( y : OD {n} ) → Lift (suc n) ( x ∋ y)) → x ≡ od∅ 162 -- ∅10 : {n : Level} → (x : OD {n} ) → ¬ ( ( y : OD {n} ) → Lift (suc n) ( x ∋ y)) → x ≡ od∅
157 -- ∅10 {n} x not = ? 163 -- ∅10 {n} x not = ?
158 164
159 open Ordinal
160
161 -- ∋-subst : {n : Level} {X Y x y : OD {suc n} } → X ≡ x → Y ≡ y → X ∋ Y → x ∋ y 165 -- ∋-subst : {n : Level} {X Y x y : OD {suc n} } → X ≡ x → Y ≡ y → X ∋ Y → x ∋ y
162 -- ∋-subst refl refl x = x 166 -- ∋-subst refl refl x = x
163 167
164 -- ∅77 : {n : Level} → (x : OD {suc n} ) → ¬ ( ord→od (o∅ {suc n}) ∋ x ) 168 -- ∅77 : {n : Level} → (x : OD {suc n} ) → ¬ ( ord→od (o∅ {suc n}) ∋ x )
165 -- ∅77 {n} x lt = {!!} where 169 -- ∅77 {n} x lt = {!!} where
166 170
167 ∅7' : {n : Level} → ord→od (o∅ {n}) ≡ od∅ {n} 171 ∅7' : {n : Level} → ord→od (o∅ {n}) ≡ od∅ {n}
168 ∅7' {n} = cong ( λ k → record { def = k }) ( ∅-base-def ) where 172 ∅7' {n} = cong ( λ k → record { def = k }) ( ∅-base-def ) where
173
174 open import Relation.Binary.HeterogeneousEquality using (_≅_;refl)
175
176
177 ∅7'' : {n : Level} → ( x : OD {n} ) → od→lv {n} x ≡ Zero → od→d {n} x ≅ Φ {n} Zero → x == od∅ {n}
178 ∅7'' {n} x eq eq1 = {!!}
169 179
170 ∅7 : {n : Level} → ( x : OD {n} ) → od→ord x ≡ o∅ {n} → x == od∅ {n} 180 ∅7 : {n : Level} → ( x : OD {n} ) → od→ord x ≡ o∅ {n} → x == od∅ {n}
171 ∅7 {n} x eq = record { eq→ = e1 ; eq← = e2 } where 181 ∅7 {n} x eq = record { eq→ = e1 ; eq← = e2 } where
172 e0 : {y : Ordinal {n}} → y o< o∅ {n} → def od∅ y 182 e0 : {y : Ordinal {n}} → y o< o∅ {n} → def od∅ y
173 e0 {y} (case1 ()) 183 e0 {y} (case1 ())
174 e0 {y} (case2 ()) 184 e0 {y} (case2 ())
175 e1 : {y : Ordinal {n}} → def x y → def od∅ y 185 e1 : {y : Ordinal {n}} → def x y → def od∅ y
176 e1 {y} y<x = e0 ( o<-subst ( c<→o< {n} {x} y<x ) refl {!!} ) 186 e1 {y} y<x with c<→o< {n} {x} y<x
187 e1 {y} y<x | case1 lt = {!!}
188 e1 {y} y<x | case2 lt = {!!}
177 e2 : {y : Ordinal {n}} → def od∅ y → def x y 189 e2 : {y : Ordinal {n}} → def od∅ y → def x y
178 e2 {y} (lift ()) 190 e2 {y} (lift ())
179 191
180 ∅9 : {n : Level} → (x : OD {n} ) → ¬ x == od∅ → o∅ o< od→ord x 192 ∅9 : {n : Level} → (x : OD {n} ) → ¬ x == od∅ → o∅ o< od→ord x
181 ∅9 x not = ∅5 ( od→ord x) lemma where 193 ∅9 x not = ∅5 ( od→ord x) lemma where
182 lemma : ¬ od→ord x ≡ o∅ 194 lemma : ¬ od→ord x ≡ o∅
183 lemma eq = not ( ∅7 x eq ) 195 lemma eq = not ( ∅7 x eq )
196
184 197
185 OD→ZF : {n : Level} → ZF {suc n} {n} 198 OD→ZF : {n : Level} → ZF {suc n} {n}
186 OD→ZF {n} = record { 199 OD→ZF {n} = record {
187 ZFSet = OD {n} 200 ZFSet = OD {n}
188 ; _∋_ = _∋_ 201 ; _∋_ = _∋_