comparison OD.agda @ 258:63df67b6281c

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 04 Sep 2019 01:12:18 +0900
parents 53b7acd63481
children f714fe999102
comparison
equal deleted inserted replaced
257:53b7acd63481 258:63df67b6281c
55 Ord : ( a : Ordinal ) → OD 55 Ord : ( a : Ordinal ) → OD
56 Ord a = record { def = λ y → y o< a } 56 Ord a = record { def = λ y → y o< a }
57 57
58 od∅ : OD 58 od∅ : OD
59 od∅ = Ord o∅ 59 od∅ = Ord o∅
60
61 -- next assumptions are our axiom
62 -- it defines a subset of OD, which is called HOD, usually defined as
63 -- HOD = { x | TC x ⊆ OD }
64 -- where TC x is a transitive clusure of x, i.e. Union of all elemnts of all subset of x
60 65
61 postulate 66 postulate
62 -- OD can be iso to a subset of Ordinal ( by means of Godel Set ) 67 -- OD can be iso to a subset of Ordinal ( by means of Godel Set )
63 od→ord : OD → Ordinal 68 od→ord : OD → Ordinal
64 ord→od : Ordinal → OD 69 ord→od : Ordinal → OD
65 c<→o< : {x y : OD } → def y ( od→ord x ) → od→ord x o< od→ord y 70 c<→o< : {x y : OD } → def y ( od→ord x ) → od→ord x o< od→ord y
66 oiso : {x : OD } → ord→od ( od→ord x ) ≡ x 71 oiso : {x : OD } → ord→od ( od→ord x ) ≡ x
67 diso : {x : Ordinal } → od→ord ( ord→od x ) ≡ x 72 diso : {x : Ordinal } → od→ord ( ord→od x ) ≡ x
68 -- we should prove this in agda, but simply put here 73 -- we should prove this in agda, but simply put here
69 ==→o≡ : { x y : OD } → (x == y) → x ≡ y 74 ==→o≡ : { x y : OD } → (x == y) → x ≡ y
70 -- next assumption causes ∀ x ∋ ∅ . It menas only an ordinal becomes a set 75 -- next assumption causes ∀ x ∋ ∅ . It menas only an ordinal is allowed as OD
71 -- o<→c< : {n : Level} {x y : Ordinal } → x o< y → def (ord→od y) x 76 -- o<→c< : {n : Level} {x y : Ordinal } → x o< y → def (ord→od y) x
72 -- ord→od x ≡ Ord x results the same 77 -- ord→od x ≡ Ord x results the same
73 -- supermum as Replacement Axiom 78 -- supermum as Replacement Axiom
74 sup-o : ( Ordinal → Ordinal ) → Ordinal 79 sup-o : ( Ordinal → Ordinal ) → Ordinal
75 sup-o< : { ψ : Ordinal → Ordinal } → ∀ {x : Ordinal } → ψ x o< sup-o ψ 80 sup-o< : { ψ : Ordinal → Ordinal } → ∀ {x : Ordinal } → ψ x o< sup-o ψ
76 -- contra-position of mimimulity of supermum required in Power Set Axiom 81 -- contra-position of mimimulity of supermum required in Power Set Axiom
77 -- sup-x : {n : Level } → ( Ordinal → Ordinal ) → Ordinal 82 -- sup-x : {n : Level } → ( Ordinal → Ordinal ) → Ordinal
78 -- sup-lb : {n : Level } → { ψ : Ordinal → Ordinal } → {z : Ordinal } → z o< sup-o ψ → z o< osuc (ψ (sup-x ψ)) 83 -- sup-lb : {n : Level } → { ψ : Ordinal → Ordinal } → {z : Ordinal } → z o< sup-o ψ → z o< osuc (ψ (sup-x ψ))
79 -- mimimul and x∋minimul is an Axiom of choice 84 -- mimimul and x∋minimal is an Axiom of choice
80 minimul : (x : OD ) → ¬ (x == od∅ )→ OD 85 minimal : (x : OD ) → ¬ (x == od∅ )→ OD
81 -- this should be ¬ (x == od∅ )→ ∃ ox → x ∋ Ord ox ( minimum of x ) 86 -- this should be ¬ (x == od∅ )→ ∃ ox → x ∋ Ord ox ( minimum of x )
82 x∋minimul : (x : OD ) → ( ne : ¬ (x == od∅ ) ) → def x ( od→ord ( minimul x ne ) ) 87 x∋minimal : (x : OD ) → ( ne : ¬ (x == od∅ ) ) → def x ( od→ord ( minimal x ne ) )
83 -- minimulity (may proved by ε-induction ) 88 -- minimality (may proved by ε-induction )
84 minimul-1 : (x : OD ) → ( ne : ¬ (x == od∅ ) ) → (y : OD ) → ¬ ( def (minimul x ne) (od→ord y)) ∧ (def x (od→ord y) ) 89 minimal-1 : (x : OD ) → ( ne : ¬ (x == od∅ ) ) → (y : OD ) → ¬ ( def (minimal x ne) (od→ord y)) ∧ (def x (od→ord y) )
90
91 o<→c<→OD=Ord : ( {x y : Ordinal } → x o< y → def (ord→od y) x ) → {x : OD } → x ≡ Ord (od→ord x)
92 o<→c<→OD=Ord o<→c< {x} = ==→o≡ ( record { eq→ = lemma1 ; eq← = lemma2 } ) where
93 lemma1 : {y : Ordinal} → def x y → def (Ord (od→ord x)) y
94 lemma1 {y} lt = subst ( λ k → k o< od→ord x ) diso (c<→o< {ord→od y} {x} (subst (λ k → def x k ) (sym diso) lt))
95 lemma2 : {y : Ordinal} → def (Ord (od→ord x)) y → def x y
96 lemma2 {y} lt = subst (λ k → def k y ) oiso (o<→c< {y} {od→ord x} lt )
85 97
86 _∋_ : ( a x : OD ) → Set n 98 _∋_ : ( a x : OD ) → Set n
87 _∋_ a x = def a ( od→ord x ) 99 _∋_ a x = def a ( od→ord x )
88 100
89 _c<_ : ( x a : OD ) → Set n 101 _c<_ : ( x a : OD ) → Set n
90 x c< a = a ∋ x 102 x c< a = a ∋ x
91
92 _c≤_ : OD → OD → Set (suc n)
93 a c≤ b = (a ≡ b) ∨ ( b ∋ a )
94 103
95 cseq : {n : Level} → OD → OD 104 cseq : {n : Level} → OD → OD
96 cseq x = record { def = λ y → def x (osuc y) } where 105 cseq x = record { def = λ y → def x (osuc y) } where
97 106
98 def-subst : {Z : OD } {X : Ordinal }{z : OD } {x : Ordinal }→ def Z X → Z ≡ z → X ≡ x → def z x 107 def-subst : {Z : OD } {X : Ordinal }{z : OD } {x : Ordinal }→ def Z X → Z ≡ z → X ≡ x → def z x
110 otrans : {n : Level} {a x y : Ordinal } → def (Ord a) x → def (Ord x) y → def (Ord a) y 119 otrans : {n : Level} {a x y : Ordinal } → def (Ord a) x → def (Ord x) y → def (Ord a) y
111 otrans x<a y<x = ordtrans y<x x<a 120 otrans x<a y<x = ordtrans y<x x<a
112 121
113 def→o< : {X : OD } → {x : Ordinal } → def X x → x o< od→ord X 122 def→o< : {X : OD } → {x : Ordinal } → def X x → x o< od→ord X
114 def→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( def-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso 123 def→o< {X} {x} lt = o<-subst {_} {_} {x} {od→ord X} ( c<→o< ( def-subst {X} {x} lt (sym oiso) (sym diso) )) diso diso
124
115 125
116 -- avoiding lv != Zero error 126 -- avoiding lv != Zero error
117 orefl : { x : OD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y 127 orefl : { x : OD } → { y : Ordinal } → od→ord x ≡ y → od→ord x ≡ y
118 orefl refl = refl 128 orefl refl = refl
119 129
133 lemma : ( ox oy : Ordinal ) → ox ≡ oy → (ord→od ox) == (ord→od oy) 143 lemma : ( ox oy : Ordinal ) → ox ≡ oy → (ord→od ox) == (ord→od oy)
134 lemma ox ox refl = eq-refl 144 lemma ox ox refl = eq-refl
135 145
136 o≡→== : { x y : Ordinal } → x ≡ y → ord→od x == ord→od y 146 o≡→== : { x y : Ordinal } → x ≡ y → ord→od x == ord→od y
137 o≡→== {x} {.x} refl = eq-refl 147 o≡→== {x} {.x} refl = eq-refl
138
139 c≤-refl : {n : Level} → ( x : OD ) → x c≤ x
140 c≤-refl x = case1 refl
141 148
142 o∅≡od∅ : ord→od (o∅ ) ≡ od∅ 149 o∅≡od∅ : ord→od (o∅ ) ≡ od∅
143 o∅≡od∅ = ==→o≡ lemma where 150 o∅≡od∅ = ==→o≡ lemma where
144 lemma0 : {x : Ordinal} → def (ord→od o∅) x → def od∅ x 151 lemma0 : {x : Ordinal} → def (ord→od o∅) x → def od∅ x
145 lemma0 {x} lt = o<-subst (c<→o< {ord→od x} {ord→od o∅} (def-subst {ord→od o∅} {x} lt refl (sym diso)) ) diso diso 152 lemma0 {x} lt = o<-subst (c<→o< {ord→od x} {ord→od o∅} (def-subst {ord→od o∅} {x} lt refl (sym diso)) ) diso diso
294 ps = record { def = λ x → p } 301 ps = record { def = λ x → p }
295 lemma : ps == od∅ → p → ⊥ 302 lemma : ps == od∅ → p → ⊥
296 lemma eq p0 = ¬x<0 {od→ord ps} (eq→ eq p0 ) 303 lemma eq p0 = ¬x<0 {od→ord ps} (eq→ eq p0 )
297 ¬p : (od→ord ps ≡ o∅) → p → ⊥ 304 ¬p : (od→ord ps ≡ o∅) → p → ⊥
298 ¬p eq = lemma ( subst₂ (λ j k → j == k ) oiso o∅≡od∅ ( o≡→== eq )) 305 ¬p eq = lemma ( subst₂ (λ j k → j == k ) oiso o∅≡od∅ ( o≡→== eq ))
299 p∨¬p p | no ¬p = case1 (ppp {p} {minimul ps (λ eq → ¬p (eqo∅ eq))} lemma) where 306 p∨¬p p | no ¬p = case1 (ppp {p} {minimal ps (λ eq → ¬p (eqo∅ eq))} lemma) where
300 ps = record { def = λ x → p } 307 ps = record { def = λ x → p }
301 eqo∅ : ps == od∅ → od→ord ps ≡ o∅ 308 eqo∅ : ps == od∅ → od→ord ps ≡ o∅
302 eqo∅ eq = subst (λ k → od→ord ps ≡ k) ord-od∅ ( cong (λ k → od→ord k ) (==→o≡ eq)) 309 eqo∅ eq = subst (λ k → od→ord ps ≡ k) ord-od∅ ( cong (λ k → od→ord k ) (==→o≡ eq))
303 lemma : ps ∋ minimul ps (λ eq → ¬p (eqo∅ eq)) 310 lemma : ps ∋ minimal ps (λ eq → ¬p (eqo∅ eq))
304 lemma = x∋minimul ps (λ eq → ¬p (eqo∅ eq)) 311 lemma = x∋minimal ps (λ eq → ¬p (eqo∅ eq))
305 312
306 decp : ( p : Set n ) → Dec p -- assuming axiom of choice 313 decp : ( p : Set n ) → Dec p -- assuming axiom of choice
307 decp p with p∨¬p p 314 decp p with p∨¬p p
308 decp p | case1 x = yes x 315 decp p | case1 x = yes x
309 decp p | case2 x = no x 316 decp p | case2 x = no x
429 436
430 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z 437 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z
431 union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx 438 union→ X z u xx not = ⊥-elim ( not (od→ord u) ( record { proj1 = proj1 xx
432 ; proj2 = subst ( λ k → def k (od→ord z)) (sym oiso) (proj2 xx) } )) 439 ; proj2 = subst ( λ k → def k (od→ord z)) (sym oiso) (proj2 xx) } ))
433 union← : (X z : OD) (X∋z : Union X ∋ z) → ¬ ( (u : OD ) → ¬ ((X ∋ u) ∧ (u ∋ z ))) 440 union← : (X z : OD) (X∋z : Union X ∋ z) → ¬ ( (u : OD ) → ¬ ((X ∋ u) ∧ (u ∋ z )))
434 union← X z UX∋z = TransFiniteExists _ lemma UX∋z where 441 union← X z UX∋z = FExists _ lemma UX∋z where
435 lemma : {y : Ordinal} → def X y ∧ def (ord→od y) (od→ord z) → ¬ ((u : OD) → ¬ (X ∋ u) ∧ (u ∋ z)) 442 lemma : {y : Ordinal} → def X y ∧ def (ord→od y) (od→ord z) → ¬ ((u : OD) → ¬ (X ∋ u) ∧ (u ∋ z))
436 lemma {y} xx not = not (ord→od y) record { proj1 = subst ( λ k → def X k ) (sym diso) (proj1 xx ) ; proj2 = proj2 xx } 443 lemma {y} xx not = not (ord→od y) record { proj1 = subst ( λ k → def X k ) (sym diso) (proj1 xx ) ; proj2 = proj2 xx }
437 444
438 ψiso : {ψ : OD → Set n} {x y : OD } → ψ x → x ≡ y → ψ y 445 ψiso : {ψ : OD → Set n} {x y : OD } → ψ x → x ≡ y → ψ y
439 ψiso {ψ} t refl = t 446 ψiso {ψ} t refl = t
460 --- Power Set 467 --- Power Set
461 --- 468 ---
462 --- First consider ordinals in OD 469 --- First consider ordinals in OD
463 --- 470 ---
464 --- ZFSubset A x = record { def = λ y → def A y ∧ def x y } subset of A 471 --- ZFSubset A x = record { def = λ y → def A y ∧ def x y } subset of A
465 --- Power X = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) ) Power X is a sup of all subset of A
466 -- 472 --
467 -- 473 --
468 ∩-≡ : { a b : OD } → ({x : OD } → (a ∋ x → b ∋ x)) → a == ( b ∩ a ) 474 ∩-≡ : { a b : OD } → ({x : OD } → (a ∋ x → b ∋ x)) → a == ( b ∩ a )
469 ∩-≡ {a} {b} inc = record { 475 ∩-≡ {a} {b} inc = record {
470 eq→ = λ {x} x<a → record { proj2 = x<a ; 476 eq→ = λ {x} x<a → record { proj2 = x<a ;
471 proj1 = def-subst {_} {_} {b} {x} (inc (def-subst {_} {_} {a} {_} x<a refl (sym diso) )) refl diso } ; 477 proj1 = def-subst {_} {_} {b} {x} (inc (def-subst {_} {_} {a} {_} x<a refl (sym diso) )) refl diso } ;
472 eq← = λ {x} x<a∩b → proj2 x<a∩b } 478 eq← = λ {x} x<a∩b → proj2 x<a∩b }
473 -- 479 --
474 -- we have t ∋ x → A ∋ x means t is a subset of A, that is ZFSubset A t == t 480 -- Transitive Set case
475 -- Power A is a sup of ZFSubset A t, so Power A ∋ t 481 -- we have t ∋ x → Ord a ∋ x means t is a subset of Ord a, that is ZFSubset (Ord a) t == t
482 -- Def (Ord a) is a sup of ZFSubset (Ord a) t, so Def (Ord a) ∋ t
483 -- Def A = Ord ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) )
476 -- 484 --
477 ord-power← : (a : Ordinal ) (t : OD) → ({x : OD} → (t ∋ x → (Ord a) ∋ x)) → Def (Ord a) ∋ t 485 ord-power← : (a : Ordinal ) (t : OD) → ({x : OD} → (t ∋ x → (Ord a) ∋ x)) → Def (Ord a) ∋ t
478 ord-power← a t t→A = def-subst {_} {_} {Def (Ord a)} {od→ord t} 486 ord-power← a t t→A = def-subst {_} {_} {Def (Ord a)} {od→ord t}
479 lemma refl (lemma1 lemma-eq )where 487 lemma refl (lemma1 lemma-eq )where
480 lemma-eq : ZFSubset (Ord a) t == t 488 lemma-eq : ZFSubset (Ord a) t == t
487 lemma1 {a} {t} eq = subst (λ k → od→ord (ZFSubset (Ord a) k) ≡ od→ord t ) (sym oiso) (cong (λ k → od→ord k ) (==→o≡ eq )) 495 lemma1 {a} {t} eq = subst (λ k → od→ord (ZFSubset (Ord a) k) ≡ od→ord t ) (sym oiso) (cong (λ k → od→ord k ) (==→o≡ eq ))
488 lemma : od→ord (ZFSubset (Ord a) (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset (Ord a) (ord→od x))) 496 lemma : od→ord (ZFSubset (Ord a) (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset (Ord a) (ord→od x)))
489 lemma = sup-o< 497 lemma = sup-o<
490 498
491 -- 499 --
492 -- Every set in OD is a subset of Ordinals 500 -- Every set in OD is a subset of Ordinals, so make Def (Ord (od→ord A)) first
501 -- then replace of all elements of the Power set by A ∩ y
493 -- 502 --
494 -- Power A = Replace (Def (Ord (od→ord A))) ( λ y → A ∩ y ) 503 -- Power A = Replace (Def (Ord (od→ord A))) ( λ y → A ∩ y )
495 504
496 -- we have oly double negation form because of the replacement axiom 505 -- we have oly double negation form because of the replacement axiom
497 -- 506 --
498 power→ : ( A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → ¬ ¬ (A ∋ x) 507 power→ : ( A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → ¬ ¬ (A ∋ x)
499 power→ A t P∋t {x} t∋x = TransFiniteExists _ lemma5 lemma4 where 508 power→ A t P∋t {x} t∋x = FExists _ lemma5 lemma4 where
500 a = od→ord A 509 a = od→ord A
501 lemma2 : ¬ ( (y : OD) → ¬ (t == (A ∩ y))) 510 lemma2 : ¬ ( (y : OD) → ¬ (t == (A ∩ y)))
502 lemma2 = replacement→ (Def (Ord (od→ord A))) t P∋t 511 lemma2 = replacement→ (Def (Ord (od→ord A))) t P∋t
503 lemma3 : (y : OD) → t == ( A ∩ y ) → ¬ ¬ (A ∋ x) 512 lemma3 : (y : OD) → t == ( A ∩ y ) → ¬ ¬ (A ∋ x)
504 lemma3 y eq not = not (proj1 (eq→ eq t∋x)) 513 lemma3 y eq not = not (proj1 (eq→ eq t∋x))
532 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) 541 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t))
533 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t == (A ∩ k)) (sym oiso) ( ∩-≡ t→A ))) 542 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t == (A ∩ k)) (sym oiso) ( ∩-≡ t→A )))
534 543
535 -- assuming axiom of choice 544 -- assuming axiom of choice
536 regularity : (x : OD) (not : ¬ (x == od∅)) → 545 regularity : (x : OD) (not : ¬ (x == od∅)) →
537 (x ∋ minimul x not) ∧ (Select (minimul x not) (λ x₁ → (minimul x not ∋ x₁) ∧ (x ∋ x₁)) == od∅) 546 (x ∋ minimal x not) ∧ (Select (minimal x not) (λ x₁ → (minimal x not ∋ x₁) ∧ (x ∋ x₁)) == od∅)
538 proj1 (regularity x not ) = x∋minimul x not 547 proj1 (regularity x not ) = x∋minimal x not
539 proj2 (regularity x not ) = record { eq→ = lemma1 ; eq← = λ {y} d → lemma2 {y} d } where 548 proj2 (regularity x not ) = record { eq→ = lemma1 ; eq← = λ {y} d → lemma2 {y} d } where
540 lemma1 : {x₁ : Ordinal} → def (Select (minimul x not) (λ x₂ → (minimul x not ∋ x₂) ∧ (x ∋ x₂))) x₁ → def od∅ x₁ 549 lemma1 : {x₁ : Ordinal} → def (Select (minimal x not) (λ x₂ → (minimal x not ∋ x₂) ∧ (x ∋ x₂))) x₁ → def od∅ x₁
541 lemma1 {x₁} s = ⊥-elim ( minimul-1 x not (ord→od x₁) lemma3 ) where 550 lemma1 {x₁} s = ⊥-elim ( minimal-1 x not (ord→od x₁) lemma3 ) where
542 lemma3 : def (minimul x not) (od→ord (ord→od x₁)) ∧ def x (od→ord (ord→od x₁)) 551 lemma3 : def (minimal x not) (od→ord (ord→od x₁)) ∧ def x (od→ord (ord→od x₁))
543 lemma3 = record { proj1 = def-subst {_} {_} {minimul x not} {_} (proj1 s) refl (sym diso) 552 lemma3 = record { proj1 = def-subst {_} {_} {minimal x not} {_} (proj1 s) refl (sym diso)
544 ; proj2 = proj2 (proj2 s) } 553 ; proj2 = proj2 (proj2 s) }
545 lemma2 : {x₁ : Ordinal} → def od∅ x₁ → def (Select (minimul x not) (λ x₂ → (minimul x not ∋ x₂) ∧ (x ∋ x₂))) x₁ 554 lemma2 : {x₁ : Ordinal} → def od∅ x₁ → def (Select (minimal x not) (λ x₂ → (minimal x not ∋ x₂) ∧ (x ∋ x₂))) x₁
546 lemma2 {y} d = ⊥-elim (empty (ord→od y) (def-subst {_} {_} {od∅} {od→ord (ord→od y)} d refl (sym diso) )) 555 lemma2 {y} d = ⊥-elim (empty (ord→od y) (def-subst {_} {_} {od∅} {od→ord (ord→od y)} d refl (sym diso) ))
547 556
548 extensionality0 : {A B : OD } → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B 557 extensionality0 : {A B : OD } → ((z : OD) → (A ∋ z) ⇔ (B ∋ z)) → A == B
549 eq→ (extensionality0 {A} {B} eq ) {x} d = def-iso {A} {B} (sym diso) (proj1 (eq (ord→od x))) d 558 eq→ (extensionality0 {A} {B} eq ) {x} d = def-iso {A} {B} (sym diso) (proj1 (eq (ord→od x))) d
550 eq← (extensionality0 {A} {B} eq ) {x} d = def-iso {B} {A} (sym diso) (proj2 (eq (ord→od x))) d 559 eq← (extensionality0 {A} {B} eq ) {x} d = def-iso {B} {A} (sym diso) (proj2 (eq (ord→od x))) d
567 infinity x lt = def-subst {_} {_} {infinite} {od→ord (Union (x , (x , x )))} ( isuc {od→ord x} lt ) refl lemma where 576 infinity x lt = def-subst {_} {_} {infinite} {od→ord (Union (x , (x , x )))} ( isuc {od→ord x} lt ) refl lemma where
568 lemma : od→ord (Union (ord→od (od→ord x) , (ord→od (od→ord x) , ord→od (od→ord x)))) 577 lemma : od→ord (Union (ord→od (od→ord x) , (ord→od (od→ord x) , ord→od (od→ord x))))
569 ≡ od→ord (Union (x , (x , x))) 578 ≡ od→ord (Union (x , (x , x)))
570 lemma = cong (λ k → od→ord (Union ( k , ( k , k ) ))) oiso 579 lemma = cong (λ k → od→ord (Union ( k , ( k , k ) ))) oiso
571 580
572 -- Axiom of choice ( is equivalent to the existence of minimul in our case ) 581 -- Axiom of choice ( is equivalent to the existence of minimal in our case )
573 -- ∀ X [ ∅ ∉ X → (∃ f : X → ⋃ X ) → ∀ A ∈ X ( f ( A ) ∈ A ) ] 582 -- ∀ X [ ∅ ∉ X → (∃ f : X → ⋃ X ) → ∀ A ∈ X ( f ( A ) ∈ A ) ]
574 choice-func : (X : OD ) → {x : OD } → ¬ ( x == od∅ ) → ( X ∋ x ) → OD 583 choice-func : (X : OD ) → {x : OD } → ¬ ( x == od∅ ) → ( X ∋ x ) → OD
575 choice-func X {x} not X∋x = minimul x not 584 choice-func X {x} not X∋x = minimal x not
576 choice : (X : OD ) → {A : OD } → ( X∋A : X ∋ A ) → (not : ¬ ( A == od∅ )) → A ∋ choice-func X not X∋A 585 choice : (X : OD ) → {A : OD } → ( X∋A : X ∋ A ) → (not : ¬ ( A == od∅ )) → A ∋ choice-func X not X∋A
577 choice X {A} X∋A not = x∋minimul A not 586 choice X {A} X∋A not = x∋minimal A not
578 587
579 --- 588 ---
580 --- With assuption of OD is ordered, p ∨ ( ¬ p ) <=> axiom of choice 589 --- With assuption of OD is ordered, p ∨ ( ¬ p ) <=> axiom of choice
581 --- 590 ---
582 record choiced ( X : OD) : Set (suc n) where 591 record choiced ( X : OD) : Set (suc n) where