comparison OD.agda @ 304:2c111bfcc89a

HOD using <maxod
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 29 Jun 2020 18:31:56 +0900
parents 7963b76df6e1
children 4804f3f3485f
comparison
equal deleted inserted replaced
303:7963b76df6e1 304:2c111bfcc89a
75 Ords = record { def = λ x → One } 75 Ords = record { def = λ x → One }
76 76
77 record HOD : Set (suc n) where 77 record HOD : Set (suc n) where
78 field 78 field
79 od : OD 79 od : OD
80 ¬odmax : ¬ (od ≡ Ords) 80 odmax : Ordinal
81 <odmax : {x : Ordinal} → def od x → x o< odmax
81 82
82 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where 83 record OrdinalSubset (maxordinal : Ordinal) : Set (suc n) where
83 field 84 field
84 os→ : (x : Ordinal) → x o< maxordinal → Ordinal 85 os→ : (x : Ordinal) → x o< maxordinal → Ordinal
85 os← : Ordinal → Ordinal 86 os← : Ordinal → Ordinal
87 os-iso← : {x : Ordinal} → os→ (os← x) (os←limit x) ≡ x 88 os-iso← : {x : Ordinal} → os→ (os← x) (os←limit x) ≡ x
88 os-iso→ : {x : Ordinal} → (lt : x o< maxordinal ) → os← (os→ x lt) ≡ x 89 os-iso→ : {x : Ordinal} → (lt : x o< maxordinal ) → os← (os→ x lt) ≡ x
89 90
90 open HOD 91 open HOD
91 92
92 -- HOD→OD : {x : Ordinal} → HOD x → OD
93 -- HOD→OD hod = record { def = hdef {!!} }
94
95 record ODAxiom : Set (suc n) where 93 record ODAxiom : Set (suc n) where
96 -- OD can be iso to a subset of Ordinal ( by means of Godel Set )
97 field 94 field
95 -- HOD is isomorphic to Ordinal (by means of Goedel number)
98 od→ord : HOD → Ordinal 96 od→ord : HOD → Ordinal
99 ord→od : Ordinal → HOD 97 ord→od : Ordinal → HOD
100 c<→o< : {x y : HOD } → def (od y) ( od→ord x ) → od→ord x o< od→ord y 98 c<→o< : {x y : HOD } → def (od y) ( od→ord x ) → od→ord x o< od→ord y
101 oiso : {x : HOD } → ord→od ( od→ord x ) ≡ x 99 oiso : {x : HOD } → ord→od ( od→ord x ) ≡ x
102 diso : {x : Ordinal } → od→ord ( ord→od x ) ≡ x 100 diso : {x : Ordinal } → od→ord ( ord→od x ) ≡ x
112 open ODAxiom odAxiom 110 open ODAxiom odAxiom
113 111
114 -- maxod : {x : OD} → od→ord x o< od→ord Ords 112 -- maxod : {x : OD} → od→ord x o< od→ord Ords
115 -- maxod {x} = c<→o< OneObj 113 -- maxod {x} = c<→o< OneObj
116 114
117 -- we have to avoid this contradiction 115 -- we have not this contradiction
118
119 -- bad-bad : ⊥ 116 -- bad-bad : ⊥
120 -- bad-bad = osuc-< <-osuc (c<→o< { record { def = λ x → One }} OneObj) 117 -- bad-bad = osuc-< <-osuc (c<→o< { record { od = record { def = λ x → One }; <odmax = {!!} } } OneObj)
121 118
122 -- Ordinal in OD ( and ZFSet ) Transitive Set 119 -- Ordinal in OD ( and ZFSet ) Transitive Set
123 Ord : ( a : Ordinal ) → HOD 120 Ord : ( a : Ordinal ) → HOD
124 Ord a = record { od = record { def = λ y → y o< a } ; ¬odmax = ? } 121 Ord a = record { od = record { def = λ y → y o< a } ; odmax = a ; <odmax = lemma } where
122 lemma : {x : Ordinal} → x o< a → x o< a
123 lemma {x} lt = lt
125 124
126 od∅ : HOD 125 od∅ : HOD
127 od∅ = Ord o∅ 126 od∅ = Ord o∅
128 127
129 sup-o : ( HOD → Ordinal ) → Ordinal 128 sup-o : ( HOD → Ordinal ) → Ordinal
130 sup-o = ? 129 sup-o = {!!}
131 sup-o< : { ψ : HOD → Ordinal } → ∀ {x : HOD } → ψ x o< sup-o ψ 130 sup-o< : { ψ : HOD → Ordinal } → ∀ {x : HOD } → ψ x o< sup-o ψ
132 sup-o< = ? 131 sup-o< = {!!}
133 132
134 odef : HOD → Ordinal → Set n 133 odef : HOD → Ordinal → Set n
135 odef A x = def ( od A ) x 134 odef A x = def ( od A ) x
136 135
137 o<→c<→HOD=Ord : ( {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x) 136 o<→c<→HOD=Ord : ( {x y : Ordinal } → x o< y → odef (ord→od y) x ) → {x : HOD } → x ≡ Ord (od→ord x)
146 145
147 _c<_ : ( x a : HOD ) → Set n 146 _c<_ : ( x a : HOD ) → Set n
148 x c< a = a ∋ x 147 x c< a = a ∋ x
149 148
150 cseq : {n : Level} → HOD → HOD 149 cseq : {n : Level} → HOD → HOD
151 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; ¬odmax = ? } where 150 cseq x = record { od = record { def = λ y → odef x (osuc y) } ; odmax = {!!} ; <odmax = {!!} } where
152 151
153 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x 152 odef-subst : {Z : HOD } {X : Ordinal }{z : HOD } {x : Ordinal }→ odef Z X → Z ≡ z → X ≡ x → odef z x
154 odef-subst df refl refl = df 153 odef-subst df refl refl = df
155 154
156 otrans : {n : Level} {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y 155 otrans : {n : Level} {a x y : Ordinal } → odef (Ord a) x → odef (Ord x) y → odef (Ord a) y
214 is-o∅ x | tri< a ¬b ¬c = no ¬b 213 is-o∅ x | tri< a ¬b ¬c = no ¬b
215 is-o∅ x | tri≈ ¬a b ¬c = yes b 214 is-o∅ x | tri≈ ¬a b ¬c = yes b
216 is-o∅ x | tri> ¬a ¬b c = no ¬b 215 is-o∅ x | tri> ¬a ¬b c = no ¬b
217 216
218 _,_ : HOD → HOD → HOD 217 _,_ : HOD → HOD → HOD
219 x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; ¬odmax = ? } -- Ord (omax (od→ord x) (od→ord y)) 218 x , y = record { od = record { def = λ t → (t ≡ od→ord x ) ∨ ( t ≡ od→ord y ) } ; odmax = {!!} ; <odmax = {!!} } -- Ord (omax (od→ord x) (od→ord y))
220 219
221 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 220 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
222 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n) 221 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality n (suc n)
223 222
224 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → HOD 223 in-codomain : (X : HOD ) → ( ψ : HOD → HOD ) → HOD
225 in-codomain X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } ; ¬odmax = ? } 224 in-codomain X ψ = record { od = record { def = λ x → ¬ ( (y : Ordinal ) → ¬ ( odef X y ∧ ( x ≡ od→ord (ψ (ord→od y ))))) } ; odmax = {!!} ; <odmax = {!!} }
226 225
227 -- Power Set of X ( or constructible by λ y → odef X (od→ord y ) 226 -- Power Set of X ( or constructible by λ y → odef X (od→ord y )
228 227
229 ZFSubset : (A x : HOD ) → HOD 228 ZFSubset : (A x : HOD ) → HOD
230 ZFSubset A x = record { od = record { def = λ y → odef A y ∧ odef x y } ; ¬odmax = ? } -- roughly x = A → Set 229 ZFSubset A x = record { od = record { def = λ y → odef A y ∧ odef x y } ; odmax = {!!} ; <odmax = {!!} } -- roughly x = A → Set
231 230
232 OPwr : (A : HOD ) → HOD 231 OPwr : (A : HOD ) → HOD
233 OPwr A = Ord ( sup-o ( λ x → od→ord ( ZFSubset A x) ) ) 232 OPwr A = Ord ( sup-o ( λ x → od→ord ( ZFSubset A x) ) )
234 233
235 -- _⊆_ : ( A B : HOD ) → ∀{ x : HOD } → Set n 234 -- _⊆_ : ( A B : HOD ) → ∀{ x : HOD } → Set n
277 ; infinite = infinite 276 ; infinite = infinite
278 ; isZF = isZF 277 ; isZF = isZF
279 } where 278 } where
280 ZFSet = HOD -- is less than Ords because of maxod 279 ZFSet = HOD -- is less than Ords because of maxod
281 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD 280 Select : (X : HOD ) → ((x : HOD ) → Set n ) → HOD
282 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; ¬odmax = ? } 281 Select X ψ = record { od = record { def = λ x → ( odef X x ∧ ψ ( ord→od x )) } ; odmax = {!!} ; <odmax = {!!} }
283 Replace : HOD → (HOD → HOD ) → HOD 282 Replace : HOD → (HOD → HOD ) → HOD
284 Replace X ψ = record { od = record { def = λ x → (x o< sup-o ( λ x → od→ord (ψ x))) ∧ odef (in-codomain X ψ) x } ; ¬odmax = ? } 283 Replace X ψ = record { od = record { def = λ x → (x o< sup-o ( λ x → od→ord (ψ x))) ∧ odef (in-codomain X ψ) x } ; odmax = {!!} ; <odmax = {!!} }
285 _∩_ : ( A B : ZFSet ) → ZFSet 284 _∩_ : ( A B : ZFSet ) → ZFSet
286 A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x } ; ¬odmax = ? } 285 A ∩ B = record { od = record { def = λ x → odef A x ∧ odef B x } ; odmax = {!!} ; <odmax = {!!} }
287 Union : HOD → HOD 286 Union : HOD → HOD
288 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ; ¬odmax = ? } 287 Union U = record { od = record { def = λ x → ¬ (∀ (u : Ordinal ) → ¬ ((odef U u) ∧ (odef (ord→od u) x))) } ; odmax = {!!} ; <odmax = {!!} }
289 _∈_ : ( A B : ZFSet ) → Set n 288 _∈_ : ( A B : ZFSet ) → Set n
290 A ∈ B = B ∋ A 289 A ∈ B = B ∋ A
291 Power : HOD → HOD 290 Power : HOD → HOD
292 Power A = Replace (OPwr (Ord (od→ord A))) ( λ x → A ∩ x ) 291 Power A = Replace (OPwr (Ord (od→ord A))) ( λ x → A ∩ x )
293 -- {_} : ZFSet → ZFSet 292 -- {_} : ZFSet → ZFSet
297 iφ : infinite-d o∅ 296 iφ : infinite-d o∅
298 isuc : {x : Ordinal } → infinite-d x → 297 isuc : {x : Ordinal } → infinite-d x →
299 infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) )) 298 infinite-d (od→ord ( Union (ord→od x , (ord→od x , ord→od x ) ) ))
300 299
301 infinite : HOD 300 infinite : HOD
302 infinite = record { od = record { def = λ x → infinite-d x } ; ¬odmax = ? } 301 infinite = record { od = record { def = λ x → infinite-d x } ; odmax = {!!} ; <odmax = {!!} }
303 302
304 _=h=_ : (x y : HOD) → Set n 303 _=h=_ : (x y : HOD) → Set n
305 x =h= y = od x == od y 304 x =h= y = od x == od y
306 305
307 infixr 200 _∈_ 306 infixr 200 _∈_
362 selection {ψ} {X} {y} = record { 361 selection {ψ} {X} {y} = record {
363 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } 362 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) }
364 ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso } 363 ; proj2 = λ select → record { proj1 = proj1 select ; proj2 = ψiso {ψ} (proj2 select) oiso }
365 } 364 }
366 replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x 365 replacement← : {ψ : HOD → HOD} (X x : HOD) → X ∋ x → Replace X ψ ∋ ψ x
367 replacement← {ψ} X x lt = record { proj1 = ? ; proj2 = lemma } where -- sup-c< ψ {x} 366 replacement← {ψ} X x lt = record { proj1 = {!!} ; proj2 = lemma } where -- sup-c< ψ {x}
368 lemma : odef (in-codomain X ψ) (od→ord (ψ x)) 367 lemma : odef (in-codomain X ψ) (od→ord (ψ x))
369 lemma not = ⊥-elim ( not ( od→ord x ) (record { proj1 = lt ; proj2 = cong (λ k → od→ord (ψ k)) (sym oiso)} )) 368 lemma not = ⊥-elim ( not ( od→ord x ) (record { proj1 = lt ; proj2 = cong (λ k → od→ord (ψ k)) (sym oiso)} ))
370 replacement→ : {ψ : HOD → HOD} (X x : HOD) → (lt : Replace X ψ ∋ x) → ¬ ( (y : HOD) → ¬ (x =h= ψ y)) 369 replacement→ : {ψ : HOD → HOD} (X x : HOD) → (lt : Replace X ψ ∋ x) → ¬ ( (y : HOD) → ¬ (x =h= ψ y))
371 replacement→ {ψ} X x lt = contra-position lemma (lemma2 (proj2 lt)) where 370 replacement→ {ψ} X x lt = contra-position lemma (lemma2 (proj2 lt)) where
372 lemma2 : ¬ ((y : Ordinal) → ¬ odef X y ∧ ((od→ord x) ≡ od→ord (ψ (ord→od y)))) 371 lemma2 : ¬ ((y : Ordinal) → ¬ odef X y ∧ ((od→ord x) ≡ od→ord (ψ (ord→od y))))