comparison ordinal-definable.agda @ 80:461690d60d07

remove ∅-base-def
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 03 Jun 2019 12:29:33 +0900
parents c07c548b2ac1
children 96c932d0145d
comparison
equal deleted inserted replaced
79:c07c548b2ac1 80:461690d60d07
66 o<→c< : {n : Level} {x y : Ordinal {n} } → x o< y → ord→od x c< ord→od y 66 o<→c< : {n : Level} {x y : Ordinal {n} } → x o< y → ord→od x c< ord→od y
67 oiso : {n : Level} {x : OD {n}} → ord→od ( od→ord x ) ≡ x 67 oiso : {n : Level} {x : OD {n}} → ord→od ( od→ord x ) ≡ x
68 diso : {n : Level} {x : Ordinal {n}} → od→ord ( ord→od x ) ≡ x 68 diso : {n : Level} {x : Ordinal {n}} → od→ord ( ord→od x ) ≡ x
69 sup-od : {n : Level } → ( OD {n} → OD {n}) → OD {n} 69 sup-od : {n : Level } → ( OD {n} → OD {n}) → OD {n}
70 sup-c< : {n : Level } → ( ψ : OD {n} → OD {n}) → ∀ {x : OD {n}} → ψ x c< sup-od ψ 70 sup-c< : {n : Level } → ( ψ : OD {n} → OD {n}) → ∀ {x : OD {n}} → ψ x c< sup-od ψ
71 ∅-base-def : {n : Level} → def ( ord→od (o∅ {n}) ) ≡ def (od∅ {n})
72
73 congf : {n : Level} {x y : OD {n}} → { f g : OD {n} → OD {n} } → x ≡ y → f ≡ g → f x ≡ g y
74 congf refl refl = refl
75
76 o∅→od∅ : {n : Level} → ord→od (o∅ {n}) ≡ od∅ {n}
77 o∅→od∅ {n} = cong ( λ k → record { def = k }) ( ∅-base-def )
78 71
79 ∅1 : {n : Level} → ( x : OD {n} ) → ¬ ( x c< od∅ {n} ) 72 ∅1 : {n : Level} → ( x : OD {n} ) → ¬ ( x c< od∅ {n} )
80 ∅1 {n} x (lift ()) 73 ∅1 {n} x (lift ())
81 74
82 ∅3 : {n : Level} → { x : Ordinal {n}} → ( ∀(y : Ordinal {n}) → ¬ (y o< x ) ) → x ≡ o∅ {n} 75 ∅3 : {n : Level} → { x : Ordinal {n}} → ( ∀(y : Ordinal {n}) → ¬ (y o< x ) ) → x ≡ o∅ {n}
187 ==→o≡ {n} {x} {y} eq with trio< {n} x y 180 ==→o≡ {n} {x} {y} eq with trio< {n} x y
188 ==→o≡ {n} {x} {y} eq | tri< a ¬b ¬c = ⊥-elim ( o<→o> eq (o<-subst a (sym ord-iso) (sym ord-iso ))) 181 ==→o≡ {n} {x} {y} eq | tri< a ¬b ¬c = ⊥-elim ( o<→o> eq (o<-subst a (sym ord-iso) (sym ord-iso )))
189 ==→o≡ {n} {x} {y} eq | tri≈ ¬a b ¬c = b 182 ==→o≡ {n} {x} {y} eq | tri≈ ¬a b ¬c = b
190 ==→o≡ {n} {x} {y} eq | tri> ¬a ¬b c = ⊥-elim ( o<→o> (eq-sym eq) (o<-subst c (sym ord-iso) (sym ord-iso ))) 183 ==→o≡ {n} {x} {y} eq | tri> ¬a ¬b c = ⊥-elim ( o<→o> (eq-sym eq) (o<-subst c (sym ord-iso) (sym ord-iso )))
191 184
185 ¬x<0 : {n : Level} → { x : Ordinal {suc n} } → ¬ ( x o< o∅ {suc n} )
186 ¬x<0 {n} {x} (case1 ())
187 ¬x<0 {n} {x} (case2 ())
188
189 -- o∅≡od∅0 : {n : Level} → ord→od (o∅ {suc n}) == od∅ {suc n}
190 -- eq→ (o∅≡od∅0 {n} ) {x} y with c<→o< {suc n} {ord→od x} {ord→od (o∅ {suc n})} (def-subst {suc n} {_} {_} {ord→od o∅} {od→ord (ord→od x)} y refl (sym diso) )
191 -- eq→ (o∅≡od∅0 {n}) {x} y | lt = ⊥-elim ( ¬x<0 (o<-subst lt ord-iso diso ) )
192 -- eq← (o∅≡od∅0 {n}) {x} (lift ())
193 --
194 -- o∅≡od∅ : {n : Level} → ord→od (o∅ {suc n}) ≡ od∅ {suc n}
195 -- o∅≡od∅ {n} = trans (cong (λ k → ord→od k ) ( ==→o≡ {n} (eq-trans o∅≡od∅0 (subst (λ k → od∅ == k ) (sym oiso) eq-refl )) ) ) oiso
196
197 o∅≡od∅ : {n : Level} → ord→od (o∅ {suc n}) ≡ od∅ {suc n}
198 o∅≡od∅ {n} with trio< {n} (o∅ {suc n}) (od→ord (od∅ {suc n} ))
199 o∅≡od∅ {n} | tri< a ¬b ¬c = ⊥-elim (lemma a) where
200 lemma : o∅ {suc n } o< (od→ord (od∅ {suc n} )) → ⊥
201 lemma lt with def-subst (o<→c< lt) oiso refl
202 lemma lt | lift ()
203 o∅≡od∅ {n} | tri≈ ¬a b ¬c = trans (cong (λ k → ord→od k ) b ) oiso
204 o∅≡od∅ {n} | tri> ¬a ¬b c = ⊥-elim (¬x<0 c)
205
192 o<→¬== : {n : Level} → { x y : OD {n} } → (od→ord x ) o< ( od→ord y) → ¬ (x == y ) 206 o<→¬== : {n : Level} → { x y : OD {n} } → (od→ord x ) o< ( od→ord y) → ¬ (x == y )
193 o<→¬== {n} {x} {y} lt eq = o<→o> eq lt 207 o<→¬== {n} {x} {y} lt eq = o<→o> eq lt
194 208
195 o<→¬c> : {n : Level} → { x y : OD {n} } → (od→ord x ) o< ( od→ord y) → ¬ (y c< x ) 209 o<→¬c> : {n : Level} → { x y : OD {n} } → (od→ord x ) o< ( od→ord y) → ¬ (y c< x )
196 o<→¬c> {n} {x} {y} olt clt = o<> (od→ord x) (od→ord y) olt (c<→o< clt ) where 210 o<→¬c> {n} {x} {y} olt clt = o<> (od→ord x) (od→ord y) olt (c<→o< clt ) where
237 ¬∅=→∅∈ {n} {x} ne = def-subst (lemma (od→ord x) (subst (λ k → ¬ (k == od∅ {suc n} )) (sym oiso) ne )) oiso refl where 251 ¬∅=→∅∈ {n} {x} ne = def-subst (lemma (od→ord x) (subst (λ k → ¬ (k == od∅ {suc n} )) (sym oiso) ne )) oiso refl where
238 lemma : (ox : Ordinal {suc n}) → ¬ (ord→od ox == od∅ {suc n} ) → ord→od ox ∋ od∅ {suc n} 252 lemma : (ox : Ordinal {suc n}) → ¬ (ord→od ox == od∅ {suc n} ) → ord→od ox ∋ od∅ {suc n}
239 lemma ox ne with is-o∅ ox 253 lemma ox ne with is-o∅ ox
240 lemma ox ne | yes refl with ne ( ord→== lemma1 ) where 254 lemma ox ne | yes refl with ne ( ord→== lemma1 ) where
241 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅ 255 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅
242 lemma1 = cong ( λ k → od→ord k ) o∅→od∅ 256 lemma1 = cong ( λ k → od→ord k ) o∅≡od∅
243 lemma o∅ ne | yes refl | () 257 lemma o∅ ne | yes refl | ()
244 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅→od∅ (o<→c< (∅5 ¬p)) 258 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅≡od∅ (o<→c< (∅5 ¬p))
245 259
246 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 260 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
247 261
248 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n} 262 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n}
249 OD→ZF {n} = record { 263 OD→ZF {n} = record {
358 eq← (next x ) {y} z = {!!} 372 eq← (next x ) {y} z = {!!}
359 infinite : OD {suc n} 373 infinite : OD {suc n}
360 infinite = ord→od ( record { lv = Suc Zero ; ord = ℵ Zero } ) 374 infinite = ord→od ( record { lv = Suc Zero ; ord = ℵ Zero } )
361 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = ℵ Zero } ) ∋ od∅ {suc n} 375 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = ℵ Zero } ) ∋ od∅ {suc n}
362 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅} 376 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅}
363 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅→od∅ ) 377 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅≡od∅ )
364 infinity : (x : OD) → infinite ∋ x → infinite ∋ Union (x , (x , x )) 378 infinity : (x : OD) → infinite ∋ x → infinite ∋ Union (x , (x , x ))
365 infinity x ∞∋x = {!!} 379 infinity x ∞∋x = {!!}
366 replacement : {ψ : OD → OD} (X x : OD) → Replace X ψ ∋ ψ x 380 replacement : {ψ : OD → OD} (X x : OD) → Replace X ψ ∋ ψ x
367 replacement {ψ} X x = {!!} 381 replacement {ψ} X x = {!!}
368 382