Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison HOD.agda @ 151:b5a337fb7a6d
recovering...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Jul 2019 09:56:38 +0900 |
parents | ebcbfd9d9c8e |
children | 996a67042f50 |
comparison
equal
deleted
inserted
replaced
150:ebcbfd9d9c8e | 151:b5a337fb7a6d |
---|---|
309 | 309 |
310 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) | 310 empty : (x : OD {suc n} ) → ¬ (od∅ ∋ x) |
311 empty x (case1 ()) | 311 empty x (case1 ()) |
312 empty x (case2 ()) | 312 empty x (case2 ()) |
313 | 313 |
314 ord-⊆ : ( t x : OD {suc n} ) → _⊆_ t (Ord (od→ord t )) {x} | |
315 ord-⊆ t x lt = c<→o< lt | |
316 | |
314 union-d : (X : OD {suc n}) → OD {suc n} | 317 union-d : (X : OD {suc n}) → OD {suc n} |
315 union-d X = record { def = λ y → def X (osuc y) } | 318 union-d X = record { def = λ y → def X (osuc y) } |
316 union-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → OD {suc n} | 319 union-u : {X z : OD {suc n}} → (U>z : Union X ∋ z ) → OD {suc n} |
317 union-u {X} {z} U>z = Ord ( osuc ( od→ord z ) ) | 320 union-u {X} {z} U>z = Ord ( osuc ( od→ord z ) ) |
318 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z | 321 union→ : (X z u : OD) → (X ∋ u) ∧ (u ∋ z) → Union X ∋ z |
361 --- ZFSubset A x = record { def = λ y → def A y ∧ def x y } subset of A | 364 --- ZFSubset A x = record { def = λ y → def A y ∧ def x y } subset of A |
362 --- Power X = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) ) Power X is a sup of all subset of A | 365 --- Power X = ord→od ( sup-o ( λ x → od→ord ( ZFSubset A (ord→od x )) ) ) Power X is a sup of all subset of A |
363 -- | 366 -- |
364 -- if Power A ∋ t, from a propertiy of minimum sup there is osuc ZFSubset A ∋ t | 367 -- if Power A ∋ t, from a propertiy of minimum sup there is osuc ZFSubset A ∋ t |
365 -- then ZFSubset A ≡ t or ZFSubset A ∋ t. In the former case ZFSubset A ∋ x implies A ∋ x | 368 -- then ZFSubset A ≡ t or ZFSubset A ∋ t. In the former case ZFSubset A ∋ x implies A ∋ x |
366 -- In case of later, ZFSubset A ∋ t and t ∋ x implies A ∋ x by transitivity | 369 -- In case of later, ZFSubset A ∋ t and t ∋ x implies A ∋ x by transitivity of Ordinals |
367 -- | 370 -- |
368 POrd : {a : Ordinal } {t : OD} → Def (Ord a) ∋ t → Def (Ord a) ∋ Ord (od→ord t) | |
369 POrd {a} {t} P∋t = {!!} | |
370 ∩-≡ : { a b : OD {suc n} } → ({x : OD {suc n} } → (a ∋ x → b ∋ x)) → a == ( b ∩ a ) | 371 ∩-≡ : { a b : OD {suc n} } → ({x : OD {suc n} } → (a ∋ x → b ∋ x)) → a == ( b ∩ a ) |
371 ∩-≡ {a} {b} inc = record { | 372 ∩-≡ {a} {b} inc = record { |
372 eq→ = λ {x} x<a → record { proj2 = x<a ; | 373 eq→ = λ {x} x<a → record { proj2 = x<a ; |
373 proj1 = def-subst {suc n} {_} {_} {b} {x} (inc (def-subst {suc n} {_} {_} {a} {_} x<a refl (sym diso) )) refl diso } ; | 374 proj1 = def-subst {suc n} {_} {_} {b} {x} (inc (def-subst {suc n} {_} {_} {a} {_} x<a refl (sym diso) )) refl diso } ; |
374 eq← = λ {x} x<a∩b → proj2 x<a∩b } | 375 eq← = λ {x} x<a∩b → proj2 x<a∩b } |
375 ord-power→ : (a : Ordinal ) ( t : OD) → Def (Ord a) ∋ t → {x : OD} → t ∋ x → Ord a ∋ x | 376 ord-power→ : (a : Ordinal ) ( t : OD) → Def (Ord a) ∋ t → {x : OD} → t ∋ x → Ord a ∋ x |
376 ord-power→ a t P∋t {x} t∋x with osuc-≡< (sup-lb (POrd P∋t)) | 377 ord-power→ a t P∋t {x} t∋x with osuc-≡< (sup-lb P∋t ) |
377 ... | case1 eq = proj1 (def-subst (Ltx t∋x) (sym (subst₂ (λ j k → j ≡ k ) oiso oiso ( cong (λ k → ord→od k) (sym eq) ))) refl ) where | 378 ... | case1 eq = proj1 (def-subst t∋x (sym (subst₂ (λ j k → j ≡ k ) oiso oiso ( cong (λ k → ord→od k) (sym eq) ))) refl ) |
378 Ltx : {n : Level} → {x t : OD {suc n}} → t ∋ x → Ord (od→ord t) ∋ x | |
379 Ltx {n} {x} {t} lt = c<→o< lt | |
380 ... | case2 lt = lemma3 where | 379 ... | case2 lt = lemma3 where |
381 sp = sup-x (λ x → od→ord ( ZFSubset (Ord a) (ord→od x))) | 380 sp = sup-x (λ x → od→ord ( ZFSubset (Ord a) (ord→od x))) |
382 minsup : OD | 381 minsup : OD |
383 minsup = ZFSubset (Ord a) ( ord→od ( sup-x (λ x → od→ord ( ZFSubset (Ord a) (ord→od x))))) | 382 minsup = ZFSubset (Ord a) ( ord→od ( sup-x (λ x → od→ord ( ZFSubset (Ord a) (ord→od x))))) |
384 Ltx : {n : Level} → {x t : OD {suc n}} → t ∋ x → Ord (od→ord t) ∋ x | 383 Ltx : {n : Level} → {x t : OD {suc n}} → t ∋ x → Ord (od→ord t) ∋ x |
385 Ltx {n} {x} {t} lt = c<→o< lt | 384 Ltx {n} {x} {t} lt = c<→o< lt |
386 -- lemma1 hold because minsup is Ord (minα a sp) | 385 -- lemma1 hold because a subset of ordinals is ordinal |
387 lemma1 : od→ord (Ord (od→ord t)) o< od→ord minsup → minsup ∋ Ord (od→ord t) | 386 lemma1 : od→ord t o< od→ord minsup → minsup ∋ Ord (od→ord t) |
388 lemma1 lt with OrdSubset a ( sup-x (λ x → od→ord ( ZFSubset (Ord a) (ord→od x)))) | 387 lemma1 lt = {!!} |
389 ... | eq with subst ( λ k → ZFSubset (Ord a) k ≡ Ord (minα a sp)) {!!} eq | |
390 ... | eq1 = def-subst {suc n} {_} {_} {minsup} {od→ord (Ord (od→ord t))} {!!} lemma2 {!!} where | |
391 lemma2 : Ord (od→ord (ZFSubset (Ord a) (ord→od sp))) ≡ minsup | |
392 lemma2 = let open ≡-Reasoning in begin | |
393 Ord (od→ord (ZFSubset (Ord a) (ord→od sp))) | |
394 ≡⟨ cong (λ k → Ord (od→ord k)) eq1 ⟩ | |
395 Ord (od→ord (Ord (minα a sp))) | |
396 ≡⟨ cong (λ k → Ord (od→ord k)) {!!} ⟩ | |
397 Ord (od→ord (ord→od (minα a sp))) | |
398 ≡⟨ cong (λ k → Ord k) diso ⟩ | |
399 Ord (minα a sp) | |
400 ≡⟨ sym eq1 ⟩ | |
401 minsup | |
402 ∎ | |
403 lemma3 : od→ord x o< a | 388 lemma3 : od→ord x o< a |
404 lemma3 = otrans (proj1 (lemma1 lt) ) (c<→o< {suc n} {x} {Ord (od→ord t)} (Ltx t∋x) ) | 389 lemma3 = otrans (proj1 (lemma1 lt)) (c<→o< {suc n} {x} {Ord (od→ord t)} (Ltx t∋x) ) |
405 -- | 390 -- |
406 -- we have t ∋ x → A ∋ x means t is a subset of A, that is ZFSubset A t == t | 391 -- we have t ∋ x → A ∋ x means t is a subset of A, that is ZFSubset A t == t |
407 -- Power A is a sup of ZFSubset A t, so Power A ∋ t | 392 -- Power A is a sup of ZFSubset A t, so Power A ∋ t |
408 -- | 393 -- |
409 ord-power← : (a : Ordinal ) (t : OD) → ({x : OD} → (t ∋ x → (Ord a) ∋ x)) → Def (Ord a) ∋ t | 394 ord-power← : (a : Ordinal ) (t : OD) → ({x : OD} → (t ∋ x → (Ord a) ∋ x)) → Def (Ord a) ∋ t |
442 lemma0 : {x : OD} → t ∋ x → Ord a ∋ x | 427 lemma0 : {x : OD} → t ∋ x → Ord a ∋ x |
443 lemma0 {x} t∋x = c<→o< (t→A t∋x) | 428 lemma0 {x} t∋x = c<→o< (t→A t∋x) |
444 lemma3 : Def (Ord a) ∋ t | 429 lemma3 : Def (Ord a) ∋ t |
445 lemma3 = ord-power← a t lemma0 | 430 lemma3 = ord-power← a t lemma0 |
446 lemma4 : od→ord t ≡ od→ord (A ∩ Ord (od→ord t)) | 431 lemma4 : od→ord t ≡ od→ord (A ∩ Ord (od→ord t)) |
447 lemma4 = cong ( λ k → od→ord k ) ( ==→o≡ (subst (λ k → t == (A ∩ k)) {!!} {!!} )) | 432 lemma4 = {!!} |
448 lemma1 : od→ord t o< sup-o (λ x → od→ord (A ∩ ord→od x)) | 433 lemma1 : od→ord t o< sup-o (λ x → od→ord (A ∩ ord→od x)) |
449 lemma1 with sup-o< {suc n} {λ x → od→ord (A ∩ ord→od x)} {od→ord t} | 434 lemma1 with sup-o< {suc n} {λ x → od→ord (A ∩ ord→od x)} {od→ord t} |
450 ... | lt = o<-subst {suc n} {_} {_} {_} {_} lt (sym (subst (λ k → od→ord t ≡ k) lemma5 lemma4 )) refl where | 435 ... | lt = o<-subst {suc n} {_} {_} {_} {_} lt (sym (subst (λ k → od→ord t ≡ k) lemma5 lemma4 )) refl where |
451 lemma5 : od→ord (A ∩ Ord (od→ord t)) ≡ od→ord (A ∩ ord→od (od→ord t)) | 436 lemma5 : od→ord (A ∩ Ord (od→ord t)) ≡ od→ord (A ∩ ord→od (od→ord t)) |
452 lemma5 = cong (λ k → od→ord (A ∩ k )) {!!} | 437 lemma5 = cong (λ k → od→ord (A ∩ k )) {!!} |
453 lemma2 : def (in-codomain (Def (Ord (od→ord A))) (_∩_ A)) (od→ord t) | 438 lemma2 : def (in-codomain (Def (Ord (od→ord A))) (_∩_ A)) (od→ord t) |
454 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = {!!} }) ) where | 439 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = lemma6 }) ) where |
440 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) | |
441 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t == (A ∩ k)) (sym oiso) ( ∩-≡ t→A ))) | |
455 | 442 |
456 ∅-iso : {x : OD} → ¬ (x == od∅) → ¬ ((ord→od (od→ord x)) == od∅) | 443 ∅-iso : {x : OD} → ¬ (x == od∅) → ¬ ((ord→od (od→ord x)) == od∅) |
457 ∅-iso {x} neq = subst (λ k → ¬ k) (=-iso {n} ) neq | 444 ∅-iso {x} neq = subst (λ k → ¬ k) (=-iso {n} ) neq |
458 regularity : (x : OD) (not : ¬ (x == od∅)) → | 445 regularity : (x : OD) (not : ¬ (x == od∅)) → |
459 (x ∋ minimul x not) ∧ (Select (minimul x not) (λ x₁ → (minimul x not ∋ x₁) ∧ (x ∋ x₁)) == od∅) | 446 (x ∋ minimul x not) ∧ (Select (minimul x not) (λ x₁ → (minimul x not ∋ x₁) ∧ (x ∋ x₁)) == od∅) |