comparison src/OD.agda @ 1297:ad9ed7c4a0b3

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 03 Jun 2023 08:13:50 +0900
parents 968feed7cf64
children 47d3cc596d68
comparison
equal deleted inserted replaced
1296:428227847d62 1297:ad9ed7c4a0b3
106 postulate odAxiom : ODAxiom 106 postulate odAxiom : ODAxiom
107 open ODAxiom odAxiom 107 open ODAxiom odAxiom
108 108
109 -- possible order restriction (required in the axiom of infinite ) 109 -- possible order restriction (required in the axiom of infinite )
110 110
111 record ODAxiom-ho< : Set (suc n) where 111 -- postulate odAxiom-ho< : ODAxiom-ho<
112 field 112 -- open ODAxiom-ho< odAxiom-ho<
113 ho< : {x : HOD} → & x o< next (odmax x)
114
115 postulate odAxiom-ho< : ODAxiom-ho<
116 open ODAxiom-ho< odAxiom-ho<
117 113
118 -- odmax minimality 114 -- odmax minimality
119 -- 115 --
120 -- since we have ==→o≡ , so odmax have to be unique. We should have odmaxmin in HOD. 116 -- since we have ==→o≡ , so odmax have to be unique. We should have odmaxmin in HOD.
121 -- We can calculate the minimum using sup but it is tedius. 117 -- We can calculate the minimum using sup but it is tedius.
449 445
450 446
451 -- {_} : ZFSet → ZFSet 447 -- {_} : ZFSet → ZFSet
452 -- { x } = ( x , x ) -- better to use (x , x) directly 448 -- { x } = ( x , x ) -- better to use (x , x) directly
453 449
454
455 data infinite-d : ( x : Ordinal ) → Set n where 450 data infinite-d : ( x : Ordinal ) → Set n where
456 iφ : infinite-d o∅ 451 iφ : infinite-d o∅
457 isuc : {x : Ordinal } → infinite-d x → 452 isuc : {x : Ordinal } → infinite-d x →
458 infinite-d (& ( Union (* x , (* x , * x ) ) )) 453 infinite-d (& ( Union (* x , (* x , * x ) ) ))
459 454
463 -- This means that many of OD may not be HODs because of the & mapping divergence. 458 -- This means that many of OD may not be HODs because of the & mapping divergence.
464 -- We should have some axioms to prevent this such as & x o< next (odmax x). 459 -- We should have some axioms to prevent this such as & x o< next (odmax x).
465 -- 460 --
466 -- Since we have Ord (next o∅), we don't need this, but ZF axiom requires this and ho< 461 -- Since we have Ord (next o∅), we don't need this, but ZF axiom requires this and ho<
467 462
463 infinite-od : OD
464 infinite-od = record { def = λ x → infinite-d x }
465
466 record ODAxiom-ho< : Set (suc n) where
467 field
468 omega : Ordinal
469 ho< : {x : Ordinal } → infinite-d x → x o< next omega
470
471 postulate
472 odaxion-ho< : ODAxiom-ho<
473
474 open ODAxiom-ho< odaxion-ho<
475
468 infinite : HOD 476 infinite : HOD
469 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next o∅ ; <odmax = lemma } where 477 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = next omega ; <odmax = ho<}
470 u : (y : Ordinal ) → HOD
471 u y = Union (* y , (* y , * y))
472 -- next< : {x y z : Ordinal} → x o< next z → y o< next x → y o< next z
473 lemma8 : {y : Ordinal} → & (* y , * y) o< next (odmax (* y , * y))
474 lemma8 = ho<
475 --- (x,y) < next (omax x y) < next (osuc y) = next y
476 lemmaa : {x y : HOD} → & x o< & y → & (x , y) o< next (& y)
477 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< )
478 lemma81 : {y : Ordinal} → & (* y , * y) o< next (& (* y))
479 lemma81 {y} = nexto=n (subst (λ k → & (* y , * y) o< k ) (cong (λ k → next k) (omxx _)) lemma8)
480 lemma9 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y , * y))
481 lemma9 = lemmaa (c<→o< (case1 refl))
482 lemma71 : {y : Ordinal} → & (* y , (* y , * y)) o< next (& (* y))
483 lemma71 = next< lemma81 lemma9
484 lemma1 : {y : Ordinal} → & (u y) o< next (osuc (& (* y , (* y , * y))))
485 lemma1 = ho<
486 --- main recursion
487 lemma : {y : Ordinal} → infinite-d y → y o< next o∅
488 lemma {o∅} iφ = x<nx
489 lemma (isuc {y} x) = next< (lemma x) (next< (subst (λ k → & (* y , (* y , * y)) o< next k) &iso lemma71 ) (nexto=n lemma1))
490 478
491 empty : (x : HOD ) → ¬ (od∅ ∋ x) 479 empty : (x : HOD ) → ¬ (od∅ ∋ x)
492 empty x = ¬x<0 480 empty x = ¬x<0
493 481
494 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) 482 pair→ : ( x y t : HOD ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y )