comparison ordinal-definable.agda @ 84:4b2aff372b7c

omax ..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 04 Jun 2019 23:58:58 +0900
parents e013ccf00567
children 296388c03358
comparison
equal deleted inserted replaced
83:e013ccf00567 84:4b2aff372b7c
252 Replace : OD {suc n} → (OD {suc n} → OD {suc n} ) → OD {suc n} 252 Replace : OD {suc n} → (OD {suc n} → OD {suc n} ) → OD {suc n}
253 Replace X ψ = sup-od ψ 253 Replace X ψ = sup-od ψ
254 Select : OD {suc n} → (OD {suc n} → Set (suc n) ) → OD {suc n} 254 Select : OD {suc n} → (OD {suc n} → Set (suc n) ) → OD {suc n}
255 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) } 255 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) }
256 _,_ : OD {suc n} → OD {suc n} → OD {suc n} 256 _,_ : OD {suc n} → OD {suc n} → OD {suc n}
257 x , y = record { def = λ z → ( (z ≡ od→ord x ) ∨ ( z ≡ od→ord y )) } 257 x , y = record { def = λ z → z o< (omax (od→ord x) (od→ord y)) }
258 Union : OD {suc n} → OD {suc n} 258 Union : OD {suc n} → OD {suc n}
259 Union U = record { def = λ y → osuc y o< (od→ord U) } 259 Union U = record { def = λ y → osuc y o< (od→ord U) }
260 -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x → X ∋ x ) 260 -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x → X ∋ x )
261 Power : OD {suc n} → OD {suc n} 261 Power : OD {suc n} → OD {suc n}
262 Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) } 262 Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) }
291 ; replacement = {!!} 291 ; replacement = {!!}
292 } where 292 } where
293 open _∧_ 293 open _∧_
294 open Minimumo 294 open Minimumo
295 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B) 295 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B)
296 proj1 (pair A B ) = case1 refl 296 proj1 (pair A B ) = omax-x {n} {od→ord A} {od→ord B}
297 proj2 (pair A B ) = case2 refl 297 proj2 (pair A B ) = omax-y {n} {od→ord A} {od→ord B}
298 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) 298 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x)
299 empty x () 299 empty x ()
300 --- Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) } 300 --- Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) }
301 power→ : (A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → A ∋ x 301 power→ : (A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → A ∋ x
302 power→ A t P∋t {x} t∋x = proj1 (P∋t (od→ord x) ) 302 power→ A t P∋t {x} t∋x = proj1 (P∋t (od→ord x) )
341 reg {y} t with proj1 t 341 reg {y} t with proj1 t
342 ... | x∈∅ = x∈∅ 342 ... | x∈∅ = x∈∅
343 extensionality : {A B : OD {suc n}} → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B 343 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 344 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 345 eq← (extensionality {A} {B} eq ) {x} d = def-iso {suc n} {B} {A} (sym diso) (proj2 (eq (ord→od x))) d
346 pair-or : {x y : OD {suc n} } → (x , x) ∋ y → (y == x ) ∨ (x ∋ y ) 346 pair-osuc : {x y : OD {suc n}} → (x , x) ∋ y → (od→ord y ) o< osuc (od→ord x)
347 pair-or {x} {y} lt with tri-c< x y 347 pair-osuc {x} {y} z with union← (x , x) y z
348 pair-or {x} {y} lt | tri< a ¬b ¬c = {!!} -- x < y < ( x , x ) 348 ... | t = {!!}
349 pair-or {x} {y} lt | tri≈ ¬a b ¬c = case1 (eq-sym b)
350 pair-or {x} {y} lt | tri> ¬a ¬b c = case2 c
351 pair-osuc : (x : OD) → od→ord (x , x) ≡ osuc (od→ord x)
352 pair-osuc x with trio< (od→ord (x , x)) (osuc (od→ord x))
353 pair-osuc x | tri< a ¬b ¬c = ⊥-elim ( osuc-< a (c<→o< (proj1 (pair x x )) ))
354 pair-osuc x | tri≈ ¬a b ¬c = b
355 pair-osuc x | tri> ¬a ¬b c with pair-or (def-subst (o<→c< c ) oiso refl ) -- (x , x) ∋ ord→od (osuc (od→ord x) )
356 pair-osuc x | tri> ¬a ¬b c | case1 eq = ⊥-elim ( o<→¬== (def-subst {suc n} (o<→c< c ) refl diso ) eq )
357 pair-osuc x | tri> ¬a ¬b c | case2 lt = ⊥-elim (c<> c lt ) where
358 lemma2 : (z : Ordinal {suc n} ) → lv (od→ord (ord→od z , ord→od z) ) ≡ lv z
359 lemma2 z = {!!}
360 next : (x : OD) → Union (x , (x , x)) == ord→od (osuc (od→ord x)) 349 next : (x : OD) → Union (x , (x , x)) == ord→od (osuc (od→ord x))
361 eq→ (next x ) {y} z = {!!} 350 eq→ (next x ) {y} z = {!!} -- z : y o< osuc (osuc ox ) → y < osuc ox
362 eq← (next x ) {y} z = def-subst {suc n} {_} {_} {Union (x , (x , x))} {_} 351 eq← (next x ) {y} z = def-subst {suc n} {_} {_} {Union (x , (x , x))} {_}
363 (union→ (x , (x , x)) (ord→od y) (ord→od (osuc y)) (record { proj1 = lemma1 ; proj2 = lemma2 } )) refl diso where 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) {!!} {!!}
364 lemma1 : (x , (x , x)) ∋ ord→od (osuc y) -- z : def (ord→od (osuc (od→ord x))) y 355 lemma1 : (x , (x , x)) ∋ ord→od (osuc y) -- z : def (ord→od (osuc (od→ord x))) y
365 lemma1 with tri-c< (x , x) (ord→od (osuc (od→ord x))) 356 lemma1 with osuc-≡< {suc n} (def-subst {suc n} (o<→c< z) oiso refl)
366 lemma1 | tri< a ¬b ¬c = {!!} 357 lemma1 | case1 x = {!!}
367 lemma1 | tri≈ ¬a b ¬c = {!!} 358 lemma1 | case2 t = {!!}
368 lemma1 | tri> ¬a ¬b c = {!!} 359 -- = o<-subst (c<→o< {suc n} {_} {ord→od y} {!!} ) {!!} {!!}
369 lemma2 : ord→od (osuc y) ∋ ord→od y 360 lemma2 : ord→od (osuc y) ∋ ord→od y
370 lemma2 = o<→c< <-osuc 361 lemma2 = o<→c< <-osuc
371 next' : (x : OD) → ord→od ( od→ord ( Union (x , (x , x)))) == ord→od (osuc (od→ord x)) 362 next' : (x : OD) → ord→od ( od→ord ( Union (x , (x , x)))) == ord→od (osuc (od→ord x))
372 next' x = subst ( λ k → k == ord→od (osuc (od→ord x))) (sym oiso) (next x) 363 next' x = subst ( λ k → k == ord→od (osuc (od→ord x))) (sym oiso) (next x)
373 infinite : OD {suc n} 364 infinite : OD {suc n}