comparison src/OD.agda @ 1286:619e68271cf8

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 22 May 2023 19:06:25 +0900
parents 302cfb533201
children d9f3774ddb00
comparison
equal deleted inserted replaced
1285:302cfb533201 1286:619e68271cf8
258 _,_ : HOD → HOD → HOD 258 _,_ : HOD → HOD → HOD
259 x , y = record { od = record { def = λ t → (t ≡ & x ) ∨ ( t ≡ & y ) } ; odmax = omax (& x) (& y) ; <odmax = lemma } where 259 x , y = record { od = record { def = λ t → (t ≡ & x ) ∨ ( t ≡ & y ) } ; odmax = omax (& x) (& y) ; <odmax = lemma } where
260 lemma : {t : Ordinal} → (t ≡ & x) ∨ (t ≡ & y) → t o< omax (& x) (& y) 260 lemma : {t : Ordinal} → (t ≡ & x) ∨ (t ≡ & y) → t o< omax (& x) (& y)
261 lemma {t} (case1 refl) = omax-x _ _ 261 lemma {t} (case1 refl) = omax-x _ _
262 lemma {t} (case2 refl) = omax-y _ _ 262 lemma {t} (case2 refl) = omax-y _ _
263
264 -- {x y : HOD} → & (x , y) ≡ omax (& x) (& y)
263 265
264 pair<y : {x y : HOD } → y ∋ x → & (x , x) o< osuc (& y) 266 pair<y : {x y : HOD } → y ∋ x → & (x , x) o< osuc (& y)
265 pair<y {x} {y} y∋x = ⊆→o≤ lemma where 267 pair<y {x} {y} y∋x = ⊆→o≤ lemma where
266 lemma : {z : Ordinal} → def (od (x , x)) z → def (od y) z 268 lemma : {z : Ordinal} → def (od (x , x)) z → def (od y) z
267 lemma (case1 refl) = y∋x 269 lemma (case1 refl) = y∋x
458 -- This means that many of OD may not be HODs because of the & mapping divergence. 460 -- This means that many of OD may not be HODs because of the & mapping divergence.
459 -- We should have some axioms to prevent this such as & x o< next (odmax x). 461 -- We should have some axioms to prevent this such as & x o< next (odmax x).
460 -- 462 --
461 -- Since we have Ord (next o∅), we don't need this, but ZF axiom requires this and ho< 463 -- Since we have Ord (next o∅), we don't need this, but ZF axiom requires this and ho<
462 464
465 infinite-od : OD
466 infinite-od = record { def = λ x → infinite-d x }
467
468 postulate
469 infinite-odmax : Ordinal
470 infinite-odmax< : {z : Ordinal } → def infinite-od z → z o< infinite-odmax
471
463 infinite : HOD 472 infinite : HOD
464 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma } where 473 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = infinite-odmax ; <odmax = infinite-odmax< }
465 u : (y : Ordinal ) → HOD 474
466 u y = Union (* y , (* y , * y)) 475 -- where
467 -- next< : {x y z : Ordinal} → x o< next z → y o< next x → y o< next z 476 -- u : (y : Ordinal ) → HOD
468 lemma8 : {y : Ordinal} → & (* y , * y) o< next (odmax (* y , * y)) 477 -- u y = Union (* y , (* y , * y))
469 lemma8 = ho< 478 -- -- next< : {x y z : Ordinal} → x o< next z → y o< next x → y o< next z
470 --- (x,y) < next (omax x y) < next (osuc y) = next y 479 -- lemma8 : {y : Ordinal} → & (* y , * y) o< next (odmax (* y , * y))
471 lemmaa : {x y : HOD} → & x o< & y → & (x , y) o< next (& y) 480 -- lemma8 = ho<
472 lemmaa {x} {y} x<y = subst (λ k → & (x , y) o< k ) (sym nexto≡) (subst (λ k → & (x , y) o< next k ) (sym (omax< _ _ x<y)) ho< ) 481 -- --- (x,y) < next (omax x y) < next (osuc y) = next y
473 lemma81 : {y : Ordinal} → & (* y , * y) o< next (& (* y)) 482 -- lemmaa : {x y : HOD} → & x o< & y → & (x , y) o< next (& y)
474 lemma81 {y} = nexto=n (subst (λ k → & (* y , * y) o< k ) (cong (λ k → next k) (omxx _)) lemma8) 483 -- lemmaa {x} {y} x<y = subst (λ k → & (x , y) o< k ) (sym nexto≡) (subst (λ k → & (x , y) o< next k ) (sym (omax< _ _ x<y)) ho< )
475 lemma9 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y , * y)) 484 -- lemma81 : {y : Ordinal} → & (* y , * y) o< next (& (* y))
476 lemma9 = lemmaa (c<→o< (case1 refl)) 485 -- lemma81 {y} = nexto=n (subst (λ k → & (* y , * y) o< k ) (cong (λ k → next k) (omxx _)) lemma8)
477 lemma71 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y)) 486 -- lemma9 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y , * y))
478 lemma71 = next< lemma81 lemma9 487 -- lemma9 = lemmaa (c<→o< (case1 refl))
479 lemma1 : {y : Ordinal} → & (u y) o< next (osuc (& (* y , (* y , * y)))) 488 -- lemma71 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y))
480 lemma1 = ho< 489 -- lemma71 = ? -- next< lemma81 lemma9
481 --- main recursion 490 -- lemma1 : {y : Ordinal} → & (u y) o< next (osuc (& (* y , (* y , * y))))
482 lemma : {y : Ordinal} → infinite-d y → y o< next o∅ 491 -- lemma1 = ho<
483 lemma {o∅} iφ = x<nx 492 -- --- main recursion
484 lemma (isuc {y} x) = next< (lemma x) (next< (subst (λ k → & (* y , (* y , * y)) o< next k) &iso lemma71 ) (nexto=n lemma1)) 493 -- lemma : {y : Ordinal} → infinite-d y → y o< next o∅
494 -- lemma {o∅} iφ = x<nx
495 -- lemma (isuc {y} x) = ? -- next< (lemma x) (next< (subst (λ k → & (* y , (* y , * y)) o< next k) &iso lemma71 ) (nexto=n lemma1))
485 496
486 empty : (x : HOD ) → ¬ (od∅ ∋ x) 497 empty : (x : HOD ) → ¬ (od∅ ∋ x)
487 empty x = ¬x<0 498 empty x = ¬x<0
488 499
489 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) 500 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y )