comparison ordinal-definable.agda @ 69:93abc0133b8a

union continue
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 31 May 2019 22:30:23 +0900
parents c69657d00557
children cd9cf8b09610
comparison
equal deleted inserted replaced
68:c69657d00557 69:93abc0133b8a
104 c3 .(Suc lx) (ℵ lx) d not | t | () 104 c3 .(Suc lx) (ℵ lx) d not | t | ()
105 105
106 def-subst : {n : Level } {Z : OD {n}} {X : Ordinal {n} }{z : OD {n}} {x : Ordinal {n} }→ def Z X → Z ≡ z → X ≡ x → def z x 106 def-subst : {n : Level } {Z : OD {n}} {X : Ordinal {n} }{z : OD {n}} {x : Ordinal {n} }→ def Z X → Z ≡ z → X ≡ x → def z x
107 def-subst df refl refl = df 107 def-subst df refl refl = df
108 108
109 transitive : {n : Level } { z y x : OD {n} } → z ∋ y → y ∋ x → z ∋ x 109 transitive : {n : Level } { z y x : OD {suc n} } → z ∋ y → y ∋ x → z ∋ x
110 transitive {n} {z} {y} {x} z∋y x∋y with ordtrans ( c<→o< {n} {x} {y} x∋y ) ( c<→o< {n} {y} {z} z∋y ) 110 transitive {n} {z} {y} {x} z∋y x∋y with ordtrans ( c<→o< {suc n} {x} {y} x∋y ) ( c<→o< {suc n} {y} {z} z∋y )
111 ... | t = lemma0 (lemma t) where 111 ... | t = lemma0 (lemma t) where
112 lemma : ( od→ord x ) o< ( od→ord z ) → def ( ord→od ( od→ord z )) ( od→ord ( ord→od ( od→ord x ))) 112 lemma : ( od→ord x ) o< ( od→ord z ) → def ( ord→od ( od→ord z )) ( od→ord ( ord→od ( od→ord x )))
113 lemma xo<z = o<→c< xo<z 113 lemma xo<z = o<→c< xo<z
114 lemma0 : def ( ord→od ( od→ord z )) ( od→ord ( ord→od ( od→ord x ))) → def z (od→ord x) 114 lemma0 : def ( ord→od ( od→ord z )) ( od→ord ( ord→od ( od→ord x ))) → def z (od→ord x)
115 lemma0 dz = def-subst {n} { ord→od ( od→ord z )} { od→ord ( ord→od ( od→ord x))} dz (oiso) (diso) 115 lemma0 dz = def-subst {suc n} { ord→od ( od→ord z )} { od→ord ( ord→od ( od→ord x))} dz (oiso) (diso)
116 116
117 record Minimumo {n : Level } (x : Ordinal {n}) : Set (suc n) where 117 record Minimumo {n : Level } (x : Ordinal {n}) : Set (suc n) where
118 field 118 field
119 mino : Ordinal {n} 119 mino : Ordinal {n}
120 min<x : mino o< x 120 min<x : mino o< x
277 lemma ox ne | yes refl with ne ( ord→== lemma1 ) where 277 lemma ox ne | yes refl with ne ( ord→== lemma1 ) where
278 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅ 278 lemma1 : od→ord (ord→od o∅) ≡ od→ord od∅
279 lemma1 = cong ( λ k → od→ord k ) o∅→od∅ 279 lemma1 = cong ( λ k → od→ord k ) o∅→od∅
280 lemma o∅ ne | yes refl | () 280 lemma o∅ ne | yes refl | ()
281 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅→od∅ (o<→c< (∅5 ¬p)) 281 lemma ox ne | no ¬p = subst ( λ k → def (ord→od ox) (od→ord k) ) o∅→od∅ (o<→c< (∅5 ¬p))
282 282
283 -- ∃-set : {n : Level} → ( x : OD {suc n} ) → ( ψ : OD {suc n} → Set (suc n) ) → Set (suc n)
284 -- ∃-set = {!!}
283 285
284 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc (suc n)) (suc (suc n )) 286 -- postulate f-extensionality : { n : Level} → Relation.Binary.PropositionalEquality.Extensionality (suc (suc n)) (suc (suc n ))
285 287
286 -- ==∅→≡ : {n : Level} → { x : OD {suc n} } → ( x == od∅ {suc n} ) → x ≡ od∅ {suc n} 288 -- ==∅→≡ : {n : Level} → { x : OD {suc n} } → ( x == od∅ {suc n} ) → x ≡ od∅ {suc n}
287 -- ==∅→≡ {n} {x} eq = cong ( λ k → record { def = k } ) (trans {!!} ∅-base-def ) where 289 -- ==∅→≡ {n} {x} eq = cong ( λ k → record { def = k } ) (trans {!!} ∅-base-def ) where
308 Select : OD {suc n} → (OD {suc n} → Set (suc n) ) → OD {suc n} 310 Select : OD {suc n} → (OD {suc n} → Set (suc n) ) → OD {suc n}
309 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) } 311 Select X ψ = record { def = λ x → ( def X x ∧ ψ ( ord→od x )) }
310 _,_ : OD {suc n} → OD {suc n} → OD {suc n} 312 _,_ : OD {suc n} → OD {suc n} → OD {suc n}
311 x , y = record { def = λ z → ( (z ≡ od→ord x ) ∨ ( z ≡ od→ord y )) } 313 x , y = record { def = λ z → ( (z ≡ od→ord x ) ∨ ( z ≡ od→ord y )) }
312 Union : OD {suc n} → OD {suc n} 314 Union : OD {suc n} → OD {suc n}
313 Union x = record { def = λ y → {z : Ordinal {suc n}} → def x z → def (ord→od z) y } 315 Union U = record { def = λ y → y o< (od→ord U) }
314 Power : OD {suc n} → OD {suc n} 316 Power : OD {suc n} → OD {suc n}
315 Power x = record { def = λ y → (z : Ordinal {suc n} ) → ( def x y ∧ def (ord→od z) y ) } 317 Power x = record { def = λ y → (z : Ordinal {suc n} ) → ( def x y ∧ def (ord→od z) y ) }
316 ZFSet = OD {suc n} 318 ZFSet = OD {suc n}
317 _∈_ : ( A B : ZFSet ) → Set (suc n) 319 _∈_ : ( A B : ZFSet ) → Set (suc n)
318 A ∈ B = B ∋ A 320 A ∈ B = B ∋ A
327 infixr 220 _⊆_ 329 infixr 220 _⊆_
328 isZF : IsZF (OD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (record { def = λ x → x ≡ record { lv = Suc Zero ; ord = ℵ Zero } }) 330 isZF : IsZF (OD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (record { def = λ x → x ≡ record { lv = Suc Zero ; ord = ℵ Zero } })
329 isZF = record { 331 isZF = record {
330 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans } 332 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans }
331 ; pair = pair 333 ; pair = pair
332 ; union→ = {!!} 334 ; union-u = {!!}
333 ; union← = {!!} 335 ; union-iso = {!!}
334 ; empty = empty 336 ; empty = empty
335 ; power→ = {!!} 337 ; power→ = {!!}
336 ; power← = {!!} 338 ; power← = {!!}
337 ; extensionality = {!!} 339 ; extensionality = {!!}
338 ; minimul = minimul 340 ; minimul = minimul
347 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B) 349 pair : (A B : OD {suc n} ) → ((A , B) ∋ A) ∧ ((A , B) ∋ B)
348 proj1 (pair A B ) = case1 refl 350 proj1 (pair A B ) = case1 refl
349 proj2 (pair A B ) = case2 refl 351 proj2 (pair A B ) = case2 refl
350 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) 352 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x)
351 empty x () 353 empty x ()
352 union→ : (X x y : OD) → X ∋ x → x ∋ y → Union X ∋ y 354 union→ : (X x y : OD {suc n}) → X ∋ x → x ∋ y → Union X ∋ y
353 union→ X x y X∋x x∋y {z} X∋z = {!!} -- transitive {suc n} {X} {x} {y} X∋x x∋y 355 union→ X x y X∋x x∋y = c<→o< (transitive {n} {X} {x} {y} X∋x x∋y )
356 union-u : (X z : OD {suc n}) → OD {suc n}
357 union-u X z = record { def = ( λ u → (u o< od→ord X) ∧ (od→ord z o< u) ) }
358 union-iso : (X z : OD {suc n}) → (Union X ∋ z) ⇔ ((Union X ∋ union-u X z ) ∧ (union-u X z ∋ z))
359 -- ((x : OD) → (z ∋ x → y ∋ x)) → y ∋ z
360 proj1 ( union-iso X z ) U∋z = record { proj1 = U∋u ; proj2 = u∋z } where
361 U∋u : Union X ∋ union-u X z
362 U∋u = {!!}
363 u∋z : union-u X z ∋ z
364 u∋z = {!!}
365 proj2 (union-iso X z ) U∋u∧U∋z = transitive {n} {!!} {!!} -- (proj1 U∋u∧U∋z ) (proj2 U∋u∧U∋z )
354 ψiso : {ψ : OD {suc n} → Set (suc n)} {x y : OD {suc n}} → ψ x → x ≡ y → ψ y 366 ψiso : {ψ : OD {suc n} → Set (suc n)} {x y : OD {suc n}} → ψ x → x ≡ y → ψ y
355 ψiso {ψ} t refl = t 367 ψiso {ψ} t refl = t
356 selection : {ψ : OD → Set (suc n)} {X y : OD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y) 368 selection : {ψ : OD → Set (suc n)} {X y : OD} → ((X ∋ y) ∧ ψ y) ⇔ (Select X ψ ∋ y)
357 selection {ψ} {X} {y} = record { 369 selection {ψ} {X} {y} = record {
358 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) } 370 proj1 = λ cond → record { proj1 = proj1 cond ; proj2 = ψiso {ψ} (proj2 cond) (sym oiso) }