comparison ordinal-definable.agda @ 97:f2b579106770

power set using sup on Def
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 09 Jun 2019 19:41:53 +0900
parents f239ffc27fd0
children 1ff0ddc991ac
comparison
equal deleted inserted replaced
96:f239ffc27fd0 97:f2b579106770
246 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅≡od∅ (o<→c< (subst (λ k → k o< ox ) (sym diso) (∅5 ¬p)) ) 246 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅≡od∅ (o<→c< (subst (λ k → k o< ox ) (sym diso) (∅5 ¬p)) )
247 247
248 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 248 -- open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
249 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc n) (suc (suc n)) 249 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc n) (suc (suc n))
250 250
251 -- Power Set of X ( or constructible by λ y → def X (od→ord y )
252 Def : {n : Level} → OD {suc n} → OD {suc n}
253 Def {n} A = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x → def A x }
254
255 -- Constructible Set on α
256 L : {n : Level} → Ordinal {suc n} → OD {suc n}
257 L {n} record { lv = Zero ; ord = (Φ .0) } = od∅
258 L {n} record { lv = lx ; ord = (OSuc lv ox) } = Def ( L ( record { lv = lx ; ord = ox } ))
259 L {n} record { lv = (Suc lx) ; ord = (Φ (Suc lx)) } = -- Union ( L α )
260 record { def = λ y → osuc y o< (od→ord (L {n} (record { lv = lx ; ord = Φ lx }) )) }
261
262 csuc : {n : Level} → OD {suc n} → OD {suc n} 251 csuc : {n : Level} → OD {suc n} → OD {suc n}
263 csuc x = ord→od ( osuc ( od→ord x )) 252 csuc x = ord→od ( osuc ( od→ord x ))
253
254 -- Power Set of X ( or constructible by λ y → def X (od→ord y )
255
256 ZFSubset : {n : Level} → (A x : OD {suc n} ) → OD {suc n}
257 ZFSubset A x = record { def = λ y → def A y ∧ def x y }
258
259 Def : {n : Level} → (A : OD {suc n}) → OD {suc n}
260 Def {n} A = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) )
261
262 -- Constructible Set on α
263 L : {n : Level} → (α : Ordinal {suc n}) → OD {suc n}
264 L {n} record { lv = Zero ; ord = (Φ .0) } = od∅
265 L {n} record { lv = lx ; ord = (OSuc lv ox) } = Def ( L {n} ( record { lv = lx ; ord = ox } ) )
266 L {n} record { lv = (Suc lx) ; ord = (Φ (Suc lx)) } = -- Union ( L α )
267 record { def = λ y → osuc y o< (od→ord (L {n} (record { lv = lx ; ord = Φ lx }) )) }
264 268
265 -- L∋ord : {n : Level} → (x : Ordinal {suc n} ) → L (osuc x) ∋ ord→od x 269 -- L∋ord : {n : Level} → (x : Ordinal {suc n} ) → L (osuc x) ∋ ord→od x
266 -- L∋ord {n} record { lv = Zero ; ord = (Φ .0) } = {!!} 270 -- L∋ord {n} record { lv = Zero ; ord = (Φ .0) } = {!!}
267 -- L∋ord {n} record { lv = (Suc lv₁) ; ord = (Φ .(Suc lv₁)) } = {!!} 271 -- L∋ord {n} record { lv = (Suc lv₁) ; ord = (Φ .(Suc lv₁)) } = {!!}
268 -- L∋ord {n} record { lv = lv ; ord = (OSuc .(lv) ord₁) } = {!!} 272 -- L∋ord {n} record { lv = lv ; ord = (OSuc .(lv) ord₁) } = {!!}
274 ... | t = x 278 ... | t = x
275 279
276 supP : {n : Level} → (A : OD {suc n} ) → Ordinal {suc n} 280 supP : {n : Level} → (A : OD {suc n} ) → Ordinal {suc n}
277 supP A = sup-o ( ord-of A ) 281 supP A = sup-o ( ord-of A )
278 282
279 L→P : {n : Level} → (A : OD {suc n} ) → L (supP A) ∋ Def A 283 L→P : {n : Level} → (A x : OD {suc n} ) → L {n} (supP A) ∋ ZFSubset A x
280 L→P {n} A = {!!} 284 L→P {n} A x with sup-o< (ord-of A) {{!!}}
285 ... | lt = {!!}
281 286
282 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n} 287 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n}
283 OD→ZF {n} = record { 288 OD→ZF {n} = record {
284 ZFSet = OD {suc n} 289 ZFSet = OD {suc n}
285 ; _∋_ = _∋_ 290 ; _∋_ = _∋_
301 x , y = record { def = λ z → z o< (omax (od→ord x) (od→ord y)) } 306 x , y = record { def = λ z → z o< (omax (od→ord x) (od→ord y)) }
302 Union : OD {suc n} → OD {suc n} 307 Union : OD {suc n} → OD {suc n}
303 Union U = record { def = λ y → osuc y o< (od→ord U) } 308 Union U = record { def = λ y → osuc y o< (od→ord U) }
304 -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x → X ∋ x ) 309 -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x → X ∋ x )
305 Power : OD {suc n} → OD {suc n} 310 Power : OD {suc n} → OD {suc n}
306 Power A = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x → def A x } 311 Power A = Def A
307 ZFSet = OD {suc n} 312 ZFSet = OD {suc n}
308 _∈_ : ( A B : ZFSet ) → Set (suc n) 313 _∈_ : ( A B : ZFSet ) → Set (suc n)
309 A ∈ B = B ∋ A 314 A ∈ B = B ∋ A
310 _⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set (suc n) 315 _⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set (suc n)
311 _⊆_ A B {x} = A ∋ x → B ∋ x 316 _⊆_ A B {x} = A ∋ x → B ∋ x
318 infixr 220 _⊆_ 323 infixr 220 _⊆_
319 isZF : IsZF (OD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (ord→od ( record { lv = Suc Zero ; ord = Φ 1} )) 324 isZF : IsZF (OD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (ord→od ( record { lv = Suc Zero ; ord = Φ 1} ))
320 isZF = record { 325 isZF = record {
321 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans } 326 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans }
322 ; pair = pair 327 ; pair = pair
323 ; union-u = union-u 328 ; union-u = λ _ z _ → csuc z
324 ; union→ = union→ 329 ; union→ = union→
325 ; union← = union← 330 ; union← = union←
326 ; empty = empty 331 ; empty = empty
327 ; power→ = power→ 332 ; power→ = power→
328 ; power← = power← 333 ; power← = power←
339 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B) 344 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B)
340 proj1 (pair A B ) = omax-x {n} (od→ord A) (od→ord B) 345 proj1 (pair A B ) = omax-x {n} (od→ord A) (od→ord B)
341 proj2 (pair A B ) = omax-y {n} (od→ord A) (od→ord B) 346 proj2 (pair A B ) = omax-y {n} (od→ord A) (od→ord B)
342 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) 347 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x)
343 empty x () 348 empty x ()
344 --- Power X = record { def = λ t → ∀ (x : Ordinal {suc n} ) → def (ord→od t) x → def X x } 349 --- ZFSubset A x = record { def = λ y → def A y ∧ def x y }
350 --- Power X = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) )
345 power→ : (A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → A ∋ x 351 power→ : (A t : OD) → Power A ∋ t → {x : OD} → t ∋ x → A ∋ x
346 power→ A t P∋t {x} t∋x = P∋t (od→ord x) (subst (λ k → def k (od→ord x)) (sym oiso) t∋x ) 352 power→ A t P∋t {x} t∋x = proj1 lemma-s where
353 lemma-t : ZFSubset A {!!} ∋ csuc t
354 lemma-t = record { proj1 = {!!} ; proj2 = {!!} }
355 lemma-s : ZFSubset A {!!} ∋ x
356 lemma-s = {!!} -- transitive {!!} t∋x
357 lemma : od→ord (ZFSubset A (ord→od (od→ord (csuc t))) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x)))
358 lemma = sup-o< {suc n} ( λ x → od→ord ( ZFSubset A (ord→od x )))
347 power← : (A t : OD) → ({x : OD} → (t ∋ x → A ∋ x)) → Power A ∋ t 359 power← : (A t : OD) → ({x : OD} → (t ∋ x → A ∋ x)) → Power A ∋ t
348 power← A t t→A z _ = {!!} 360 power← A t t→A = {!!} where
349 union-u : (X z : OD {suc n}) → Union X ∋ z → OD {suc n} 361 lemma-eq : ZFSubset A t == t
350 union-u X z U>z = ord→od ( osuc ( od→ord z ) ) 362 eq→ lemma-eq {z} w = proj2 w
351 union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → union-u X z U>z ∋ z 363 eq← lemma-eq {z} w = record { proj2 = w ;
364 proj1 = def-subst {suc n} {_} {_} {A} {z} ( t→A (def-subst {suc n} {_} {_} {t} {od→ord (ord→od z)} w refl (sym diso) )) refl diso }
365 lemma : od→ord (ZFSubset A (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x)))
366 lemma = sup-o< {suc n} ( λ x → od→ord ( ZFSubset A (ord→od x )))
367 union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → csuc z ∋ z
352 union-lemma-u {X} {z} U>z = lemma <-osuc where 368 union-lemma-u {X} {z} U>z = lemma <-osuc where
353 lemma : {oz ooz : Ordinal {suc n}} → oz o< ooz → def (ord→od ooz) oz 369 lemma : {oz ooz : Ordinal {suc n}} → oz o< ooz → def (ord→od ooz) oz
354 lemma {oz} {ooz} lt = def-subst {suc n} {ord→od ooz} (o<→c< lt) refl refl 370 lemma {oz} {ooz} lt = def-subst {suc n} {ord→od ooz} (o<→c< lt) refl refl
355 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z 371 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z
356 union→ X y u xx with trio< ( od→ord u ) ( osuc ( od→ord y )) 372 union→ X y u xx with trio< ( od→ord u ) ( osuc ( od→ord y ))
358 union→ X y u xx | tri< a ¬b ¬c | () 374 union→ X y u xx | tri< a ¬b ¬c | ()
359 union→ X y u xx | tri≈ ¬a b ¬c = lemma b (c<→o< (proj1 xx )) where 375 union→ X y u xx | tri≈ ¬a b ¬c = lemma b (c<→o< (proj1 xx )) where
360 lemma : {oX ou ooy : Ordinal {suc n}} → ou ≡ ooy → ou o< oX → ooy o< oX 376 lemma : {oX ou ooy : Ordinal {suc n}} → ou ≡ ooy → ou o< oX → ooy o< oX
361 lemma refl lt = lt 377 lemma refl lt = lt
362 union→ X y u xx | tri> ¬a ¬b c = ordtrans {suc n} {osuc ( od→ord y )} {od→ord u} {od→ord X} c ( c<→o< (proj1 xx )) 378 union→ X y u xx | tri> ¬a ¬b c = ordtrans {suc n} {osuc ( od→ord y )} {od→ord u} {od→ord X} c ( c<→o< (proj1 xx ))
363 union← : (X z : OD) (X∋z : Union X ∋ z) → (X ∋ union-u X z X∋z) ∧ (union-u X z X∋z ∋ z ) 379 union← : (X z : OD) (X∋z : Union X ∋ z) → (X ∋ csuc z) ∧ (csuc z ∋ z )
364 union← X z X∋z = record { proj1 = def-subst {suc n} {_} {_} {X} {od→ord (union-u X z X∋z)} (o<→c< X∋z) oiso (sym diso) ; proj2 = union-lemma-u X∋z } 380 union← X z X∋z = record { proj1 = def-subst {suc n} {_} {_} {X} {od→ord (csuc z )} (o<→c< X∋z) oiso (sym diso) ; proj2 = union-lemma-u X∋z }
365 ψiso : {ψ : OD {suc n} → Set (suc n)} {x y : OD {suc n}} → ψ x → x ≡ y → ψ y 381 ψiso : {ψ : OD {suc n} → Set (suc n)} {x y : OD {suc n}} → ψ x → x ≡ y → ψ y
366 ψiso {ψ} t refl = t 382 ψiso {ψ} t refl = t
367 selection : {ψ : OD → Set (suc n)} {X y : OD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) 383 selection : {ψ : OD → Set (suc n)} {X y : OD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y)
368 selection {ψ} {X} {y} = record { 384 selection {ψ} {X} {y} = record {
369 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } 385 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) }