comparison ordinal-definable.agda @ 89:dccc9e2d1804

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 05 Jun 2019 09:47:19 +0900
parents 296388c03358
children 38d139b5edac
comparison
equal deleted inserted replaced
88:975e72ae0541 89:dccc9e2d1804
232 lemma1 = cong ( λ k → od→ord k ) o∅≡od∅ 232 lemma1 = cong ( λ k → od→ord k ) o∅≡od∅
233 lemma o∅ ne | yes refl | () 233 lemma o∅ ne | yes refl | ()
234 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅≡od∅ (o<→c< (∅5 ¬p)) 234 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅≡od∅ (o<→c< (∅5 ¬p))
235 235
236 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 236 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
237
238 postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc n) (suc (suc n))
239
237 240
238 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n} 241 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n}
239 OD→ZF {n} = record { 242 OD→ZF {n} = record {
240 ZFSet = OD {suc n} 243 ZFSet = OD {suc n}
241 ; _∋_ = _∋_ 244 ; _∋_ = _∋_
341 reg {y} t with proj1 t 344 reg {y} t with proj1 t
342 ... | x∈∅ = x∈∅ 345 ... | x∈∅ = x∈∅
343 extensionality : {A B : OD {suc n}} → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B 346 extensionality : {A B : OD {suc n}} → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B
344 eq→ (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {A} {B} (sym diso) (proj1 (eq (ord→od x))) d 347 eq→ (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {A} {B} (sym diso) (proj1 (eq (ord→od x))) d
345 eq← (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {B} {A} (sym diso) (proj2 (eq (ord→od x))) d 348 eq← (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {B} {A} (sym diso) (proj2 (eq (ord→od x))) d
346 pair-osuc : {x y : OD {suc n}} → (x , x) ∋ y → (od→ord y ) o< osuc (od→ord x) 349 xx-union : {x : OD {suc n}} → (x , x) ≡ record { def = λ z → z o< osuc (od→ord x) }
347 pair-osuc {x} {y} z with union← (x , x) y {!!} 350 xx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) (omxx (od→ord x))
348 ... | t = {!!} 351 xxx-union : {x : OD {suc n}} → (x , (x , x)) ≡ record { def = λ z → z o< osuc (osuc (od→ord x))}
349 next : (x : OD) → Union (x , (x , x)) == ord→od (osuc (od→ord x)) 352 xxx-union {x} = cong ( λ k → record { def = λ z → z o< k } ) lemma where
350 eq→ (next x ) {y} z = {!!} -- z : y o< osuc (osuc ox ) → y < osuc ox 353 lemma : {x : OD {suc n}} → omax (od→ord x) (od→ord (x , x)) ≡ osuc (osuc (od→ord x))
351 eq← (next x ) {y} z = def-subst {suc n} {_} {_} {Union (x , (x , x))} {_} 354 lemma {x} = trans ( sym ( omax< (od→ord x) (od→ord (x , x)) {!!} ) ) ( cong ( λ k → osuc k ) {!!} )
352 (union→ (x , (x , x)) (ord→od y) (ord→od (osuc y)) (record { proj1 = lemma1 ; proj2 = lemma2 } )) refl diso where
353 lemma0 : (x , x) ∋ ord→od y
354 lemma0 = o<-subst {suc n} {od→ord (ord→od y)} {od→ord {!!}} (c<→o< z) {!!} {!!}
355 lemma1 : (x , (x , x)) ∋ ord→od (osuc y) -- z : def (ord→od (osuc (od→ord x))) y
356 lemma1 with osuc-≡< {suc n} (def-subst {suc n} (o<→c< {!!}) oiso refl)
357 lemma1 | case1 x = {!!}
358 lemma1 | case2 t = {!!}
359 -- = o<-subst (c<→o< {suc n} {_} {ord→od y} {!!} ) {!!} {!!}
360 lemma2 : ord→od (osuc y) ∋ ord→od y
361 lemma2 = o<→c< <-osuc
362 next' : (x : OD) → ord→od ( od→ord ( Union (x , (x , x)))) == ord→od (osuc (od→ord x))
363 next' x = subst ( λ k → k == ord→od (osuc (od→ord x))) (sym oiso) (next x)
364 infinite : OD {suc n} 355 infinite : OD {suc n}
365 infinite = ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) 356 infinite = ord→od ( record { lv = Suc Zero ; ord = Φ 1 } )
366 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) ∋ od∅ {suc n} 357 infinity∅ : ord→od ( record { lv = Suc Zero ; ord = Φ 1 } ) ∋ od∅ {suc n}
367 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅} 358 infinity∅ = def-subst {suc n} {_} {od→ord (ord→od o∅)} {infinite} {od→ord od∅}
368 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅≡od∅ ) 359 (o<→c< ( case1 (s≤s z≤n ))) refl (cong (λ k → od→ord k) o∅≡od∅ )