comparison ordinal-definable.agda @ 77:75ba8cf64707

Power Set on going ...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sun, 02 Jun 2019 15:12:26 +0900
parents 8e8f54e7a030
children 9a7a64b2388c
comparison
equal deleted inserted replaced
76:8e8f54e7a030 77:75ba8cf64707
281 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅ 281 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅
282 lemma1 = cong ( λ k → od→ord k ) o∅→od∅ 282 lemma1 = cong ( λ k → od→ord k ) o∅→od∅
283 lemma o∅ ne | yes refl | () 283 lemma o∅ ne | yes refl | ()
284 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅→od∅ (o<→c< (∅5 ¬p)) 284 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅→od∅ (o<→c< (∅5 ¬p))
285 285
286 -- ∃-set : {n : Level} → ( x : OD {suc n} ) → ( ψ : OD {suc n} → Set (suc n) ) → Set (suc n)
287 -- ∃-set = {!!}
288
289 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc (suc n)) (suc (suc n ))
290
291 -- ==∅→≡ : {n : Level} → { x : OD {suc n} } → ( x == od∅ {suc n} ) → x ≡ od∅ {suc n}
292 -- ==∅→≡ {n} {x} eq = cong ( λ k → record { def = k } ) (trans {!!} ∅-base-def ) where
293
294
295 open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ ) 286 open import Relation.Binary.HeterogeneousEquality as HE using (_≅_ )
296 287
297 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n} 288 OD→ZF : {n : Level} → ZF {suc (suc n)} {suc n}
298 OD→ZF {n} = record { 289 OD→ZF {n} = record {
299 ZFSet = OD {suc n} 290 ZFSet = OD {suc n}
314 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) } 305 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) }
315 _,_ : OD {suc n} → OD {suc n} → OD {suc n} 306 _,_ : OD {suc n} → OD {suc n} → OD {suc n}
316 x , y = record { def = λ z → ( (z ≡ od→ord x ) ∨ ( z ≡ od→ord y )) } 307 x , y = record { def = λ z → ( (z ≡ od→ord x ) ∨ ( z ≡ od→ord y )) }
317 Union : OD {suc n} → OD {suc n} 308 Union : OD {suc n} → OD {suc n}
318 Union U = record { def = λ y → osuc y o< (od→ord U) } 309 Union U = record { def = λ y → osuc y o< (od→ord U) }
310 -- power : ∀ X ∃ A ∀ t ( t ∈ A ↔ ( ∀ {x} → t ∋ x → X ∋ x )
319 Power : OD {suc n} → OD {suc n} 311 Power : OD {suc n} → OD {suc n}
320 Power x = record { def = λ y → (z : Ordinal {suc n} ) → ( def x y ∧ def (ord→od z) y ) } 312 Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) }
321 ZFSet = OD {suc n} 313 ZFSet = OD {suc n}
322 _∈_ : ( A B : ZFSet ) → Set (suc n) 314 _∈_ : ( A B : ZFSet ) → Set (suc n)
323 A ∈ B = B ∋ A 315 A ∈ B = B ∋ A
324 _⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set (suc n) 316 _⊆_ : ( A B : ZFSet ) → ∀{ x : ZFSet } → Set (suc n)
325 _⊆_ A B {x} = A ∋ x → B ∋ x 317 _⊆_ A B {x} = A ∋ x → B ∋ x
353 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B) 345 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B)
354 proj1 (pair A B ) = case1 refl 346 proj1 (pair A B ) = case1 refl
355 proj2 (pair A B ) = case2 refl 347 proj2 (pair A B ) = case2 refl
356 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) 348 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x)
357 empty x () 349 empty x ()
358 -- Power x = record { def = λ y → (z : Ordinal {suc n} ) → ( def x y ∧ def (ord→od z) y ) } 350 --- Power X = record { def = λ y → ∀ (x : Ordinal {suc n} ) → ( def X x ∧ def (ord→od y) x ) }
359 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
360 power→ A t P∋t {x} t∋x = transitive {n} {A} {t} {x} lemma t∋x where 352 power→ A t P∋t {x} t∋x = proj1 (P∋t (od→ord x) )
361 lemma : A ∋ t 353 power← : (A t : OD) → ({x : OD} → (t ∋ x → A ∋ x)) → Power A ∋ t
362 lemma = proj1 (P∋t (od→ord x )) 354 power← A t t→A z = record { proj1 = lemma2 ; proj2 = lemma1 } where
363 power← : (A t : OD) {x : OD} → (t ∋ x → A ∋ x) → Power A ∋ t 355 lemma1 : def (ord→od (od→ord t)) z
364 power← A t {x} t→A y = record { proj1 = lemma1 ; proj2 = lemma2 } where
365 lemma1 : def A (od→ord t)
366 lemma1 = {!!} 356 lemma1 = {!!}
367 lemma2 : def (ord→od y) (od→ord t) 357 lemma2 : def A z
368 lemma2 = {!!} 358 lemma2 = {!!}
369 union-u : (X z : OD {suc n}) → Union X ∋ z → OD {suc n} 359 union-u : (X z : OD {suc n}) → Union X ∋ z → OD {suc n}
370 union-u X z U>z = ord→od ( osuc ( od→ord z ) ) 360 union-u X z U>z = ord→od ( osuc ( od→ord z ) )
371 union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → union-u X z U>z ∋ z 361 union-lemma-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → union-u X z U>z ∋ z
372 union-lemma-u {X} {z} U>z = lemma <-osuc where 362 union-lemma-u {X} {z} U>z = lemma <-osuc where