comparison HOD.agda @ 118:78fe704c3543

Union done
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Wed, 26 Jun 2019 20:32:30 +0900
parents a4c97390d312
children 6e264c78e420
comparison
equal deleted inserted replaced
117:a4c97390d312 118:78fe704c3543
81 81
82 _c≤_ : {n : Level} → HOD {n} → HOD {n} → Set (suc n) 82 _c≤_ : {n : Level} → HOD {n} → HOD {n} → Set (suc n)
83 a c≤ b = (a ≡ b) ∨ ( b ∋ a ) 83 a c≤ b = (a ≡ b) ∨ ( b ∋ a )
84 84
85 cseq : {n : Level} → HOD {n} → HOD {n} 85 cseq : {n : Level} → HOD {n} → HOD {n}
86 cseq x = record { def = λ y → osuc y o< (od→ord x) ; otrans = lemma } where 86 cseq x = record { def = λ y → def x (osuc y) ; otrans = lemma } where
87 lemma : {ox : Ordinal} → osuc ox o< od→ord x → { oy : Ordinal}→ oy o< ox → osuc oy o< od→ord x 87 lemma : {ox : Ordinal} → def x (osuc ox) → { oy : Ordinal}→ oy o< ox → def x (osuc oy)
88 lemma {ox} oox<Ox {oy} oy<ox = ordtrans (osucc oy<ox ) oox<Ox 88 lemma {ox} oox<Ox {oy} oy<ox = otrans x oox<Ox (osucc oy<ox )
89 89
90 def-subst : {n : Level } {Z : HOD {n}} {X : Ordinal {n} }{z : HOD {n}} {x : Ordinal {n} }→ def Z X → Z ≡ z → X ≡ x → def z x 90 def-subst : {n : Level } {Z : HOD {n}} {X : Ordinal {n} }{z : HOD {n}} {x : Ordinal {n} }→ def Z X → Z ≡ z → X ≡ x → def z x
91 def-subst df refl refl = df 91 def-subst df refl refl = df
92 92
93 o<→c< : {n : Level} {x y : Ordinal {n} } → x o< y → Ord y ∋ Ord x 93 o<→c< : {n : Level} {x y : Ordinal {n} } → x o< y → Ord y ∋ Ord x
278 infixr 220 _⊆_ 278 infixr 220 _⊆_
279 isZF : IsZF (HOD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (Ord omega) 279 isZF : IsZF (HOD {suc n}) _∋_ _==_ od∅ _,_ Union Power Select Replace (Ord omega)
280 isZF = record { 280 isZF = record {
281 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans } 281 isEquivalence = record { refl = eq-refl ; sym = eq-sym; trans = eq-trans }
282 ; pair = pair 282 ; pair = pair
283 ; union-u = λ _ z _ → csuc z 283 ; union-u = λ X z UX∋z → union-u {X} {z} UX∋z
284 ; union→ = union→ 284 ; union→ = union→
285 ; union← = union← 285 ; union← = union←
286 ; empty = empty 286 ; empty = empty
287 ; power→ = power→ 287 ; power→ = power→
288 ; power← = power← 288 ; power← = power←
333 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 } 333 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 }
334 lemma1 : od→ord (ZFSubset A (ord→od (od→ord t))) ≡ od→ord t 334 lemma1 : od→ord (ZFSubset A (ord→od (od→ord t))) ≡ od→ord t
335 lemma1 = subst (λ k → od→ord (ZFSubset A k) ≡ od→ord t ) (sym oiso) {!!} 335 lemma1 = subst (λ k → od→ord (ZFSubset A k) ≡ od→ord t ) (sym oiso) {!!}
336 lemma : od→ord (ZFSubset A (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x))) 336 lemma : od→ord (ZFSubset A (ord→od (od→ord t)) ) o< sup-o (λ x → od→ord (ZFSubset A (ord→od x)))
337 lemma = sup-o< 337 lemma = sup-o<
338 union-lemma-u : {X z : HOD {suc n}} → (U>z : Union X ∋ z ) → csuc z ∋ z 338 union-u : {X z : HOD {suc n}} → (U>z : Union X ∋ z ) → HOD {suc n}
339 union-lemma-u {X} {z} U>z = lemma <-osuc where 339 union-u {X} {z} U>z = Ord ( osuc ( od→ord z ) )
340 lemma : {oz ooz : Ordinal {suc n}} → oz o< ooz → def (ord→od ooz) oz
341 lemma {oz} {ooz} lt = def-subst {suc n} {ord→od ooz} {!!} refl refl
342 union→ : (X z u : HOD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z 340 union→ : (X z u : HOD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z
343 union→ X y u xx with trio< ( od→ord u ) ( osuc ( od→ord y )) 341 union→ X z u xx with trio< ( od→ord u ) ( osuc ( od→ord z ))
344 union→ X y u xx | tri< a ¬b ¬c with osuc-< a (c<→o< (proj2 xx)) 342 union→ X z u xx | tri< a ¬b ¬c with osuc-< a (c<→o< (proj2 xx))
345 union→ X y u xx | tri< a ¬b ¬c | () 343 union→ X z u xx | tri< a ¬b ¬c | ()
346 union→ X y u xx | tri≈ ¬a b ¬c = lemma b (c<→o< (proj1 xx )) where 344 union→ X z u xx | tri≈ ¬a b ¬c = def-subst {suc n} {_} {_} {X} {osuc (od→ord z)} (proj1 xx) refl b where
347 lemma : {oX ou ooy : Ordinal {suc n}} → ou ≡ ooy → ou o< oX → ooy o< oX 345 union→ X z u xx | tri> ¬a ¬b c = otrans X (proj1 xx) c
348 lemma refl lt = lt 346 union← : (X z : HOD) (X∋z : Union X ∋ z) → (X ∋ union-u {X} {z} X∋z ) ∧ (union-u {X} {z} X∋z ∋ z )
349 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 )) 347 union← X z X∋z = record { proj1 = lemma ; proj2 = <-osuc } where
350 union← : (X z : HOD) (X∋z : Union X ∋ z) → (X ∋ csuc z) ∧ (csuc z ∋ z ) 348 lemma : X ∋ union-u {X} {z} X∋z
351 union← X z X∋z = record { proj1 = def-subst {suc n} {_} {_} {X} {od→ord (csuc z )} {!!} oiso (sym diso) ; proj2 = union-lemma-u X∋z } 349 lemma = def-subst {suc n} {_} {_} {X} {od→ord (Ord (osuc ( od→ord z )))} X∋z refl ord-Ord
352 ψiso : {ψ : HOD {suc n} → Set (suc n)} {x y : HOD {suc n}} → ψ x → x ≡ y → ψ y 350 ψiso : {ψ : HOD {suc n} → Set (suc n)} {x y : HOD {suc n}} → ψ x → x ≡ y → ψ y
353 ψiso {ψ} t refl = t 351 ψiso {ψ} t refl = t
354 selection : {X : HOD } {ψ : (x : HOD ) → Set (suc n)} {y : HOD} → (((y₁ : HOD) → X ∋ y₁ → ψ y₁) ∧ (X ∋ y)) ⇔ (Select X ψ ∋ y) 352 selection : {X : HOD } {ψ : (x : HOD ) → Set (suc n)} {y : HOD} → (((y₁ : HOD) → X ∋ y₁ → ψ y₁) ∧ (X ∋ y)) ⇔ (Select X ψ ∋ y)
355 selection {X} {ψ} {y} = record { proj1 = λ s → record { 353 selection {X} {ψ} {y} = record { proj1 = λ s → record {
356 proj1 = λ y1 y1<X → proj1 s (ord→od y1) y1<X ; proj2 = subst (λ k → def X k ) (sym diso) (proj2 s) } 354 proj1 = λ y1 y1<X → proj1 s (ord→od y1) y1<X ; proj2 = subst (λ k → def X k ) (sym diso) (proj2 s) }
382 lemma2 : {x : HOD {suc n}} → od→ord (x , x) ≡ osuc (od→ord x) 380 lemma2 : {x : HOD {suc n}} → od→ord (x , x) ≡ osuc (od→ord x)
383 lemma2 = trans ( cong ( λ k → od→ord k ) xx-union ) {!!} 381 lemma2 = trans ( cong ( λ k → od→ord k ) xx-union ) {!!}
384 lemma : {x : HOD {suc n}} → omax (od→ord x) (od→ord (x , x)) ≡ osuc (osuc (od→ord x)) 382 lemma : {x : HOD {suc n}} → omax (od→ord x) (od→ord (x , x)) ≡ osuc (osuc (od→ord x))
385 lemma {x} = trans ( sym ( omax< (od→ord x) (od→ord (x , x)) lemma1 ) ) ( cong ( λ k → osuc k ) lemma2 ) 383 lemma {x} = trans ( sym ( omax< (od→ord x) (od→ord (x , x)) lemma1 ) ) ( cong ( λ k → osuc k ) lemma2 )
386 uxxx-union : {x : HOD {suc n}} → Union (x , (x , x)) ≡ record { def = λ z → osuc z o< osuc (osuc (od→ord x)) } 384 uxxx-union : {x : HOD {suc n}} → Union (x , (x , x)) ≡ record { def = λ z → osuc z o< osuc (osuc (od→ord x)) }
387 uxxx-union {x} = cong ( λ k → record { def = λ z → osuc z o< k ; otrans = {!!} } ) lemma where 385 uxxx-union {x} = cong ( λ k → record { def = λ z → osuc z o< k ; otrans = {!!} } ) {!!} where
388 lemma : od→ord (x , (x , x)) ≡ osuc (osuc (od→ord x)) 386 lemma : od→ord (x , (x , x)) ≡ osuc (osuc (od→ord x))
389 lemma = trans ( cong ( λ k → od→ord k ) xxx-union ) {!!} 387 lemma = trans ( cong ( λ k → od→ord k ) xxx-union ) {!!}
390 uxxx-2 : {x : HOD {suc n}} → record { def = λ z → osuc z o< osuc (osuc (od→ord x)) } == record { def = λ z → z o< osuc (od→ord x) } 388 uxxx-2 : {x : HOD {suc n}} → record { def = λ z → osuc z o< osuc (osuc (od→ord x)) } == record { def = λ z → z o< osuc (od→ord x) }
391 eq→ ( uxxx-2 {x} ) {m} lt = proj1 (osuc2 m (od→ord x)) lt 389 eq→ ( uxxx-2 {x} ) {m} lt = proj1 (osuc2 m (od→ord x)) lt
392 eq← ( uxxx-2 {x} ) {m} lt = proj2 (osuc2 m (od→ord x)) lt 390 eq← ( uxxx-2 {x} ) {m} lt = proj2 (osuc2 m (od→ord x)) lt