comparison src/ODC.agda @ 467:c65cb6c07a38

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 23 Mar 2022 16:42:42 +0900
parents 14b0e0aa6487
children c70cf01b29f9
comparison
equal deleted inserted replaced
466:14b0e0aa6487 467:c65cb6c07a38
38 postulate 38 postulate
39 -- mimimul and x∋minimal is an Axiom of choice 39 -- mimimul and x∋minimal is an Axiom of choice
40 minimal : (x : HOD ) → ¬ (x =h= od∅ )→ HOD 40 minimal : (x : HOD ) → ¬ (x =h= od∅ )→ HOD
41 -- this should be ¬ (x =h= od∅ )→ ∃ ox → x ∋ Ord ox ( minimum of x ) 41 -- this should be ¬ (x =h= od∅ )→ ∃ ox → x ∋ Ord ox ( minimum of x )
42 x∋minimal : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → odef x ( & ( minimal x ne ) ) 42 x∋minimal : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → odef x ( & ( minimal x ne ) )
43 -- minimality (may proved by ε-induction with LEM) 43 -- minimality (proved by ε-induction with LEM)
44 minimal-1 : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → (y : HOD ) → ¬ ( odef (minimal x ne) (& y)) ∧ (odef x (& y) ) 44 minimal-1 : (x : HOD ) → ( ne : ¬ (x =h= od∅ ) ) → (y : HOD ) → ¬ ( odef (minimal x ne) (& y)) ∧ (odef x (& y) )
45 45
46 46
47 -- 47 --
48 -- Axiom of choice in intutionistic logic implies the exclude middle 48 -- Axiom of choice in intutionistic logic implies the exclude middle
109 record SUP ( A B : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where 109 record SUP ( A B : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where
110 field 110 field
111 sup : HOD 111 sup : HOD
112 A∋maximal : A ∋ sup 112 A∋maximal : A ∋ sup
113 tri : {a b : HOD} → B ∋ a → B ∋ b → (a < b) ∨ (a ≡ b) ∨ (b < a ) 113 tri : {a b : HOD} → B ∋ a → B ∋ b → (a < b) ∨ (a ≡ b) ∨ (b < a )
114 x≤sup : (x : HOD) → (b : B ∋ x ) → (x ≡ sup ) ∨ (x < sup ) 114 x≤sup : (x : HOD) → B ∋ x → (x ≡ sup ) ∨ (x < sup )
115 115
116 record Maximal ( A : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where 116 record Maximal ( A : HOD ) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where
117 field 117 field
118 maximal : HOD 118 maximal : HOD
119 A∋maximal : HOD 119 A∋maximal : HOD
120 ¬maximal<x : (x : HOD) → (b : A ∋ x ) → ¬ maximal < x 120 ¬maximal<x : (x : HOD) → (b : A ∋ x ) → ¬ maximal < x
121 121
122 record ZChain ( A : HOD ) (x : Ordinal) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where 122 record ZChain ( A : HOD ) (y : Ordinal) (_<_ : (x y : HOD) → Set n ) : Set (suc n) where
123 field 123 field
124 NOMAX : HOD 124 B : HOD
125 Chain : HOD 125 B⊆A : B ⊆ A
126 nomax : (y m : Ordinal) → odef NOMAX y → y o< x → ¬ ( * y < * m ) 126 tri : {a b : HOD} → B ∋ a → B ∋ b → (a < b) ∨ (a ≡ b) ∨ (b < a )
127 chain : (y : Ordinal) → odef Chain y → & NOMAX ≡ o∅ → SUP A (* y) _<_ 127 fb : {x : HOD } → A ∋ x → HOD
128 B∋fb : (x : HOD ) → (ax : A ∋ x) → B ∋ fb ax
129 ¬x≤sup : (sup : HOD) → (as : A ∋ sup ) → & sup o< y → sup < fb as
128 130
129 Zorn-lemma : { A : HOD } → { _<_ : (x y : HOD) → Set n } 131 Zorn-lemma : { A : HOD } → { _<_ : (x y : HOD) → Set n }
130 → o∅ o< & A 132 → o∅ o< & A
131 → ( ( B : HOD) → (B⊆A : B ⊆ A) → SUP A B _<_ ) 133 → ( ( B : HOD) → (B⊆A : B ⊆ A) → SUP A B _<_ )
132 → Maximal A _<_ 134 → Maximal A _<_
133 Zorn-lemma {A} {_<_} 0<A SUP = zorn01 (TransFinite ind (& A)) where 135 Zorn-lemma {A} {_<_} 0<A supP = zorn00 where
134 HasGreater : Ordinal → HOD 136 HasMaximal : HOD
135 HasGreater m = record { od = record { def = λ x → odef A x ∧ (* m < * x) } ; odmax = & A ; <odmax = {!!} } 137 HasMaximal = record { od = record { def = λ x → (m : Ordinal) → odef A x ∧ odef A m ∧ (¬ (* x < * m))} ; odmax = & A ; <odmax = {!!} }
136 zorn01 : ZChain A (& A) _<_ → Maximal A _<_ 138 ZChain→¬SUP : (z : ZChain A (& A) _<_ ) → ¬ (SUP A (ZChain.B z) _<_ )
137 zorn01 zc with is-o∅ ( & (ZChain.NOMAX zc) ) 139 ZChain→¬SUP z sp = {!!}
138 ... | yes _ = {!!}
139 ... | no not = record { maximal = minimal (ZChain.NOMAX zc) (λ eq → not (=od∅→≡o∅ eq)) ; A∋maximal = {!!}
140 ; ¬maximal<x = λ x lt m<x → ZChain.nomax zc {!!} {!!} (x∋minimal (ZChain.NOMAX zc) (λ eq → not (=od∅→≡o∅ eq)) ) {!!} {!!} }
141 ind : (x : Ordinal) → ((y : Ordinal) → y o< x → ZChain A y _<_ ) 140 ind : (x : Ordinal) → ((y : Ordinal) → y o< x → ZChain A y _<_ )
142 → ZChain A x _<_ 141 → ZChain A x _<_
143 ind x prev with Oprev-p x 142 ind x prev with Oprev-p x
144 ... | yes ox with is-o∅ (& (HasGreater x)) 143 ... | yes _ = {!!}
145 ... | yes _ = record { NOMAX = {!!} ; nomax = {!!} ; Chain = {!!} ; chain = {!!} } where
146 ... | no _ = record { NOMAX = {!!} ; nomax = {!!} ; Chain = {!!} ; chain = {!!} } where
147 ind x prev | no ¬ox with trio< (& A) x 144 ind x prev | no ¬ox with trio< (& A) x
148 ... | tri< a ¬b ¬c = {!!} 145 ... | tri< a ¬b ¬c = {!!}
149 ... | tri≈ ¬a b ¬c = {!!} 146 ... | tri≈ ¬a b ¬c = {!!}
150 ... | tri> ¬a ¬b c = {!!} 147 ... | tri> ¬a ¬b c = {!!}
148 zorn00 : Maximal A _<_
149 zorn00 with is-o∅ ( & HasMaximal )
150 ... | no not = record { maximal = minimal HasMaximal (λ eq → not (=od∅→≡o∅ eq)) ; A∋maximal = {!!}; ¬maximal<x = {!!} }
151 ... | yes ¬Maximal = ⊥-elim ( ZChain→¬SUP (z (& A)) ( supP (ZChain.B (z (& A))) (ZChain.B⊆A (z (& A))) ) ) where
152 z : (x : Ordinal) → ZChain A x _<_
153 z = TransFinite ind
151 154
152 open import zfc 155 open import zfc
153 156
154 HOD→ZFC : ZFC 157 HOD→ZFC : ZFC
155 HOD→ZFC = record { 158 HOD→ZFC = record {