Mercurial > hg > Members > kono > Proof > ZF-in-agda
comparison OD.agda @ 317:57df07b63cae
Power done
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 03 Jul 2020 18:29:51 +0900 |
parents | c030a9655e79 |
children | 9e0c97ab3a4a |
comparison
equal
deleted
inserted
replaced
316:c030a9655e79 | 317:57df07b63cae |
---|---|
309 ; ε-induction = ε-induction | 309 ; ε-induction = ε-induction |
310 ; infinity∅ = infinity∅ | 310 ; infinity∅ = infinity∅ |
311 ; infinity = infinity | 311 ; infinity = infinity |
312 ; selection = λ {X} {ψ} {y} → selection {X} {ψ} {y} | 312 ; selection = λ {X} {ψ} {y} → selection {X} {ψ} {y} |
313 ; replacement← = replacement← | 313 ; replacement← = replacement← |
314 ; replacement→ = replacement→ | 314 ; replacement→ = λ {ψ} → replacement→ {ψ} |
315 -- ; choice-func = choice-func | 315 -- ; choice-func = choice-func |
316 -- ; choice = choice | 316 -- ; choice = choice |
317 } where | 317 } where |
318 | 318 |
319 pair→ : ( x y t : ZFSet ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) | 319 pair→ : ( x y t : ZFSet ) → (x , y) ∋ t → ( t =h= x ) ∨ ( t =h= y ) |
413 -- | 413 -- |
414 power→ : ( A t : HOD) → Power A ∋ t → {x : HOD} → t ∋ x → ¬ ¬ (A ∋ x) | 414 power→ : ( A t : HOD) → Power A ∋ t → {x : HOD} → t ∋ x → ¬ ¬ (A ∋ x) |
415 power→ A t P∋t {x} t∋x = FExists _ lemma5 lemma4 where | 415 power→ A t P∋t {x} t∋x = FExists _ lemma5 lemma4 where |
416 a = od→ord A | 416 a = od→ord A |
417 lemma2 : ¬ ( (y : HOD) → ¬ (t =h= (A ∩ y))) | 417 lemma2 : ¬ ( (y : HOD) → ¬ (t =h= (A ∩ y))) |
418 lemma2 = replacement→ (OPwr (Ord (od→ord A))) t P∋t | 418 lemma2 = replacement→ {λ x → A ∩ x} (OPwr (Ord (od→ord A))) t P∋t |
419 lemma3 : (y : HOD) → t =h= ( A ∩ y ) → ¬ ¬ (A ∋ x) | 419 lemma3 : (y : HOD) → t =h= ( A ∩ y ) → ¬ ¬ (A ∋ x) |
420 lemma3 y eq not = not (proj1 (eq→ eq t∋x)) | 420 lemma3 y eq not = not (proj1 (eq→ eq t∋x)) |
421 lemma4 : ¬ ((y : Ordinal) → ¬ (t =h= (A ∩ ord→od y))) | 421 lemma4 : ¬ ((y : Ordinal) → ¬ (t =h= (A ∩ ord→od y))) |
422 lemma4 not = lemma2 ( λ y not1 → not (od→ord y) (subst (λ k → t =h= ( A ∩ k )) (sym oiso) not1 )) | 422 lemma4 not = lemma2 ( λ y not1 → not (od→ord y) (subst (λ k → t =h= ( A ∩ k )) (sym oiso) not1 )) |
423 lemma5 : {y : Ordinal} → t =h= (A ∩ ord→od y) → ¬ ¬ (odef A (od→ord x)) | 423 lemma5 : {y : Ordinal} → t =h= (A ∩ ord→od y) → ¬ ¬ (odef A (od→ord x)) |
433 lemma4 : (A ∩ ord→od (od→ord t)) ≡ t | 433 lemma4 : (A ∩ ord→od (od→ord t)) ≡ t |
434 lemma4 = let open ≡-Reasoning in begin | 434 lemma4 = let open ≡-Reasoning in begin |
435 A ∩ ord→od (od→ord t) | 435 A ∩ ord→od (od→ord t) |
436 ≡⟨ cong (λ k → A ∩ k) oiso ⟩ | 436 ≡⟨ cong (λ k → A ∩ k) oiso ⟩ |
437 A ∩ t | 437 A ∩ t |
438 ≡⟨ sym (==→o≡ ( ∩-≡ t→A )) ⟩ | 438 ≡⟨ sym (==→o≡ ( ∩-≡ {t} {A} t→A )) ⟩ |
439 t | 439 t |
440 ∎ | 440 ∎ |
441 --- (od→ord t) o< (sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x)))) | 441 sup1 : Ordinal |
442 sup1 = sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x))) | 442 sup1 = sup-o (Ord (osuc (od→ord (Ord (od→ord A))))) (λ x A∋x → od→ord (ZFSubset (Ord (od→ord A)) (ord→od x))) |
443 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A))) | 443 lemma9 : def (od (Ord (Ordinals.osuc O (od→ord (Ord (od→ord A)))))) (od→ord (Ord (od→ord A))) |
444 lemma9 = <-osuc | 444 lemma9 = <-osuc |
445 lemmab : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) )))) o< sup1 | 445 lemmab : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) )))) o< sup1 |
446 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9 | 446 lemmab = sup-o< (Ord (osuc (od→ord (Ord (od→ord A))))) lemma9 |
447 lemmad : Ord (osuc (od→ord A)) ∋ t | 447 lemmad : Ord (osuc (od→ord A)) ∋ t |
448 lemmad = {!!} | 448 lemmad = ⊆→o≤ (λ {x} lt → subst (λ k → def (od A) k ) diso (t→A (subst (λ k → def (od t) k ) (sym diso) lt))) |
449 lemmac : ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) ))) =h= Ord (od→ord A) | 449 lemmac : ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A) ))) =h= Ord (od→ord A) |
450 lemmac = record { eq→ = {!!} ; eq← = {!!} } | 450 lemmac = record { eq→ = lemmaf ; eq← = lemmag } where |
451 lemmaf : {x : Ordinal} → def (od (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A)))))) x → def (od (Ord (od→ord A))) x | |
452 lemmaf {x} lt = proj1 lt | |
453 lemmag : {x : Ordinal} → def (od (Ord (od→ord A))) x → def (od (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A)))))) x | |
454 lemmag {x} lt = record { proj1 = lt ; proj2 = subst (λ k → def (od k) x) (sym oiso) lt } | |
451 lemmae : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A))))) ≡ od→ord (Ord (od→ord A)) | 455 lemmae : od→ord (ZFSubset (Ord (od→ord A)) (ord→od (od→ord (Ord (od→ord A))))) ≡ od→ord (Ord (od→ord A)) |
452 lemmae = cong (λ k → od→ord k ) ( ==→o≡ lemmac) | 456 lemmae = cong (λ k → od→ord k ) ( ==→o≡ lemmac) |
453 lemma7 : def (od (OPwr (Ord (od→ord A)))) (od→ord t) | 457 lemma7 : def (od (OPwr (Ord (od→ord A)))) (od→ord t) |
454 lemma7 with osuc-≡< lemmad | 458 lemma7 with osuc-≡< lemmad |
455 lemma7 | case2 lt = ordtrans (c<→o< lt) (subst (λ k → k o< sup1) lemmae lemmab ) | 459 lemma7 | case2 lt = ordtrans (c<→o< lt) (subst (λ k → k o< sup1) lemmae lemmab ) |
456 lemma7 | case1 eq with osuc-≡< (⊆→o≤ {ord→od (od→ord t)} {ord→od (od→ord (Ord (od→ord t)))} (λ {x} lt → {!!} )) | 460 lemma7 | case1 eq with osuc-≡< (⊆→o≤ {ord→od (od→ord t)} {ord→od (od→ord (Ord (od→ord t)))} (λ {x} lt → lemmah lt )) where |
457 lemma7 | case1 eq | case1 eq1 = subst (λ k → k o< sup1) (trans lemmae {!!}) lemmab -- od→ord (Ord (od→ord A)) ≡ od→ord t | 461 lemmah : {x : Ordinal } → def (od (ord→od (od→ord t))) x → def (od (ord→od (od→ord (Ord (od→ord t))))) x |
458 lemma7 | case1 eq | case2 lt = ordtrans {!!} (subst (λ k → k o< sup1) lemmae lemmab ) | 462 lemmah {x} lt = subst (λ k → def (od k) x ) (sym oiso) (subst (λ k → k o< (od→ord t)) |
463 diso | |
464 (c<→o< (subst₂ (λ j k → def (od j) k) oiso (sym diso) lt ))) | |
465 lemma7 | case1 eq | case1 eq1 = subst (λ k → k o< sup1) (trans lemmae lemmai) lemmab where | |
466 lemmai : od→ord (Ord (od→ord A)) ≡ od→ord t | |
467 lemmai = let open ≡-Reasoning in begin | |
468 od→ord (Ord (od→ord A)) | |
469 ≡⟨ sym (cong (λ k → od→ord (Ord k)) eq) ⟩ | |
470 od→ord (Ord (od→ord t)) | |
471 ≡⟨ sym diso ⟩ | |
472 od→ord (ord→od (od→ord (Ord (od→ord t)))) | |
473 ≡⟨ sym eq1 ⟩ | |
474 od→ord (ord→od (od→ord t)) | |
475 ≡⟨ diso ⟩ | |
476 od→ord t | |
477 ∎ | |
478 lemma7 | case1 eq | case2 lt = ordtrans lemmaj (subst (λ k → k o< sup1) lemmae lemmab ) where | |
479 lemmak : od→ord (ord→od (od→ord (Ord (od→ord t)))) ≡ od→ord (Ord (od→ord A)) | |
480 lemmak = let open ≡-Reasoning in begin | |
481 od→ord (ord→od (od→ord (Ord (od→ord t)))) | |
482 ≡⟨ diso ⟩ | |
483 od→ord (Ord (od→ord t)) | |
484 ≡⟨ cong (λ k → od→ord (Ord k)) eq ⟩ | |
485 od→ord (Ord (od→ord A)) | |
486 ∎ | |
487 lemmaj : od→ord t o< od→ord (Ord (od→ord A)) | |
488 lemmaj = subst₂ (λ j k → j o< k ) diso lemmak lt | |
459 lemma1 : od→ord t o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x))) | 489 lemma1 : od→ord t o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x))) |
460 lemma1 = subst (λ k → od→ord k o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x)))) | 490 lemma1 = subst (λ k → od→ord k o< sup-o (OPwr (Ord (od→ord A))) (λ x lt → od→ord (A ∩ (ord→od x)))) |
461 lemma4 (sup-o< (OPwr (Ord (od→ord A))) lemma7 ) | 491 lemma4 (sup-o< (OPwr (Ord (od→ord A))) lemma7 ) |
462 lemma2 : odef (in-codomain (OPwr (Ord (od→ord A))) (_∩_ A)) (od→ord t) | 492 lemma2 : odef (in-codomain (OPwr (Ord (od→ord A))) (_∩_ A)) (od→ord t) |
463 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = lemma6 }) ) where | 493 lemma2 not = ⊥-elim ( not (od→ord t) (record { proj1 = lemma3 ; proj2 = lemma6 }) ) where |
464 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) | 494 lemma6 : od→ord t ≡ od→ord (A ∩ ord→od (od→ord t)) |
465 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t =h= (A ∩ k)) (sym oiso) ( ∩-≡ t→A ))) | 495 lemma6 = cong ( λ k → od→ord k ) (==→o≡ (subst (λ k → t =h= (A ∩ k)) (sym oiso) ( ∩-≡ {t} {A} t→A ))) |
466 | 496 |
467 | 497 |
468 ord⊆power : (a : Ordinal) → (Ord (osuc a)) ⊆ (Power (Ord a)) | 498 ord⊆power : (a : Ordinal) → (Ord (osuc a)) ⊆ (Power (Ord a)) |
469 ord⊆power a = record { incl = λ {x} lt → power← (Ord a) x (lemma lt) } where | 499 ord⊆power a = record { incl = λ {x} lt → power← (Ord a) x (lemma lt) } where |
470 lemma : {x y : HOD} → od→ord x o< osuc a → x ∋ y → Ord a ∋ y | 500 lemma : {x y : HOD} → od→ord x o< osuc a → x ∋ y → Ord a ∋ y |